|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- ~0 @, O* Y$ e1 L _
/ z: H6 F/ ~* q" i+ U
Mover.h
4 m b3 C2 f4 d1 K2 `代码:" V. }( N( i5 h, c! g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& D# i0 j- _8 I/ f( F/ b ?
8 y) g2 r% n6 z& k# p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; @! h! [/ h0 G5 }* `( u
7 W1 J! u0 H, o. F然后你去mover.cpp添加4 z1 Z8 x5 B/ n4 E, P* Z, f* |
, a- L) k$ L. [5 |
代码:& h: E' q2 _( N! ~1 R" J2 v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ S. ~9 n" z2 X5 A; k
{
* X$ O5 m$ N4 x4 H#ifdef __WORLDSERVER, {/ K/ R- K& c4 x5 i( Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 B+ s# h `6 v, n2 ^8 e1 B
MoverProp* pProp = GetProp();
2 l6 F6 p& k- b" { if( pProp )! D; @: |$ H8 J) g B4 U
{
- K* \, g- s. |( S( E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 L- R! q, f' G6 [3 p/ [8 Q {
- Y. s: U- f2 M+ b! U) P7 J6 | AddChangeJob( nJob );
' N# C' s+ S/ s5 s4 E }else{
t- k* O+ l# w$ B& ~ s! G( E. M return;6 y Q, T. e% B! }1 `
}) Q! Q' ~3 H7 m
int nPoint = 0;" D9 I* j8 S5 V+ W* a
if( m_nJob == JOB_MERCENARY )! I6 f4 Y8 f b1 A2 @! Z7 |3 h
nPoint += 40;
! A- y m5 f: h else if( m_nJob == JOB_ACROBAT )) `( s, K! R2 l% u
nPoint += 50;5 t8 A% M! q! Z& H6 Z( e+ h& y Q
else if( m_nJob == JOB_ASSIST )8 {" I5 y0 u3 A
nPoint += 60;# z& ?# z3 v7 U- ]4 a, ]! Y9 C
else if( m_nJob == JOB_MAGICIAN )
2 ^2 D2 {0 M; T! N# a, H" Z nPoint += 90;: |8 z. ]: t& q) c% ?# f$ [9 l. `6 G" M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& \) ~4 B# U" C; O6 r5 R
nPoint += 120;9 K4 q6 ^3 R5 z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" ~0 \% U. T" t5 E/ |4 h. n x
nPoint += 150;
/ p* K: C6 W3 t2 f1 N4 k else if( m_nJob == JOB_RINGMASTER )
9 `7 [; L) R) Y7 f. b nPoint += 160;% X) T/ M1 r6 y# v3 V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 z; i' N# F7 K/ B nPoint += 180;
; X) {5 A G9 y; i2 N8 b2 T1 d+ a else if( m_nJob == JOB_ELEMENTOR )
k3 Y; V5 X+ y# c4 Y5 d) V nPoint += 390;
3 T- H" t4 f; b# b+ X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ [" ~& f) `3 C, F5 O3 y$ l: ]
nPoint += 120;1 a8 K9 G3 ?) [5 F% k) V: Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 v [+ R8 P! Q: p3 O4 u nPoint += 150;- j3 g* t& K; T$ h
else if( nJob == JOB_FLORIST_HERO )
4 W, ?* X0 C- C" i G nPoint += 160;
. O4 \! s* F, W$ E6 W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' B# N- f% ?: U- J9 e nPoint += 180;& I& X% |* v6 m7 I1 X
else if( nJob == JOB_ELEMENTORLORD_HERO )! g0 K" [$ L6 J4 w
nPoint += 390;
# g* w) G! m- ]- ?. N. M% d$ H* k1 h& F% M
AddSkillPoint( nPoint );5 e6 a) N1 r$ R. g
m_nLevel = nLevel;
% H& g; A, w) y6 g' {+ q
% s2 y* _/ X4 X4 x4 X# e SetJobLevel( nLevel, nJob );* J# s3 r9 ]' ^' L: @
m_nDeathLevel = nLevel;7 a C& \5 v: d* v: U% ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ e; q$ q7 Z1 L
if(IsMaster())) e$ ~5 |9 x$ L/ O' h6 n" ]& \; L
{
( L7 S8 }( z) \0 G( o, A int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) }" A; b3 ]& O M0 @8 o$ b& w if( nLevel > 59 && nLevel < 72 )
* {# G* i2 j+ Z7 g) W: Z* W dwTmpSkLevel = 1;
: J6 N- z) ?5 L+ \' v: a! _/ w; i else if( nLevel > 71 && nLevel < 84 )
S0 E0 W& H* `9 t+ R+ r dwTmpSkLevel = 2;1 K8 `; {; S0 R) l
else if( nLevel > 83 && nLevel < 96 ) r( M5 i2 r! S3 ?9 ?, s3 t; P
dwTmpSkLevel = 3;& s2 |1 y( [5 W
else if( nLevel > 95 && nLevel < 108 )4 z7 ^ u3 R) x$ ]) Y
dwTmpSkLevel = 4;
; o3 a% d: g# K6 K/ f0 q: z else if( nLevel > 107 && nLevel < 120 )
T; P* Q# }) h- Q# G) h6 ~- e& O; r dwTmpSkLevel = 5;$ P* P3 O7 K1 |3 N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % Z2 j3 r3 I4 q- ?$ T9 M
{
4 U! M7 k/ ^* S, @5 J: p6 _# _ LPSKILL lpSkill = &(m_aJobSkill);
# m+ o# }! q- u if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 J! a1 ?) B; b {
: G+ B9 G4 d" z. u/ K/ y( @9 |, n' M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 A- b9 e" N: I if( pSkillProp == NULL )" T; V: Y" G# I) L; U6 P# p
continue;
+ R* U0 K8 j4 Y9 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) c2 h5 j ]3 u6 \
continue;
- \, _; e7 {% X# v& S- r [5 g lpSkill->dwLevel = dwTmpSkLevel;8 R& [9 g- J5 H. e
}2 I8 d( v1 l2 h, G4 D8 n
}
$ g5 Z, \) S) _ c }
7 `9 D) D$ U4 l$ E H/ }2 k else if(IsHero())
/ u0 _( N1 \4 x3 F/ n# C {
' a; Q" K( x0 j8 ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
! C4 ?) ^. f6 d$ q4 x; b2 @ {
! V5 U) N" u% K+ c LPSKILL lpSkill = &(m_aJobSkill);/ d$ [4 p3 P+ j: X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ X- g- ^: F4 W( ~) C& g$ e/ S5 ^' t {9 s3 v/ m6 z0 H5 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 b$ j0 \% `1 {# v* ?$ A1 F2 _ if( pSkillProp == NULL )) w( M5 S, ~/ n0 `
continue;
0 Y2 P& P J0 b6 ?! D$ k3 _: | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; X: j4 k. C' `; u continue;* T- m7 D$ p8 f4 E) J/ j
lpSkill->dwLevel = 5;
4 Z/ s+ i7 N' g6 H }
; U4 M) H6 V0 z1 g1 b' y }+ {9 c' b7 d9 B$ \8 s5 |
}
. o, {$ r, [& {9 P1 `( Y* ~ else if(IsLegendHero())
+ r& B4 ^% w7 Z7 }( P {1 c1 o$ A, |/ v1 A6 \2 v8 ?6 r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; P* H9 q& L0 I% J( H0 Z( f
{ * n; X( d; s; Y/ {
LPSKILL lpSkill = &(m_aJobSkill);# u ~# w+ T* Z) V+ e
if( lpSkill && lpSkill->dwSkill != NULL_ID ), {; t$ U8 _1 |0 D+ A$ b$ {
{
- d. Q$ H9 m. y+ w" G& H9 e5 A! a8 n3 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 }1 o$ {6 t9 c( r d: ?4 }! T if( pSkillProp == NULL )
/ D% k% z1 p3 p6 n continue;
' _2 G; |& y7 N. N% ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ n3 p) d1 n* |+ v3 N9 x
continue;5 M/ {4 u3 X- z: ~2 ^& F t
lpSkill->dwLevel = 5;( a9 ^+ f- r6 C/ @: | I8 q
}; y7 \) r( Q m3 X
}8 B% }9 E8 X' W9 c3 U! Z2 e2 A
}
5 @/ l( D; ?% \1 U+ l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 Z' @- \3 P% Q M
if( bGamma )
- P: h' N2 t7 ^3 Z% T {
9 T8 `1 i4 \9 r+ ?6 S, [ m_nExp1 = 0;4 [: _0 E& U& K, N3 K
}
4 ]( k4 A+ Y" g, z! p; s% s
: S- h2 l. V+ c; ~: ^2 C( h ( (CUser*)this )->AddSetChangeJob( nJob );2 V) j3 M! M$ E4 C, ^3 o- W9 P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! _( ^* B, B- t
3 }1 E1 I2 ]' ]6 P9 J. g4 r( q5 `3 {% _: _5 ?, Z) W9 H
#if __VER >= 11 // __SYS_PLAYER_DATA
, q$ t4 `# c" g0 J8 K! b h, s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# |: F3 E' B0 s: r4 G( P, I
#else // __SYS_PLAYER_DATA
* `: d" O" \( j0 T; z, P& k8 d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! Z, [: l/ @( T, p" c5 h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 L" n- B9 Z' R& S+ N5 d
if( m_idGuild != 0 )
$ [4 e: c( k& Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ u* Z& n A1 I& I. x4 T#endif // __SYS_PLAYER_DATA
, h T1 Z( G4 _1 E1 }/ F$ q2 Q SetHitPoint( GetMaxHitPoint() );2 u: s6 F* f; n! Q6 ~- B7 Z1 s
SetManaPoint( GetMaxManaPoint() );) L' ?. ^0 p* _3 i+ `7 C
SetFatiguePoint( GetMaxFatiguePoint() );1 s7 F( ~' V& q$ p/ q7 z
if( nJob >= 1 && nJob <= 4 )$ ~% R& B1 N- L8 U
{
7 B- K- S1 a7 z% c m_nStr = m_nSta = m_nDex = m_nInt = 15;, X" H# [. O! U# g
m_nRemainGP = 28;/ x" S4 a t/ o) J
} n/ ] @' u7 V4 v$ w
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 g7 Y0 |$ \- h% T {, ?3 |2 \6 Q* p1 \# f# `8 O
m_nRemainGP = 118;
. z9 r4 X6 e7 Z8 J$ O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; T* C" ? T- O4 y1 n m_nStr = m_nSta = m_nDex = m_nInt = 15;( |# J0 | ^7 _* f! b
}' w( h2 H: _! a: ~1 U) u: v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( R ` D( E0 \ {
8 t; f- U+ k$ p: S' C& x CItemElem itemelem;4 {; h+ P6 n: |3 `2 f
itemelem.m_nItemNum = 1;% q, P8 g' [ ^4 b7 E% ?) w% U# C
itemelem.m_bCharged = TRUE;8 @! d+ l7 a& i: K
BYTE nID;' i' _- M1 A. R$ f
3 J3 ~) n% s- ?2 ?1 z if( nJob == JOB_MENTALIST_HERO )' [" \7 J, O! S8 {2 Y$ l6 L+ P. \' a8 e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( ?3 L9 D+ Y @ if( nJob == JOB_FORCEMASTER_HERO )
+ k* a* E/ I! O: W% r* V1 z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ t& C* P |# [
+ q- h1 z# C, J& o0 G& m9 G ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 p# s( K% |4 n) ]) L' p% @" a }
6 m( {! o+ o' G& M' D! \. f3 }3 a7 b* Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: {7 r. q K* i; s ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& K: `3 _; V% n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! ?7 e# |" H6 m W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( B: w9 k7 X, K+ P2 r" s5 G" J# O. G
( (CUser*)this )->AddTaskBar();*/2 j* i- ?- m5 F8 P* C) e* t6 x5 T! ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 a+ W$ ^, `5 A$ O! C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? O( n7 i. \8 w! r* r- [: k
((CUser*)this)->CheckHonorStat();
- i7 {" [# |+ a( L) d7 S ((CUser*)this)->AddHonorListAck();0 h8 n! s1 a: |" j
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 ] \* h% }( u( ~8 y( b' b# u3 S
#endif // __HONORABLE_TITLE // ′Tà?
2 e9 m/ p, l. b9 Y) D2 [ }
3 c, `% ~, D0 Z! p6 y- X" w: p#endif // __WORLDSERVER
) I T/ ?/ P Z. d0 N}
, E u" d" Q9 ?7 \* p
: {/ v9 m. t; V. x1 W- w然后你进入functextcmd.cpp并添加以下
* A9 y4 ^1 ?( U6 ~. L; O8 x0 {; e+ y6 I6 K1 r
代码:6 S6 l/ e, Z+ a) M4 r0 v1 R/ \. b
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ [' i" d( j- x0 S4 j$ y! G8 j" ~
下面插入
2 U2 q! m8 i( K/ J& W3 AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 N0 ?: k6 u3 v" s; p. t: g! F
' ^; ?- z5 h+ C9 u8 V
然后你去
- g7 @, j& y% s- Y; `: Q5 ^& v- v0 D* V% X
代码:
/ Z% X# V( v- d代码, g) {( ?& Y6 [# x8 x
BOOL TextCmd_ClearPropose( CScanner & s )
& d0 @! b0 `) |{
' \+ T3 [& `, I#ifdef __WORLDSERVER6 U( [: q; K" N% T# T- x
CUser* pUser = (CUser*)s.dwValue;8 r- R& n. m# f X+ P& D) q
g_dpDBClient.SendClearPropose();
" j! v1 G; x; a% f+ h; f; g#endif // __WORLDSERVER
9 s8 t+ l3 l3 [3 I7 O0 R return TRUE;
- M! ?( a8 f7 X/ B1 _}
0 g' K0 ^8 V0 {3 `) n4 i& p下面插入: Z8 j0 X" R* [; b# r- n
BOOL TextCmd_rebirth( CScanner& scanner )1 m, `2 I1 t9 l' d9 Y4 o" m+ g
{1 t) c$ R6 V* E, i9 u2 L* c9 [
#ifdef __WORLDSERVER, \1 l- ?3 C! G" C: z9 i! O
CUser *pUser;
7 @& v4 Y* ~8 n' Q) ]9 ?pUser = (CUser*)scanner.dwValue;
# f/ {3 d' u2 m9 ]5 U: nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! L" o/ L( f( e- [9 t7 m: b
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 e6 U8 t+ l- F/ C y- w* [# ]
else7 P8 F" N- J, w$ t4 c; s
pUser->AddText("你还未达到重生条件!");% j6 B+ i: G+ L
#endif' j4 v8 ]3 d9 ~- [1 a( w; `
return TRUE;( c7 J7 u$ I- d9 B k1 G
}
; |, R! e- F+ E" W- M( J
8 d" w8 Z8 J% c3 a. l- ^. ?7 l( Y+ [9 V
0 B7 k2 @% Y% p E& h+ ]: b8 j0 w6 W
6 V. A3 n- l$ P7 y* {2 i( e' @
|
|