|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, m( c! ^$ E- K h- }. N5 ^, t: Q7 F, W O5 k* y+ i
Mover.h
' w+ D- s0 l+ R1 U3 V) b代码:
0 e$ N+ |# @- N' C" R3 ^" B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# V9 V$ G0 d9 l! G# U$ P% p% a, `$ V: v4 U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; R! D: h! B( G( N0 s
# y; V, O, G) Q+ P J然后你去mover.cpp添加* N9 E1 R" T4 P3 V) B- e' c
- S, O# O% b; J Y代码:
+ h" H. F6 ]- fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 ]# {6 R1 ^6 p0 G( L( z
{7 j1 @ H7 s* }$ i! t
#ifdef __WORLDSERVER
# B& k9 S( }0 p7 Z. v) A* H! X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% S; W* i' j# s2 G% x) ?) v
MoverProp* pProp = GetProp();* a8 P$ P1 A0 @
if( pProp )
0 |7 E0 h6 h' Z1 v. J {9 z% w' A- t' m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" | m2 g- S& Q
{
8 U/ l! k1 Z9 L5 j" @$ D9 F AddChangeJob( nJob );/ n- S2 g; ^; P* `2 q! m" L
}else{
5 D2 m$ s8 w$ q3 N/ T7 X* B3 v8 N# m return;
4 V5 b+ a5 K9 Q6 F6 k }
4 u. _# t# A. ~1 c6 [0 q int nPoint = 0;
& l1 f9 l' y; A% O! n% V6 Y" [ if( m_nJob == JOB_MERCENARY )
6 {1 X: V k* b5 J5 @ nPoint += 40;5 T7 h$ L8 w! m0 R
else if( m_nJob == JOB_ACROBAT )
" h) X" M% r' S) K( [ nPoint += 50;
4 y6 S, l9 X# g5 c% ~; [ B% x1 W else if( m_nJob == JOB_ASSIST ): y1 j U4 e- g/ C. L8 c8 ?7 r
nPoint += 60;/ y( S% p5 e) j" ?1 ]/ u
else if( m_nJob == JOB_MAGICIAN )
4 R# S; ?; X( R/ S: \ nPoint += 90;# |% J ]+ V1 R% S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; B; q4 Y2 ]+ j# ] nPoint += 120;: K. z0 e. P8 s9 ~4 x+ p9 u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 q# E+ H: }9 |% v8 H
nPoint += 150;
4 j% F( H6 e7 L5 z* y7 B/ @1 Q else if( m_nJob == JOB_RINGMASTER )
% j1 U) b, @2 u# O3 |1 O nPoint += 160;
3 u# h& B2 l' O2 v! x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); H1 g" ]9 s7 q, p, R7 A# W
nPoint += 180;
+ j3 ~- H# d9 b5 ` {. T T else if( m_nJob == JOB_ELEMENTOR )
, l5 d5 j5 ]- Y$ m% d2 A2 ~ nPoint += 390;, y ~! K* K! P9 {: B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! P# A) W/ i: s. e" X2 U
nPoint += 120;$ Y* U$ i% z- J% U: o% M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). ^/ ~) B# x: @- E
nPoint += 150;; ?; S1 U O D; ^8 R
else if( nJob == JOB_FLORIST_HERO )3 n: G8 u, h! I0 q9 D- v4 t1 B/ A% l
nPoint += 160;: K& T, j* g- A7 t% e* ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% U9 x, k- L! ^8 L U4 ^7 o1 B
nPoint += 180;
. L. {$ E% H0 @3 j else if( nJob == JOB_ELEMENTORLORD_HERO )
# F1 _2 {7 y# U, u. t: b nPoint += 390;0 U$ B+ R* x5 m5 v5 d
" Y4 \1 N% I3 _4 F% v y AddSkillPoint( nPoint );2 E o0 U4 s* y' f9 z% M3 a
m_nLevel = nLevel;4 v E& b. N2 {
* I) L$ o5 M$ n. @% t SetJobLevel( nLevel, nJob );; f; S, k; V( u
m_nDeathLevel = nLevel;3 l6 L {& k8 x. ?, m9 }8 G3 T4 _$ X
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ C9 X" F% y7 y+ h if(IsMaster()); n3 a v' Y3 b+ { Z, X1 F
{1 c3 V8 I: t# v" {1 I( F1 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 a& u8 x1 }7 ~+ g, d/ q7 E$ E% U if( nLevel > 59 && nLevel < 72 )
5 j% T* l/ e2 L, {& n( @ x7 | dwTmpSkLevel = 1;
- N, c3 t" F% O( s else if( nLevel > 71 && nLevel < 84 )
; r6 K. E5 ~* Y dwTmpSkLevel = 2;
5 I- E4 G- D3 f) K else if( nLevel > 83 && nLevel < 96 )/ V* n/ L' i5 v8 R5 |/ _4 g
dwTmpSkLevel = 3;& {3 s- F- f/ \! \# v4 z2 m7 M
else if( nLevel > 95 && nLevel < 108 )7 K, F$ ~! d$ e- d) s* N) v N* u6 n
dwTmpSkLevel = 4;" c a% P G$ r0 l& J$ r5 k/ \/ U8 P
else if( nLevel > 107 && nLevel < 120 )" a. c6 }2 ?) _8 i7 l( u; T8 N
dwTmpSkLevel = 5;
, s- I+ `5 V! \! h for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) b2 j- V$ S( I( p, j( }
{
$ I4 v; V) Y3 O4 x6 S, Q8 k% E' w LPSKILL lpSkill = &(m_aJobSkill);. |5 O% O4 @* S0 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 l1 }, O$ G8 H. g+ {( ~% ]/ _ {( B; Z n7 s0 p' k" a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 p, X' N O/ K( W9 Q5 s$ x if( pSkillProp == NULL )
; K4 f, H" L- p) m# L continue;6 J7 O: R( [" X8 H: j0 q; ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ f: U8 H/ g+ k0 ~! Z) j! x
continue;. L: N, k( U1 L, T" ]0 {4 t, T
lpSkill->dwLevel = dwTmpSkLevel;
# t3 a( |7 @) w; x* s+ G* M# h8 s* l1 | }# F; h; Z, [2 r, y4 p
}! Q! d/ E# n( z) i- c; w
}- C. c, p. y; g4 @
else if(IsHero())% y7 o# M) l3 |4 }5 o! d
{6 @0 e7 O$ f% d1 d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 F |, b- Q% T3 g
{ 9 c8 u( p) ~( i! I
LPSKILL lpSkill = &(m_aJobSkill);8 ^+ F& z Q1 v* R+ f) O
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ V: b2 \5 v. B8 c; S
{3 Y4 ~) E7 H5 M" p9 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 P5 B$ U9 G8 u: X
if( pSkillProp == NULL )! a) A6 [3 Q1 \% L
continue;" n% @- j8 @; m; E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, T" y# g2 t6 P8 G6 \ continue;
* B: W& C5 P9 o( ]: v. N lpSkill->dwLevel = 5;
& W/ r# x E$ V% Z }' C3 E, A# K1 w; R
}- l, B1 w) m- j* M$ Q+ j
}
$ w, ?9 a' K# Y8 s else if(IsLegendHero())
2 }9 P- b. {4 u {
' e, U; { P, w8 p) X' f9 [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 B6 s Q G! K9 k- d. X; i( {4 a0 S {
$ }6 @6 X h* X7 M7 P LPSKILL lpSkill = &(m_aJobSkill);+ `3 F1 Q* D3 N
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 ^5 ?0 S) y( |
{3 ]- E. p6 Y% N' b. H) t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& v9 K0 q0 X* V4 ]2 _9 m0 { if( pSkillProp == NULL )
0 b, t! V( b2 Y" E1 _ continue;# V, K# e& T" N+ \1 T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! J; `) ^. Y( |( H; |; `$ ?3 [
continue;) m$ ^" w4 i* \; G( v0 j- c6 X
lpSkill->dwLevel = 5; g2 N; Z4 V5 [' k8 E l
}" s5 @% x L/ K v/ l
}
" K8 \/ f- K( _/ W0 ?' ^8 P7 u }
# W; h0 `5 B7 d& A#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 @3 u1 r# Q, e+ \3 J; ~ if( bGamma )
+ Y" a2 Y3 {$ Y+ d3 H. M {# P$ J$ ^4 [" c( G* ?
m_nExp1 = 0;4 b! g+ Q0 A# R/ i' e
}9 \8 a* T' N6 c# I! g, t7 o
- e8 x: K3 H) s! m4 W% x% H
( (CUser*)this )->AddSetChangeJob( nJob );# T# b4 F6 w3 V# J+ o1 T
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 f* X) j4 a. k
0 |% z* L# M* z
8 f; o- \3 I( V$ ^#if __VER >= 11 // __SYS_PLAYER_DATA
; C) O- X6 P; ~8 I; r) ?. [9 ` g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 P7 ?! ], _" q
#else // __SYS_PLAYER_DATA* Q7 L# B- r5 K. H3 F. j+ J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- ^9 L* b$ i' p. V+ |* ~1 g/ ] g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; U' j6 o( v; A1 s8 Q( J8 [
if( m_idGuild != 0 ), q4 R' J$ v) ^8 ~& F6 ~3 v( j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 t3 R& Q7 j: J* j" Y#endif // __SYS_PLAYER_DATA
k6 p' s/ N# U% G% y8 w SetHitPoint( GetMaxHitPoint() ); {, W5 o, C3 f1 u9 i8 o% p
SetManaPoint( GetMaxManaPoint() );
6 q! L0 H( L' a" Y3 ~ SetFatiguePoint( GetMaxFatiguePoint() );
I( A& W% u1 l b6 n, J if( nJob >= 1 && nJob <= 4 )2 ?7 i$ {0 s3 U; G
{: `+ r* m' H3 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 B0 @# b" t5 x' ]( b
m_nRemainGP = 28;8 }# v2 e5 u T
}
' f: }8 t) ^6 z3 U" k& B8 S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# V" D9 ?( I) h2 ~' [
{
% X! L' b2 M0 Q* } m_nRemainGP = 118;
9 t6 c6 r( u3 S5 N //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 } g7 ~, r7 k% t) \, m9 R m_nStr = m_nSta = m_nDex = m_nInt = 15;5 w6 E& y5 L, L
}% Y% N" t9 E, P. }* |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ P% X' G) k! N) F; x9 g {0 N8 O4 a- `; m' v3 G2 \
CItemElem itemelem;
, x/ e) ^5 z: s8 f itemelem.m_nItemNum = 1;
/ ?- G w, O% `% T! \2 V itemelem.m_bCharged = TRUE;4 e" p: R, y: E b
BYTE nID;+ `. Q, Q5 p+ D k# y
C" W- X$ I' d/ S if( nJob == JOB_MENTALIST_HERO )! k$ v5 M: a$ T# H- b/ Y5 i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ g- C, ?! a' v1 t m" } if( nJob == JOB_FORCEMASTER_HERO )
! Q* R% O7 r9 T$ Y2 X itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% D/ m8 P/ O8 J" x2 F: D
9 G) P- h7 C5 T# B/ I1 T! W& r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 d# R) {5 y8 b6 ]% q }6 u& K- n4 Q" B k0 N% L
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 M7 N: s/ F: a# ?! m0 J5 k9 L0 i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 {9 Q* f( y- y2 u8 X# C. w8 K7 I; { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" j8 j6 a i6 T1 j+ L% w3 x /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' N/ z6 k/ |! P, n+ x7 N ( (CUser*)this )->AddTaskBar();*/
" d( I( I) b5 y) \2 v, O% N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) u, E. \) ]) q2 C3 M, ~% j4 ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 J8 Z+ E7 a* Z' l% J ((CUser*)this)->CheckHonorStat();# O" s9 b4 g4 J7 g1 h& S+ T1 b
((CUser*)this)->AddHonorListAck();8 p7 ]3 Z n" ?9 C
g_UserMng.AddHonorTitleChange( this, m_nHonor);" l! J6 s! _6 N" ^: W& k
#endif // __HONORABLE_TITLE // ′Tà?& s# d9 ?# S2 @# F$ c% p) P
}, K8 n1 y9 |; m. [
#endif // __WORLDSERVER
9 W5 F# f* Z6 ^2 l4 \; ]} , b$ P0 X( r. q0 Y+ g/ n h
* u& I; u& ^. ~然后你进入functextcmd.cpp并添加以下
5 {/ B* [$ K2 { {+ o; ]
: s* p, `6 G6 U代码:- ], N" {1 D8 T9 M1 j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ p3 v' T; U6 f下面插入9 C; j" X( f2 K" A! j
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) G# Q% ?* m4 c, x& d" | N, Z
# B2 M1 M/ J6 x. F然后你去
+ ?- t% s8 w6 w8 n1 q4 \5 @ {+ r/ [$ u0 k2 \$ ?
代码:
! W7 g2 ~% L' Y1 G6 O# m代码
$ {% n( _1 c( uBOOL TextCmd_ClearPropose( CScanner & s )
; i$ @& T8 C+ t9 ^" o3 T{+ i, v0 E* z1 f/ M' k9 R$ b F
#ifdef __WORLDSERVER
0 n: u( V, U: ^ ^ CUser* pUser = (CUser*)s.dwValue;7 o/ E% F0 P" X* b
g_dpDBClient.SendClearPropose();
( u# j2 Z2 `# l+ e6 h, C( t#endif // __WORLDSERVER
8 x. e: _$ }* V+ N) t return TRUE;
; q# a4 B$ z2 t}
3 R2 H3 r6 x2 Z3 _$ E$ B9 [5 G# p下面插入
% E' ~8 ^9 {) f7 H8 g h& i/ {, pBOOL TextCmd_rebirth( CScanner& scanner )" C8 F5 \1 w9 c- H6 \* k' D7 p) v4 S
{; E _ Q( _& @( ]3 M; V
#ifdef __WORLDSERVER
3 k- \+ z7 P" ^% ?1 G. iCUser *pUser;2 ?, _# _: H$ Q; D) N/ l; l
pUser = (CUser*)scanner.dwValue;" x7 a- W5 @2 n/ }$ g, y6 F1 C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 O% ~' |. h: c+ y& x8 @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" f& E' P; g( C- X# f, X2 g
else
5 s; R6 V7 d3 |' j$ PpUser->AddText("你还未达到重生条件!");1 b6 ^- T! }; s: s0 N, N
#endif; s2 k) A" U6 U; `8 p0 f
return TRUE;; s* Z. D7 j& s6 ?+ O; i' o: g
}
4 `6 J! `. \( ?9 `- @2 d
: T- R5 y) d4 ?
; G% ~5 b. ?& t3 s8 b2 f7 w
! h. W3 I S p# m, B/ j }' U9 m5 n# C4 V& f. w
|
|