|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( d$ ` ~; `3 c7 L1 }( V. a
7 A# t7 N( Y" R* y/ N; P
Mover.h
5 E" u% F( Z# a# t; a3 Y# N代码:
* ]1 o+ U. A: Y% P" }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) I& O4 G: q, R) @$ B
4 l/ U# G# R! V# j; w8 X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! u. t2 v9 l5 [( @% d
" |7 a l, m# m" F4 a' m
然后你去mover.cpp添加3 G! H* Q j1 Q* b, ~) Y! E3 S9 ]
% A! h [# O$ f$ K代码:( O7 u4 K% x! e
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! ?. C% `4 g/ E! A9 s! f
{
8 p9 b6 b' M, C4 K0 A/ G1 G3 u#ifdef __WORLDSERVER) G& ?% c( t9 T9 E, g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' e, V7 A, ?: ^9 Q% A) M% f' C6 d) \ MoverProp* pProp = GetProp();
. u2 D, \/ u9 Y0 V8 e, s1 ], H/ | if( pProp )
/ a% v+ q6 p: k; `% R3 ]. G {7 x% c, G% A/ _8 d" A. N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 ~- T" \' o3 |
{( l+ ]8 t1 G& Q; r* x
AddChangeJob( nJob );. r# P# B0 @& f' o$ a
}else{, z( v4 O N& u& w
return;
1 X K1 e( u! y- Q- x- ^& u/ t }
% P0 L' P, U0 X4 P( @& E int nPoint = 0;
$ m6 n; V& K) B/ F if( m_nJob == JOB_MERCENARY )% L2 G G7 t" R9 m
nPoint += 40;2 O0 r4 ?: q, B* ]5 x1 k' p% E6 c
else if( m_nJob == JOB_ACROBAT ) E; w8 ~( x- f$ a+ J- O [
nPoint += 50;
, k5 }4 I5 h, Z else if( m_nJob == JOB_ASSIST )
7 \; f6 g q# c; e/ A1 _2 M nPoint += 60;
" G: l. N9 U2 l- e else if( m_nJob == JOB_MAGICIAN )
, w2 O) R6 t4 h" h! _3 c) { nPoint += 90;
8 w* ]& ?4 J+ d0 }$ k1 c else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# J6 h$ S8 l6 O1 b8 @% Z+ o nPoint += 120;
& l# p* S$ @( A0 s: X- I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( Z9 }9 L2 B! R" L8 j
nPoint += 150;. C: L+ {. k- ^0 k. j9 ^* o3 A! U) R
else if( m_nJob == JOB_RINGMASTER )- o) ?4 J# \; w+ ^
nPoint += 160;) o7 i. p0 p( u4 [6 T# d. P
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ S! W% K" ^+ n2 T2 n) k
nPoint += 180;+ t; ]: M3 o- G" Q: A B4 T
else if( m_nJob == JOB_ELEMENTOR )
7 V2 N6 S' f+ H, [ nPoint += 390;/ _' K5 X5 i" q" ^' x$ W
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) n* G, s% K# M7 t& o nPoint += 120;
" H! B) t4 ^+ e- V5 w. y* M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 t( I5 J5 d8 S9 e# [ nPoint += 150;4 |, D9 Y; j0 w2 C2 M. b. Q- G7 X
else if( nJob == JOB_FLORIST_HERO )
- q8 F1 d( O$ C( r5 `: O. u nPoint += 160;" P1 B7 r! B- G& H: Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 ]8 R4 q% _( i4 o3 w; g5 a: y
nPoint += 180;
% ~, K$ R" ?: I1 J8 H2 L else if( nJob == JOB_ELEMENTORLORD_HERO )
8 N* M7 `7 F( b8 M& [/ \ nPoint += 390;
1 G3 D" ^% Y1 X6 g2 A3 b" o) X9 Y6 w7 p/ I: e: Y3 ~
AddSkillPoint( nPoint );6 p) O7 D6 {1 T+ K* f! |
m_nLevel = nLevel;
5 [( S* |' y/ l7 @! _, u* ^! g" b9 l+ O* j
SetJobLevel( nLevel, nJob );' x" T5 q7 F; C. Q$ a; P
m_nDeathLevel = nLevel;1 G: H G: B" {: B2 q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; i& b9 b4 [) m9 p5 c. x; m! J if(IsMaster()) t% h9 D. M, R
{
! q, x) j7 b4 S+ n' F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 P6 i& H1 X# A if( nLevel > 59 && nLevel < 72 )
" A& j' c6 b7 ^' f% c b dwTmpSkLevel = 1;% _0 K/ k8 M$ a$ g) \5 A
else if( nLevel > 71 && nLevel < 84 )
( j0 r3 d5 m3 w- \* ^4 O( c dwTmpSkLevel = 2;
+ D/ ~& N) ?- u else if( nLevel > 83 && nLevel < 96 )3 u. D+ z1 N5 {7 }
dwTmpSkLevel = 3; w; m: j/ { [
else if( nLevel > 95 && nLevel < 108 )
x: V h5 J P& N. J0 e& c dwTmpSkLevel = 4;6 }: g3 o; h. q1 X
else if( nLevel > 107 && nLevel < 120 )
0 C1 e# I0 C1 S" y4 w dwTmpSkLevel = 5;+ v; L# G3 V" ^" Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 Q. v9 h3 ^5 I$ b: w3 x
{ $ U% o0 u3 U: O5 \' |" A6 I( ^
LPSKILL lpSkill = &(m_aJobSkill);
% J2 ?! N4 U, J if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 ^( V% j! m8 y" x2 R" d {
0 K0 q8 A* S& ^" {9 e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . E+ I. ^# [) D3 _) q/ I; \
if( pSkillProp == NULL )
1 ~8 g( P/ _8 ?* r+ G continue;
5 P9 m2 I, L+ N3 h8 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ g8 t& d( y- T: b continue;7 c/ Z5 M" f( c2 C7 R
lpSkill->dwLevel = dwTmpSkLevel;$ P8 U* s+ q# X6 X1 z9 n$ o
}3 w4 i+ L, b: u
}
0 _$ a3 J3 o) j& X7 X F0 e8 q3 \0 A }) X# T) N3 Q2 D+ d
else if(IsHero()) Q# { K0 W1 R$ j, J- X9 g
{8 z/ x7 s+ _+ ^; V$ R1 m3 O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; m9 s! `: H: I9 N; Y' X8 ~* V
{ 3 q! s4 N' X2 {7 h
LPSKILL lpSkill = &(m_aJobSkill);
* `# h1 Q/ d' w& X/ \$ { if( lpSkill && lpSkill->dwSkill != NULL_ID )4 A# l6 {% o: e3 Y" r6 L6 X7 u4 g
{
* G( v$ y- G& c+ M& m4 k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ Q3 }3 r) y6 Z: P if( pSkillProp == NULL )
# b: ~4 t. B$ x, f+ X5 X; v2 |. c continue;7 K2 d1 J- g) c/ T4 X" t( c. }% _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); u; s+ F9 t! m" x
continue;
: l; O$ r$ P) Y$ Z: @2 q/ C lpSkill->dwLevel = 5;* t9 r( N+ v$ K4 }* {7 M) {# E
}
' F' T* }+ {5 v2 ~. N' [1 O6 f$ F, P( I }. e+ m$ N* H1 s# T7 {7 [3 ]
}
! D" e$ b6 J4 g( A. ?+ r8 A3 c else if(IsLegendHero()). h. N5 o. r( ^/ ~! j
{! e* c9 w( D4 p1 U9 W% h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) Q* p/ s6 X+ Y { 6 h. M' [3 N4 Q( i9 k* ~
LPSKILL lpSkill = &(m_aJobSkill);
* c0 L* @- G$ k# B if( lpSkill && lpSkill->dwSkill != NULL_ID ); P- h7 q9 D. S2 o8 {
{+ u: l3 o- W* o! g. q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) R, L/ z( R. c% \' t2 N, _ if( pSkillProp == NULL )
7 p7 F* r# A$ t# j! _% V& a continue;
) v9 q5 z) V+ `& M; H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 L. N4 j: ?4 a2 A. y5 |) g' o
continue;/ E; m: k) N' _' h; u0 q
lpSkill->dwLevel = 5;) h8 `8 p" ?/ I% H
}4 }4 k- G* Y$ v1 P
}
6 R6 L, X) Q1 V' l9 v" ?( `/ N) l# Z }
% P0 I; w8 s5 g: y" Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 p1 p, p( s2 @
if( bGamma )
}# \# q$ D7 ]. m7 _3 n {* O) X9 M3 r0 a" f7 _" ]* @
m_nExp1 = 0;
: m3 f0 a( c- f) J7 J+ G }- S4 Y ~3 S( S. L
* R V; h5 ~3 I+ B) g, |0 _
( (CUser*)this )->AddSetChangeJob( nJob );
, S7 r$ {/ b! S: y1 B( l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ S8 @, z0 E- }6 i7 W8 I" M+ @" F3 p$ e
S) K+ Q9 k6 f7 G
#if __VER >= 11 // __SYS_PLAYER_DATA. i6 h. n( J9 o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
V$ J6 S" w4 U. X- M8 y#else // __SYS_PLAYER_DATA
$ c; D |# |, x1 |, n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 D7 B* h# U; i1 o( E0 p g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' \# I; P, x: h9 S; `1 Z if( m_idGuild != 0 )
& a8 U: n* A7 L S! }9 `( V- u5 b5 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 `1 p4 h5 Q: q3 M9 f#endif // __SYS_PLAYER_DATA0 E7 p$ H. @* p1 R
SetHitPoint( GetMaxHitPoint() );
2 ^" }1 T. n5 E5 x5 T4 M* F SetManaPoint( GetMaxManaPoint() );
1 m( l7 l8 _. G, w- P$ L4 U) Z SetFatiguePoint( GetMaxFatiguePoint() );
. e4 K5 I/ c8 H" N. H/ P if( nJob >= 1 && nJob <= 4 )
6 K+ j' K2 u7 W6 f! c0 k% d {' {# Z+ E4 k: G+ \) W/ X. U: N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ t6 x3 R% d5 R7 L4 @* @4 ~$ u+ m1 w m_nRemainGP = 28;
& `& e" j1 X" y6 x) [; X2 v9 ]' G* h }# ?* N# ]: X% |# A& f6 {& A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. i" R0 k3 V+ _$ M* b6 I& M { ^5 [1 U! J( d6 B2 I
m_nRemainGP = 118;; I" @0 V4 [# _' k$ N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; ]. C, ]' O! }$ D. ^: s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* C3 U+ i2 `3 d$ Y; J7 I }
& r! C/ I0 l, j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" l+ x& Y! Y1 N {
; X1 H0 g; L/ L% [5 v CItemElem itemelem;
" R5 i" T* s5 ^$ W itemelem.m_nItemNum = 1;
- |" {6 ^5 |, n B itemelem.m_bCharged = TRUE;
/ H+ \5 ?* ?/ B3 j# }" N BYTE nID; E1 R: D" ?/ ~) A. t
$ D( S. v# g7 m, E; n. J4 i) j if( nJob == JOB_MENTALIST_HERO )
9 U6 @' l" w2 @2 h/ W2 g: {: h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* q- N7 }1 l& Q" J! u9 |( \8 {
if( nJob == JOB_FORCEMASTER_HERO )1 |. i. W: e% B9 z' n
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) } P1 v- U8 R- R2 C
, {8 w$ o' `- w# D% J6 ?$ I- o ( ( CUser*)this)->CreateItem( &itemelem, &nID );. @ ]$ \) _5 ~% V
}
0 X- M: y) _( y( M) Y0 J" B4 R2 c3 f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 ?4 X. {$ \+ U9 _9 x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 Y* [/ F4 }. ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 Z' K2 I# }- G" }; a
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# E6 m! N" R. B. @+ }
( (CUser*)this )->AddTaskBar();*/
; \8 m* y' e' q8 V9 Q, f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ c( b' e ~2 P: c, M0 s/ o1 e6 i#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: ]! ~7 c8 j+ L8 k3 H* }8 y) e6 {. s5 u ((CUser*)this)->CheckHonorStat();
/ u! |- b+ j/ V$ a8 V3 s& Z' h ((CUser*)this)->AddHonorListAck();
0 |; Z7 O* d( ~: A9 ]' C g_UserMng.AddHonorTitleChange( this, m_nHonor);
( C0 h7 B4 A& t: a#endif // __HONORABLE_TITLE // ′Tà?
" g, r+ j* r6 I8 ? }8 `& g" T. H. R8 k/ p
#endif // __WORLDSERVER
. m1 b- H( V/ F% o7 Q4 c2 l1 m}
6 s5 e0 K% U3 _- S9 M6 z, y6 S$ \7 J# t, v6 d9 o5 y; C: b- O
然后你进入functextcmd.cpp并添加以下+ j9 Z1 }1 n' z- b
1 C; N, ^3 K& k代码:) ]' ]+ J% i1 {# r1 l+ }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 Q1 P9 j+ d( Q5 B8 i
下面插入6 {2 k4 B# }* f4 ^' p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; Y6 X: l) |1 Z
0 i* J. {; F/ m然后你去 w1 P6 H2 \- D
5 k6 m% a, W4 M2 `9 T
代码:( H$ @9 }8 @) h; c
代码
" p: q, i! n' a C5 SBOOL TextCmd_ClearPropose( CScanner & s )
+ \( J7 q$ ~% K0 }. {{
/ p0 O# f0 q1 r9 @# P#ifdef __WORLDSERVER
1 j" P& T- b" l; D. M; k) x CUser* pUser = (CUser*)s.dwValue;
5 f9 `/ Q4 t9 D g_dpDBClient.SendClearPropose();
' l3 d* r0 J; j: g9 W, P1 Z6 T# ^#endif // __WORLDSERVER: O4 E A T9 ]: n5 ~3 |
return TRUE;1 c# \* p/ ^# e* K
}
/ @0 d! r; Z+ e% U下面插入
- L% @- W' B# T% J. q5 a) J8 f/ VBOOL TextCmd_rebirth( CScanner& scanner )
" k, G, ~) Q4 t- g{
/ |% m: J3 M2 {. {* k' Y9 d#ifdef __WORLDSERVER( t& K8 J* k( N, O' y+ g
CUser *pUser;
, W! D% |* Q# T# e" v: H. ipUser = (CUser*)scanner.dwValue;3 S W) }" S9 q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 `2 L$ T' S7 Q }* S0 g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ L! n+ S) v. P" T: D$ ]else% ^ D/ `$ N% a2 s" z3 m4 Z3 \
pUser->AddText("你还未达到重生条件!");2 m/ b& ^+ q$ y+ x: `
#endif
1 o! G6 X' h# u, F0 ] M: q3 X$ b% \return TRUE;# r' h$ S/ H: L) T F
} 9 W# e7 [, D4 n5 q$ c, U' x( x
& ?1 \5 i q# D' ?5 n$ L6 E
& @% \* ?9 \: k D7 G+ m/ r, q: Q+ O; e8 X8 y
1 t5 C+ Z; K% K9 g ~( P
|
|