|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# X6 q$ s, V! z1 V+ o" m
- X$ i( ^* c5 g( q- m. _Mover.h3 k" h. W& w' ?$ n) S; T. |
代码: n: o8 k& G' {5 n/ X- v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* P. e% p" v& b6 f; S
. v& }* Y; ~- U$ ]/ ~3 ?. v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# K& b0 `3 A1 @% z: b$ i D& a' y, ^" w* C3 B
然后你去mover.cpp添加6 [: |' w8 J& v3 `
3 h( L- |) {1 u2 C6 i1 Z4 |
代码:/ h. m; _2 t. u! F2 w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* ~7 b5 T8 l4 s1 l
{
6 j! t$ h9 G B: a6 p#ifdef __WORLDSERVER( H- w" u# R. M: @6 y3 ]3 X
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 i# _. J' E4 {
MoverProp* pProp = GetProp();( n8 c% E/ |5 T1 _
if( pProp )4 \8 p1 |1 {0 Y: p1 \5 A
{) N# G- K6 I$ U( y0 F" k! d
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; _5 O7 u9 w% H5 B# r {$ j* U4 O& [ X
AddChangeJob( nJob );8 j! ^7 b2 w# \ {8 Q
}else{/ M# l. {% @+ x: W+ n- N/ D' k. Q
return;
5 t0 h: k2 @3 r8 @/ P/ W9 s }
3 ]! l! A6 S; g int nPoint = 0;
7 S+ {/ R; S; Z; g3 [" s& n if( m_nJob == JOB_MERCENARY )
7 K) f/ Y9 U0 ~3 C$ A* V$ X! e) _ nPoint += 40;
* F$ R7 o) l! k9 ~: H else if( m_nJob == JOB_ACROBAT )
s3 |+ _ q; S( M nPoint += 50;
5 C; H4 z/ D! x6 X! m* Q) [ else if( m_nJob == JOB_ASSIST )1 P0 D8 y6 Q1 O1 S8 x; F
nPoint += 60;+ e0 l9 J1 x, ]% k9 S8 m
else if( m_nJob == JOB_MAGICIAN )
1 A# A. | s9 Q% y9 d nPoint += 90; ]6 I4 \2 {, C4 |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: B7 P' a- O. r nPoint += 120;/ Y2 G2 R7 Q# f$ P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 u2 B6 u, w2 z& P1 j/ ?- U- T nPoint += 150;
/ l* E3 J% o! H# k else if( m_nJob == JOB_RINGMASTER )7 i1 p# u9 q! w. v$ t5 B9 x
nPoint += 160;
4 r2 b' l; r5 ^# o" R. \0 S else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 _2 Q1 [9 u: Q8 z. Q: v0 S
nPoint += 180;! A: j+ z h$ p
else if( m_nJob == JOB_ELEMENTOR )) D6 L# r' x; U
nPoint += 390;# a( a7 R! ]+ j& `- h& A: F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ ?( F( z( ~* x5 ~' z2 H( a nPoint += 120;: ^/ H- D$ J0 E7 F0 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ u$ D7 H# o2 |5 J! H
nPoint += 150;* V2 R; i$ n [1 k
else if( nJob == JOB_FLORIST_HERO ), }: C- F0 B, P& A: ~2 _8 t
nPoint += 160;0 n" _, Z1 ~: Y/ o) n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# o, b: I! j2 { nPoint += 180;0 B, W5 |- B: b( V" f q
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 o" Z/ ^' P+ x( O3 N nPoint += 390;
, j c$ M) Z5 _. Z& v, D. l' Q
l. O# i M8 p+ Z AddSkillPoint( nPoint );& _! u( [# C0 J+ K) G! e6 @$ a
m_nLevel = nLevel;
( V# Q7 u, P$ V& m1 M4 U$ y/ q( r6 G. W {+ I* B2 }0 R$ y
SetJobLevel( nLevel, nJob );' W! K) ?! M" r
m_nDeathLevel = nLevel;/ I- C& E" N# X& c3 `, G7 d- Y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# d- ?/ l1 c6 O( }* j. i3 K
if(IsMaster())
, \# a5 N0 q: q4 } {
6 z1 q! I6 ?6 k7 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 A+ K& n- z) h7 O" q. S7 S
if( nLevel > 59 && nLevel < 72 )
( y2 V" _) _* s; z: j2 N dwTmpSkLevel = 1;
* ]6 ~- U0 N0 X' Z" v else if( nLevel > 71 && nLevel < 84 )& ~1 F% p/ J0 M# }
dwTmpSkLevel = 2;0 }. S5 p6 Z! x" u
else if( nLevel > 83 && nLevel < 96 )
5 o, a* W; A, [ u6 H9 n4 K/ a dwTmpSkLevel = 3;7 d$ d0 j8 M9 \1 P; W& t- v$ v
else if( nLevel > 95 && nLevel < 108 )
! Q8 m2 n0 q% A& w, C. C dwTmpSkLevel = 4;3 _6 ?0 y! w7 N: t5 `
else if( nLevel > 107 && nLevel < 120 )
) R, I. ?5 z/ p) \ dwTmpSkLevel = 5;
9 @' `: _, F5 r- u; r! H for( int i = 0; i < MAX_SKILL_JOB; i++ )
- d9 T' P( M' A) x! t {
9 G, S; n: \) }4 s! Q- ^ LPSKILL lpSkill = &(m_aJobSkill);
3 I' J# Z7 V' o3 _: @0 l if( lpSkill && lpSkill->dwSkill != NULL_ID )/ G" ^2 ]4 O7 q/ x3 p1 i
{
+ e% k* q8 ^1 U$ e& c% } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " G. {, i# \- Q" h: c/ d
if( pSkillProp == NULL )* q' {7 S# C a; k5 d! P
continue;
{% [: B$ s9 b' \! l/ a& i if( pSkillProp->dwItemKind1 != JTYPE_MASTER); U; V+ Z8 g, `8 t- u- \- ]
continue;4 a* f7 w! D0 q/ v! w/ F4 b
lpSkill->dwLevel = dwTmpSkLevel;
( W$ i3 _3 |: t9 Q }5 Q5 B9 w9 e) p5 N9 G3 d2 m7 R3 D/ {, f
}
3 k0 Y* f. ]3 c) G* d }( K. t4 X, J! \8 [
else if(IsHero())
6 m) g3 V, Y ~3 O" l# c J1 X {1 {( ~) p* w% L0 Z& I6 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 r6 e. b1 O( h7 ?; _ { 5 T; V' u+ X$ H7 Z: U$ d: y7 S3 \
LPSKILL lpSkill = &(m_aJobSkill);
3 P/ Z- V8 Q5 j if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 N$ K( ^7 Y0 P {
6 d* d$ g' A7 \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 b8 t! o8 N x P1 [1 Q
if( pSkillProp == NULL )* B9 ~/ N5 y/ y# M% F
continue;3 v6 B2 B4 [+ K) J/ J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ i/ D1 g; T$ B5 e( J9 s) J# L continue;$ ~ {* l, G6 a8 v1 s
lpSkill->dwLevel = 5;+ J; `" Q3 E2 K5 i0 P `& l
}! z4 Q7 d- L+ U. t1 u( D
}9 D' I- L9 o4 B5 `& L
}- X, } j6 g5 H' k: z
else if(IsLegendHero())
$ L& r8 g, J% d% R) C {5 q- N# e C2 E& W% @7 a- r( L P# F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% @) e6 d z% `) U1 b$ c {
0 h3 m8 F) z) a9 h* W+ [ LPSKILL lpSkill = &(m_aJobSkill);
$ H- Y1 T7 _5 r( G! _! K if( lpSkill && lpSkill->dwSkill != NULL_ID )- _" i* J P8 A8 o
{, B* J$ O. h1 A9 ~) u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 i( W& A( i7 l4 B9 L2 v! G) X if( pSkillProp == NULL )2 l5 X7 F' [! O
continue;7 C4 {7 G. x& l# r& W. P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 t5 h# j5 @: J5 Z
continue;
# L( ^2 G5 k3 c& k lpSkill->dwLevel = 5;, O+ L7 y6 G) _5 g. o( b- T, z
}/ K2 l; O* U! P2 W' x7 c6 W: R
}7 f+ K; x+ ]4 u$ K* o
}
/ K5 |5 `# r! F5 `#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) p/ T' |6 o7 t; D% v+ u$ J$ i. { if( bGamma )
8 r* m5 T' N0 O: u9 F% b* P- B {5 W/ K! H" A# e' P/ ^: E! c( i+ R
m_nExp1 = 0;* Z$ h9 b, Y1 i
}
/ x8 m% o4 H3 z& I; o
% H* B# u2 |: R: ? ( (CUser*)this )->AddSetChangeJob( nJob );7 W4 R @1 D& `! f! G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 g/ i; l8 @ e2 |/ `5 Z, L4 h/ T' M! p8 q; Q
r4 ?" b* S( [8 H. e3 n
#if __VER >= 11 // __SYS_PLAYER_DATA0 l4 c. O7 k5 x5 w8 J
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& ?: X. ~" ^9 n# \( d
#else // __SYS_PLAYER_DATA
4 x! U/ p8 Z3 T6 y/ X! \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" ^$ H3 R5 K( z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" N _0 Q8 H* I1 H; h$ T) E: z* Q
if( m_idGuild != 0 )8 `" `! a+ _7 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); ^& i! h/ `/ p9 `: F4 T
#endif // __SYS_PLAYER_DATA" I1 |9 Q, Y0 _, u1 s$ z1 Q
SetHitPoint( GetMaxHitPoint() );
3 M1 E+ d7 z& |9 w! H8 ~ SetManaPoint( GetMaxManaPoint() );
: K+ z5 }8 M$ f SetFatiguePoint( GetMaxFatiguePoint() );
$ g" E" ^: A# X& L: j if( nJob >= 1 && nJob <= 4 )! R/ N3 l# K8 o" C% x% e
{' r" m' V# }( e( [/ w3 n/ ]7 Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ e$ D5 l$ k# B: _7 Y8 z m_nRemainGP = 28;
# W: f0 u, k& h% e }0 X8 f/ d& w Z+ K- f6 U3 H& U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& ?- I: I' }9 ]( P; O! Q
{
9 [8 i2 y* |1 p5 f1 Q m_nRemainGP = 118;% A, m. b! E2 Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 J2 i& V3 ?5 \" `) [" _ m_nStr = m_nSta = m_nDex = m_nInt = 15;. f) `" R; F6 k* D3 Q8 h! Y
}. Q* Y( I) N* L( u' w9 F5 `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' ^' g; i0 d) K3 ^, L: @8 g {
, P; p( X. @; L! r& _1 M: \ CItemElem itemelem;) T( l' K% I* f9 G" _: t
itemelem.m_nItemNum = 1;# {$ {9 ]; S2 u! F5 i
itemelem.m_bCharged = TRUE;
6 @- i0 o/ o$ ~ BYTE nID;
& t2 z% e# U# ]) J9 V' s# t7 i& _. l6 k7 v) R- C5 k6 B1 i8 r
if( nJob == JOB_MENTALIST_HERO )+ ?$ S6 R. n# ]1 b' }! Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 A# S) L" k" c% \ [ if( nJob == JOB_FORCEMASTER_HERO )9 {8 Y+ E1 @0 [- D4 v6 t: i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 }2 ~( ~: D% v0 Q; R1 U ]; f0 K7 s" S! j! S. ]( p
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* I! f- c$ d& L/ l& V5 M: _3 B }8 w, `! W& Q8 G+ E3 x9 ?! Q. V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" V$ j) D, r- M# }2 W0 @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 ]' R* p7 U! y& r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 M$ L* s% c0 X. @7 e8 R1 G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! ^2 c! O ~5 ?: n k% R% a
( (CUser*)this )->AddTaskBar();*/5 |, ~) R& T4 W5 [5 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& D7 n9 c7 L" O* B* d5 J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( z) w! h8 ~2 k6 p9 E- }: r* a
((CUser*)this)->CheckHonorStat();9 V8 ~( g* W8 p7 m
((CUser*)this)->AddHonorListAck();
, ^- b) m; B. r; G g_UserMng.AddHonorTitleChange( this, m_nHonor);/ x9 t5 E# r) W' ]- V2 y
#endif // __HONORABLE_TITLE // ′Tà?! m3 L! h* L- o; X1 d' d
}
# E, k5 [% q- H9 t' Y) Z6 o+ f#endif // __WORLDSERVER3 N/ L, k+ U9 [4 h; S, D8 P
}
+ E4 C% U7 V0 A& w3 r5 @7 `6 I( h' ~
1 u9 W- X, @6 n. x然后你进入functextcmd.cpp并添加以下: Y$ S$ O2 |5 |1 E
$ i8 ]" k, G1 X
代码:
( w. P6 b" J, d# K# aON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( z6 ?; a& [$ d/ f下面插入
5 ]& p- s i$ h& |2 N8 j5 r5 [5 rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' o9 s- t$ g9 q+ F' G4 H) U$ @" l$ s$ U
然后你去
! d5 g( e8 ^0 I) ~) Z/ n, @* u! x3 `" U
代码:- _/ I! E) T) b7 _, ~
代码
) p0 q2 n% @/ L$ G! X+ A. eBOOL TextCmd_ClearPropose( CScanner & s )1 q1 E) A# {3 |- q; u
{2 |1 F5 d6 J6 K# Y/ c& b
#ifdef __WORLDSERVER' n2 S$ L9 S4 A2 g2 X9 A
CUser* pUser = (CUser*)s.dwValue;
) r. P- j* p4 v g_dpDBClient.SendClearPropose();4 y/ E7 `1 V5 _+ |5 M6 h7 H
#endif // __WORLDSERVER0 k7 _; m l! m4 u& a- Z
return TRUE;
2 D! G9 B( ^3 h, Y$ H/ V}5 b/ Y3 x+ l; F3 X# j! p- }6 k2 t
下面插入; u/ r! E$ g# _8 X7 D0 Q& y2 @
BOOL TextCmd_rebirth( CScanner& scanner )
% } M) ]5 A+ ?2 O{
) O( I- B7 O8 M- o S5 {#ifdef __WORLDSERVER
* A* b% ^. p$ lCUser *pUser;
( H1 y; D5 G8 D: L- g4 NpUser = (CUser*)scanner.dwValue;, b3 i" h$ P& }
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* H Y4 C- i( S; N8 b- d$ P5 `* F DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, X; L) t, p( g
else4 z& R! a4 S( X" N& m- x
pUser->AddText("你还未达到重生条件!");
; y6 k* T' w5 t1 U4 Y#endif
: {) N; T6 M$ wreturn TRUE;
$ {5 d- h; Z$ H& F- K( s$ B} " l# A: h( L0 C/ \( g0 _& C& x/ G
! {- o! a) C% _0 e' Y( m2 D' t0 l' q2 h+ \9 a
* F5 ^/ F/ @3 M0 B
' n; O; k' l) f! F% l |
|