|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 G* \3 X' m+ r) e& m# k$ D
3 @0 u# l8 B. f3 e- x1 F& P w) b
Mover.h/ A8 @7 }3 I1 I% l% S$ r) ?
代码:
% Y- E$ e! F# B- |+ Y6 q* b+ B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 r$ s+ r3 c# I+ @9 S& S( l
c2 l1 E/ P1 }8 D, _, J下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 c+ V- z/ N7 ?* [1 ?0 M2 S
9 X1 t* K$ |" G0 O& l, e1 {# B4 d. x然后你去mover.cpp添加
, [* U. s4 n/ E: u" B1 Z9 B6 H& i. j
代码:0 S0 m n* `0 q3 E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) T& N) r9 \* g2 w9 m
{* a# W2 h7 X; J5 P! `4 O) k0 M. x
#ifdef __WORLDSERVER) J: a: T$ _' ?( D2 B& Y. `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. i! x: H& b3 N" f* D
MoverProp* pProp = GetProp();
/ a( F( b+ L, o6 [, m* l) o; r if( pProp )# _; l2 T! c! x5 U
{+ _; ?' P$ `' x+ i5 a" Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* |" s1 u. k* c! K2 w) H% f {
6 Y$ ]- B8 A' n- t0 I3 {" c AddChangeJob( nJob );
- \( E" o! \" e4 [) L) C/ {+ S5 x }else{8 _; u6 r/ }$ X. F
return;
8 R" {, a1 ^2 E. V/ m4 S9 x }1 M$ [, o* t. \ n- o
int nPoint = 0;
4 e. @: Y: k' u0 B6 P& f' o/ a# w if( m_nJob == JOB_MERCENARY )2 N7 s( {7 C/ \0 |1 r/ r
nPoint += 40;6 u8 p5 [. V, ]
else if( m_nJob == JOB_ACROBAT )
5 D; h4 C$ k) k- @- P9 E( J nPoint += 50;: Y+ a& i& ~# s% j2 v
else if( m_nJob == JOB_ASSIST )
3 F# I# I' |0 { u; h nPoint += 60;
& W2 R d5 U( g. V else if( m_nJob == JOB_MAGICIAN )9 I ]1 I: R4 N
nPoint += 90;
+ A( p* C5 [# s2 m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 G4 |9 n Q6 d5 B3 D, W: b
nPoint += 120;' F7 G5 s2 V) |; T0 \) _$ v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 p: ?: t% o/ L
nPoint += 150;; h. c) [3 J$ [5 F
else if( m_nJob == JOB_RINGMASTER )
$ c/ d" R# P) R3 v& w; c8 U5 U nPoint += 160;2 {6 n2 X3 ]7 d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* R% |9 |2 e2 Q
nPoint += 180;8 W( H* v8 A# m0 Q: ~% G
else if( m_nJob == JOB_ELEMENTOR )4 I s) C* `$ {0 F
nPoint += 390;! z4 V. S3 P. c6 p5 r! k9 {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) x/ v& X% Y; T- l! A/ @1 K nPoint += 120;7 O* c% D* @7 ?# p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# B5 d3 u* Q' N& r1 U) _' q; l nPoint += 150;
! q5 t5 R; R$ @$ h% k; F! ~* b else if( nJob == JOB_FLORIST_HERO )
9 h7 i3 [. L# ] nPoint += 160;+ ~7 t2 d a3 p" l2 T: d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 J8 }/ y V9 Y- d nPoint += 180;
5 I0 ?' P5 ]+ G% u else if( nJob == JOB_ELEMENTORLORD_HERO )# d8 q! J% r; C& _; D0 Y) l
nPoint += 390;
. d) ?: V$ y6 c+ e- s2 F* ~2 }7 ?* g
AddSkillPoint( nPoint );
% K) d4 b" j7 J1 w# n1 c. x m_nLevel = nLevel;
" D5 r/ F/ @2 }4 J) [7 l$ y9 N% L
7 g+ Y+ V f$ \% s# I SetJobLevel( nLevel, nJob );' _" a' F8 Q' J, M" l
m_nDeathLevel = nLevel; J- Z/ B% f! P0 l- z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* O0 i( ]9 k5 |
if(IsMaster())
, g. M9 C- i- m) c7 |% p# i- \ {' x$ l- \2 O: f7 } k3 u
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 _( k' e$ B/ _* J if( nLevel > 59 && nLevel < 72 )5 E: g$ x; g3 \, T6 m
dwTmpSkLevel = 1;
9 G: N; ]4 g/ X+ A+ g else if( nLevel > 71 && nLevel < 84 ), S* K1 e1 W, X' I' K6 ?
dwTmpSkLevel = 2;+ G- R$ c0 `9 q' R
else if( nLevel > 83 && nLevel < 96 )
1 Y! e" y& u$ @; I$ u8 X4 S dwTmpSkLevel = 3;
9 d6 w% O. X6 r6 q5 b5 S& s else if( nLevel > 95 && nLevel < 108 )$ T* e$ R% G Q8 Q
dwTmpSkLevel = 4;
8 {/ M7 d8 q) j& [% r, g" V else if( nLevel > 107 && nLevel < 120 )
$ T5 w6 T9 L' Q* ^ dwTmpSkLevel = 5;
, @" A9 h9 @' e$ r" H7 ^3 y+ |/ d for( int i = 0; i < MAX_SKILL_JOB; i++ )
, h4 `$ d! m4 X8 I$ Q { 1 D8 V- i r& k
LPSKILL lpSkill = &(m_aJobSkill);
4 m4 B! q# d) E if( lpSkill && lpSkill->dwSkill != NULL_ID ): d% M( b7 S- w; p) U
{0 ? u; c5 U/ d* L9 k: ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); A6 g4 r0 P8 C f0 x" G
if( pSkillProp == NULL )
0 M1 r+ w5 c- ~ O) n% E continue;
6 C! ?% _1 g3 f' D. c2 _3 G F- j8 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( Z- {% d* O/ t ^) Z9 j
continue;: K8 J- y# X. V
lpSkill->dwLevel = dwTmpSkLevel;+ j' U( J' g( \! g8 g8 Q5 t- \
}
, R: j7 \5 k4 Z' I6 R# i8 h }
6 ~" T9 o/ E7 g! r# s" d }
: H1 R0 M8 R: Z5 @" ^ else if(IsHero())4 J: q- E9 T' A8 X: ]
{
& }" `3 i. o9 _+ p for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 o( u* @( q& y' y( W+ n9 t {
; y7 W5 ?6 O" R. D7 B0 l" d LPSKILL lpSkill = &(m_aJobSkill);
7 v2 k; ]0 _0 V3 W( |* _ if( lpSkill && lpSkill->dwSkill != NULL_ID )9 X2 |, \+ C& s: Z
{; J/ V$ N5 g. t. c6 O% v6 I6 Y8 A9 o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 N; J/ [7 e8 a) }$ U8 t! n
if( pSkillProp == NULL )5 B& V% b5 W3 f
continue;. U% u( b% `+ |$ q) ]3 Y7 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( c3 A- T* F. h( f! e
continue;2 n" v7 S3 S0 c" G" ^, {
lpSkill->dwLevel = 5;
: `7 j$ |6 a+ D }
) M0 ]5 b! m/ Q \( Q }
, M! ?4 U D2 t t }
: q; W/ U. {' i+ {: S! B0 ~; c+ n- M else if(IsLegendHero())
1 b0 ]% W; P& _# }, O- z1 s {
: ]! F& _' {) c3 m8 a, e7 d& E for( int i = 0; i < MAX_SKILL_JOB; i++ ) % Q+ D0 V: u3 }% i3 T! S
{
- Y( w$ D% i9 Q# M LPSKILL lpSkill = &(m_aJobSkill);
" T: g# i2 H3 ~2 M if( lpSkill && lpSkill->dwSkill != NULL_ID )
, E6 I/ k& T( j4 K1 E/ R {
* m5 M: i5 n N- U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
A( C5 j- o: ~ @& O/ G- Q if( pSkillProp == NULL )
C; ~: K$ L- o8 I, c2 {4 r. N continue;
6 a; f( }, A- n3 M" [( X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& F4 p5 v9 p" \4 s continue;+ f% {- N7 x; d" }+ O! ]- G! W. c
lpSkill->dwLevel = 5; i. M) T4 W) |7 C' p2 Z# G
}
5 s& ^! Y& B) C' I }5 [& O+ B6 R0 G6 K. ~- T
}: h3 i/ I8 x/ l- S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& L6 |( }1 C, ? T if( bGamma )) \! q" I' d E- I# ~ y3 w$ c ?
{( C4 z4 n7 |# T+ q Y0 r: m, l/ M
m_nExp1 = 0;
. S( L0 c: y! O# ~7 o) I }; W% O S, N% Z; j
" ?/ K0 ^8 \; t ( (CUser*)this )->AddSetChangeJob( nJob );
7 d" i5 f3 }. O, N8 c; D: R8 ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ V( s% }) V* D' I" Q2 L B
" j% g+ N" ~8 K- q" q/ d0 ^) {
, o- y/ g0 `( R6 l#if __VER >= 11 // __SYS_PLAYER_DATA
; O" K9 b' l# s# c) \" @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 D0 y# A( ~- B- N$ Y#else // __SYS_PLAYER_DATA
$ Q- u3 m" _+ V- o) W! B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; I# w% ~. s1 m) z" D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 P/ G/ A- h" t, x- r1 u if( m_idGuild != 0 )
+ E- `% E3 G# O* g4 I! D! s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" J3 u( Y/ w; v#endif // __SYS_PLAYER_DATA
( g b- C. s, g2 M) j) ^ SetHitPoint( GetMaxHitPoint() );
& I( W. ?1 u% w8 l SetManaPoint( GetMaxManaPoint() );
( f7 B' A! T: J, h SetFatiguePoint( GetMaxFatiguePoint() );7 E& c' R) J; ~; @$ T
if( nJob >= 1 && nJob <= 4 )* K; \2 U2 d0 D6 K0 U
{
$ H) E4 T0 t" B1 D% j# w* ]; y m_nStr = m_nSta = m_nDex = m_nInt = 15;4 b2 d2 d9 s/ S) ^
m_nRemainGP = 28;
- U& k* P4 A# x/ l6 ^1 Z9 m+ d }* |( p% n2 `& {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), o7 W9 `9 f" w1 F: F
{
0 S( x. `; F' R4 Q- \, K n m_nRemainGP = 118;
$ ]! n, [0 h& V7 {8 F2 _6 h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 _6 @; Z6 c5 R) M7 ] m_nStr = m_nSta = m_nDex = m_nInt = 15;
, L5 ]5 x% [6 c# n: y }
, U" x/ s9 T! T) b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 z2 D: ?6 w' P
{
1 n. k3 E6 ?+ S/ g. P& R CItemElem itemelem;8 c- p8 |3 F+ B
itemelem.m_nItemNum = 1;
7 x# }. N) H! F2 V& Q( X itemelem.m_bCharged = TRUE;
0 g2 D. h& v7 a0 u$ N: q& L BYTE nID;
/ d5 O3 T1 `9 e) g# O0 c7 _) p5 Z7 f
if( nJob == JOB_MENTALIST_HERO ); Z) o5 i, {' H3 P- H+ R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 ~+ y* Z* F! w3 e- Q# _+ ~( E( w
if( nJob == JOB_FORCEMASTER_HERO )
- @. P& G; g8 h5 y! y5 e/ | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 d; _9 y; ~! v
0 A5 M0 A# h& w& S& j3 x
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' Z4 }+ Q% b$ } }
( L$ v3 k( B, q& I% m+ {9 ` g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. \6 V+ a9 `; R+ F s9 e- O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 s& A- G$ \4 e1 i ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; b3 [; X5 F/ z; X4 Y" q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ ?6 F" ?$ w5 W7 Z. V7 [& A ( (CUser*)this )->AddTaskBar();*/
4 P8 O* I2 a0 Z( a2 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( c6 q* [2 P$ [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# E0 C* ~4 z7 Z ((CUser*)this)->CheckHonorStat();
8 i' }7 r7 S% |9 D1 U# y1 g ((CUser*)this)->AddHonorListAck();% ~. _8 o8 H6 R; y. ]* T
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 k0 J9 {% T1 c E8 C
#endif // __HONORABLE_TITLE // ′Tà?: H6 e# |0 ^. Z6 ?
}
. a% m- t; |. Y; R8 o! n$ Q/ U#endif // __WORLDSERVER
* `0 s6 M5 U2 X( w9 ~. K" y# I: N/ @} + K M" b2 C6 T7 S+ ?; @" r
8 L4 A% g; A/ n' j4 L然后你进入functextcmd.cpp并添加以下& }3 h: x" z+ z* K% k% Y
+ i$ f( F% Q. N! s3 F2 O
代码:
7 o7 M1 f G9 d0 kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) E. i: E% O1 N+ s
下面插入 b2 a: N! v v* ?$ k6 \6 S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , K4 L6 K$ c# v
( z* {' v. k) R# m6 k" u- }( E
然后你去 ]. K9 `0 w. N8 K7 n
7 Q1 H/ }. i+ K' {: F G代码:% ?% N( H* o( Z
代码
o4 [5 U% s( xBOOL TextCmd_ClearPropose( CScanner & s )
9 k$ S4 M* V9 d* t- y0 F{1 k/ z* y' u b
#ifdef __WORLDSERVER
% o# |8 i( i0 D3 X3 B: M7 a CUser* pUser = (CUser*)s.dwValue;0 q! d% E6 V: z- I2 O+ j, W
g_dpDBClient.SendClearPropose();, s, g) ^' J, y$ m
#endif // __WORLDSERVER# x- @" E/ k) y4 Y6 N7 f
return TRUE;
4 j3 v5 O9 I( \) h. U+ P}2 U/ y/ W; K; b' k+ G0 a7 V3 ^ L) _
下面插入/ f, n# v- C/ ~ s, \" D8 u) W# b
BOOL TextCmd_rebirth( CScanner& scanner )0 V& L1 J5 C2 `# u$ t* T
{
. Q1 s0 x3 o+ j0 T* @#ifdef __WORLDSERVER
9 t9 \; w8 \$ J$ d) hCUser *pUser;
* X# e) ?; _ E0 c. [# Z- lpUser = (CUser*)scanner.dwValue;$ Z( H! `6 W, U) S/ C$ r& S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* C9 ?2 B& A! h* z0 `. f0 JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* _- S+ z( q" C. }else' Z1 }( }. Z/ K
pUser->AddText("你还未达到重生条件!");
2 I# P9 c* M X7 n2 a/ n# d5 o#endif
& n4 d% W+ u6 v+ m/ v; @" g2 q. sreturn TRUE;
( [, H- K, t: r0 D- _; N- U}
j" \! ?1 w" \/ q! u* F p) P$ M: D, O! n- @: S" f& |3 G/ @
( t" O, J3 I% Z5 m
: \$ G2 @) l4 _0 \+ `# s1 G. J0 g9 S$ v
|
|