|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; d% q# j+ }/ c" P
5 o: F: z$ ]% }2 vMover.h& b- c/ m9 G, z8 H6 q
代码:
- r, a' R9 w8 Q; N) c s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# J" s& q) y9 G3 r* g( e) d/ K- U6 C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ u) q7 K* }$ j f
; @$ e2 D6 X+ \2 I7 [* S7 L2 f然后你去mover.cpp添加' c! \8 S5 w& ^ d/ n& N% O
2 n9 S5 i" n% L" `
代码:
' h+ T. [6 L3 c9 }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ C: S. Y6 P7 Q6 \ n{; w; `8 y$ B9 y& b
#ifdef __WORLDSERVER! z! S: t1 Z1 ^! O7 G+ }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 N$ i$ S! {2 I1 z MoverProp* pProp = GetProp();
6 H2 H/ X# V; o if( pProp )6 e# i6 F5 y5 V- \& _/ k
{
- R0 b8 R: w: y# S8 T8 x$ w if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" C4 h/ c7 A2 [9 ]4 I# ?9 r5 W9 S! I+ S {
+ d& x( H$ P' | a, X+ M/ e AddChangeJob( nJob );
7 v1 M w# l; Z4 B( k9 G- U8 B0 T4 @ }else{
* i7 c* S- }/ h2 R return; |8 h6 q! o" D, j& N
}- f' `! y3 z7 J2 \( s
int nPoint = 0;
% u9 D9 f0 l% @+ w7 u if( m_nJob == JOB_MERCENARY )& {& ^. {0 X" Z9 d
nPoint += 40;' J4 `) u9 m$ T, E
else if( m_nJob == JOB_ACROBAT )* A; N' n0 x" \# R1 B& V
nPoint += 50;" x: M- g1 F' h$ a$ ~
else if( m_nJob == JOB_ASSIST )6 X& U3 T( p; v
nPoint += 60;8 w. J" [& q+ k* `
else if( m_nJob == JOB_MAGICIAN )
8 I1 Z v4 {7 I+ ?5 P9 R. N nPoint += 90;: A1 _8 ~6 A" r8 ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( I4 K7 W% q! X Y nPoint += 120;* y% K R0 \' e2 u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% H F* M$ {0 {- c3 s nPoint += 150;
Z5 j3 |2 g5 Q/ [8 p% d/ W7 E else if( m_nJob == JOB_RINGMASTER )* [9 C* u8 V7 i0 ~
nPoint += 160;" K* S) N ~4 I0 y" |% {0 D
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
H3 q! [1 ~+ f( U) q$ S nPoint += 180;
, F! {! d9 ~3 ]8 W' ~ else if( m_nJob == JOB_ELEMENTOR )3 R! ?* t1 |; _
nPoint += 390;
' p9 J# l. U( O' t" S" w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 [9 \ p7 Y7 z# i nPoint += 120;
" u" i0 W/ m: {) |; q1 | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% R# ^( b! a2 z( M$ H7 g2 A
nPoint += 150;
& R% {" a- M) ]* H2 t7 E else if( nJob == JOB_FLORIST_HERO )
* m: v% b2 Y, a8 v8 t4 t nPoint += 160;
5 _/ l t1 {$ @/ n i' P' U/ j' Q( N3 j else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& C- H$ ?* K/ Y4 S; A8 p& R nPoint += 180;) ]2 S! p( K3 t' U7 X
else if( nJob == JOB_ELEMENTORLORD_HERO )6 }+ i2 O# k2 J" ]$ ]
nPoint += 390;# H# a* G6 v- D* q
4 \# f4 e# G3 _; C/ @ AddSkillPoint( nPoint );
; v( e. A* u! z l0 W* ? m_nLevel = nLevel;
; s5 h5 `# v4 `: t0 c, ]2 Q+ l& _- [( }+ _. ^
SetJobLevel( nLevel, nJob );
+ ?" h# B# m# z3 q" \ X* ?0 y m_nDeathLevel = nLevel;
3 q" o0 v$ _4 O1 ]4 c- D#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: Y1 y9 A4 X5 d/ P
if(IsMaster())
) {" C0 {' L# \. T {2 a0 q. U# i! e0 b4 ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# @( I- [" t2 u; r" N if( nLevel > 59 && nLevel < 72 )' y/ \0 e% o* F4 [* N
dwTmpSkLevel = 1;0 b n9 J- n1 f" P K
else if( nLevel > 71 && nLevel < 84 ). w3 D$ q/ H9 p2 ]; v! J5 K
dwTmpSkLevel = 2;7 X8 i, u7 X+ p" ~% p
else if( nLevel > 83 && nLevel < 96 )+ t: _: h, H2 d0 ~1 s. k. h* a# P: b
dwTmpSkLevel = 3;( k4 Y7 {7 I0 q! t7 P
else if( nLevel > 95 && nLevel < 108 )) F* Q5 E! n3 x7 d! V5 _
dwTmpSkLevel = 4;1 Q6 m( I3 {" Q5 X3 y; i c
else if( nLevel > 107 && nLevel < 120 )
; L6 ~0 _! I2 c$ Z( K. w dwTmpSkLevel = 5;, a5 P# Q* \1 H, q, p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ h5 \& d# r$ \! i) J. v {
q7 D# q. i( G( {# Q( u; o LPSKILL lpSkill = &(m_aJobSkill);
% c. q. l7 O; _8 G' J if( lpSkill && lpSkill->dwSkill != NULL_ID )% p z% c- r. |* P1 g7 Q
{, e \$ m3 W. ?0 _ Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ {# G7 \' a: I' { if( pSkillProp == NULL )# c$ E, i- C Y/ F1 ^- B) n7 m
continue;
" |1 I5 C' v# h$ X' f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 d( s `+ `; A continue;1 m% w4 Y9 {+ k& r$ v8 ~
lpSkill->dwLevel = dwTmpSkLevel;/ r8 p6 I7 e& r/ \6 O3 W! V4 n
}# X: ?" }6 V& o; ^7 J
}3 Y% y( X/ i& Z' J
}
# l4 b7 x/ E; \! L, s, n5 H: L else if(IsHero())
9 i# ~. K8 K4 L m! m% h {
S2 X/ r: e5 I! v; @; D! F" K; Q for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 L) N' O6 {2 |+ Z6 ^( M R { : K; o& M+ {2 [' I' u
LPSKILL lpSkill = &(m_aJobSkill);
) w9 T$ e5 e* L6 l* x) x! a1 n/ | if( lpSkill && lpSkill->dwSkill != NULL_ID )8 y' p( s& m+ W+ ]# L- C% N j8 b; C' W
{ {& o! ^" m% N" N1 J* S3 q j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # Z8 p$ o# b! D1 d- |5 c# J$ {+ l
if( pSkillProp == NULL )/ O' h- _7 _" w2 e* A6 B$ K
continue;
3 J/ L0 P; J& g; E" O5 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER), D+ ^( b1 b; t" l: R
continue;; ]- L6 Q/ b: `3 ^% o$ h4 v7 q
lpSkill->dwLevel = 5;
- T# B: l4 z) P; a }1 u. Y2 @; i1 T& [+ B% D L
}+ Y! P( q+ j5 o/ a5 p
}; K7 o1 f! y5 |) r) ^0 K
else if(IsLegendHero())( B: m V3 V* i2 K
{2 m# H" E `! b) l+ y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ~, j. _, m4 R& L8 j( Z { , |0 n5 }2 f' |0 Q
LPSKILL lpSkill = &(m_aJobSkill);
, @& H$ n$ g5 Q- ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ m5 B& H. }' M" w/ p6 a% a {- |- t" [) Q. o9 Z8 j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' R) c6 H3 c. R i3 o; U# M7 A
if( pSkillProp == NULL )
8 w* m% B- C: ?9 n; V continue;
2 s$ Z8 z4 ?) s) _; d/ e2 } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' P* A* T, K; |
continue;
9 R N+ ]- f0 b3 r/ M lpSkill->dwLevel = 5;" C9 s' h8 d \& w
}
: d& x; U; |8 h# F3 B2 a }$ `" h4 v4 T0 I. }0 b1 o
}
4 `& R6 ~* |. w, Z4 x; m: M( i3 E. C- c#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 |2 `4 D, N* j$ r- R. n+ w+ h* \' l, l E if( bGamma )
2 n5 N' P8 J$ `9 V/ M( u) Z {6 C# r& Q. \$ Y, u2 n; P7 |" j
m_nExp1 = 0;
! K* G5 `" e" m, k# {/ j8 T# } }9 F V8 i! v, b6 P
' s$ o0 z1 S* s3 v ( (CUser*)this )->AddSetChangeJob( nJob );$ X" |, ]' @: H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 c6 k) _5 \) J: b2 S: n# R2 ]. @7 U4 c" y) s/ L" L
/ X1 ?( O) o; t
#if __VER >= 11 // __SYS_PLAYER_DATA% b, d$ L$ J; O! u5 V1 Z, r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, R: o# S5 A, ^# k7 G#else // __SYS_PLAYER_DATA
1 O- B8 M+ I- |+ n4 V m9 y& R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( B0 A" N2 S% h& ]! }: L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 M7 q, F) q7 ?: O6 G) u
if( m_idGuild != 0 )
. F* V; J. E5 y: j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; s3 v+ m1 P8 E0 b# o- U& F#endif // __SYS_PLAYER_DATA( `4 y5 ]- x& c3 y: ]. H7 v
SetHitPoint( GetMaxHitPoint() );
+ s+ f! G% Z' I5 Y SetManaPoint( GetMaxManaPoint() );
- ]; d1 c8 p3 B8 i SetFatiguePoint( GetMaxFatiguePoint() );& V4 g% N- R" V# q" E3 ~$ y
if( nJob >= 1 && nJob <= 4 )
7 }: q) P5 b" Y# S" ^& m {1 r3 S5 J& ]7 B2 `7 B {& S
m_nStr = m_nSta = m_nDex = m_nInt = 15;' E. u% z( u" r! K# }* L6 d! d, [
m_nRemainGP = 28;2 t7 t# l! D: U- N2 H$ J/ N6 b
}
% n8 |( J5 s' P- w8 s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 k2 _$ |8 G# J: P# `% t { C3 T K* P: g& v' w' m
m_nRemainGP = 118;! h% h( H5 \+ c1 h/ y9 D+ {) u
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 r* ]! _& ]: o! [0 ~+ h m_nStr = m_nSta = m_nDex = m_nInt = 15;, N9 c0 F; N& D+ t( r
}
* {8 G, Q% G8 ? z# W/ ?9 Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" Q+ E1 t5 K# t8 {" Z {2 n; i6 _& l9 C6 c, t7 j, h
CItemElem itemelem;6 C: h$ G3 V- \% r
itemelem.m_nItemNum = 1;3 \( @! ^+ l6 M9 g. |# V
itemelem.m_bCharged = TRUE;
/ Z8 `; I- u# E1 z BYTE nID;
1 T& o( i: K" q" _6 t
2 K; _; m5 Q4 i- u8 l7 n if( nJob == JOB_MENTALIST_HERO )6 R# ^# L3 L9 t/ |; h" [! m; ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: V& `- {1 u6 a' Q( h3 j! \
if( nJob == JOB_FORCEMASTER_HERO )0 k% f7 t/ y0 n9 H- ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! c U6 X+ |4 M/ F
0 s5 ~$ R9 c! N: K; n3 | ( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 U; Z; z- M3 v; s }% G3 B' m; X: e; M/ G! m. m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ J+ q, v+ S: X" J; h | ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 j' c3 d2 I* { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' a1 n+ [+ B8 \5 W5 c1 [) G7 V
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# n/ [( J2 K5 X9 x) o ( (CUser*)this )->AddTaskBar();*/
) ]$ m: y: b: `$ r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. X# ?1 R6 B. i+ z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; X5 O. A5 _0 Z
((CUser*)this)->CheckHonorStat();! i5 }/ Y- d+ e5 B9 N7 w
((CUser*)this)->AddHonorListAck(); u9 Q$ |- b) B. @6 T; R
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 n/ X) Y( ]! `$ D3 U
#endif // __HONORABLE_TITLE // ′Tà?
/ a6 i( E$ [6 G/ s- D4 N' p } }. [0 a' J6 z5 L
#endif // __WORLDSERVER9 Y" w1 r7 c7 \" h: K7 Y* o
}
9 b/ ^& [9 w7 p9 l& Z9 Z+ ~. v) y# P; S) ^2 I F. ?. N
然后你进入functextcmd.cpp并添加以下
# t8 j/ R3 g' U7 H/ d
! j8 v X; r E$ A1 v代码:
/ p, G5 g2 e( l5 XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( Q5 C* F* B8 M+ G7 |下面插入
1 t3 D3 G! N, B% \; H* l8 }. o/ UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 C( J' ?) R: m9 U( Q5 n; V
. H; N) U% }& _! B然后你去: M2 W/ ^5 X D& e/ R! j6 x' l
; y" T" U9 D, d2 ~
代码:; {. N7 V" {) q9 M C* y5 a
代码
7 r( @2 y1 H' \3 }' Q' kBOOL TextCmd_ClearPropose( CScanner & s )
* u4 a j+ }/ x7 _/ _, _+ | O' D& J0 a4 ]{
- x- x9 W2 a( D' R8 r4 i#ifdef __WORLDSERVER
6 u Y' N8 n" N; m/ N9 F7 O CUser* pUser = (CUser*)s.dwValue;" H6 A! R- `6 C0 O, }: c
g_dpDBClient.SendClearPropose();- H9 }* {8 Y$ `+ ?3 j$ f
#endif // __WORLDSERVER
7 h: { }6 I; { return TRUE;
$ Q- S$ y# d( ~+ Z/ y. o% b}$ h7 N9 o+ W8 J- w) l* e
下面插入
3 C# T8 U/ ]" h' `) U/ BBOOL TextCmd_rebirth( CScanner& scanner )
A& u" s' ]' W% H J; |{7 _/ h& y, [0 w' X& t- s
#ifdef __WORLDSERVER0 J+ T- @$ ^4 Z. V3 g
CUser *pUser;( S' b' R# w2 c* S( V
pUser = (CUser*)scanner.dwValue;
7 Q* T! @8 [ ?6 o' Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 e7 s: g- w' x5 [) QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 o) `3 k, [0 p& \
else
% c) i6 t D4 p- ZpUser->AddText("你还未达到重生条件!");
9 C9 C" |7 p3 R, c+ m# M3 w#endif0 D6 R- [& K0 U% P3 R% E! r2 \1 k
return TRUE;: H; X0 d" C' `* x9 |
}
4 d4 J+ A, B, Z+ H6 J
% B( W! ~- D5 Y! O' g" U
; |8 x. x: ]' e- Y$ k2 m v2 Y- E5 o$ O- \0 C/ O& b0 }
. o/ U2 h) j5 F! G0 f |
|