|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( y2 z, A2 D" O1 e. p" }
1 _* g! W/ E; yMover.h
* L- c8 [, R) Y* `, V2 R代码:
8 P1 m5 N: l; {$ m6 T5 E0 i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% f+ W' ~$ Y+ T7 t" y9 {! M- h) @3 |; r3 s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. ?( p- w4 Z( D, ~0 y' d9 o1 [- o7 F+ r! h2 ]
然后你去mover.cpp添加' ?& T0 d' f3 C. d
W- H3 a" e7 }% g2 ^% P
代码:. x9 ^7 h/ t, e8 H& A& P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 T* w$ _; K& ^: o
{
# n$ |6 a( ?" K( E& N#ifdef __WORLDSERVER7 u) ~- n4 q6 B8 r; r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. G; B$ a3 S5 x, Z: b q, t MoverProp* pProp = GetProp();9 w" H0 F# i/ @1 m. Q7 Z
if( pProp )) |2 p# e7 s" o3 O+ l* \+ T
{
$ ]( S9 o: _) n: V0 y7 q if( nJob > 0 && nJob < MAX_LEGEND_HERO ). z8 Y) {) u+ S* C' Q; ~% y5 F! _
{
0 @- V$ O. M6 z) z. p9 |) _/ ` AddChangeJob( nJob );
7 }" E" p, I3 g& d; \8 } }else{# K; ~$ t7 n% \# T. B" Q2 s
return;" K- g+ k! ?; G0 \6 s2 O& a6 w, r
}* a: I) U3 a2 t( L$ O" q2 l
int nPoint = 0;
' R7 C( s5 t+ J4 p if( m_nJob == JOB_MERCENARY )
( n8 l) \3 {2 @$ p; ~/ d nPoint += 40;0 ^1 {& J$ a. O1 n
else if( m_nJob == JOB_ACROBAT )
& W$ R* i. ~ N& a nPoint += 50;
2 X+ m: m+ E# S0 M6 |. \( E V' y else if( m_nJob == JOB_ASSIST ); O6 d8 ~' Z) d; i0 w- Z
nPoint += 60;
' i, I, @ ?; _0 f! L: m else if( m_nJob == JOB_MAGICIAN )# a ?" W% u3 k" E9 A6 i- |
nPoint += 90;, L, F1 F2 w& C( E& w# N" z8 K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& R( I4 D, c( t1 v% x
nPoint += 120;9 a) X- [2 }& z* N
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): z: f) K0 g$ h5 @% ^6 `
nPoint += 150;
! G3 K( A; G* J/ p else if( m_nJob == JOB_RINGMASTER )# B5 y2 p2 q4 g X
nPoint += 160;
2 Y- b6 X# G; C$ ^6 D8 k else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 P+ v) F: V0 {( u8 S# o
nPoint += 180;
" @% _8 P" }0 Z5 p: i5 p else if( m_nJob == JOB_ELEMENTOR )8 [' N' B9 g: S/ R6 u1 `
nPoint += 390;( B5 X2 _+ K/ H1 |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 Y1 v7 H! U: d; Y3 Q t8 N Z nPoint += 120;
3 }9 u, v$ n& Y5 v else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( {# r7 x2 `# i0 e" D4 @
nPoint += 150;
4 a; G; O2 P; z9 P" u% V0 i1 K else if( nJob == JOB_FLORIST_HERO )
Z. w. y4 t- q& v( |% X nPoint += 160;
+ ]! n/ w3 V- R3 E* h" k3 L2 Y/ N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# L$ C8 }1 |5 Y0 ^+ R$ ^- z- b
nPoint += 180;/ K8 E+ k" H9 Y
else if( nJob == JOB_ELEMENTORLORD_HERO )
* |3 R3 L; n0 G6 M$ Y nPoint += 390;% k9 u! J# _% Z, m$ @
* k) ], O' r2 Y F
AddSkillPoint( nPoint );# q8 W8 q! U6 q5 f& m0 D
m_nLevel = nLevel; z# D) Q& K: Z6 V5 U( F6 }
( e6 r: z) Y+ Q/ g* [& Z( D SetJobLevel( nLevel, nJob );8 Z8 e3 v/ T- [$ Y P- _
m_nDeathLevel = nLevel;- B0 o2 T) l, h8 r }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# s, N7 Z# @, W# Y: C
if(IsMaster()) e8 \# _1 N! J9 p3 e0 u8 W
{
" `0 A7 c9 f. k4 C# Q+ l4 G% n8 T int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 G: [, \, |$ `, S# q
if( nLevel > 59 && nLevel < 72 )* u, h) R, t" _; t9 s
dwTmpSkLevel = 1;
+ [, G# X$ d$ G! M9 | else if( nLevel > 71 && nLevel < 84 ), n7 u9 i6 e" m; W9 o. V& g) Q6 d
dwTmpSkLevel = 2;
; c) P0 {8 S5 l( M, I9 T else if( nLevel > 83 && nLevel < 96 )# H2 [4 i' d0 L. B
dwTmpSkLevel = 3;1 f4 z5 ^" `$ c% A/ u2 Z! q
else if( nLevel > 95 && nLevel < 108 )" F N$ c! ?2 T- J- ~8 U: ]5 ]
dwTmpSkLevel = 4;
7 n. j H; B; W2 ~) o else if( nLevel > 107 && nLevel < 120 )( j9 p* K8 g' P: @$ ?: v7 e7 I
dwTmpSkLevel = 5;
1 X# ?) V% o5 [- A! M for( int i = 0; i < MAX_SKILL_JOB; i++ ) . {* X0 E. k! p: W( u
{
( I7 c2 B3 _$ x8 V+ T LPSKILL lpSkill = &(m_aJobSkill);: U: N. \3 r5 I! D- l p- W! U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 \2 [+ h/ `; Q4 t {! `0 f" ^' L {
8 E4 }& N1 q' ^; u5 u- U, ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); _/ F/ Z, U& v1 O# C' h
if( pSkillProp == NULL )+ t* c: ]& X; r% f0 |# }
continue;+ r1 B) g# G4 a; e4 Y& m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 ?" y' C% x5 P* } continue;
1 N( D" V3 z& E* l- R6 q lpSkill->dwLevel = dwTmpSkLevel;) P1 a) T. ~9 Y& J( o, j4 }* T
}5 g1 i% U, N7 x7 Z6 X/ c. Y+ W
}. x8 H! R! G; I0 ^0 L
} B5 |+ H1 Q- D6 Z# Z
else if(IsHero())
* t9 v* W. o& q3 U" U5 V0 ^$ o {9 K: D" l" r& @6 W- u, p; I6 X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 f6 k1 F @) S$ ^
{ 9 h$ j. r$ q/ R k4 e4 [3 m
LPSKILL lpSkill = &(m_aJobSkill);4 a7 |# b. U/ z6 o8 f
if( lpSkill && lpSkill->dwSkill != NULL_ID ); J9 E3 ?6 a& I( I2 T# ^
{# Y6 F. g. t: W+ U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( ^0 S( b, s1 S/ P z; o- Q if( pSkillProp == NULL )
; r! `/ D. D6 i5 @6 \% Y' O continue;
V. Y2 i. G5 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 u6 D: K8 b; ^/ b& r: {) A
continue;8 W9 D6 `3 {& _2 {. V
lpSkill->dwLevel = 5;
4 d/ v. E; b" w5 G2 x/ _ }& X- a5 J7 U3 r- ~
} o# L. A9 f: i( _9 h9 c0 ~
}
2 R- g+ E$ q8 ? else if(IsLegendHero())
( B* w* T1 l. `. W, F {( a) X0 |$ W& k' g ^' M9 {: P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 W; n( L1 w4 V% N5 F4 J {
# a) |$ [: o4 x2 r& U LPSKILL lpSkill = &(m_aJobSkill);% v: {" ^/ c j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 g9 E+ P+ T) I9 ~) d( q2 u, v {
7 Z; |, a& u4 v* k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' w' T; l+ n( n6 t
if( pSkillProp == NULL )) R* H4 p4 D6 s
continue;0 b% z H* c3 a* K( |. u1 x9 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
}- m! h: q9 B' o, ~0 ` continue;: a$ d' M" G+ b
lpSkill->dwLevel = 5;
; U! d. S( w; a0 {. U }
( l& A( T+ U" M3 U) T% F% q }
& ^& k' G3 e2 [2 X }
5 ], w* z8 r# Y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; W5 N* e u) d/ |2 S7 d
if( bGamma )
! l- s0 O; J3 N6 m; _* C {( T1 T; m% D: E
m_nExp1 = 0;1 @0 p% q, O6 E$ v/ l2 |- v& f, ^
}8 B% h1 l1 O+ ^7 z+ y
9 X8 @1 U$ L& `* b, g ( (CUser*)this )->AddSetChangeJob( nJob );
" {5 V( M- j" q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; k4 K! k# m6 Q) H/ f2 P) p$ P. V" R& m. c
6 J2 y% H0 U) }#if __VER >= 11 // __SYS_PLAYER_DATA
0 C1 D' {% ?) }3 i' e0 P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 j% Q% h1 G$ N* O$ M, [#else // __SYS_PLAYER_DATA
. m# C' n9 Q! \* Y: J3 V" g g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: Q# A! |7 B5 i5 i: Q! U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 x B5 k8 X) x0 \8 s# w7 F
if( m_idGuild != 0 )
2 x( o3 ^3 F# ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: a# {6 y. T( H: ]3 u#endif // __SYS_PLAYER_DATA7 h4 b) ], W+ X7 q5 V' k; _- x* B
SetHitPoint( GetMaxHitPoint() );* l0 Z$ ~' u" B: h( ?$ i6 T
SetManaPoint( GetMaxManaPoint() );; V) H* m! D" J7 ~4 [. i
SetFatiguePoint( GetMaxFatiguePoint() );
' `9 m( k0 W \+ q; Z if( nJob >= 1 && nJob <= 4 )
8 B' G$ U. [. m7 B( F: n5 {- u {
4 ^1 Q5 X% g. j( s m_nStr = m_nSta = m_nDex = m_nInt = 15;
' M; e6 Y, w$ A% G m_nRemainGP = 28;3 w( |3 u1 J; [, W4 h' L
}
& k6 C: P. l1 {! [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- F0 p, n) m& p$ s" A* ] {0 y# ~$ i9 d( @% B ^' ~4 Q
m_nRemainGP = 118;4 |4 I$ s' c0 Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 G( y5 F# L5 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: w4 U& G$ t1 D% U0 C( J }
7 t6 R3 V1 D& Z( p6 _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% X1 m% G0 \" R0 S4 C
{" z! I! r) B- |
CItemElem itemelem;8 b) G) a( H9 K% L# J. l
itemelem.m_nItemNum = 1;" T6 |0 s4 o2 @) A: D" \ s
itemelem.m_bCharged = TRUE;
* X4 E7 _' {! m' H6 t2 n BYTE nID;
7 Z; w% X0 W0 E- G' t. E2 d5 Y8 ]4 S' ~9 s$ l5 l# R
if( nJob == JOB_MENTALIST_HERO ): s* n3 {9 e" H+ n5 A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& @' N5 u4 w( S
if( nJob == JOB_FORCEMASTER_HERO )1 m) ~" M% q7 {: G* a! o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 H4 N8 X1 r% i4 V# a6 z$ Y7 Z
$ F; \7 y5 y7 R& G/ a ( ( CUser*)this)->CreateItem( &itemelem, &nID );# |: n k6 o2 c/ Q' X+ N9 O' _1 h- [% X
}
" a: Q: B9 n# B8 L4 c& t& j2 {7 J g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. N* X K9 p0 s5 E) p% h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* I7 W/ o N% H6 J9 {/ d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& h3 Y0 | ^+ d: u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: C. A3 h- c- W) o$ F1 G ( (CUser*)this )->AddTaskBar();*/. T. F; o [6 O- i' Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 h5 C+ _! O2 Y- O$ t. M' Z1 A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% f; g$ ~$ n( g# N' S. Y ((CUser*)this)->CheckHonorStat();
' Z$ I! B4 T, h. p# w$ P; F e8 _ ((CUser*)this)->AddHonorListAck();
5 `# g% @5 I2 G; _- E e9 R8 ]% L g_UserMng.AddHonorTitleChange( this, m_nHonor);3 \6 ~" ~% _6 }7 O, \( i
#endif // __HONORABLE_TITLE // ′Tà?$ d' K3 E. K. U) z/ h- q
}4 L; f+ V1 Z1 b' A# Z
#endif // __WORLDSERVER
+ @% [6 Q% P h/ Z' j1 K} ) A `/ R) O& X5 T0 U
* w# v& ^/ p. v$ `5 e
然后你进入functextcmd.cpp并添加以下, Z3 [) j, x J4 O5 b6 M
; J2 ?& n& c0 M- m# N3 x- _
代码:
. o2 w, i9 I) g" Z/ }! P( w9 n* rON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- u, p$ \8 @* Y
下面插入
( P; L4 _" }: z: ~. SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ l& N" v$ N3 @' v
! H( O8 t4 e/ z1 h6 g然后你去5 y- F" W& t- z J& D6 e" H7 V
D! p5 u1 t" ?( m代码:6 H9 p- ^9 B9 m/ B: r- L
代码
& S$ `: q5 b0 C" \2 CBOOL TextCmd_ClearPropose( CScanner & s )9 r* p( h/ d Z5 U( ?* m
{
. p, n* H: e, k- e: ]/ F5 w" Q u#ifdef __WORLDSERVER
4 Q0 N( r n# H CUser* pUser = (CUser*)s.dwValue;
/ T0 K: o2 C7 W1 z5 k g_dpDBClient.SendClearPropose();
( x. c( O7 B: L. J#endif // __WORLDSERVER
" L4 f+ t: q1 V. w. U return TRUE;
, j5 f% c* k( q}
' y$ k: A+ m" |, i" j+ {3 l2 F下面插入
+ U+ I' v2 n0 BBOOL TextCmd_rebirth( CScanner& scanner )2 [8 l; U& w. O8 A
{# `# Q; S% l6 E! w. r) T
#ifdef __WORLDSERVER
, x) J7 }$ ~! k) GCUser *pUser;
; q; a, | R* \- Y" d/ KpUser = (CUser*)scanner.dwValue;7 {3 }) p+ D# g8 @1 n a* e) K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 y, U8 n% t. ?( {5 A& f- T& d' n5 X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 X( _: }; [- p, J! R H
else
$ d/ R+ {& c9 I. e ypUser->AddText("你还未达到重生条件!");
1 i0 G* |% H7 L; w#endif2 T7 V' \- h( D$ ]( K
return TRUE;( q) ~4 w6 _9 e) ]: [* c( F
}
& }2 f. c/ D* m7 N; J; ?: b9 ~7 g0 [4 d+ Q' l7 e
/ M5 K+ P; W0 ^* Q/ e* N
7 L5 B2 a: m# ^
7 ]$ o5 H K' g; f7 O, k- e. p |
|