|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel F4 d% H" S2 [
d; d5 o, a& Z$ F6 ]
Mover.h
1 ?. U; N- K! c/ Y' Q9 D* @代码:
2 M( T& J3 N# q% q; J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* ?) B4 r: x" L: L, N% R
T5 D$ L7 a6 z: z1 N+ Z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, U5 `9 K/ I2 F, M# v- x) B9 B7 g$ D% \: s0 @( b( j2 D
然后你去mover.cpp添加
3 a+ Q: W6 \: G7 B: O# p. D' d5 r8 Z; [; O5 C
代码:
2 Y. p, K$ x- d: u4 G1 Y' \void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 i4 L8 A6 c6 ^/ @{- z4 D5 ~( M4 B7 v+ v9 V" f
#ifdef __WORLDSERVER
3 u# o% O! P) |" l4 M; s n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) u. G& D7 v' Z. M/ U- x2 H
MoverProp* pProp = GetProp();
9 L0 y5 m7 O# [. l, E! S: u+ f: B if( pProp )5 I: K( R& d. R; u0 f
{
0 V( @. ~1 ~( h, r+ g2 J, U9 P6 Y if( nJob > 0 && nJob < MAX_LEGEND_HERO ) H9 V! D) O! r1 k! f, {$ C0 t% j
{3 ^& M- x; r6 E4 n& n
AddChangeJob( nJob );
6 e+ q8 ^$ ^( R- r. C+ R }else{# K' g( |' z" l' Y: a8 ^' n6 V
return;
. v" q8 j R9 P% E; z8 e1 y1 c8 l }
# X2 ~5 W- P; g+ ?. `, K int nPoint = 0;
7 v. v: E% v" S9 N if( m_nJob == JOB_MERCENARY )
8 v0 X+ c8 R9 g( h1 S nPoint += 40;
) \2 A# b! E% N* n! \1 X5 ` else if( m_nJob == JOB_ACROBAT )
. @' p. V! z+ o6 C1 C1 F) o3 t nPoint += 50;
9 F- n- h1 q1 Z else if( m_nJob == JOB_ASSIST )3 j3 t: P! [, z; b" ^
nPoint += 60;+ X7 x% ^: k+ L3 w. D9 | X1 @
else if( m_nJob == JOB_MAGICIAN )
, B ~ \: F/ s9 S- P4 W nPoint += 90;
5 |& [- S$ e# @$ s4 [ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ R7 G5 m2 A" l/ B7 ^1 d2 o nPoint += 120;$ e/ v" x* f, u5 j2 L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), R1 z0 Z$ x2 X
nPoint += 150;# V. K# m* ?* L# O* U) J
else if( m_nJob == JOB_RINGMASTER )
! `+ _/ F$ V- y- J; l" f2 K nPoint += 160;
) N$ t7 o, T4 c' l7 l& ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ N4 g3 D: \/ e! D% N
nPoint += 180;
- p2 s; A. \$ I+ j; H else if( m_nJob == JOB_ELEMENTOR )
" f: _! b- A2 t" H2 M# c2 s) \ nPoint += 390;8 T% }* M8 [/ B% Q) G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, A, i9 V) {$ J% N# ~. \3 K9 p nPoint += 120;
5 ]1 C. q" Q% s& X; ?" G& C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( A! r( t. [6 L$ ^. K! c. i
nPoint += 150;- H: C+ A3 D9 Z
else if( nJob == JOB_FLORIST_HERO )
0 ^- v9 o. k8 G$ i' R2 e# R nPoint += 160;8 N, l" q# M; `3 _1 P9 N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 O/ K1 e7 i( {1 A9 [$ `
nPoint += 180;. H. h4 t; ^; H: ^( M
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 b! I1 k$ f8 _; Y; H nPoint += 390;9 C- m" C! @- T% h
# |- B$ m, y" X2 P6 w
AddSkillPoint( nPoint );
: J w# N& F3 N5 E& q, }& L m_nLevel = nLevel;
. J7 e3 T4 K, T+ I" R/ b) ?6 o5 j
6 `" Q- E% p9 T9 e! ]5 k# U SetJobLevel( nLevel, nJob );/ g$ p& V9 l% n8 y: X& f; O
m_nDeathLevel = nLevel;6 e3 ]& m1 j z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! b$ J# E* E& T, x1 d E
if(IsMaster())+ B) p" B% M9 ~- X+ W1 q3 G
{
Q! V ^1 a5 n# }. ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& z5 b1 i# t' k! s. p7 W) W
if( nLevel > 59 && nLevel < 72 )
4 ^7 A5 d+ R3 i dwTmpSkLevel = 1;+ h+ }8 H6 P* \" Z
else if( nLevel > 71 && nLevel < 84 )% I* T' X* X/ d d9 A" j, F, C
dwTmpSkLevel = 2;
6 S6 S y( m& }6 ` \# y else if( nLevel > 83 && nLevel < 96 ), y3 U% R8 g1 l! n" Y
dwTmpSkLevel = 3;5 c. y2 F1 `- Y5 J+ z
else if( nLevel > 95 && nLevel < 108 )6 L- p# Y8 K. C) J8 w$ u
dwTmpSkLevel = 4;
9 T. Q' e5 c5 s1 w" U$ q& X5 Y2 E1 R else if( nLevel > 107 && nLevel < 120 )
A7 s! p* n2 v6 u9 G* @# q' R dwTmpSkLevel = 5;4 l! Q F3 L' E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 C1 P" x5 x# H
{ : @4 }, |/ Q/ E
LPSKILL lpSkill = &(m_aJobSkill);5 }$ q8 n" K% Y: l0 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 b6 A. E) x6 W9 V) n
{3 x8 b+ n% k, f. _3 L% w2 X4 V/ g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + \* i3 e# H! j
if( pSkillProp == NULL )' y1 P, n" ~. t4 u
continue;
( r; n O& J! k; v" e! X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; o8 z. A$ ]5 e7 Q1 \; x7 \/ O continue;2 ]8 E2 i, D7 T- _$ [- `
lpSkill->dwLevel = dwTmpSkLevel;, S! x6 _- Y1 s" g; E3 w- C
}* ?1 E# i/ k# b8 [( ]6 K( Q
}
7 l) h: i# v( U) p9 |# y* C+ }7 m' A/ _ }
: [* c4 g9 O9 l0 P5 M else if(IsHero())
. k; E" Y$ q% m$ ^5 ~) z8 | {
5 f- e0 d( P g+ J) [: P) E for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 I0 G+ v+ _+ \
{ ' O' L- i" x# I n; W
LPSKILL lpSkill = &(m_aJobSkill);
! S* G; V$ q0 j0 O l) i( k/ z: C, w3 i if( lpSkill && lpSkill->dwSkill != NULL_ID )4 ^* |: O' A( { I; T2 l. C: y
{+ |9 u* l8 X+ X1 I: F; H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 t! z$ u+ o+ b. `: h/ E
if( pSkillProp == NULL ) K& K, V1 U, [7 E0 R$ G/ l' P
continue;
5 P+ h: N _) w4 E' [# }& `8 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% ?" \- L2 x; U. z; d+ S7 n+ T" u continue;
: P# ]+ n; U, ]4 W, n lpSkill->dwLevel = 5;+ e; A9 }, s6 R% D- q; G4 J: V
}* I1 w3 k) w9 `5 R5 f; c
}* b2 J, l; B, l# W
}
! w( s- X! p( l8 N else if(IsLegendHero()). g! B, y) f" {
{: ^( w$ H H. x" r! m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! u- C5 U, m4 C. q' r W {
" d* c. y% u5 k$ Q# J: } LPSKILL lpSkill = &(m_aJobSkill);. D" E* {8 b3 D0 c) Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( D+ B' B# U% w/ Z1 Q {) n7 Q1 C5 J9 `. Z! V7 f; O' W$ L7 F* K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) ]% C8 N0 L4 L& R& v, q5 [6 U/ c. | if( pSkillProp == NULL )
: a, r: F$ W4 x" X continue;; a) ~! d( m7 c! A+ O/ T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 w, b! C2 L7 y' e0 } continue;8 }; E2 d9 S9 Y' w6 R; [
lpSkill->dwLevel = 5;) t% ^; G3 z9 ]% N8 f3 k
}* g' j% H* @) |* D8 ^
}
# e, h( n; t+ }/ _9 q }
& e y B4 `" {/ o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' z7 z- Z1 n4 w4 K if( bGamma ) p2 \/ l6 m, @0 C* ~6 x: K
{
$ D* Y* q3 n% { m_nExp1 = 0;
4 }2 Z6 l$ E' {' t9 [ }
8 {7 c2 W: P! k$ o) e! L1 Z4 {$ \
: Z+ P) l4 T0 }" {& I$ t0 G ( (CUser*)this )->AddSetChangeJob( nJob );# I' [0 I1 K* \: q0 S# j$ h
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 X3 }2 E' x% h2 e* p* B) F
$ r# Q% m/ x& |: }8 [: C: ]' @% u7 e0 K( P; Y
#if __VER >= 11 // __SYS_PLAYER_DATA3 w: y2 i, L( H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; }" Y* B% e) B/ b! T. C#else // __SYS_PLAYER_DATA
. m2 J, X q; r) }% Y! H& w# D6 A g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); \7 J. D0 d% B; M' \1 t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 D! {' F" [, P5 B+ k) b
if( m_idGuild != 0 ) }/ M9 U7 x6 z6 `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ x5 k+ W R0 t# Q3 ^) m
#endif // __SYS_PLAYER_DATA
9 {" w% C. z/ b* `& l SetHitPoint( GetMaxHitPoint() );
) V& r9 A' g4 Y4 }! E SetManaPoint( GetMaxManaPoint() );
0 L* I* Q" ]6 h! f SetFatiguePoint( GetMaxFatiguePoint() );
' M. z& w5 w; n/ O* K% l& f, h if( nJob >= 1 && nJob <= 4 )6 O+ O: x; a+ \ Z) F
{9 w2 D1 ^' H7 ^. Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 R8 H g/ h. Y L! |1 A# W
m_nRemainGP = 28;
9 M/ k0 V$ w1 O }% t! b, }( \/ ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; @. m+ K' u% D {
6 U" i; X" |2 n, Y m_nRemainGP = 118;$ C) o8 N9 `7 z4 V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ {4 V; i# b7 D. w; j8 } m_nStr = m_nSta = m_nDex = m_nInt = 15;1 Q3 O* Q! i7 J% d9 W! S
}+ d8 _) H0 B& y: [; V! F/ S) X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): a; l7 b* H* K
{6 b' J2 n$ V# A: j# l
CItemElem itemelem;
g* D; a l; \1 q' S; q# ]* g5 a itemelem.m_nItemNum = 1;6 z' T& X, w; A) t; I
itemelem.m_bCharged = TRUE;- V% m, E/ a; u; ~% V' X! A# B& G/ _/ y
BYTE nID;
5 r: P% t& v9 r: y, n2 `9 E* H- n( B
if( nJob == JOB_MENTALIST_HERO )2 T8 d4 ?- Q9 t2 i# \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: e0 _* u2 I9 K1 B5 D# U if( nJob == JOB_FORCEMASTER_HERO )/ N! S0 \& T J5 z6 o9 Q' u& F s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ v" V0 i5 \ F9 u2 t# f5 ^
2 G0 V2 X: l8 x$ N9 V; \3 ` ( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 d) b0 O( Z+ T) s! p: v }! l/ I* k* {8 ~6 p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* ?& m6 K" E* A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 d3 `0 ]( h' f1 W2 q5 ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 r; U& C/ [6 _2 I& @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( X% v6 h7 t; Q
( (CUser*)this )->AddTaskBar();*/
/ \7 U% P. Q/ [" l ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 D% d( P' {- D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- t' K& j8 j! F6 ^: w
((CUser*)this)->CheckHonorStat();
* L% {* @# E; V( v ((CUser*)this)->AddHonorListAck();
' C- q. X; o; Y5 e g_UserMng.AddHonorTitleChange( this, m_nHonor);8 w* f* y" k, A! C9 ]) a# d5 \
#endif // __HONORABLE_TITLE // ′Tà?, q& i# e& p6 K, B( z
}, C+ W8 ~% y9 F# S" o
#endif // __WORLDSERVER0 A7 P. Y) {( `& Q) i: c& F
}
0 f8 O/ p4 S; k2 V4 N6 F! w$ l( @2 A# ^4 ?; ~) A& D" S K6 P& }1 i1 e6 ^
然后你进入functextcmd.cpp并添加以下5 \8 g& p7 x; _+ d
+ H6 h- H% V9 O/ b3 X ^- I# |代码:
' H/ Q% ]8 _) d/ V7 J* d' {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 O6 t+ B% q1 t+ o4 ~" z
下面插入
/ w; P$ H! d; |; Y1 c, dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 s9 F1 s( j7 L2 P2 T6 o
9 u0 ?# v1 M" q6 M+ W
然后你去
& F0 t+ I" \4 ^# o+ Y; v0 n7 X$ y$ P8 I, c+ t- Z! ]' J. |" V
代码:
: N* C* u D" f1 b/ T代码
2 B8 j- o3 |! ? g# }' C1 iBOOL TextCmd_ClearPropose( CScanner & s )2 J1 Y4 |6 ~: p( b/ | I6 G( e! N
{9 U$ i/ g4 X( s2 W" p0 K
#ifdef __WORLDSERVER
0 q6 L! B) A! ~( v+ H& V/ s CUser* pUser = (CUser*)s.dwValue;
- G6 y3 c, N9 D0 d% N- e3 k g_dpDBClient.SendClearPropose();) x- S' Z& z% H% ?) \4 J7 c8 t
#endif // __WORLDSERVER
& ?4 Z. d5 j5 x9 M1 Q3 s return TRUE;* z, P7 v0 V- H! s3 o/ y$ Y6 U" }5 t
}
$ D0 R: \6 m! w# J下面插入( D1 w; D+ h0 \7 U f; q
BOOL TextCmd_rebirth( CScanner& scanner )" u4 j* J! J" H
{7 `0 \% x, V5 Z2 G6 P" x
#ifdef __WORLDSERVER3 m" }5 |5 |, p4 O2 a |
CUser *pUser;0 {2 ^( z* A) y- `
pUser = (CUser*)scanner.dwValue;
& s' y0 Q1 ~7 M- \" A) f Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 A2 d3 |5 J& f8 W) bpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 Y2 o( A/ r( q$ P( P: pelse+ g/ F: C# t0 |% K! a
pUser->AddText("你还未达到重生条件!");
5 T; X1 f2 }6 V3 y/ Y$ D0 T- j5 _#endif
/ v$ C6 b% B$ q) j& G, Qreturn TRUE;$ |$ }# e6 @3 w& o0 G \
}
$ Y$ b7 U* g, Y1 U4 y/ }4 @5 h2 _& d1 c# u F1 q( H" u0 m
4 e: G; z# j" U" {% Y( t
3 P/ c n) I. `2 n0 K, M
) D" V& H# S+ I/ _- q |
|