|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
R. p1 F- N: a2 C" Y+ E
* e, e2 M# b3 @# z+ F1 M6 |1 n; ~Mover.h
2 p0 L: o" m. d代码:
7 @3 w2 @+ M! A6 a8 a( n% ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( a6 F; V ?4 r; g2 X5 d
: ?2 G+ E0 I1 C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 `7 A% \- _7 k7 d! G
: w' E4 s( J9 O
然后你去mover.cpp添加
* B2 v! d0 w* F1 h: P/ m" Y: b1 W* n6 k. e b+ |7 q" D8 l( M* s
代码:
# X6 _! C" B5 L7 h1 wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. }' L; f, C' v' y# X{
* {; Q3 k/ i, L# @ f#ifdef __WORLDSERVER
3 [! ?) m* i$ q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: Z- w+ V N" Y# y4 E% i6 ]! W
MoverProp* pProp = GetProp();
" R, s3 y0 O7 V; R% o if( pProp )# |( {& E1 p7 k, O+ r0 |0 y! W
{3 g$ D9 L- {# W
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 @ t$ V6 g9 U8 |; F' o
{$ ~2 u! {0 H2 N- g6 d) g! X
AddChangeJob( nJob );- u6 ?( w* O6 @5 y$ A/ k
}else{
, _2 W: O! ?7 }& c return;
- _& q* z8 W. c; d* V& k3 j, I }& F( w. Q8 `' i( r- U5 L
int nPoint = 0;
1 P/ ?4 |: Q- ~+ W& Z if( m_nJob == JOB_MERCENARY )% S$ G+ y& ~7 \* R' h
nPoint += 40;0 e4 Q- U; t) D( Y& j' E, Y
else if( m_nJob == JOB_ACROBAT )& R) P1 i1 `% _: J
nPoint += 50;
9 F8 q& [. O6 d else if( m_nJob == JOB_ASSIST ) v" @( ]5 K4 x$ C1 y- j) I# N
nPoint += 60;
5 J+ l- |$ ^ }0 |+ l: K else if( m_nJob == JOB_MAGICIAN )8 k, {( c0 J) R% m3 k
nPoint += 90;* j% }' B$ @, @- W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& `$ x% |4 S7 |0 _
nPoint += 120;1 {% ]& {9 S4 t* T, u- R$ w' Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% g$ E1 ~4 M# M5 X) \ nPoint += 150;
' N6 j: Q3 r9 C0 Z# o2 b else if( m_nJob == JOB_RINGMASTER )
4 e; X- ?( y* X, C, o nPoint += 160;
, n: I, M! c" S, m. I$ `% E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 ~& p5 v; N: m" D/ v, c nPoint += 180;- ], d$ J- z; I1 @& J5 c9 i, u# g( T
else if( m_nJob == JOB_ELEMENTOR ): }( |2 ]" }0 E) l* B1 n8 k9 j
nPoint += 390;
i" a- a9 S" l9 t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" Y5 A$ V) |/ ? nPoint += 120;4 s5 k. P( \+ F& {- d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* ^5 W# U4 B, [7 B: i3 \6 C nPoint += 150;
& S6 Q4 h' M( |% T$ B5 P2 b else if( nJob == JOB_FLORIST_HERO )
l- P6 Z4 K4 H8 B nPoint += 160;3 r t% s4 z2 A' w5 q" S2 @ M$ ^: K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! o/ F, f. G6 l O
nPoint += 180;
3 e! w) F1 K1 }0 w else if( nJob == JOB_ELEMENTORLORD_HERO ). ?0 p( K9 H# s Y8 { \; k
nPoint += 390;
) r% H4 z& ], e( @2 S' F$ `& v0 c: X5 q3 A1 B- T
AddSkillPoint( nPoint );6 Y+ l# ]0 C3 U, f6 X- O
m_nLevel = nLevel;
% c: A) ]! Q" X( S9 f# m- X! K. T" ^1 m4 K( E8 {
SetJobLevel( nLevel, nJob );
" U+ ?# m, x# H4 ~6 L m_nDeathLevel = nLevel;; i5 Z& |2 ^$ }( i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 l( i/ R1 Q' I+ R, t( F if(IsMaster())
5 V( ]) j6 T: ^/ I: r {- l1 J/ Q: G# X5 i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 |+ U) `9 Y' z, V6 b$ T if( nLevel > 59 && nLevel < 72 )
) H/ S1 t K) u; | dwTmpSkLevel = 1;9 F& z5 G$ j: A; ^- J, o: A
else if( nLevel > 71 && nLevel < 84 )
: u( t% d" U" Y! q$ n0 f1 s& ] dwTmpSkLevel = 2;( F% f* y, m3 ]! t5 h) R
else if( nLevel > 83 && nLevel < 96 )3 |" d$ S9 F1 e# E1 ^& z) j
dwTmpSkLevel = 3;
0 a; z2 L. \0 t/ w7 b0 V& p else if( nLevel > 95 && nLevel < 108 )& L' ?( {6 n* g. n
dwTmpSkLevel = 4;
% t K) v, L8 O8 O) s else if( nLevel > 107 && nLevel < 120 )
; c( o- R9 h3 g+ w dwTmpSkLevel = 5;/ Q) N% M4 P0 R7 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : H6 V+ F3 j! t1 w
{ 2 N8 ~" D2 A4 i# j1 ]8 ^
LPSKILL lpSkill = &(m_aJobSkill);5 t: U; y3 R) }* q1 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 L+ B2 r+ t8 D. K0 j: ] {
( W2 H6 F: l! l7 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 e9 w# u8 ?3 f: U* r7 n
if( pSkillProp == NULL )9 R) D3 V* K) [$ y6 K3 {4 D6 J/ T
continue;5 z+ W1 [5 Y+ i9 m) ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' P0 o" ~# A6 B( I6 e; Z8 f6 N, m O
continue;
& ~1 b) @& {. W& k lpSkill->dwLevel = dwTmpSkLevel;5 ]$ c5 Y: N8 C$ z* f" J
}1 n! n! l) H; f/ t0 x5 l2 ^# U' J/ S; y
}3 o y6 M! W, d. D9 ^9 M
}
# c3 Q9 ~- n* e3 a# |/ o1 I6 a1 f else if(IsHero()): q) i% g$ s5 v* O* f
{3 F7 k/ {" b2 \1 I) o* _2 b+ K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 ^: X) h- D+ m/ F { 9 ]9 Z* e0 _+ `
LPSKILL lpSkill = &(m_aJobSkill);
7 u/ _7 j6 g3 h) T% @$ H& T if( lpSkill && lpSkill->dwSkill != NULL_ID )3 o; P9 c( B, D
{ ~8 i& A, _3 ^% e" x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; }- m' y8 M5 N6 _; G% w5 L if( pSkillProp == NULL )2 ]; D: K y, n$ o7 g
continue;
+ F6 I+ \6 ?4 Q p* @+ f& { if( pSkillProp->dwItemKind1 != JTYPE_MASTER). w. L8 t. L8 L o1 p* z& L
continue;
+ ^" x6 N; ~' ^ lpSkill->dwLevel = 5;
+ v% }' i; N Z; |8 J- Y# Q/ }& K. A }+ H' x1 U8 o. I& H
}; J, N& V0 T9 Q4 r' a
}$ M6 ^2 B! T$ b& Z5 b/ b( D
else if(IsLegendHero())
- l. ~5 j- w' n+ O) {+ X8 R {
v* Q) L; [ u for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ c! R9 F3 Q' j; g* d { 3 ?# a& E2 L( [0 u) F& g' o- U0 D3 N
LPSKILL lpSkill = &(m_aJobSkill);
7 X$ V3 Z9 i8 t: r if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 }4 X6 o- [6 ~ {0 `+ F; R$ I! Q! C* _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 l5 k; [1 H9 N+ \& U if( pSkillProp == NULL )/ D+ J" U+ p- b1 S: I) S4 B
continue;7 {) q/ g5 w M" t, |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! g( \3 t4 N, _+ `) ]3 a; F continue;+ {- B9 ?: J4 T3 r
lpSkill->dwLevel = 5;
: y9 u+ S( Z0 }! p8 } }
! k" ]" d# b9 N- W3 u% S4 t8 w, f# B7 T( { }
0 B! F1 n$ \/ t6 S" q }* @! Y) R$ b; R' v& _7 D8 X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# u0 X( I. o- E' c( X if( bGamma ) M$ h+ \ c; \, a
{& q8 N9 j/ `4 \( \+ d- t( t; U0 s" o* V
m_nExp1 = 0;2 `! w" J' F8 X8 i* x, j
}7 \% A# }( F& s- J3 E! H2 U
: Y1 k3 M8 Q% C ( (CUser*)this )->AddSetChangeJob( nJob );9 B. S8 R* W, E$ S. [7 I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 Q% f1 ]' j+ o# X( w$ Y; G5 n
& O8 R( k3 O5 x) ?' `! T
" T2 D' E- z" r8 t [
#if __VER >= 11 // __SYS_PLAYER_DATA, d8 T* r5 o' o9 f' n" N2 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& k$ q/ }( x p" @, F& k) v) U
#else // __SYS_PLAYER_DATA
g$ |6 A* H' J, l* R& `* {4 S g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 D9 h8 R; G# J# _) _) T# P6 w+ o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& M2 q0 }4 y9 e# D8 \6 {! W
if( m_idGuild != 0 ). Q. b. @& e" n* H, _" V
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( T0 e& g q# h6 b3 k: t7 K
#endif // __SYS_PLAYER_DATA* \% R# d: {3 ]7 B
SetHitPoint( GetMaxHitPoint() );
7 Z- H4 k& P7 r6 ^( C; p& n1 u SetManaPoint( GetMaxManaPoint() );6 [9 G& X1 A6 Y. v
SetFatiguePoint( GetMaxFatiguePoint() );
3 W# F# _8 t% G' k8 M; C if( nJob >= 1 && nJob <= 4 )
. s1 e2 D& G) K5 u {8 ?8 f$ V/ g" e' H0 J. ~, Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 e3 `: _4 D8 }7 G& T8 J+ S: I
m_nRemainGP = 28;
8 X5 }% e" B/ o- a1 m/ S } P4 N* _9 m5 k( z5 A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ k" s- S! Y' |6 o9 q y {( ^# d$ `0 O6 G; a9 _0 c8 Z
m_nRemainGP = 118;
% o9 T$ ~+ `5 b/ M( b7 I9 B2 e //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 d7 ^+ U! ~2 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;" }/ @' R0 I4 n6 u9 [7 a
}2 h5 l' z6 y1 E& {* F5 z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 e( a, I6 H1 a* y+ h {
' o8 \9 O0 v. z$ B6 | CItemElem itemelem;
. {: \ e/ I& R' v0 R/ {8 k itemelem.m_nItemNum = 1;' e3 Z3 U g- ?" d7 M! ]5 i) }1 ^
itemelem.m_bCharged = TRUE;. @ A$ a! P( J* O- h' H+ O
BYTE nID;
4 U" p5 }3 @3 O. C, v$ `- @2 W" h( K1 h/ \; s- `' w- |
if( nJob == JOB_MENTALIST_HERO )3 u+ O+ U# W. J3 w1 e$ e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' E. L: {; x/ {1 s5 Y; p4 n6 C if( nJob == JOB_FORCEMASTER_HERO )
& l; @) O0 j+ l# N7 i+ B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% y6 o9 k: Q% g( \2 T" V! F4 `
/ C2 c( t$ R: M7 g* W$ U! \$ S ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& P. O9 Q2 ]) s }
0 L e; A6 b# J3 j2 Z0 o y* c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 W% p9 K. y8 C K4 d ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# o9 S8 R3 h5 Z# i; @, S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: k+ n- ^, P3 w! |% C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 m+ b5 m# T2 m# S. |# J ( (CUser*)this )->AddTaskBar();*/5 A( b+ e# A! i( R- c( O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 @+ W2 q: Q: p5 y) ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: }% `( h, x; k, m, D ((CUser*)this)->CheckHonorStat();: O! E7 H ] w
((CUser*)this)->AddHonorListAck();
% |, |8 i7 s4 B9 x" U" Z# a: J g_UserMng.AddHonorTitleChange( this, m_nHonor);1 S- x# I; o$ _. ^9 @
#endif // __HONORABLE_TITLE // ′Tà?
+ b! D% v/ ~& s. ~1 i }9 ]+ o4 p& T9 u# S: R2 k% `
#endif // __WORLDSERVER$ q6 S2 s W4 s' {- a
}
" [7 L8 @; t K5 k! b" \) H. G7 y4 z4 E* T! E) v: m, j
然后你进入functextcmd.cpp并添加以下
! K; s2 b- V$ g* n8 T1 O3 J, ]$ c
! {) x4 [$ y6 V代码:
0 t6 b' M5 F1 z9 B2 |8 P- V9 zON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), V0 @3 a' _! h" g6 p9 O
下面插入! U, X& G7 H, Q7 @9 H) U: v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! o1 M5 C( u$ ?$ y/ K: }2 t1 E# w$ w" @
然后你去3 |; `" F" `- m6 X
0 a; X* e, s8 y* ~2 e代码:
. a$ g$ e R, `9 l代码
5 c" F% m$ r* \; \) T- fBOOL TextCmd_ClearPropose( CScanner & s )
, `* v! s9 _3 S& m8 w |0 e{3 P; o8 ?; T2 H* H) @2 e
#ifdef __WORLDSERVER6 r% N* @. v9 F! m& @/ a
CUser* pUser = (CUser*)s.dwValue;- q$ u0 R- e- l! L
g_dpDBClient.SendClearPropose();2 c' W. D5 J$ p8 @+ A0 ?
#endif // __WORLDSERVER1 ~: T5 ~# @; K N! _( \
return TRUE;
u8 |, b) Y3 E! y- e1 B4 I- O}
# S1 j6 q( J4 Q/ P3 h Z' N下面插入
% t" C S5 \8 S) B1 ]: wBOOL TextCmd_rebirth( CScanner& scanner )- |; }( f" F3 h* R6 Q9 @7 w
{7 ~% W+ L' I0 f: d/ e
#ifdef __WORLDSERVER
0 x: M5 ~( y* e) ^CUser *pUser;
) T& P8 n( v/ q: T* EpUser = (CUser*)scanner.dwValue;, @' [8 l3 Z0 v. O' k" R) n2 d
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, @/ G6 a. u ?7 ]8 FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ w, G, ~* R/ telse
# r! v8 f% M5 x) \pUser->AddText("你还未达到重生条件!");
/ e; r+ B8 ?: @1 R6 @#endif
# M$ [. N6 B/ }6 ?return TRUE;% ^4 |/ P& X' a8 T& S% v) }. v
}
# h- a( v6 R, h% L9 t& ]" K" r9 ]. U% r$ n9 P% Z
& K# D( @; L+ T9 v# I, |2 }3 \+ Y* O" \ P. F" Q
0 r8 E& L( d1 ^: _; R( |% n0 I |
|