|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- ~3 s" d% m; N/ s: \
: z1 B! b7 S, RMover.h; f* |1 n: m3 T. k- U% b9 ^
代码:; H$ E0 y# }7 \$ B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. J7 D7 j9 C/ N( G1 I s
* n! ]& ~; E t! O3 M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 w' s! I6 B' Q6 v# G
0 {; u: w+ Y; Q* U+ N然后你去mover.cpp添加
' w1 P% h4 p" `- {- h9 k2 J! d( {( j3 u- K4 h( b
代码:
8 W7 d: |% ?, n' N+ Ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! P9 h. [2 @0 d( V
{
3 u5 I# b" Y1 f7 J: \( n# d#ifdef __WORLDSERVER
0 S M$ H: `" `+ ~7 G8 o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: }3 F7 i; C$ F3 S MoverProp* pProp = GetProp();
8 s) z X K9 W, ^2 g8 W) ]& J& K' o if( pProp )# K! v2 }$ @& u% m2 w
{) l* E0 y' i* f: @% ~$ Q5 t) x
if( nJob > 0 && nJob < MAX_LEGEND_HERO ). Z. J% f4 P2 v: e
{- j7 e# {: q* }6 u# v$ V! S1 q
AddChangeJob( nJob );( M( g9 @$ N; F$ W: G
}else{
# Y- ?5 h$ c7 l+ T5 U' X return;
$ M6 m' a* w, l6 J; L x5 J `' l }
& b ^& G- g' c- B0 w int nPoint = 0;
n6 L5 R2 X* b# S if( m_nJob == JOB_MERCENARY ). _- w* F+ y3 V" D7 C
nPoint += 40;
7 {% s& |6 j- h7 o' q% S else if( m_nJob == JOB_ACROBAT )4 _" @7 S3 k0 n0 M, S
nPoint += 50;# @* a# H1 r! Z# e5 Y. p
else if( m_nJob == JOB_ASSIST )
- \0 y% d. _, @; @( E: ^ nPoint += 60;
2 u. y1 M) |# l7 b else if( m_nJob == JOB_MAGICIAN )& }% n: |! Z1 h; H7 Y& W
nPoint += 90;
! G( N. m* A4 g- e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 R/ _* D0 \: |- m; t6 K
nPoint += 120;0 E. p$ w9 {+ b2 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 O( b0 v( \4 A% Y! B" } nPoint += 150;
: E( j1 K3 p! J. S( j6 E else if( m_nJob == JOB_RINGMASTER )- ~8 g. V" T) V8 _
nPoint += 160;
9 m/ t5 J! w: h( Y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# X: L6 {3 X* I! T
nPoint += 180;* V9 u' n) m3 f3 M! B
else if( m_nJob == JOB_ELEMENTOR )8 V; Y: Y& b9 G1 d0 u; H3 D m/ Q
nPoint += 390;1 R$ s$ v0 G! C; A' {! d0 w1 V' j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* p/ q' I' j" B. ^& k nPoint += 120;
/ K$ _: ^3 F8 ]- t- @" _+ w* ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ R9 ]% B. ?0 T2 [" Q6 b! T r nPoint += 150;5 ?( v1 c1 l# ~! M5 a9 i
else if( nJob == JOB_FLORIST_HERO )
! v0 p" U: }; [! o nPoint += 160;! G X( y; `4 g+ w7 A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- T4 }' Z! I2 t+ L) n
nPoint += 180;
( w4 c0 l7 u+ ? x/ l' U else if( nJob == JOB_ELEMENTORLORD_HERO )3 G4 N# G K' n( L8 B' t
nPoint += 390;
* g \2 F+ I0 A" q/ X+ X h1 f( l' c; V. U: i* ]) Q% d/ x7 A
AddSkillPoint( nPoint );
) y1 s& G; H1 z5 c( e/ U" A' \ X m_nLevel = nLevel;
* F1 M* q' U. A8 S7 C/ z r# H+ V
+ H) J7 [2 o9 N1 s( p SetJobLevel( nLevel, nJob );
0 y" `8 U9 D8 L/ j/ I. n% V$ ^ m_nDeathLevel = nLevel;
" y, @8 K% J. Q: ?4 a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 L$ _- G' a4 Z9 H6 o, M
if(IsMaster())8 f2 Y d0 Q# k
{
8 }7 q K7 |0 c5 a int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( F1 ?. T0 D5 g0 r8 _/ K, t/ U& g7 r
if( nLevel > 59 && nLevel < 72 )3 [7 q7 c# L3 h7 }) E7 v
dwTmpSkLevel = 1;
4 D0 C8 S8 U- I9 p; Z8 }8 p) [ ` else if( nLevel > 71 && nLevel < 84 )$ \8 V1 @+ S# Z ]4 [2 z
dwTmpSkLevel = 2;
; W7 O- h: S r1 L- B else if( nLevel > 83 && nLevel < 96 ) J& C0 D6 k" i" h
dwTmpSkLevel = 3;
$ v/ y/ J1 }. `% z else if( nLevel > 95 && nLevel < 108 )& Q' t9 j; O- c/ N7 R* w
dwTmpSkLevel = 4;
/ l) F$ Q4 [+ \) W7 X# C8 d1 } else if( nLevel > 107 && nLevel < 120 )
3 T# a& ~# c0 d8 Z2 p dwTmpSkLevel = 5;
2 h. n% m8 j2 S# F9 I: |) i$ k for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ~. O6 M+ t" {! t) e% s {
) _7 N. H/ f: B8 A9 c, ?. N, F LPSKILL lpSkill = &(m_aJobSkill);3 [* v/ z, `) |! f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% P- Y9 H) T( n) a# E- x {& s$ S4 ~' y$ |% j& X" J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 d# a" g8 O' e6 B6 N6 f
if( pSkillProp == NULL )
1 T. ~4 I, k% c: C0 W m8 ] continue;! r& d/ a# X* j; x1 c6 C5 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" _6 n) f; c& r$ l$ d- k9 ~
continue;) ?/ l+ }& S9 C- k) B7 i% y7 ^
lpSkill->dwLevel = dwTmpSkLevel;" `0 x/ k' s$ K, t$ H5 `
}2 ~6 |3 v+ i( \) q6 |: `' q2 N
}% i: u8 _4 N) ~8 O, D3 t: p
}
$ y' F1 s0 x/ ~: o7 V else if(IsHero())
* h2 n( B- K. w1 `; p& _/ K' e {
1 M. X6 s$ p% x6 W3 g$ k3 P7 L for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 ~! Z0 T3 m( K# g2 d, x- \ { ; x; X9 e% H3 X& Z) @
LPSKILL lpSkill = &(m_aJobSkill);
/ G$ T& k0 L. F5 d$ A1 o if( lpSkill && lpSkill->dwSkill != NULL_ID )$ X$ U- |4 a y" I; X1 k
{
0 n, @* {* d% ~% S1 v* C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, a6 D3 ^. t+ l% _$ {/ x3 j if( pSkillProp == NULL )
# y# X0 ^& A3 P- y; }! x2 H; y continue;6 C; v( Q4 ^4 A- T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 F* G( A: p0 e3 d s
continue;" c! X! J+ s$ F n# ^+ |1 `3 L
lpSkill->dwLevel = 5;+ u) o6 Y4 n- s) v! H' J
}) `0 B4 ^) l' L$ ]
}9 \ I" V9 B% T$ u7 ]+ I3 b
}/ k9 G8 b G2 k
else if(IsLegendHero())0 B$ u M, e8 t- }
{
" l2 N, S. v1 f( Y& o for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ h$ [+ f, J; e2 `( | { 9 T+ H4 ]4 g, b3 z6 g
LPSKILL lpSkill = &(m_aJobSkill);
" ~$ d7 F% T0 O1 R+ C: P3 y if( lpSkill && lpSkill->dwSkill != NULL_ID ) u# X6 u& d* E4 b X
{; V; x1 U- H. S1 {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 x- R/ ^1 R; B' R4 {. v
if( pSkillProp == NULL )
u% B9 s8 G/ o9 W' D9 U" _' [ continue;
- e/ \* Q. o5 M5 a7 ]; D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 W! p" p' \* M. y) w5 [ S
continue;
6 @5 q3 j$ M5 D$ w" i9 w lpSkill->dwLevel = 5;# ]2 i, D r1 f! g/ a3 R! ?8 F
}' ?( i" v8 y) U, P5 t/ z- |& L
}/ Y% D4 s+ c! i: u+ ^% F; L) i
}
% i% y& W6 F# u% |9 n8 Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 D$ a; C' ^/ N! i0 A& z( T+ z: | if( bGamma )
9 W) f3 u. ]; F {
2 L. |2 ^- a% K0 g2 t$ p m_nExp1 = 0;
# ]& |2 R. r( U# t6 B# u- I+ g }' m1 J- F5 i' {
& @- Y4 }- [1 d6 _ ( (CUser*)this )->AddSetChangeJob( nJob );
7 C+ r8 u! h& X* ?3 V1 A g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( V! V' H) |2 I% e
# n4 J* u& B1 b: H0 a, Q9 i2 O/ F9 q9 J4 W
#if __VER >= 11 // __SYS_PLAYER_DATA2 T3 y( ]0 R2 j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 o M' S! ^" Q! t0 q8 X/ e
#else // __SYS_PLAYER_DATA
7 @& f4 k4 B- N0 w' z# r; n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' L; m8 \+ K% r& k9 ~/ |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
[3 [1 w/ @6 }, D V& { if( m_idGuild != 0 )& R# ~; M0 ^. j4 H- W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* y/ Y7 \% s- Y. A/ X7 U! _1 J# j
#endif // __SYS_PLAYER_DATA( f( w) M ~8 e$ i' k A8 H
SetHitPoint( GetMaxHitPoint() );
! c3 w2 g9 `6 ^# L6 X P SetManaPoint( GetMaxManaPoint() );1 t# j3 n2 s, K3 [1 W
SetFatiguePoint( GetMaxFatiguePoint() );
# `* j+ q1 k/ ?+ p: q9 x' x if( nJob >= 1 && nJob <= 4 )* x) p7 N' r1 a" l
{
/ z. ^# S! W; T m_nStr = m_nSta = m_nDex = m_nInt = 15;
* h8 X" e3 {! Y7 d* ^ m_nRemainGP = 28;
: m V5 `2 |' t1 E0 P7 ~, b }: m5 ?& _% H4 I8 m5 h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( A5 }6 Q% k! _: h9 M {1 H f) W& H' o4 y+ O' A& G
m_nRemainGP = 118;
. A7 [, X, n# ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" L1 j+ O# h2 M1 C0 {( h
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 g* M, l0 ?+ A r5 a+ s" N. m }
8 x! ~% Z. e' e if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- U* F7 [; a0 [7 e4 D$ |2 S
{
. R( d3 U# |# a0 c CItemElem itemelem;6 g, l3 n: i; p5 K
itemelem.m_nItemNum = 1;
! @" g) `, J5 G ?8 _/ }9 j itemelem.m_bCharged = TRUE;5 r- F9 u1 V. c; j: p- f
BYTE nID;
; \+ j+ _$ _/ H9 w' o
1 Y# p: K3 K' F, S* v) a8 Z6 D9 R if( nJob == JOB_MENTALIST_HERO )! k" E1 A- t/ Z; R8 l8 E( y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. u) w! r; e# p; c& L7 b0 F1 F if( nJob == JOB_FORCEMASTER_HERO )+ a* |! i/ n" E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; t2 }+ q6 B: X; [7 ~
3 `% P6 q, {7 g* K, c1 ?) r" _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' }5 }5 m3 M, l% D0 l }
6 N4 q6 Y6 v7 x( X `/ z+ H g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 H2 j& j) Z! P, H$ } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 D4 T: ^% J+ M& j& [* q$ ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 t* j) ?& z; I1 k/ o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ m! r. |' Y2 X6 k$ [$ n
( (CUser*)this )->AddTaskBar();*/8 e* ]( M' H! k. u* O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 q/ ?3 K1 s% ~& {! u% \#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ l V' Y4 a' `' L* F ((CUser*)this)->CheckHonorStat();$ l9 `3 _6 X- R% E
((CUser*)this)->AddHonorListAck();, H6 l2 S, p8 Y- Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) q1 ?7 W7 Z; [4 z0 A7 X#endif // __HONORABLE_TITLE // ′Tà?
& `% G3 S0 ~' g/ b4 `/ y/ w; Z }* P C; C i3 {8 Q0 }
#endif // __WORLDSERVER: _5 O* ]1 w6 ]% r" |
}
7 p+ M2 s8 G2 `. R+ G
7 U) ~% R) o# a7 V然后你进入functextcmd.cpp并添加以下8 k; w6 V6 y# P3 t, {0 n6 v- `
' R# }. s8 o, n9 l$ {代码:3 L/ b6 o) a5 R0 f- Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ U* W% h3 S# j8 {
下面插入
6 [$ }4 g: }) L" K" }0 P# {! C) @ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 u. h3 p) [- O8 d3 j [: x8 r* ~% x; a( o
然后你去
; Y2 i) ?; m; H6 D
- h" { w) t0 c8 P0 ?% h( {代码:
; f/ k# E' T( Q& G9 a1 [1 o代码
. s( M/ ^! J; P, G5 ?BOOL TextCmd_ClearPropose( CScanner & s )
) u/ A$ o2 H/ t9 \- r{( I: [8 t/ T8 D7 c/ k
#ifdef __WORLDSERVER# d5 v# O" A$ j( }" B$ o6 C
CUser* pUser = (CUser*)s.dwValue;* J. ?8 b7 `# l1 D& C- G
g_dpDBClient.SendClearPropose();: w: `- U" U' f$ p& j
#endif // __WORLDSERVER
# l2 f9 \; {' [, Z return TRUE;
5 P/ n! i) v+ p}" z2 G% n3 {% Z$ M
下面插入! v2 r6 [3 `6 c1 p+ w9 n# \
BOOL TextCmd_rebirth( CScanner& scanner )
" W5 u: D% e- W% p/ z{) B8 [. d0 W" F- T. C
#ifdef __WORLDSERVER
) U% F# v; N' y: q' a UCUser *pUser;) y- n( ?" U) Y. k
pUser = (CUser*)scanner.dwValue;* m1 ^* Q C( W1 D# w, A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): |! m7 p3 p( ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' g/ M/ _2 `8 [ U3 {* P6 Xelse
. E' z5 i, N2 u$ M; R/ g, n' apUser->AddText("你还未达到重生条件!");; f& g( `* o( C( e
#endif9 G4 w* D {! \: f. t( m! y
return TRUE;
5 c" ^2 v& S" O' x# @) {* O}
8 G# T* [& u4 q4 v3 O
. @% ^; p7 ?2 L; x( k& i; B% H( H' W& z+ F3 |
1 y* Q) |4 K4 _6 N5 P3 u
6 ?2 u+ h5 {; ]( ~/ { |
|