|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 r* i, c, q( x0 S6 u7 C
7 H* M# l( N4 J' ] ^/ IMover.h
: |$ u1 C% v0 T2 b4 f/ V# F* ^5 e代码:* F& d2 V. o s4 L& \3 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# J& H5 i9 m7 ~
7 T) A& j, b6 P2 k3 K: Z4 h0 {! M: B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# g" V7 ^! a' T; N, d' k6 z' b/ C) @* b5 r! C6 E& o
然后你去mover.cpp添加' x/ q: L2 Y: w V
, e* R. s5 |7 z9 ]0 L
代码:) h2 M+ q5 L& J: E9 D- o" @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); k& m2 v8 Z7 b- ?& O) Y) K
{
. G1 p0 K0 D7 R5 @: J#ifdef __WORLDSERVER9 P/ j( A5 q+ `) v; ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 s' w. o; t5 @$ t. h# Z M MoverProp* pProp = GetProp();
. Q% x0 p* [5 c# e8 l6 B if( pProp )9 ?. V; E3 ~- C8 X# t4 l
{
6 g) M; X5 y, g* K* q8 Q; F if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 z2 o) l; E2 O- o
{
# W' X) i) [$ p2 D0 w4 B' E( f AddChangeJob( nJob );; i2 M$ i2 K2 y0 m d
}else{- D" ~& N/ `* u9 F) P
return;
- d2 y6 P- @ E2 h. C# V- n; \ }
: T) u Z" E0 Z" g* \/ e int nPoint = 0;* L6 }) f K4 Q6 c& c4 ^
if( m_nJob == JOB_MERCENARY )
9 Z9 E2 n K# i( _: a, g nPoint += 40;( X, r4 N, G5 ?( L
else if( m_nJob == JOB_ACROBAT )
4 F! H* X+ A1 J nPoint += 50;! k( y$ C, e2 j3 ?( [' C
else if( m_nJob == JOB_ASSIST )
' w4 S* i- A) y" C1 V nPoint += 60;- ^- e: y' A. }) j8 F! O6 K8 x
else if( m_nJob == JOB_MAGICIAN )8 z' L# Q- p4 L
nPoint += 90;5 v2 `' z0 Q9 F8 A @9 G
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 J* ^" b$ @& O; Y nPoint += 120;4 n' z+ n" ?" S- B5 C- k m# b; ~, R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ X v2 C; Q! ^: d6 X nPoint += 150;- {2 B7 x& `6 U7 E. i' _: n W
else if( m_nJob == JOB_RINGMASTER )0 W: [& Y! w/ Q: b0 B9 S
nPoint += 160;' d: @7 y* @# Z# E7 m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); j" o' F6 u1 e. l
nPoint += 180; z/ k$ k) y4 b
else if( m_nJob == JOB_ELEMENTOR )
. q3 M* E1 }8 z2 N nPoint += 390;' d6 D5 @( o& E" r+ {- `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; S' G) O& e9 N1 X nPoint += 120;. p2 \: W( l, {) `8 ?( `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ A ~8 P. [1 n ^! N8 M; s
nPoint += 150;! M2 J9 I* W* K. F4 [
else if( nJob == JOB_FLORIST_HERO ). ]- _; }9 X% ]+ R$ \ X
nPoint += 160;
; M4 |+ B' I# z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): t+ Q& l( ]$ F, Y* K5 y
nPoint += 180;, ]! e$ V& A( ]9 B+ X, o& w* `- k
else if( nJob == JOB_ELEMENTORLORD_HERO )4 U: {2 l ~2 c# A
nPoint += 390;
7 Z. b- d; L( l: U2 `5 w- [6 d2 ?( d! _, h
AddSkillPoint( nPoint ); v) O1 W8 B n/ p4 p& l
m_nLevel = nLevel;& |; b% o" u) Y- D4 M! h5 ^$ J$ h
4 V" u- d9 Q' b4 p% I1 L( `
SetJobLevel( nLevel, nJob );5 N8 j# l3 F( C" u3 b
m_nDeathLevel = nLevel;
: |( [4 v* o- }+ J( w#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! T* j* A( x5 p0 ]% b7 O% s5 q
if(IsMaster())* Q; [8 Z5 d, J3 k- h* |: m% Y
{
7 b& K2 N. ~" m2 o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& J' Z3 K2 |9 h if( nLevel > 59 && nLevel < 72 )7 I3 y$ [& X! S
dwTmpSkLevel = 1;1 D6 w3 y2 z. f0 ^
else if( nLevel > 71 && nLevel < 84 )
% u, S9 j6 ]+ K0 d6 a dwTmpSkLevel = 2;- d0 J9 B5 I) B
else if( nLevel > 83 && nLevel < 96 )
# u! B3 @& F+ C- b. L* k5 t L dwTmpSkLevel = 3;
2 M/ F ^: Z1 {5 J# y! c2 y else if( nLevel > 95 && nLevel < 108 )
* p8 `- L$ ?& ^6 e* S( y& E3 }" f# m: T dwTmpSkLevel = 4;- T2 C8 A3 t4 @# v& r& p
else if( nLevel > 107 && nLevel < 120 ): A0 o) ~- K( E s* R
dwTmpSkLevel = 5;" _% n" N0 n. z1 t, \6 I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! [8 u4 r; S- w {
8 g! d# `# [3 k" p' ]; m5 d LPSKILL lpSkill = &(m_aJobSkill);' L7 L! Q- B3 N/ p- |& H0 e1 x
if( lpSkill && lpSkill->dwSkill != NULL_ID ); h9 E: X& d) D) m, c% Z! E8 ~; ]9 @
{
5 S7 k$ V# [5 f! P4 U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 b% j3 I$ X) j6 b
if( pSkillProp == NULL )$ B. a9 [2 n6 F1 K% }( h: v
continue;9 F2 S" }3 e4 F8 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 |0 O5 ]# f, ]5 c X7 T/ T continue;
' ^' J4 _- C. C0 L: ? lpSkill->dwLevel = dwTmpSkLevel;+ E" m2 \, b$ l- H* F1 z! u
}: g0 F6 m: ]- C* s& P
}
7 r1 G: ?" G: Q2 y! ^! L }& L' D7 @& v# e' B
else if(IsHero())! I; d& ^4 n/ U" ~$ H, K; K
{
" E* @( j7 a' |) I% o( k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 q* X# g- x4 c& _+ i
{
, X- L6 `% ]: g6 D; S LPSKILL lpSkill = &(m_aJobSkill);4 N5 g4 O7 T6 S$ F `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, y" j1 a) _! Q {+ u4 X! M+ c# F) Q$ M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 M9 Z3 p2 P8 T if( pSkillProp == NULL )7 s ^/ {9 J0 @( |0 A7 |
continue;
2 N/ g3 j0 G4 b; N: r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% g, T# R: G; q/ U9 P* @
continue;) N9 z1 N. i5 C& b- P( E( C
lpSkill->dwLevel = 5;
- {7 ?, y$ r6 `' }1 W/ c/ L }+ b: F+ y2 k# H- M
}
Z4 P# Y$ X1 Q0 g }; J; M/ y0 C. w( I: `4 R1 O4 a
else if(IsLegendHero())
; R0 K0 D# k5 k {
" p1 a! E& `! U2 ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) U% p4 ] \8 e" v: E; y4 r6 Q& g
{ 0 j, w2 Q" `! _$ v' Z( Y3 u
LPSKILL lpSkill = &(m_aJobSkill);* ^, B) h% x; `2 \) c- V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: k1 b" J2 V( z {
/ t4 ?/ W. a9 H* M1 `: ?- ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 Z7 [$ e! G+ Z- W
if( pSkillProp == NULL )
# k& S* {, M7 W: M/ `% T continue;2 |8 n% c. x; q1 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ X3 u* p+ X' \( K6 c continue;
, ]- F4 y- j4 l9 D) ^3 @7 R! h lpSkill->dwLevel = 5;
! O9 T. D( _3 i4 _- y! k' r }3 T( q( t u$ G" w) n3 [# c8 S
}
' d+ d8 i* S- e1 g }
: u& K1 u$ X$ G7 P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% G0 p- w8 O! S! ?8 G9 S
if( bGamma ): r, ?6 _0 S5 l3 U6 t1 e5 q' F3 Z
{5 v$ T) a3 s9 \8 t( E i
m_nExp1 = 0;
# m& B( j" s4 t: ~6 F9 ^ }
' O7 i9 z4 A% u0 J b1 W+ z" h! k' _; a* _1 ]1 P4 _7 D# w
( (CUser*)this )->AddSetChangeJob( nJob );/ a e" @8 W% j x0 o, J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ c5 I- i. l$ e/ ~6 {. ?- t# |8 N0 ?% l8 k
4 `0 V' b) A3 [& Q+ {0 ^
#if __VER >= 11 // __SYS_PLAYER_DATA/ y+ O5 _3 `' W& t: Q9 K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 A# z- Z2 T# e8 ~7 b O
#else // __SYS_PLAYER_DATA' }$ u; I/ ]: ^* o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. N2 X$ o; f0 f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 C8 H0 z" Y% _3 z if( m_idGuild != 0 )& o; M( t2 B8 }9 \
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" C& Z) j+ N5 X6 ]5 }#endif // __SYS_PLAYER_DATA
+ n7 H9 r4 t2 F; {+ A% A2 d) g- ] SetHitPoint( GetMaxHitPoint() );
5 l# G0 E) K- D+ F SetManaPoint( GetMaxManaPoint() );6 e. d% ]9 f4 c6 m. e, `# C
SetFatiguePoint( GetMaxFatiguePoint() );
+ r4 P( m* \0 h5 m$ _ if( nJob >= 1 && nJob <= 4 )
# Z0 X7 n2 q0 I3 a {
0 S$ l: w- Y; ^' T* T: G! F9 i m_nStr = m_nSta = m_nDex = m_nInt = 15;, J5 M. O2 G0 R4 T
m_nRemainGP = 28;
# Y* q0 V8 b, D5 t j! a6 z }
% Z5 I- x5 B+ t9 h- c; e- ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' R6 S- K& A7 P+ g3 v {
/ ~; b3 o! K; O4 }. V m_nRemainGP = 118;
% N0 v: k" s" | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( h9 I" w0 B, M m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 r3 [- A$ j$ a) Q o* U( M }# g# j! a( P/ W( d( J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( K# @* n. ^. g1 C5 G6 Y
{
' L6 I$ O$ K2 Q9 F CItemElem itemelem;/ I2 D0 q" u( m$ f/ w
itemelem.m_nItemNum = 1;
0 f3 |& e' G \' p/ h, @; q itemelem.m_bCharged = TRUE;
1 q# t, Q( N4 O( M BYTE nID;# }8 I* o4 d) Z/ U* W8 A4 v
H$ ]4 W; s- @9 X
if( nJob == JOB_MENTALIST_HERO )% N0 K: O0 ]8 m* z4 e$ r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 e! ^( h2 v0 }9 u
if( nJob == JOB_FORCEMASTER_HERO )
6 @4 r* m* ]8 m! h, j7 ? itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
D& r9 R" Q5 [/ }, c$ s" s: K0 B
( ( CUser*)this)->CreateItem( &itemelem, &nID );) \# L l9 ]) b7 M' f+ X4 d" Z
}
. m* C1 \% X e7 |" Z7 q0 [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 F- l9 @" }7 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) H: \' @* B5 j, k J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( n" |' F, m: M$ K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 B/ ~5 e' m8 h3 _
( (CUser*)this )->AddTaskBar();*/2 i0 K% R( e. e; l7 W9 D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 U3 h, k; V/ v#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( H2 c0 s- G4 u ((CUser*)this)->CheckHonorStat();, c8 A K& w. ~: A& g9 [
((CUser*)this)->AddHonorListAck();' E4 b! {- x( Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& }# W& f, b; b6 j- V6 u#endif // __HONORABLE_TITLE // ′Tà?$ ?* r( l2 ~* o1 U# m
}
% ?8 I+ |1 p$ g8 C0 G) L- G# o v#endif // __WORLDSERVER+ I ~$ g9 m1 u% ^/ D
} 1 v" c. _5 t4 t/ U% Y. z! d9 R7 O
% F1 P& p8 I }3 Y& ^' P4 m然后你进入functextcmd.cpp并添加以下0 M) c. L3 ^: K8 G$ s/ @
Q! ~6 R/ v9 i! r0 L
代码:. _0 N" x( W" W! P' j9 V: w7 I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 S% p* B# c# i( X
下面插入7 m* R/ ^4 V0 w( @: ^% j1 [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / z' k; t: ^# y
( `% \9 G8 _2 _* |, t3 M$ G; M然后你去+ m# t- ]3 b- V( |1 j$ z1 g2 Z
2 _; D& H6 l% B) Y, c代码:
1 U4 o d: r& M) p7 C代码! \$ b& S8 O( W4 Q
BOOL TextCmd_ClearPropose( CScanner & s )
" ^4 o5 J! T& j8 G' X8 L{
" U, S5 D2 o4 g/ |; h2 H#ifdef __WORLDSERVER
3 A. w a7 j; l& C CUser* pUser = (CUser*)s.dwValue;
, P2 S# u% U' k g_dpDBClient.SendClearPropose();
& U* t. E) l3 J; y; y6 n$ X U#endif // __WORLDSERVER1 v3 B* ^7 |( s# v7 M% e
return TRUE;
2 g) W% M9 d' y: J}2 w9 ?6 @: x: t2 ]- v
下面插入
" e% i8 I2 w- h1 y2 Q$ |BOOL TextCmd_rebirth( CScanner& scanner )
; f4 S4 ~+ K# h+ @/ O/ q2 y+ \- ?{; |0 b7 j$ q% d- G2 ^/ n
#ifdef __WORLDSERVER0 L& h! T$ d1 ^7 z
CUser *pUser;- n3 f y5 b7 E* \) L7 r( j
pUser = (CUser*)scanner.dwValue;
" T* k" ?& t3 ]; dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 a$ U! F' c0 I( U# }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 Y/ W! N4 M8 H" ?' I2 [2 A5 m
else& r8 w- s/ i0 h& v
pUser->AddText("你还未达到重生条件!");
) g! W! @3 a% C#endif* {: O8 z2 @: N1 ^8 t" m% q
return TRUE;5 O4 N) L' G' \" `( ]$ I$ a
} " v: q$ [; g9 z2 z7 k8 e
1 {8 @* D4 `2 C6 w) ^/ P
& {4 d2 O& R" [/ o4 C% c' g) [) X. [. ?0 y9 w' w' x7 ~9 L
, {; u" {; K/ q |
|