|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- M9 Y4 ]2 {2 m7 s9 E
/ t, c/ |- L9 L; c8 l& ^
Mover.h6 Q. E6 S- P8 F' f0 i( i
代码:! d2 P. |. i- m% j+ y$ d
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# c7 b4 o! J' }# a* O+ Z V1 ]1 `
+ p! B7 F; H* E下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: U1 m6 w7 B- d( D' f/ X: Y# [6 [9 F q% ]; ]$ S
然后你去mover.cpp添加
( b h" ~. J! V! x
# Q6 j5 o8 U8 a7 U" [# |' i代码:
% m; L8 Q w8 V3 kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ u$ h, v) q6 k8 O: e) ~{& l# x, t H+ T: Y2 {* M3 m" M
#ifdef __WORLDSERVER
1 J/ a4 \1 j! V. e. H, g+ w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 g$ b" Y3 c, _ MoverProp* pProp = GetProp();1 Z6 _- ?& T) ^& a6 Y1 }* k e
if( pProp )
8 ?% q3 u. X! k {
$ x1 B& m' G4 t0 o% z }" R+ ^0 w if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, p, j- I+ v" r2 `; U& B {% v8 r6 D- m6 P/ p4 d: h9 `( ?1 k
AddChangeJob( nJob );! ~& u9 l; e- p
}else{3 D0 H5 g ~$ s# o- o! J
return;0 m- @2 C5 e* _2 V. {9 Y
}
; e" l5 p/ r5 w2 z; S# q6 q int nPoint = 0;
7 d' ]. l6 L7 ~, j if( m_nJob == JOB_MERCENARY )
@! N- [. ?9 S7 ^3 S3 [3 Q& Q nPoint += 40;+ w# V' R7 c# {5 h$ p
else if( m_nJob == JOB_ACROBAT )& b. R0 G/ V. y" y4 j( N
nPoint += 50;, O" e) }! u i' b/ t/ i
else if( m_nJob == JOB_ASSIST )- n- T* n% j, q5 Q
nPoint += 60;
; T0 w7 [0 S/ X5 x% p5 q else if( m_nJob == JOB_MAGICIAN )8 h% f3 X; }9 x, z @0 |
nPoint += 90;, f" U; c( U" D$ _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). L3 J) S7 o5 O# C& X* f! r0 A
nPoint += 120;
. W$ N! S* f& t; x8 \ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 {5 |7 Z- V, g, N$ s
nPoint += 150;
+ ?# c: b) @+ P: A else if( m_nJob == JOB_RINGMASTER )& ]5 v. `. N1 G: j! B
nPoint += 160;
3 R$ w. J) I" h! M u. y( d' F: [ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( e9 s- {9 a) _4 ~, m
nPoint += 180;
, w7 Y7 d2 H" p" c( n, D# D else if( m_nJob == JOB_ELEMENTOR )
/ q% s1 B! O0 p nPoint += 390;
`' f- j4 [0 H* x; ~. L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), Q* l& }* \) ~. h7 h. B( h: E# j
nPoint += 120;
9 Y: F" ^; z: ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% C6 e& ~7 O4 i" A/ G4 o
nPoint += 150;
4 p) U: Q# T# e- o* m: {" L" b else if( nJob == JOB_FLORIST_HERO ); V2 c6 |/ L- A1 i
nPoint += 160;
$ U- e5 V7 Q, |9 e. M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- e$ l9 k/ F: g nPoint += 180;9 ~6 `2 ^4 A* K' |2 G9 W
else if( nJob == JOB_ELEMENTORLORD_HERO )) o' W1 Q7 }: `- ]: Y
nPoint += 390;
6 E3 ?- S2 k& q+ h0 r
7 u' C; O$ w% {8 c/ h h* N" H AddSkillPoint( nPoint );
% D# m4 |: u: J$ \ J9 c m_nLevel = nLevel;7 L4 j5 e9 L( C4 ^& O' }8 l% {
- Z" b" ?' R# K9 [1 Q0 h8 u
SetJobLevel( nLevel, nJob );* m+ f* |9 }* b5 |& P# C
m_nDeathLevel = nLevel;( ^; n7 d3 ]9 |: V7 z3 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: ~% d7 Z& R$ S8 i% [
if(IsMaster())
) h9 K7 f0 U5 _0 B: Q; b {/ Z; t1 A$ D/ a( B i8 c5 `: F4 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! {" ^. ^- E4 ]$ L) ~# n, N) T if( nLevel > 59 && nLevel < 72 ), j/ J$ y+ i! A5 H& F3 r# P
dwTmpSkLevel = 1;
( i6 I# |8 ?# q5 g/ g7 u. v else if( nLevel > 71 && nLevel < 84 )
& F# J; l% e9 V5 ^2 R dwTmpSkLevel = 2;# R$ t* ^3 h/ b+ L& m' c9 t. T1 H
else if( nLevel > 83 && nLevel < 96 )7 u m* q+ N/ d+ x, {4 o* }1 [
dwTmpSkLevel = 3;
4 L$ P: B2 J D: h' \/ } else if( nLevel > 95 && nLevel < 108 )0 p. {# W+ g0 z! C3 Z% ? H8 _
dwTmpSkLevel = 4;
& D, K) R- H9 o else if( nLevel > 107 && nLevel < 120 )# x1 }( n. Q4 O5 F! {
dwTmpSkLevel = 5;
) ]; y, l% } A' V1 l5 `" M. ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 J$ I3 g3 t6 R( @' b9 k) | { ) ~1 E% H! K. c; w. `) {/ K% L
LPSKILL lpSkill = &(m_aJobSkill);( }( e- v* |6 i- n) t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 i$ I8 j7 f6 q {
) C# h6 ^( U& x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . c: H- O- i8 n! M/ k; I; O
if( pSkillProp == NULL )7 y2 I6 k0 s- [. M
continue;/ k. Z" c1 z0 g# \$ c0 I. W7 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 \7 Y3 n( D2 y, W1 Q$ @1 U# G1 U continue;% e) \9 k4 P8 A3 Q* H r0 k% o) E
lpSkill->dwLevel = dwTmpSkLevel;& a- u2 l8 A6 A' a1 H% n+ V9 O
}
: O; b6 g/ B6 Q) p* z }0 D) J) G* R9 f/ ?& N
}, x$ p5 G, F3 i: d4 S
else if(IsHero())
- A4 _& v& Q+ P* x' S" `4 M8 S {
2 @1 N* D/ m; f/ { a for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; I/ C- v7 Y/ W
{
7 n; m4 t5 E4 V/ U LPSKILL lpSkill = &(m_aJobSkill);
, j% u( P! i, E5 ~& v% U& F: G if( lpSkill && lpSkill->dwSkill != NULL_ID )5 w- C' n- ~8 p. u+ q$ Z
{; o9 C7 }: A7 d2 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 B* A0 r% |$ a W0 m! R1 {
if( pSkillProp == NULL )# w; B1 x) a8 B5 b& @2 v1 u; f
continue;( z' y) A+ Y& [0 X0 h; V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 y$ B6 n5 \7 J( d- L$ h continue;2 a5 m$ t* I1 E9 I
lpSkill->dwLevel = 5;: m, s% Y0 ?$ U$ }! m
}0 p- n/ @9 F# f0 u' L J7 z
}. p9 c! t5 A6 P9 h, z( v, i
}
" g% p- S7 G) x1 T/ D$ v2 p else if(IsLegendHero())
7 E2 R" L0 _; \5 E& i {
! G+ q6 W. Y4 H0 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 m: m8 Q5 k6 w. M6 Z" l; ~
{ $ G6 V+ p6 P5 D7 b
LPSKILL lpSkill = &(m_aJobSkill);
) ^2 J' N; C x if( lpSkill && lpSkill->dwSkill != NULL_ID )
! A9 ]4 a, l B' Q$ h {
+ r# m) ^, W m% q: z2 B9 t: y1 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # g4 K0 B; c, _/ e% } [. H
if( pSkillProp == NULL )) ]& t+ q4 d# ~
continue;
q& ^- C! p; F& L0 { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 N6 S3 [3 s' i. A" @3 Q/ q8 }+ F
continue;, H& k% e3 u5 b1 n
lpSkill->dwLevel = 5;4 q" u+ _1 k- W ^
}% o5 C. q# W1 O
}( r0 r) t1 x: c# R
}3 h I$ Z' C' q6 q$ E; B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" a Q( b2 e- p; a) \$ l2 U2 |& i
if( bGamma )9 T$ G" w$ k; S, t( V* x* P% `3 [
{
7 o5 N2 P; I% r, ?/ d* X4 Z3 K" q m_nExp1 = 0;) Q' y4 A) u( G, q8 Z
}
6 o/ C P( b! A) l! y* Z x, B5 s3 w; y! W& |% ^& M
( (CUser*)this )->AddSetChangeJob( nJob );
O$ }- z# @5 m/ H g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 Y* w% b5 u+ H/ i2 T# L( R* J2 q
/ T ~- k; E, z
#if __VER >= 11 // __SYS_PLAYER_DATA X7 q% p; z0 Y; a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; l7 A& `3 ]. I1 O+ y, w: ?#else // __SYS_PLAYER_DATA* q0 K( n3 v* A9 Q. ^# T, t& p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 m4 Z) p8 C7 r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# Q1 o g4 Q C( x/ r if( m_idGuild != 0 )
% E$ `/ A* W: e+ J# _" p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: A' g! Y0 p; r' q) Z
#endif // __SYS_PLAYER_DATA6 @4 O* b4 b2 O. ?1 a$ P
SetHitPoint( GetMaxHitPoint() );
9 t7 @. Q' B8 s/ a% P* _- v SetManaPoint( GetMaxManaPoint() );0 F, N' V: H* M( j2 p. g t
SetFatiguePoint( GetMaxFatiguePoint() );, V0 b5 `/ b& e( f
if( nJob >= 1 && nJob <= 4 )! @* z" x( r7 [9 m3 I7 K( M1 i
{
- G. j5 C& z1 C8 P# N: F m_nStr = m_nSta = m_nDex = m_nInt = 15;& w/ `5 r0 n4 R' C% i
m_nRemainGP = 28;
5 B' L* ~# i. @8 f* Z: v }7 c* q: @: P' J: {' u( E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) K( q1 [) x' r, \
{9 z7 u, w6 J" w6 U
m_nRemainGP = 118;
' N$ d8 A; P/ R3 w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% w$ x$ k' e9 C( |% I; E" k- e2 V m_nStr = m_nSta = m_nDex = m_nInt = 15;
: v& Z3 K m) o* y& n# k }* q9 m3 Z& M3 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" J% g" w9 K( k0 i% u% a& ]8 F
{
3 @* p$ s( L% A) d3 I, q CItemElem itemelem;% C8 \0 h0 g" d4 @% F) b
itemelem.m_nItemNum = 1;
& G' Q& o( _/ y; g6 p2 B8 T itemelem.m_bCharged = TRUE;) V) ]& ^+ J4 R- J% G9 T; i
BYTE nID;
' [# u& M7 W+ B, Z6 j" k3 h% c( x+ d- O% ^4 ?
if( nJob == JOB_MENTALIST_HERO )
4 n) n, Z y5 U5 B1 t itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ t5 x2 z9 h W7 j( q5 w+ F
if( nJob == JOB_FORCEMASTER_HERO )
* M, @4 M7 Z. |( U- ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# Z# |: i; I: w( y7 v, e8 @( x" h1 a7 b( E- R
( ( CUser*)this)->CreateItem( &itemelem, &nID );" `: W. }$ m) Q
}
8 ~! N1 J: h% {2 k3 h5 l% L, F$ y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 X6 g: V% B- c! _! z( L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% u1 q. j1 T' I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' m7 c9 @- P; R1 |' \9 q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! T' k3 @/ N; D! X2 F
( (CUser*)this )->AddTaskBar();*/8 r8 |5 q0 b6 Y* ~% K* ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! d* y/ n" N6 z7 [( X/ Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' N* f/ D. @. s5 ]/ n ((CUser*)this)->CheckHonorStat();, j1 y* U; r5 ~* Y* q$ F9 L: G& Y
((CUser*)this)->AddHonorListAck();) M" x8 Z5 X7 F X; L3 J
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 t- y9 I1 I! |# w, z1 V2 w( _4 C
#endif // __HONORABLE_TITLE // ′Tà?
5 z9 G+ i5 W! ` }
6 t% |; U4 H b! j#endif // __WORLDSERVER
5 i9 ` l, I+ j5 }. L}
( m* C9 ~; k2 k# @! M" T6 E2 T' S1 ?' v# B6 P) x7 N2 }. o: u
然后你进入functextcmd.cpp并添加以下) v% J3 @, e5 ?1 i. P' @0 t6 U
7 P' k" V' {, _; W: \6 k( k
代码:
; N, y% b# G5 m, p& [. cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- }! r$ @9 N& M. @/ ?; _下面插入
. h7 ~9 f( O$ b9 L4 U+ UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 {, V+ q* v+ J7 J
3 v, c: y. Q" N$ w
然后你去
; a8 ]! Y( H; j
. `! \5 ?3 v) w r& F& N代码:% K( s8 T u; m3 _. a- Y- N
代码
; N1 e/ d8 N- L e8 f rBOOL TextCmd_ClearPropose( CScanner & s ): B. R7 F; n( c: @
{' ?+ U2 J: h2 c6 p
#ifdef __WORLDSERVER
0 M/ o+ z$ p% o4 \ CUser* pUser = (CUser*)s.dwValue;
, F/ T/ F0 B( z( d( l/ [) }5 g3 u g_dpDBClient.SendClearPropose();5 X! z& M! @3 o
#endif // __WORLDSERVER0 U( p p* {2 }0 R6 {
return TRUE;
/ s s6 P: D8 q3 U! J}
8 g" I9 F+ H& _& L$ Z下面插入
' B; L* {5 T' J; pBOOL TextCmd_rebirth( CScanner& scanner ). F% h8 l2 w/ L2 [
{, r& } f0 b3 U9 R- a
#ifdef __WORLDSERVER
* @" l( w" {' S- O1 _8 `: V. uCUser *pUser;
" {6 W5 Z, J5 x/ xpUser = (CUser*)scanner.dwValue;
( L- Q% C W$ G4 H- v/ W" U) Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); o6 n6 J5 S" T, J, y3 ~. R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 T; @$ [- _0 s3 m% p4 k7 [ t
else: d8 \5 o+ @. p. R4 o% Z2 h2 r& M+ o
pUser->AddText("你还未达到重生条件!");
; x5 [) v& P. p! q6 _& W#endif
+ R Z- v- i& Q% Y- v% U& N) g5 mreturn TRUE;/ U |) Z' Q; c2 W/ `# J; q
}
. L; ?9 O% R8 e1 H2 g" i+ f0 H+ Z; y3 F6 J) i K3 M3 s
4 ^* n2 Q1 g) s4 X2 |- N' Q* ]" Z) z0 q4 `
. a: K- @0 b: y* q7 i% v7 j
|
|