|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ n8 i" q# B9 F7 Y# Q. X. C; b
# i9 E5 J" U# W, n$ E. t1 [Mover.h
! T! `! p2 [( p4 b2 E# e代码:
6 m6 D: u6 B- r) g% }' Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 V% [- ~6 t) M1 y. V. V7 Z5 w4 \7 ~! X" ?- N5 r! S! _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' d' M: b- C) `4 }; W) ~9 X
0 P* C# @0 K" t j
然后你去mover.cpp添加7 P2 E) f1 h$ {+ f8 D7 a
; g5 `6 b) L k2 i% g, T代码:* m. P9 k! L: K" D& J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 M% f9 y; N. S6 @{
3 ~( P5 N8 @5 _#ifdef __WORLDSERVER
2 \& G E- x6 J9 O // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 V& X2 z+ @8 Z/ p MoverProp* pProp = GetProp();
; R$ o( L% i5 m if( pProp )
7 k$ z1 N$ L/ M( O8 t0 { {& x' {% I- M9 z1 L; g/ B+ E a, \
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' h# B* a7 q5 ^
{7 _& E1 y7 W' M$ w |
AddChangeJob( nJob );
2 ~9 a+ h+ b5 b2 ]$ u/ H" N }else{: v7 }3 K, {( c7 j* Z; o- K9 d
return;
# P3 H* u; l) {2 g }+ N" ~" F% f. E
int nPoint = 0;; v7 ]& _; m) _* m8 L
if( m_nJob == JOB_MERCENARY )0 {* |8 e1 q: w7 o! u6 y2 R: _
nPoint += 40;' O1 g3 M8 q5 Z% f3 u2 q! t
else if( m_nJob == JOB_ACROBAT )
3 P- | Y x& [0 y nPoint += 50;
W* J7 }: H- @, c5 N5 f1 [' ~ else if( m_nJob == JOB_ASSIST )
6 z6 i: S% L: P8 g2 N nPoint += 60;! F+ f8 G! w5 H$ `$ p
else if( m_nJob == JOB_MAGICIAN )3 l" ]% T7 }+ y$ W
nPoint += 90;1 k$ @; }2 H8 j7 `; k5 s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& q' P3 X. \8 H' }) o8 v nPoint += 120;2 t" t2 B8 O0 |0 ~. Z1 |
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: X5 ?4 ?! e- f$ B. r nPoint += 150;: U" j v9 e% X
else if( m_nJob == JOB_RINGMASTER )1 W0 _3 B5 F) Z7 E# p
nPoint += 160;( x) v$ q, J( M# ?; q: C1 C! |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- M2 `- n9 X/ f9 w- n
nPoint += 180;
6 z/ u5 `0 P8 u% ^- {0 X0 M else if( m_nJob == JOB_ELEMENTOR )
9 T8 B2 _. S1 B) p3 x. J nPoint += 390;
' o3 o- h S7 t. b/ f3 z# ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 |0 [ v6 q1 T3 g+ c+ u( i
nPoint += 120;6 D8 F+ `8 J" w8 X0 y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): k$ ]( j1 I, x1 O V( Z
nPoint += 150; O, f3 F4 J8 w8 U+ s
else if( nJob == JOB_FLORIST_HERO )$ |9 o- p# e0 G% I4 M
nPoint += 160;+ x1 p! C2 o6 z! \2 l- |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ w% d3 I' H7 U' c# s nPoint += 180;
9 y2 o& k8 U' S/ j/ q* u5 j else if( nJob == JOB_ELEMENTORLORD_HERO )0 X9 t( Q0 E: z" w$ H' N
nPoint += 390;
% H$ {' _, d- i( h% M# B
3 Z4 Y3 N. D3 L9 I' N u AddSkillPoint( nPoint );- u' ~! D7 N4 o7 e1 s5 P1 C1 T
m_nLevel = nLevel;% _3 H5 }" j( d2 V- F
: q4 W: f3 n9 U
SetJobLevel( nLevel, nJob );8 _2 K! J; d4 e7 E8 U7 r! H& N
m_nDeathLevel = nLevel;
( h' n, O5 {" B; m- t5 l. R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ I) F4 ~! V: j0 o# |" O* V9 f% a
if(IsMaster()); \# F" F& e3 r( e7 x
{( O& }: M$ a/ d z3 Q' q+ X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ z- v0 f( l' J, x( k
if( nLevel > 59 && nLevel < 72 )2 H, [6 k0 c3 G2 o: d7 X# r0 D$ g
dwTmpSkLevel = 1;
. {) D6 ~- n n0 c; L: D( | else if( nLevel > 71 && nLevel < 84 )& _+ G% l, u v6 Y, l8 \
dwTmpSkLevel = 2;6 Q- S# g h' C. }7 n# R" e
else if( nLevel > 83 && nLevel < 96 )& ]5 y! }; S1 W
dwTmpSkLevel = 3;
( R- u4 Q; E/ n) l9 e else if( nLevel > 95 && nLevel < 108 )
7 T) l4 N: W% U/ e k- {5 F$ F8 o3 O dwTmpSkLevel = 4;
$ R) R: J8 Z) v% K. L( {; Q else if( nLevel > 107 && nLevel < 120 )% R3 p/ B2 g+ O% ?
dwTmpSkLevel = 5;! Y8 O" b; w+ r' t7 `/ R5 p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ U* z7 ?. [# L/ d { 2 w3 d7 c* X7 w" N8 e( E" v+ W u
LPSKILL lpSkill = &(m_aJobSkill);0 t2 V) @& b$ b! X- ^: ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ g' I1 l' I% g: v- q4 L, m
{
1 R+ J& [2 I$ L0 e. g7 z, P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); S) s* }! B2 N
if( pSkillProp == NULL )
3 ]6 I8 Z: c/ Z continue;& p, B, n9 I1 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( a' e: O/ U2 }, x8 G- s: P& n continue;
. Y z2 G5 h. q; c3 i. L; \ lpSkill->dwLevel = dwTmpSkLevel;
3 D Z- }3 _* R- b* m5 `& Q }' H+ [" ~+ }+ V- }
}, J+ ^) _: m. G( F1 {2 c8 Z* b
}. @- H8 g/ W- G9 X u
else if(IsHero())
, K$ N3 b8 z1 }' @( j( H0 f {
1 F+ | w' d! \# L; C for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 a! i0 }. G6 d1 D+ ?
{ ) G- Y6 v! x; x! F: b! `1 E7 q7 C
LPSKILL lpSkill = &(m_aJobSkill);
: A( K/ Y, H; I+ }, ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )! R8 W% `3 b6 l. M0 _
{
M6 j1 h* @! w D" Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 @/ d- H4 q- ]" }; e( R; D
if( pSkillProp == NULL )
& L5 `! g8 s8 y$ T% F) R; x' w5 @ continue;1 u$ A; r5 Q t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). m4 j4 }7 n: r4 g
continue;* p7 b5 T2 S( v
lpSkill->dwLevel = 5;
. Q$ e3 @+ i a& j* v4 ?8 L" t }
3 I- C: n/ ?2 h; Y }
/ l( j0 o, U$ C7 v }
I& X3 p/ b& ~4 Q else if(IsLegendHero())
$ l3 R& F' w( u& { {8 X3 j! Y4 ]3 ~. D/ @! G5 D! L, h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- Y! J( y6 i7 v# u0 `$ ~7 p { ! h$ K0 j) W5 C0 W3 s
LPSKILL lpSkill = &(m_aJobSkill);' r! h; t1 p, h/ [) {3 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 K6 N6 G- A- j, b3 i7 M V, i6 g
{
+ S/ V- F( i/ b* ]3 z7 E p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / H& I3 e$ |9 I- D, Y
if( pSkillProp == NULL )
' r* O4 B- r; l5 A* I continue;
J9 Q# O) Y2 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* M& {, n2 Q) I4 X continue;1 I" d- [: F$ j, h8 q
lpSkill->dwLevel = 5;8 T/ p- [3 w3 {. k) s. h6 \3 s. J
}4 O/ w/ ?; o! f1 \+ T
}
/ s4 l5 |; B7 R' @7 L }4 V$ C0 y5 h2 _4 a) @9 ~5 Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( D0 k' N& h4 q7 P$ P2 `( @9 ?
if( bGamma )
# {0 q% |! c! K {+ r# R& h! ~9 v9 l: B) u' I7 j* z
m_nExp1 = 0;
7 f+ R. W, b2 U/ J1 c0 H# q }& N, p2 g' ?1 m
; u+ k) t9 D0 e! G' v0 F- j ( (CUser*)this )->AddSetChangeJob( nJob );
! H' e2 A* G+ E$ B( h2 m5 C g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: m" P _+ Z8 m7 C, S5 M2 |- g$ N/ ?$ u
_1 ^( {) Y# M. J" q; r( t
#if __VER >= 11 // __SYS_PLAYER_DATA$ [# n7 g8 c% c; a3 l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# O' v, ?/ M9 {6 Z2 ^
#else // __SYS_PLAYER_DATA- g0 N. \. u y w/ `' B( m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 k' q& f9 L4 k. D" \" T g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 a, n* F8 G$ G if( m_idGuild != 0 )
# h9 a: u! f4 W+ f" H2 U% N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* x! F9 o7 j) D% l#endif // __SYS_PLAYER_DATA
9 ]. n5 t, h6 m* D/ Y! v+ C SetHitPoint( GetMaxHitPoint() );$ `0 n- F/ h8 @8 r6 V
SetManaPoint( GetMaxManaPoint() );
" R6 d1 Q$ F- l# c$ ~ SetFatiguePoint( GetMaxFatiguePoint() );
( p# N8 G' O$ N0 R. K if( nJob >= 1 && nJob <= 4 )
$ k, b" b/ c" Q8 N {! o. G, G7 o* x1 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 o8 W8 @ N4 q- ^* A
m_nRemainGP = 28;, I$ X V4 K; e' {2 o6 Q; |/ k
} N) l9 P1 q5 w
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 A5 B' {0 |$ k" W- ~" F {& u) A9 |+ Y& F) Y# C2 Z
m_nRemainGP = 118;
: j7 U" v; b, @, J6 g' v% _ E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ J' I, @$ Z8 m6 R! ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 r8 [3 h$ u5 |5 F% A$ j
}
& {' L$ ]/ p3 X Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ a& G* v& Q8 q8 E9 L( {2 f& o {& `8 l# j' q1 ?6 X3 x2 q
CItemElem itemelem;
6 P) T# i2 M; ]# y2 }5 ~ itemelem.m_nItemNum = 1;) e9 o6 o6 y+ z8 Y% M) Q; h9 |% ~! g8 j
itemelem.m_bCharged = TRUE;7 U0 C* s9 O1 g& Y$ k
BYTE nID;
9 Q6 T" T! X8 L$ H$ a! @- t
6 o$ h9 q4 o( q2 b* O% {8 I. V if( nJob == JOB_MENTALIST_HERO ). e) \9 p8 E* H- B! a5 |4 r8 i9 T3 k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 a7 s8 u" S3 h/ w, ~3 B1 p# p
if( nJob == JOB_FORCEMASTER_HERO )
5 O( G+ X- @ D+ b- G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% ~0 |- t: r% k9 }$ s# `9 k
0 O2 f: M, F7 Z7 C6 J2 b" r- ^ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 L' c+ J6 K( }" K }
' a( s' U. h* x' v. H7 U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# n# n% b3 v) V7 o ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. U& a6 s+ y2 D# a9 v ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 f6 ?0 E. g' d# W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! d# }3 {! a# t# ^. I% E ( (CUser*)this )->AddTaskBar();*/
* |7 P+ V6 v2 b$ z1 H ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& k6 [3 K: Z5 ], B" M' {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% r$ i" C" c, |( T8 x
((CUser*)this)->CheckHonorStat();! O- _* q$ r5 |7 Z
((CUser*)this)->AddHonorListAck();6 Q b f: v8 t0 W4 f d
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 i% c& Y% [/ H( E% p8 K+ I6 F
#endif // __HONORABLE_TITLE // ′Tà?, Y% N3 C# ]5 ^( D! d+ {
}
4 z* i4 \) t: V: G [8 p3 _#endif // __WORLDSERVER
+ y; @- q; |. ~3 H; v0 m" E}
% H6 u( K, o; b9 S/ ]- ~
5 u. o; [! b9 U+ S) `. c. B然后你进入functextcmd.cpp并添加以下
* h; i W- ?- _) j$ Y4 O
7 A0 p4 y1 Q; Q代码:
6 a6 B7 j" R' S% c, ]ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% p% h& {8 _5 C& \0 L下面插入
5 \; [8 _; I9 ~# OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 ~: W+ B6 [& E5 \. ]+ y" o
+ R7 d/ Y- o9 V3 C9 P
然后你去
" T* Y1 f u* p% x8 ^2 A. \' h. I- w, u$ S5 I: j) P8 r
代码:- F y( j% m% Q6 V5 n
代码* u9 K- o! {: d2 { S" w# p3 c
BOOL TextCmd_ClearPropose( CScanner & s )
' ]9 K! P* s% Y3 b8 P{
% U' ^; [! ~7 _/ O#ifdef __WORLDSERVER9 m4 L. n; S$ [" u! t! d' N' }. }
CUser* pUser = (CUser*)s.dwValue;" d4 |; u' \7 P7 G9 \+ J8 l4 L
g_dpDBClient.SendClearPropose();
4 p2 E5 A2 N6 Q#endif // __WORLDSERVER
6 L" g0 G0 @# x% B* V, _# d return TRUE;7 `2 ^' y7 ?9 Z
}
6 N9 g+ E& c% {- r% n7 X) `下面插入" r$ x" ]. s, l: I( j( @
BOOL TextCmd_rebirth( CScanner& scanner )) Q& a. U* }' z3 O. `2 z1 `
{
8 R5 s. g" \9 _, M" t7 s#ifdef __WORLDSERVER- X% O y w) W
CUser *pUser;
4 j+ u4 D7 b2 x7 o7 W9 n. o' C B& SpUser = (CUser*)scanner.dwValue;' h; h# a3 i% @; A2 B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ \/ A9 Q" p# s. v# g5 @# i2 IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 Q" c- e$ U: h- [7 T
else- m) |- Q0 w1 p# ^& h9 O6 {# a
pUser->AddText("你还未达到重生条件!");: |" r. u M% I5 A& t; o3 [ E$ X( e
#endif, ~ i9 \1 V$ u' I& w
return TRUE;5 q( k0 N1 ^# _9 Z8 M) v
} # B H, G V3 d. u G( v, @
6 O4 y* w5 G" I b4 R. k( k" w/ e- P8 l
6 O- |( y3 K* E4 l9 `) q, q# z$ l' J: W4 O- F* a/ o+ f8 }" ]3 _
|
|