|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& R. E( L* S1 \6 e( d! v9 ]# T# m' Q3 j, D- z8 B
Mover.h/ R+ J1 b! g. A0 l- Y& J' w
代码:
9 D3 W+ T: {! E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- |7 ~5 @* N* V4 A8 K4 s0 v, i. Y
4 P* j1 \* o) x9 q. W8 z& W下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * z N' R1 r! R/ ]
' \6 x8 L0 E( [% z* n+ S9 s然后你去mover.cpp添加. k* `0 s7 l' U& I, |3 T9 L
: K; c/ X" H% e; v6 e
代码:2 e$ k, \ [6 | a/ g7 e6 i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): X+ Q" m( H7 i" T6 k% i& n
{; c. l0 d/ C3 C3 z
#ifdef __WORLDSERVER
% _- Y1 h& ^9 q+ e& Y7 W; J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, b& R% r; F b& Q' U! z MoverProp* pProp = GetProp();
! k9 _3 P% q w0 Q2 Q if( pProp )
c! }5 d! Z1 C" y7 f# v5 i {" `: J6 g5 c# _# Y# M
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 ] M, \$ d7 ]" W- e9 I. y7 W/ v
{
4 q- E. R( G* r& H C* [+ B AddChangeJob( nJob );1 v) ?2 f% }4 F k8 s7 D
}else{
7 v2 T) F5 f! N return;. M- |" o" v9 z: a
}& `! s3 t R8 W: p+ g" a8 I
int nPoint = 0;
1 u4 [* [5 ^1 }$ T if( m_nJob == JOB_MERCENARY )
' D4 d9 c6 J2 ?! k7 c0 g% P nPoint += 40;
( M( M B6 a2 j! k else if( m_nJob == JOB_ACROBAT )
5 W, U4 M9 y* @ l: m4 ^2 ` nPoint += 50;8 v# x: K, f+ F# H7 t( P" B
else if( m_nJob == JOB_ASSIST )8 K3 ^9 K% e. Z" r( |
nPoint += 60;" X9 j; x' `3 |3 l3 `% `
else if( m_nJob == JOB_MAGICIAN )) G8 U0 [' X5 P0 V, q
nPoint += 90;; Y- O! ]: R" Y9 s3 @8 ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" C0 ]7 {* d1 t7 g5 C nPoint += 120;0 S; v3 m% i8 D+ L5 j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ d$ ]: d5 C# |8 v4 V% J0 z
nPoint += 150;
8 y/ v+ ?0 W0 K else if( m_nJob == JOB_RINGMASTER ) O4 O1 b1 s4 p) x$ t
nPoint += 160;
( ^: O0 z9 H0 s/ Y; G3 m: U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 J: {2 }2 `5 H6 d% z, ~$ o4 O5 V1 w& K
nPoint += 180;$ v6 Q6 H) f$ Z
else if( m_nJob == JOB_ELEMENTOR )
( G6 x1 U8 W5 m( _! K nPoint += 390;
" i I/ ^' a& a9 y7 u/ a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 d: Q6 X7 n' C+ A8 ^
nPoint += 120;
+ O5 d% p* D5 r9 X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 K7 r4 M9 V0 K3 S
nPoint += 150;
" B3 c. d# c# n: m# D j else if( nJob == JOB_FLORIST_HERO )
$ F2 G* I0 E) \ nPoint += 160;+ S7 s g8 S: Y+ r( x+ ]! \& v& C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 Q7 u0 b0 D. \# i nPoint += 180;- s f9 G L3 i. f7 \* E# I9 d% W
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ t1 m- c) R6 z, A nPoint += 390;6 ~9 ^ F* D- ^4 f) m* E) F, Q4 Y8 m
) B! {+ M9 H) s) d AddSkillPoint( nPoint );1 U1 ^0 `% b6 U1 Q7 }
m_nLevel = nLevel;. J6 ?$ F) h$ d
6 L& [% K4 a# I8 V1 I1 H& ~9 s SetJobLevel( nLevel, nJob );; n# t) D- r/ B
m_nDeathLevel = nLevel;
+ c3 g5 q$ k8 s- L6 m4 I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( y) Y. P. s! F; I if(IsMaster())4 H4 O$ A) [, c( ^- t+ F4 V
{
, F W; F/ q [/ V int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, U) q1 c6 @( c: t f$ L2 \% i! @8 i7 m; \
if( nLevel > 59 && nLevel < 72 )
3 C1 l: O/ ^: {( J9 t dwTmpSkLevel = 1;
; P. U) n3 y$ v else if( nLevel > 71 && nLevel < 84 )- U" }8 t4 { o
dwTmpSkLevel = 2;
$ G q7 S) s: G2 t0 Z6 { else if( nLevel > 83 && nLevel < 96 )
y' u) ~1 m3 \. C* C8 V dwTmpSkLevel = 3;
+ e# v& m( [5 L) T8 [$ u else if( nLevel > 95 && nLevel < 108 )
& W% @8 z/ F8 v' K( z( [1 p& k dwTmpSkLevel = 4;
: W, j; W9 \+ u. I else if( nLevel > 107 && nLevel < 120 )+ ~( C( K6 Y8 W2 g* ^
dwTmpSkLevel = 5;
( y7 }2 ~4 \$ Y$ s for( int i = 0; i < MAX_SKILL_JOB; i++ ) " w# g3 l2 y% K
{ 3 q* O# \& v! @& j! f6 v# Q, n
LPSKILL lpSkill = &(m_aJobSkill);' ~3 F8 a( S. ]3 k1 Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 P" B( J0 G. ^/ O7 E$ ]- T( W
{5 V4 a$ t# c1 D% _, k( `8 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# P9 H' R; T7 p& r if( pSkillProp == NULL )
; Y$ X& D) A: D$ \, }; e continue;8 r; n9 l+ Y$ T' j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ~+ C: o; @3 y# S* O
continue;
L$ k3 N7 @) a- H, N" e lpSkill->dwLevel = dwTmpSkLevel;
& r/ @, `) G; w( p4 d/ U2 }! ~# p }8 Y$ h, i9 @/ [% f. n, @7 [
}
8 D4 J. e$ R- a2 b+ U: L } p1 z* C8 e" B: t
else if(IsHero())0 n+ @ e6 P! |9 s8 m& j. s0 q A
{- |# g( Q" S, v2 f) \) k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , W1 [ q" V& B. v3 ?& Y
{
/ p! D# x7 `8 ^" a: U LPSKILL lpSkill = &(m_aJobSkill);# o. C4 }% ?& H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: O& s1 O' Q; A: {8 d {& t5 q3 w: M! J, x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. ^' P/ R% R2 R" d2 c8 }# a if( pSkillProp == NULL )
, f, s/ S5 d) C continue;
. r8 o2 T+ R: r3 i5 F/ s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ j, a9 X) Q* d2 i ^
continue;
" s# O$ p4 A( {2 \0 ^9 H lpSkill->dwLevel = 5;
9 h7 j1 T0 a. ~; P h. r }5 A2 t0 H. t$ Q5 E; i9 M8 m a
}
$ b$ A% T) J8 I* ` }
! s7 U0 K; I9 V; m else if(IsLegendHero())
4 L7 K9 E _" J( X9 M: a {* `9 U7 ?0 ]7 M" q* i2 ~& d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 e4 T A. Q" n o2 q9 c' C7 s
{
' Y' O& n) G0 |& T1 ] LPSKILL lpSkill = &(m_aJobSkill);
L4 f! i) {# T2 O if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 Q# U: N3 Q, t U {9 Q- J9 o, \1 m* P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 F+ U- k' R3 O: a: b) [5 a9 @
if( pSkillProp == NULL )
, c3 d2 w& }9 B- }* \ continue;7 B6 }9 W3 S# Y; W4 d; N; \$ R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 ?# c2 J ^4 w0 |! v% Q' }' F, J continue;
$ u& k, O) j( Y( Z2 T* S4 a lpSkill->dwLevel = 5;; q2 | u# h# F: D, f4 Q4 u
}& l/ g9 f! E5 n
}% c; Z3 z( c; w/ r J
}- i! I. u, S9 ~0 ]
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ ^/ O" d' O. @! ?' Y; m# _ c if( bGamma )% m1 [$ P! M- P: G
{
, {8 |3 {9 b8 G- n m_nExp1 = 0;
/ n# B: w3 s6 q) n& U( y }
4 f# t4 r* ^" G. I0 V& K2 K. V# K
( (CUser*)this )->AddSetChangeJob( nJob );
4 w2 N% _, q- o& v6 I7 L) d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% j5 @9 H. ?( t! y. o, S# n- l) I5 y- G) o, M
d6 p+ E" y! L8 X#if __VER >= 11 // __SYS_PLAYER_DATA; z+ }& @1 W6 Y( `. L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& j6 ?) m6 Q8 V7 D#else // __SYS_PLAYER_DATA. Q: f7 o+ O% ? w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. Y6 N5 G/ Y; y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. U; X4 A. W0 @ if( m_idGuild != 0 )! g. P2 ?+ Q% ^8 v( @3 j& L
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, t3 _9 P% R; j0 m g#endif // __SYS_PLAYER_DATA
& C, @/ P7 ~- ~: J9 k0 y L SetHitPoint( GetMaxHitPoint() );, k K/ g6 y6 X/ n
SetManaPoint( GetMaxManaPoint() );
3 F0 g+ O5 i2 d5 A, ]/ o* j SetFatiguePoint( GetMaxFatiguePoint() );
; V! I/ _, L$ E% G# `4 F if( nJob >= 1 && nJob <= 4 )
3 b6 h; D& U6 r! C* e" _! R {
2 C" G. H( Z# g m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 _* ~7 [6 A( V# _# p- O m_nRemainGP = 28;
. @& @) @- Y& a1 A" ^# L; x* L3 \' i }
0 e% V' N; d, Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); \% m, v) z3 Q- m( b0 J
{
8 c7 v+ f( r5 Z* W: o m_nRemainGP = 118; \8 P6 c- k: R5 o6 \. j8 U3 G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 p( o$ z5 j/ `" d! [5 c* R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' j! H& ]7 T, f' D* Z }( {" y" ?2 p% U. k; [+ L1 h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ s$ L. c; \) k0 F5 {. `; C! K7 ?) m {7 Q y: A& a- s1 M9 k
CItemElem itemelem;( @+ D9 w) V2 o* N# {
itemelem.m_nItemNum = 1;
+ h7 k& |' c" `$ r7 ] itemelem.m_bCharged = TRUE;
, ]1 X/ a X, P1 a BYTE nID;
* j% w' a( J/ Z( o, P1 M0 X2 ]/ T5 g. h+ t/ j
if( nJob == JOB_MENTALIST_HERO )
4 o; B5 K# Y! D0 W# X; T$ R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% d' ^* {# C+ p5 s$ q if( nJob == JOB_FORCEMASTER_HERO )
' T/ H E' j0 N1 `0 u' J itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- b3 K9 |' w/ i
6 K; M; }5 }! ^* ^* v/ h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 B0 y# K1 @+ C1 u- ?- K! e/ ^ }
2 r3 {/ ?; [4 Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ t7 L% J6 b$ @& T6 w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. u& ^9 V, e* ~2 J) z. | ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* b4 a, L' _% z( @( x/ ]/ g7 e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# }+ l: C+ K& B
( (CUser*)this )->AddTaskBar();*/
& F* h. V$ n$ o6 J9 W2 w. [) G6 z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: q1 @* _) I9 |0 s* m3 u& `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 f6 Z, O8 R7 n. |3 j7 D
((CUser*)this)->CheckHonorStat();$ g$ h' d N- }' B, y ?
((CUser*)this)->AddHonorListAck();" _/ h% [; w% _+ i" {7 V* ]
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 G" |# P, F D2 J7 ]( i#endif // __HONORABLE_TITLE // ′Tà?2 Y0 W, S0 O' L: S1 A
}
_' N; K! N) I5 x8 L% s#endif // __WORLDSERVER5 f2 z I! P# _
}
! @& E$ ~* t8 b" \" L7 X
. @, p Q! {9 J6 M: L0 k$ l) N然后你进入functextcmd.cpp并添加以下; S9 z- E; [+ q3 E4 r" G- b
' b/ O% z& L6 R; G; i8 b" z6 m代码:0 r* U/ Q6 v$ E/ ?$ X, t" K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 I3 L- m/ v3 ]
下面插入! R8 w1 j: R: B9 p2 ?# m( A# m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - d1 B; u- c/ u5 O( Q, s
) Z Y1 r- }; I( C然后你去* ?9 c; ]+ `6 c5 q
4 U3 d/ ~& E: x/ i* R0 O# c
代码:
' q/ q+ ~: ^; v) k1 B. ]9 q. `代码. D, y; q9 G, ~
BOOL TextCmd_ClearPropose( CScanner & s )
" F$ n9 R: f- g c2 s{% o3 o d$ Q# D5 X, u; |. _. Q# v% h6 [
#ifdef __WORLDSERVER
9 j7 N V( h9 c. u, a CUser* pUser = (CUser*)s.dwValue;
0 p: ~( x [! B g_dpDBClient.SendClearPropose();
& R$ W' n# O3 O0 g& c1 n! f* h#endif // __WORLDSERVER) j" I5 Z! m- v& z$ C' x
return TRUE;; D, A3 }* o! w. S( s/ i
}
# p+ _. ^: o2 E# E2 i下面插入
& d# j+ e6 C% Z& q JBOOL TextCmd_rebirth( CScanner& scanner )
3 [9 w, x( o) W2 } ?{+ t" c$ P# A5 z" z
#ifdef __WORLDSERVER
7 [3 _2 I- K% m; I8 Q2 l; DCUser *pUser;* f f, a" K& ^
pUser = (CUser*)scanner.dwValue;
( k" E6 i0 L/ Y+ @" Q# g# G5 ^& V; yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: l" Q$ k/ P8 f. i; CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! p! s# Q+ N" A9 f
else
4 B+ q8 A: ^* {) XpUser->AddText("你还未达到重生条件!");; z) j* a( b8 b7 C" T
#endif
: i! k9 e# i. V) T) @return TRUE;
: v* c- |: R1 m} 4 E# ]* ^7 L! \
; l' Z5 `6 b9 s- Z" E
; _0 Y- ^5 [# w1 ?: ?6 m( r2 B; | \2 u6 }6 \, ~/ q
( w+ \ U& y5 R8 {5 R
|
|