|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* I- l, z2 Y9 r) A/ {. `' q' R# ^, B3 k& M, S% L" q0 i
Mover.h
, `. r# N& b$ }9 {7 ^, \8 y代码:
) o( o& l& p3 N) U1 a* k/ z6 m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( O, Y3 r* h, S# N& U" G/ P+ l' }
: H! R( R% ^: {6 ?. _8 G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 ?4 Z; V. z$ Y6 p" I/ P3 `/ |1 N! o# Y( m
然后你去mover.cpp添加
f5 w, D; B7 f4 n9 M- \! r" g3 J3 z
; H% C E# h w& w代码:
2 d1 E4 Q7 w! S+ kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# \ m$ r/ U P( b1 R
{ [+ F, n8 ], O( N
#ifdef __WORLDSERVER
1 a) S, _: |" D4 {3 p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 L$ S6 L) `5 g% I& q MoverProp* pProp = GetProp();
4 P0 J8 G0 n; z6 [9 Z/ ` if( pProp )
! |4 C7 W0 u9 \5 q {: J, M+ ?( Z- C- D! E( J( I
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) n5 [+ w. c% c ~, N7 O) |
{
! _7 n1 u7 a! h6 _4 @% O, v AddChangeJob( nJob );
- d& y1 F. ^( V- k1 t t/ u }else{- U7 s6 F R: J8 B: P' x
return;: c u4 e) g; N' e0 n: t4 o6 O! h
}
; P3 l; W2 r! P. [& |4 C' I+ i int nPoint = 0;0 r& |) w' I- X7 p+ x+ f+ E, j
if( m_nJob == JOB_MERCENARY )
* G3 }: M2 w; ^1 s nPoint += 40;, c, r; V3 \# m$ M; t
else if( m_nJob == JOB_ACROBAT )
3 l7 U, D9 M$ h nPoint += 50;9 l" ]. h5 m, r+ j$ k) t! i
else if( m_nJob == JOB_ASSIST )4 x. n" h9 g1 f! G" y
nPoint += 60;
" ^5 ?* S/ _7 c& X else if( m_nJob == JOB_MAGICIAN )* j' m4 y; H2 F1 a3 ` N5 o0 G: t
nPoint += 90;5 m* s7 [) t A' H2 A2 K" E5 i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ D" [" D8 r# T! r( ?, I. R2 I
nPoint += 120;* p4 d5 T7 F5 a9 R0 `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! U* \( \6 {& F& Z. X7 ~; _ nPoint += 150;
! ^6 t( `4 d$ b5 N) U2 v else if( m_nJob == JOB_RINGMASTER )) j4 {, N4 a) \# S* t5 m+ o- P
nPoint += 160;2 y$ R' w8 Z+ S) y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
k- l' u4 d" ?9 ^+ c0 \/ _ y nPoint += 180; H8 S& H% m$ P/ x. u9 I9 ]1 j
else if( m_nJob == JOB_ELEMENTOR )
! J3 K* [' R2 L. D& A: y' s nPoint += 390;
$ H+ a D! p6 C q- T G4 e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! d9 F5 |( T4 h; T' v nPoint += 120;8 f7 D0 c6 y$ }4 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( }; x3 V3 m6 V& P nPoint += 150;
9 [9 M0 A6 _; k else if( nJob == JOB_FLORIST_HERO )
4 K- [, r7 i1 o% j nPoint += 160;! X) V& U4 {; r( ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 @9 @4 O! _! F; V% k" I- K: {
nPoint += 180;2 T0 x0 @7 g# `' m. ]
else if( nJob == JOB_ELEMENTORLORD_HERO )# T% Y& L+ d1 @8 K) d: a( o+ J
nPoint += 390;- o _2 K/ l) f9 G
+ m/ d. t3 u* T( |* l+ A AddSkillPoint( nPoint );
! L# C' w, u1 E) c5 z m_nLevel = nLevel;
- R8 F. j) A( _8 h5 h+ s- }1 {3 G* X1 K2 t
SetJobLevel( nLevel, nJob );: e# n% N/ R/ j2 V1 M
m_nDeathLevel = nLevel;
" [! y5 T1 u8 e/ O& r#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans F1 e+ L' ?" T) J) C
if(IsMaster())
4 K% K4 p e) w& \/ k {
, t; Z6 Z4 z- A! E+ E9 \ Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 Q8 T* d' D/ F% r8 J* H3 h
if( nLevel > 59 && nLevel < 72 )) P7 m/ H' W3 n+ l+ H; g
dwTmpSkLevel = 1;2 a3 N. M9 X2 i0 \
else if( nLevel > 71 && nLevel < 84 )) {: N' m0 d6 o
dwTmpSkLevel = 2;
; z0 G6 ]; y/ _( Y7 ` else if( nLevel > 83 && nLevel < 96 )
' i7 l7 ^( c4 |% e) H- Q$ y8 Y dwTmpSkLevel = 3;
" K, E" I3 b$ }. H else if( nLevel > 95 && nLevel < 108 )- L2 W/ v, @" C
dwTmpSkLevel = 4;
( @( ~9 F# X, J4 X3 r: r' L else if( nLevel > 107 && nLevel < 120 )2 t7 I1 ~3 I& K8 X x* M3 R
dwTmpSkLevel = 5;( V: X; Z9 A4 |% D8 i' f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " W( B9 I. J: F
{
1 Z9 y0 E u& b' {. @% a: `. X LPSKILL lpSkill = &(m_aJobSkill);
; y( f! n3 c/ x2 r3 X3 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
* E+ L, J" l0 {' p {
1 G& V! V, G; ^$ _+ K3 C ]( j' M( s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 N+ @/ B/ Q: c8 Q5 }4 R if( pSkillProp == NULL )
+ V; R! C3 I$ o7 S continue;; s& \7 V( u {! I' m& U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 X( Q& b& s) ?' R8 E continue;: I7 ^) o' | `, ^0 f% ^
lpSkill->dwLevel = dwTmpSkLevel;
8 D1 U4 L2 `; L }
. e# O: I: v6 ?" o }
M/ { A, k9 H2 `+ n }
5 p: d3 B2 P' J5 j' Y else if(IsHero())3 j! V3 q# p* q- B. a& Z2 t7 L
{- {3 z; _' C7 j8 X1 u: o: w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 U$ L% Q2 O- K" R$ I w
{ % _7 ]1 A8 j' P/ A0 K$ B
LPSKILL lpSkill = &(m_aJobSkill);
; U: o! c& o0 P7 A: ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
S& L6 k7 l7 E: ~! E$ y2 J3 {! p {0 |4 h( p" d) K5 u$ _2 s) M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ l# M5 f/ D D/ b4 L; v if( pSkillProp == NULL )
d1 @: t* J! U- k; i: O continue;
6 V' }! a; u1 ~$ h& w! ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. G1 Z5 B: i1 N- R/ \2 ?+ k9 B, W# J continue;
& _5 _1 D9 _2 `; n9 U/ i1 K lpSkill->dwLevel = 5;
1 \* f) @' @; Z; T }
1 L/ r/ S: t9 V3 c& h! n8 P7 S }
( M6 a z0 L$ V2 y/ b* c6 ?8 ` w }
# l7 V( l1 j( u3 |7 d; u* o7 @! o else if(IsLegendHero())
% q0 W7 N8 x8 H* V7 o {5 V( h a7 V5 X6 ~; W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - b) c( G) Q0 O
{
! n. F y' m% O( g* C LPSKILL lpSkill = &(m_aJobSkill);! h3 K U; J9 X8 }* v
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 R+ D" o( K1 s; ]; K
{$ i5 H a& P" R9 g& f) F0 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # s& p' i! H, n# ]! S4 k+ y
if( pSkillProp == NULL )
. i+ R, e# [+ u! I' W continue;% z% }. Y) S' R Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ x% D: j! U9 u+ ^/ a! W! {* o$ }( x5 i
continue;, L# P9 j' \# ~, N( e1 Z5 b
lpSkill->dwLevel = 5;
. q: \, l4 r) Y' R( i2 n! G' B }5 a; Q! {, I: h. v
}
5 ^0 r0 Y0 Z( o7 x }
! C, q5 m( N" t7 i8 n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 a# G9 X: G7 |, c% u, s if( bGamma )* Y- h/ J% h" d+ G
{, L+ O! x$ ]* X
m_nExp1 = 0;
5 D) f7 y$ h+ J. m' k' | }' i4 G0 f+ q( e' \ s$ `9 M
% L& \( c/ p: w* z5 a6 F. V ( (CUser*)this )->AddSetChangeJob( nJob );
: S& I2 I7 ~8 ?, \6 \3 B g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. D( u( Z# J8 t S/ U
' M7 t$ S9 j) y" Y+ Y" [8 L, p, Z1 n. I/ i$ ?
#if __VER >= 11 // __SYS_PLAYER_DATA1 ~$ B+ V9 ^8 |0 c; u* T3 n; c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# f# _. g" F$ o/ q#else // __SYS_PLAYER_DATA3 e, ^( l3 z, t8 A. J |8 I7 K2 ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 H8 m$ @( }5 d7 c0 @; Z$ M g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ g7 k$ s, |0 l6 k
if( m_idGuild != 0 )
; e% i/ g! G( q& T: X2 l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 ~7 Y! C, d! @! o1 G2 f
#endif // __SYS_PLAYER_DATA
* s/ s0 e# W8 P6 f4 u* }) N SetHitPoint( GetMaxHitPoint() );( \9 x; y) K3 s7 p
SetManaPoint( GetMaxManaPoint() );
5 t" l4 G0 y: P; ~- h SetFatiguePoint( GetMaxFatiguePoint() );
* Q' I; T. r% z1 W: O6 k- L B& O if( nJob >= 1 && nJob <= 4 )
, h. F% m) b; _8 P/ o4 t {1 e0 A2 R* E" J# y: R
m_nStr = m_nSta = m_nDex = m_nInt = 15;' q z- P. X* Q0 | V
m_nRemainGP = 28;' ~5 P9 {" ^; j" c M
}
; l. h" F& ?/ L3 M0 y& H# I if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' }5 V3 I4 w9 x+ I$ j {
* F/ a/ ?% A+ a( K m_nRemainGP = 118;8 Y7 b. ~" `' K# U2 f- Y* Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! F7 X2 A! L& I7 K/ i m_nStr = m_nSta = m_nDex = m_nInt = 15;
: U% x0 k; O* V( `; H7 M, G }
" ^! J' S; ~, v if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): `& S% E1 {' o& ~# l' p j+ W
{
1 u. E0 H* z; `2 o" o9 u7 @% O" v CItemElem itemelem;
0 F4 B$ {+ f+ Q3 S; o itemelem.m_nItemNum = 1;1 `3 v6 W3 g1 U: c
itemelem.m_bCharged = TRUE;
0 q) f3 h9 D& D! F; Y, Y( G BYTE nID;& v( B) N H, A2 y2 p9 W9 J
b" q1 I& ]% r* A: y W if( nJob == JOB_MENTALIST_HERO )
. l9 w+ _0 m% K( }- p itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 Y5 m1 v, c7 H, R7 h: m if( nJob == JOB_FORCEMASTER_HERO )
a# C3 q! ^ q) T$ @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- {5 y& H. \+ F" Z1 H
1 v, L% K1 Q7 n) V# e ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ C1 R* T4 r2 M4 D% v& g3 _' F
}- K. t+ s# S8 |1 q c. b$ |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! P8 p+ J* i, n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 O t. O4 o& ^' P* M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 P; C3 n5 C5 N! F5 T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 h( i9 j- M$ ^4 s) f6 @9 G
( (CUser*)this )->AddTaskBar();*/# ?# C! t" ^ W9 y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 I- J. Z7 ?7 ^5 X- T) |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. Y7 t. h, [3 n1 J ((CUser*)this)->CheckHonorStat();
% ~( N7 m* I5 V1 e* t, Z- m ((CUser*)this)->AddHonorListAck();" | a( O2 d6 e& q7 b8 m
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 |* F7 U. k, P; J# Q/ y4 q ~3 g#endif // __HONORABLE_TITLE // ′Tà?8 n. [( i' l5 `; f+ {
}9 h& T& |3 O" T8 W/ h J$ ?
#endif // __WORLDSERVER9 m, g# G4 j8 s- g
} 1 v- I; `# O" t1 A- E
4 T* o& k/ ]# L/ Q( K然后你进入functextcmd.cpp并添加以下' z) t: I: n! e8 t n$ t
8 w* ]9 w& _: R代码:& W& B. N6 |. u$ e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# E0 F/ x( C0 _7 j& {$ e+ \下面插入/ e# `2 r0 [6 p" B! [! k: i4 g: }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# p6 P: m/ B, P) ]! T2 T5 w; l
7 i! m$ x3 l3 B* s然后你去2 U' @. ~( `0 U+ n- O2 m
u! d! q% i% i5 `
代码:
$ j- k- ~9 R' [3 Z3 q" R代码
! r% p7 ?% Q$ D/ |2 b; ~BOOL TextCmd_ClearPropose( CScanner & s )2 g: @% d4 t, x, @1 I% F
{$ z5 h; d9 R; e. Z) X8 i3 J x! z1 l
#ifdef __WORLDSERVER
* J3 B) ?$ r+ b, ^4 I0 b CUser* pUser = (CUser*)s.dwValue;
/ i8 L6 h- g! H: O; D+ l g_dpDBClient.SendClearPropose();& B9 k8 |- G# o4 v+ }5 q
#endif // __WORLDSERVER
5 {5 p) c0 B R% }1 Q1 _ return TRUE;, B$ |0 i- G' k4 A k" G8 u
}! o N2 a0 ]. I3 P) \9 a% H
下面插入* y- A% @$ E" D* j7 y0 |
BOOL TextCmd_rebirth( CScanner& scanner )5 A U) j, g, N, y
{
3 m3 q1 W: T/ O8 G#ifdef __WORLDSERVER
) u! O: k8 D$ kCUser *pUser;, _7 `4 V N7 |$ p
pUser = (CUser*)scanner.dwValue;9 a8 [4 m" P. t& O' |& {# S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# H7 u0 F( J1 n* C. \) \9 u; `8 c
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% r% {2 `8 b+ U7 M/ z$ d) p; O. r) L4 r
else B! o" w; V% {
pUser->AddText("你还未达到重生条件!");
. U/ H! Q2 L. m1 o#endif
& \# n2 E, Y: \* ]return TRUE;6 T# E, E8 w; | L) z3 a& k1 u( S
}
8 p# }& u7 f2 A* R% e7 [$ n& B' j
( C6 H" W+ D' x; e
+ q; V0 a9 ]- a2 X/ _( T8 P
5 K" v/ o: n1 X/ l3 ]2 r
|
|