|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' Q% A4 x; U4 b; j: F
8 d! j- R9 A: c; o* a/ |7 N
Mover.h( F0 F! x: U1 L0 x
代码:# ], e- ?) Z. j/ i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! S* G2 e5 c" ^8 X, }5 _' o7 k
7 ~7 w7 @- B+ v% e& Z8 D下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 s0 N2 S2 t. {" d: J5 Q) d8 q, a
然后你去mover.cpp添加9 [ P [: m5 B% d+ l: C7 d9 j+ Q: n
7 Y* ]- y( D: w! e代码:
5 t3 ?( [. G3 v# U Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 v% V8 E1 v2 R& z: e# y' ]
{
0 K; e& E z3 _' Z! O#ifdef __WORLDSERVER
8 w- M3 `) c" A* R0 a5 _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ e9 G- S4 I3 O2 S
MoverProp* pProp = GetProp();
$ R: x' s: m# A if( pProp )" {5 [9 ]/ ?) X$ W+ ]; J
{
8 d1 w8 N8 G& w& |+ R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 u% ~ A+ c$ @ l% M* j {7 B% A* g% k, W! W: E
AddChangeJob( nJob );
: J: S! n: l) ~" D8 e9 q2 I; _5 \( @ }else{
. g& g3 ?& ?+ |& f3 T return;5 m6 g8 H2 ~+ N* E
}7 B u6 }) g+ y5 N# C8 E2 S$ Z0 P
int nPoint = 0;& |* E5 U# p$ E* i0 K
if( m_nJob == JOB_MERCENARY )7 x/ y0 E" I# N! I/ K
nPoint += 40;
: ^. t+ w i% L) r( k! l6 p else if( m_nJob == JOB_ACROBAT )
, A$ L& w y6 H4 l nPoint += 50;
2 {7 }9 y* i" D% l+ t3 k" k else if( m_nJob == JOB_ASSIST )2 ]6 w/ {) x6 f
nPoint += 60;
* ~7 I2 N3 m% [- h/ ? else if( m_nJob == JOB_MAGICIAN )
: t" A: p: C+ X7 v M nPoint += 90;$ `' b. U5 Y3 Z/ r+ }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% `/ k& g1 `1 A. e
nPoint += 120;5 r* J: ]" s6 {, R. E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ j/ p9 ?1 c/ y
nPoint += 150;
1 q/ v5 W- y3 P4 I O- w6 w0 j else if( m_nJob == JOB_RINGMASTER )& m& y2 W3 n2 L. K
nPoint += 160;1 m$ _$ o& `, `& A( w3 {& g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )2 `1 A0 N" Y+ N1 f
nPoint += 180;
; Z: r/ X1 R2 x5 M; A* m else if( m_nJob == JOB_ELEMENTOR )
2 D5 o) ]: ]9 }5 e/ b4 t nPoint += 390;
" f) q8 D8 W$ p. n" L" T. w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 G" L+ l9 L1 {1 |( [$ J8 l8 E nPoint += 120;
. M+ H7 Z2 a1 |' F else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 R! D D' K- p2 {' R! h) e
nPoint += 150;
7 K3 o2 r; v) x0 Z else if( nJob == JOB_FLORIST_HERO )
! X2 ]1 Y2 k' r nPoint += 160;
) o8 A1 n$ L0 ?' w R i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! q) T5 n( `* e3 I nPoint += 180;. S! I5 w" Z, e2 S, ?0 |
else if( nJob == JOB_ELEMENTORLORD_HERO ), t( x1 I% K- ?+ J5 o
nPoint += 390;" g2 J( G3 @* _7 B# ]! H5 @
0 G! ~7 Z* o- ^$ z! Y
AddSkillPoint( nPoint );0 x9 V; ^5 J- T7 P# H+ \
m_nLevel = nLevel;
( r0 W! W4 n5 u( ^& O
7 [2 y5 s! l. V) m! i! l SetJobLevel( nLevel, nJob );; f$ X+ d3 ]+ z L* x4 O! x4 r
m_nDeathLevel = nLevel;
) _+ q! m- r: r6 t1 D0 j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 }9 u! n7 C! _# f- q
if(IsMaster())
& t. Y" k7 B4 ~% d2 }2 b. w9 ?) Q {1 c1 }; |; {' r( \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- o9 p$ _% o( X$ Z) h( K if( nLevel > 59 && nLevel < 72 )* k7 }+ M0 X u' c0 v- {7 e
dwTmpSkLevel = 1;) W3 @# X6 j3 _/ N& P3 v" |
else if( nLevel > 71 && nLevel < 84 )8 t, A: [4 M1 `, k
dwTmpSkLevel = 2;
7 L: J, k1 k* S9 S; L% D, l0 U# K3 c; r else if( nLevel > 83 && nLevel < 96 )" x) _" I- Y6 h* w/ A6 | y2 ^7 k
dwTmpSkLevel = 3;% h( E. y: {0 J+ Y9 s0 N% v
else if( nLevel > 95 && nLevel < 108 )
' {, A1 F! b$ G- O dwTmpSkLevel = 4;
3 R: Z E. ]4 U, R8 T% {8 c else if( nLevel > 107 && nLevel < 120 )4 E/ F# d, o% K0 w
dwTmpSkLevel = 5;
. S% e9 R8 i( q5 O+ ?+ P" g for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ _ W: y! x- i { & S4 @+ I3 }1 J/ L2 W" b
LPSKILL lpSkill = &(m_aJobSkill);! J% F6 {7 n" n; C" U8 e' a e: H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; c- f. {0 [) u& B {$ y/ w& A% F7 a" E' I" `, T+ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); j5 Q; E. A4 Z. {
if( pSkillProp == NULL )) \2 n9 {1 o% O8 Z" f( s9 `# Q5 @
continue;, c) b4 {/ P6 Q+ A8 w& u4 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ { c+ f. p: ^' j! t' N5 _ continue;' K7 R% \4 L7 q7 U! Z" T
lpSkill->dwLevel = dwTmpSkLevel; l. g. V; M, d
}
" p0 @, B7 m$ H3 D2 a } f9 a" j! W5 ?7 R" ~% _* ~+ c
}
. F. E5 B) H3 a% j8 c$ [' g else if(IsHero())
+ l' t1 P9 e5 R {' U# v& z3 N: }: {) _+ K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. j, r7 p* o' k7 C0 e9 g { ; Z; c e& j4 Y0 R
LPSKILL lpSkill = &(m_aJobSkill);1 ~# J0 L0 E, d: X B N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 k# l: _7 X+ a! K {
' j0 m6 A! a+ P2 x/ z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! i2 _2 m' }5 W6 \) K- F' Z; C if( pSkillProp == NULL )6 n1 V1 e4 p r: Y1 a$ ~) n8 _! I
continue;! n1 a& F4 @ O( g1 r: ^) v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( ] j( m8 M# ?7 }; p# Z
continue;
: o8 `. T6 @$ m3 j2 u lpSkill->dwLevel = 5;
0 \3 w9 Y0 Y# z. u) P' ^ }1 F5 h$ W6 W* Z5 q7 h& G5 S
}
1 q" t9 {# |: e6 h2 E" u' u2 v }
: u2 {5 s- w' I# \' g else if(IsLegendHero())
- E ]% r/ V; p9 Z( j9 l# ^, p# @. B {7 ]" [( ?' V5 r' y' U2 }+ d B5 p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & S! D0 ^# r% \+ P7 G/ T/ E9 q: U
{
# B1 a( @' q" h1 D8 p, z LPSKILL lpSkill = &(m_aJobSkill);% d; y0 C! `2 X* a$ ^- G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 v/ x# A& h' X/ c {
% Y% B7 Q% V7 e+ v/ l0 ]1 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ X1 b. t. A0 c% K) P; W; B4 B
if( pSkillProp == NULL )
3 [( d6 D L6 T4 \ continue;
" _) p% F8 s! ~5 ]' h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- M7 W- a/ J- q0 b# l" S* b' ] continue;+ t$ ?: O- G: Q9 \5 ~# l
lpSkill->dwLevel = 5;
* m" V* s" @8 X b3 j8 y }
1 v9 K' V G$ H" ?, H }- l3 {0 t; E# V/ W
}$ k; I) T/ Q1 v$ w2 ^$ r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ B7 C! C8 Y+ j! m4 y( \
if( bGamma )
! T* V3 R3 @8 ` {
0 ^( {0 U0 L1 }, u5 C! W, y& o m_nExp1 = 0;; z i! K4 j3 z& V
}
# V0 Y# Z% H3 h2 ?( F- U f# e- {- ~6 y5 u
( (CUser*)this )->AddSetChangeJob( nJob );
8 @" I, o6 D, F# s2 q! o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- w6 }5 ]; ]0 v5 \; o3 ?$ D0 W. ?) ]$ J1 ]3 y' Z! t$ X, V6 [
{6 B5 u7 C7 F0 ~8 |#if __VER >= 11 // __SYS_PLAYER_DATA' I! ] p6 t! I* x; I; G1 `& p
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& }2 O l6 r& S' v
#else // __SYS_PLAYER_DATA
2 K9 |1 B8 p- Z6 S; |: l1 r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 M* Y5 c! B7 z6 u u3 O; J! S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 L D, r3 k, q2 R C' }1 E3 J if( m_idGuild != 0 )
P) L; V. F1 o& i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ H" b1 Y+ c! c9 r: J
#endif // __SYS_PLAYER_DATA
0 [* r* S- c! a ^ SetHitPoint( GetMaxHitPoint() );. I& L* n8 q* O# `2 K- z0 }
SetManaPoint( GetMaxManaPoint() );
0 ?7 f) Z$ w7 C' |3 I! f2 ^ SetFatiguePoint( GetMaxFatiguePoint() );
+ M, Y* |' U% g' E4 w' B if( nJob >= 1 && nJob <= 4 )
2 c# @4 X/ J7 k {7 v, _: E8 v0 g* p8 _. i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) ]7 o3 K; O% D: { m_nRemainGP = 28;
# k7 x- u/ [9 T$ U# d$ I) \! ?& s }# @; l$ n/ ^# J) A8 d$ K; X- J: W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" H. L5 [) n% R
{
) s, w9 c8 H& ] m_nRemainGP = 118;9 ]9 ]! H1 `- I2 t f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) I' L8 s: w( j6 f& a6 W0 q
m_nStr = m_nSta = m_nDex = m_nInt = 15;; S l- ?5 D& M0 u
}
+ j$ V$ \1 [( D$ l( \- Q$ z" D& G if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); R/ m3 s( i; _; `" N. ]
{
: `# c$ L) D% r CItemElem itemelem;4 E; Y" {- U7 H' P
itemelem.m_nItemNum = 1;
* P% g) Z. l$ Y, X- T6 u p itemelem.m_bCharged = TRUE;
" j( k+ ~$ ?& {- B BYTE nID;" l; h4 G A2 A5 a- ]% w" i
7 U" }) q0 X* A7 i: | if( nJob == JOB_MENTALIST_HERO )
& w+ `; B8 U# y" F itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 s1 ?+ I0 n+ b: O if( nJob == JOB_FORCEMASTER_HERO )
2 N+ {+ t3 B! J. Q0 d* \6 A$ {! L% x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* j6 v9 G6 n/ H) J/ c4 }# }
; w, ?" v1 J, Z0 v ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 K& D. Z* [: ?
}% j: X/ L. w2 E! J; L$ [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* t& R. k' b5 }6 m |0 Y% d
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& Z) I4 Q1 C0 b$ S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" N. t9 ^4 t& v! _0 O4 E3 I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 d' ~/ x& }; V0 s9 x0 [- u+ x& M( j% m ( (CUser*)this )->AddTaskBar();*/
- W" `* Q# F/ K1 E- C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
w: b7 b/ k" I#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 z% O/ N6 R) ~( R: i3 Q ((CUser*)this)->CheckHonorStat();
+ B* e+ {; G& j, m ((CUser*)this)->AddHonorListAck();
/ T+ C" @& S8 z* f. N g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 z4 V6 M7 C% U1 ^' {#endif // __HONORABLE_TITLE // ′Tà?
6 Z2 j0 M8 x: o, L' G. i }
6 L* ^1 H2 G! S% A* [, ?#endif // __WORLDSERVER
, W2 }- J' G/ a5 K+ f6 B}
/ |4 b) D- u% q& U$ X+ |0 n
: _3 K! C) ^; B1 m: V4 A3 U然后你进入functextcmd.cpp并添加以下
7 L3 p/ w" x* {3 x/ t( ?+ {
) B9 J. g- r% s1 P) t. ?代码:
+ ~! I; E L; J* X; cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 k5 ]* x4 Z" Z8 W' Z
下面插入: e+ R: H* [) c4 X/ v/ s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 I# d9 [3 F' u, W C @) E$ `$ n7 w
, V, A% r+ h/ ^$ R( |, P然后你去2 g$ f0 Y; G' i+ M9 _
" W& n8 M8 C1 {! u' v代码:
% q6 Y' x+ N6 Z N7 N代码
8 e0 k0 ~3 |, G; G! B( mBOOL TextCmd_ClearPropose( CScanner & s )
1 w. w, O' o, t{: I0 n1 e: h2 m! l+ Q3 r' \9 E9 F
#ifdef __WORLDSERVER
6 k7 a2 n$ V' A/ l& U* J+ v CUser* pUser = (CUser*)s.dwValue;
' X0 q/ L. ]. B- d% ^5 z g_dpDBClient.SendClearPropose();
' j6 K! [4 B0 x, m# w' h4 @#endif // __WORLDSERVER7 |9 y" C" p5 ]( l( G
return TRUE;
0 [1 E: V* }" ]& O1 I9 e+ _: l}
+ c6 u1 E2 r& _; F( e& K下面插入
7 N* e. A6 j9 M& I0 kBOOL TextCmd_rebirth( CScanner& scanner )
9 f, ?$ N6 R2 v3 f3 z, a{
8 s3 v3 G1 w. _#ifdef __WORLDSERVER
: G3 I$ {# k1 ^3 BCUser *pUser;' k. Y4 @1 ]$ [0 l8 d/ }
pUser = (CUser*)scanner.dwValue;
: |. b. S7 X/ \4 eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
T' U3 E! c; r4 e# x- M( j$ dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 p; d6 x3 N& H
else
9 c. I. G o( u! m0 g# @pUser->AddText("你还未达到重生条件!");* o* ^: L. y: Q0 }1 R) F
#endif
' v% C' y2 ?7 e0 creturn TRUE; L$ }" t8 \0 j2 x5 ?0 Y4 m
}
4 P5 c5 [+ |# C# R: b4 T: [$ @/ K7 T) k
; {7 l! C" y6 d; ]8 G ~
/ E8 |+ K& `/ ?$ j- V! d$ b
( |9 e8 N' a5 K9 \7 \
|
|