|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ R4 q: ]2 z7 W% u- F! d S& v( R! ^0 n; ^
Mover.h% z% T5 V7 ]$ z
代码:3 O. b; U5 i- W E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 d; v/ n: z; n! p- M; I) R8 V9 y; s2 R8 x# B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. N. a6 `: Q t9 U1 u' C0 ]/ e& A/ w' W m
然后你去mover.cpp添加+ u2 M, Z# Q4 d8 b- \# Q$ j
: |9 }2 d" p" }
代码:
9 ?3 W( z5 }! {5 V; N! V. Q7 |void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 l1 d/ R% U, ?2 N i2 k{7 s# p. L+ a, E: O# R0 W2 y
#ifdef __WORLDSERVER
) E9 B3 k) p3 w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* U, ?* N; y, b! }/ M+ ~ p: s; P9 \ MoverProp* pProp = GetProp();) G' R$ ]3 W- m C: {; G
if( pProp )# \" O( ^# j( D% N
{
& _' h' U+ j& H k Y; | if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& j2 E" d2 X. I% f! }1 |) [ {
! W: b. q7 P2 B# Q# X% o! O AddChangeJob( nJob );& Z& K3 a* t, T( E5 W
}else{
. |" o- H8 B+ _) t. C return;- x& P4 a6 M5 @& D7 K/ D4 L. J
} \% r3 ^- [4 c: v5 ]/ z% W
int nPoint = 0;
: e+ d5 k! ?, s2 g& ]; H! g, ] t if( m_nJob == JOB_MERCENARY )
4 Z6 |( ^( G9 S2 w nPoint += 40;5 Q, H9 C0 Z& x
else if( m_nJob == JOB_ACROBAT )2 {9 W h9 {3 e* Z$ l" U
nPoint += 50;
' ~1 A0 w: }; |6 q8 x/ H g else if( m_nJob == JOB_ASSIST )6 r- x. o4 T4 }" V
nPoint += 60;0 C6 z" V, V& ]2 z3 ^1 x. G
else if( m_nJob == JOB_MAGICIAN )8 J' Y9 R# D0 ~* d5 }, W
nPoint += 90;
# r) ]/ R K( Q! ` else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 J/ h( e, W% J# L1 r) h8 i nPoint += 120;
, T- |% [% R4 x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 ~: w! D9 R9 l0 X9 M. r nPoint += 150;- U0 f% N# |9 y" B: L$ f
else if( m_nJob == JOB_RINGMASTER )
9 ^9 V; o+ z2 n/ {- i nPoint += 160;
) B& U, |$ E: _3 @ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; S1 l. N" T/ r nPoint += 180;
. o3 z( F( T5 N: Y else if( m_nJob == JOB_ELEMENTOR )7 _- r E, N$ U% Z5 U& [7 ?7 ], j
nPoint += 390;
" A. p! C8 \$ ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( O$ c% Q# t! o' E# g+ h
nPoint += 120;$ c! {/ m% k5 N: j# j4 N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; z( l! N5 }9 W4 P nPoint += 150;
9 F5 [% o; B* o% s d0 A else if( nJob == JOB_FLORIST_HERO )
! E, _) e" f: E$ }! i/ R# \6 K nPoint += 160;
% r; {. Z$ l5 H2 u( m% B else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. A0 e/ }6 T( T9 C nPoint += 180;
/ f& }. u" w- g/ ]' ^! L else if( nJob == JOB_ELEMENTORLORD_HERO )/ n: b$ J- c9 o
nPoint += 390;
7 B, `) S' q1 Q3 }% a( h- A4 H) k" c2 r8 s
AddSkillPoint( nPoint );
8 B' M& F- _2 f: V3 J5 U5 b m_nLevel = nLevel;
, s& ~0 O: z/ o4 P3 J8 {6 y2 w* R
) C3 _; y5 z$ E& h6 B SetJobLevel( nLevel, nJob );% G4 z- W6 W' \; t8 z* x
m_nDeathLevel = nLevel;/ g+ }0 |7 W3 B+ r2 l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 |, O6 N, V b* i# l: Z; W1 z if(IsMaster())
8 ?8 f5 ?2 ]$ I2 b! X4 z( d {
$ J; g' s" W% x! } int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 y( G b. `: w6 d5 n' C
if( nLevel > 59 && nLevel < 72 )
" u0 ?, e& d) Z% Y, _+ q dwTmpSkLevel = 1;
( |# H& U! K' R9 C- z9 ^4 M else if( nLevel > 71 && nLevel < 84 )2 [ M- z0 s7 J' K
dwTmpSkLevel = 2;
9 ?' r% K) B8 W else if( nLevel > 83 && nLevel < 96 )
$ }4 W7 C/ Q) I, V/ ]6 a" \ dwTmpSkLevel = 3;) [% A' a2 P& h& l. g$ S
else if( nLevel > 95 && nLevel < 108 )/ y6 \7 c7 j6 n! r4 _
dwTmpSkLevel = 4;
/ {6 `! x' e/ }9 k" e else if( nLevel > 107 && nLevel < 120 )+ j- P* g1 }- p2 _
dwTmpSkLevel = 5;* y* G) V# X+ e; A/ \5 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , j2 v! c: P. L1 l* K5 i' M
{
& X8 C3 K* M6 A# | LPSKILL lpSkill = &(m_aJobSkill);
/ y* }; Z! s. s$ }" Y+ B3 I7 L if( lpSkill && lpSkill->dwSkill != NULL_ID )" C7 B. n1 t& ]$ D: K {$ R
{4 Q6 I7 p6 X# r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( y1 ?& }2 b w! [* x if( pSkillProp == NULL )) u8 i9 c% \& w: m8 c* k8 O& _
continue;( G; ?; \6 P0 A' y# l% s/ w' k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); M+ \5 {' m4 J" q1 r# y* N. j# U
continue;
! M7 |4 s/ @8 [2 } lpSkill->dwLevel = dwTmpSkLevel;
7 p! F6 g6 y1 O0 G9 @, P" y }; {; \; Y5 H7 p+ C4 O
}* D0 J! H2 u e6 L( d2 W
}
+ P! k& o/ E6 x else if(IsHero())% c& h: R% _" l
{% x7 B% y9 o& h B a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & R+ `2 I9 _# |+ _+ l
{ % R5 y" e! _1 b; P
LPSKILL lpSkill = &(m_aJobSkill);7 r# Q6 n/ C) g1 ]1 @: z
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 u; a, C% V' Y
{
/ m' C! m! [" ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ K8 d5 w G! S% J
if( pSkillProp == NULL )/ I# m" N$ {- u/ ^
continue;
/ N; t! @5 r" @/ p7 }" `" q* c/ L. F/ { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ V( ]3 c7 V1 B1 V" Z; J/ p6 E6 D continue;+ P3 q+ O7 j/ {9 s
lpSkill->dwLevel = 5;, t3 q- i8 I, S0 L/ ], G* c" l
}! B" _( y3 b$ }% b/ L {+ W# W( ^ U
} U! t+ P4 |( e7 F' E6 j
}
! f6 X7 Z* t$ ~3 [ else if(IsLegendHero())9 y: Z4 G4 ^8 r1 C% w& }# m" F
{
3 Y# k# F1 ?, Y3 u( y for( int i = 0; i < MAX_SKILL_JOB; i++ )
# ], @% q$ w& K/ R" \6 C4 h- A* I {
; m: O! s: y# X* S7 b/ | LPSKILL lpSkill = &(m_aJobSkill);2 G4 s8 t. n; J9 c! G, w" @) z4 N' H
if( lpSkill && lpSkill->dwSkill != NULL_ID ): x) ~5 P* t' L" U
{
4 w4 {" F, U. [, }) p0 N3 m; ]8 I# i* s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, k }% U. t, i2 O$ ^7 e6 I if( pSkillProp == NULL )
& ^- f, b+ T' N" ?3 K continue;
% t: E" \/ `) p6 \' @ l# T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ f; g' p U/ E
continue;9 L, A9 O4 C8 Y9 v8 Z
lpSkill->dwLevel = 5;
( g8 l* _4 o7 z9 B }2 _! X+ h$ p+ x) k* ^
}2 `+ H2 x* `; A }' H) x
}/ G$ X' B8 w" z% _7 ?5 E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 t4 D# T: e5 e3 X if( bGamma ). @! [+ H; X, X- o( ~ V# P
{: W" ]# \% ? \- z: g: r
m_nExp1 = 0;# T7 }: i& e* K. A. r& D
}
. O( @. _! t8 k, j
" x) P1 E+ r) [/ f$ J, N1 W5 N8 \ ( (CUser*)this )->AddSetChangeJob( nJob );( G" D+ P. T7 s3 u m: d2 R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' S# [4 [5 o8 L+ L6 [) |! f- f8 V! Q% q- h8 B
* s3 @1 Z! Y$ P& T- E& F#if __VER >= 11 // __SYS_PLAYER_DATA
# ?% O% e8 A. @1 f5 Z- m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( d$ ]! K& T" r( Y) |#else // __SYS_PLAYER_DATA
* s# ?2 Z3 }' F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 }( w+ F5 a" K+ G3 u1 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% x7 E! {2 E+ V% R1 |
if( m_idGuild != 0 )
O. {- e7 h% }. I# A" P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 u9 s+ x" L3 C8 W! u
#endif // __SYS_PLAYER_DATA( i. h" x. g9 p. g5 W( @3 V6 h
SetHitPoint( GetMaxHitPoint() );: n$ [# u2 H( R) `
SetManaPoint( GetMaxManaPoint() );1 D- Z1 @5 D* q E
SetFatiguePoint( GetMaxFatiguePoint() );$ V5 m" z0 b" C9 x' t
if( nJob >= 1 && nJob <= 4 )( F0 X; i H& `8 x
{; ]7 b3 J% v! Q; t7 F: t$ O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: Q: f0 i# a- f m_nRemainGP = 28;+ @7 n0 h" E% r6 c( t$ J! x
}+ R" }$ b b( ]8 K- P$ U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. C% z2 S9 e% }# ^ {& U4 Q3 j" b/ l% A# v
m_nRemainGP = 118;
' l3 S. H) G/ d5 V# Q# y$ O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- z. v/ D( j- c9 ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;% I) Y( q# f6 e; W1 N
}5 e9 @/ \- V9 c$ @+ M( w5 I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). e4 \4 L2 N9 v/ z$ m( b1 s9 i0 X( r
{) U, W( |. |5 M ]
CItemElem itemelem;' D7 n3 L2 C5 l& z2 F
itemelem.m_nItemNum = 1;2 w/ k6 c2 V5 d3 y8 m% Y* y
itemelem.m_bCharged = TRUE;
$ g" ?3 \# r. N# S BYTE nID;" Y7 V/ W1 c- w6 y
0 r" p$ G" a( ?4 }" [
if( nJob == JOB_MENTALIST_HERO )2 v3 G2 j2 `) g; ]+ b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, Z9 b# n' R8 u+ y
if( nJob == JOB_FORCEMASTER_HERO )
1 E* o/ ]6 k+ q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% E! n; V( ^1 l: f# |
$ f" {( q* Q. L, }$ M7 `* F
( ( CUser*)this)->CreateItem( &itemelem, &nID );) ?) e! v$ y8 I6 a3 O
}
9 y6 z: r# j+ k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 ^/ ~8 F! G3 X0 q! s p3 \2 R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 l1 B5 `4 M' `3 m5 I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& {5 G$ D* N; y! c
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 |: s/ ~% M2 t1 o" @! O
( (CUser*)this )->AddTaskBar();*/8 ` F' H5 s) q& D$ w+ n+ T
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ y% S- W3 t3 ~$ q2 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 L! Y: E. ], n. q% W9 K
((CUser*)this)->CheckHonorStat();! o1 F; M9 c, E
((CUser*)this)->AddHonorListAck();
5 P; u, y+ A9 u1 G g_UserMng.AddHonorTitleChange( this, m_nHonor);
* w; w7 W0 t* ?6 N- v#endif // __HONORABLE_TITLE // ′Tà?
! U' C3 o! Q: J" x6 z7 W }) i3 m1 z; x& y$ M* C$ o: B! L z
#endif // __WORLDSERVER
$ z0 N+ V% X' H# U! d1 v+ D. B}
# _# z" a* ?+ A: h
) i. ~3 h. n* D: K! [. n/ L然后你进入functextcmd.cpp并添加以下6 w# P/ D8 \* d0 l% i
+ s5 H- _; K* V( \% z
代码:
0 }$ X+ r& c, `* KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 A4 E( i1 T ]5 D$ }
下面插入& M$ H/ J% Q% p7 p3 b2 [: L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 r8 j( z# w6 h9 ~: Y) ?' E* O8 l' W, m7 |" ~3 F) C8 M: W& ]) r6 g
然后你去1 }1 e6 G1 |) X! m8 f
$ Z E% s: [3 C+ M代码:
" k+ w8 ]* Y" v- c" H S代码
0 V5 i$ x: D$ D# d5 g& Y, a4 o+ ~; mBOOL TextCmd_ClearPropose( CScanner & s )
- M, O( O- O$ E; }# t{" _6 M) i) ~# a' A
#ifdef __WORLDSERVER; y: E1 G- { y" ^& l; `: m
CUser* pUser = (CUser*)s.dwValue;3 r& q0 B5 j' | H
g_dpDBClient.SendClearPropose();$ g, X; p6 ~& B" G, s5 @+ a5 D
#endif // __WORLDSERVER
6 `3 t" x) ?7 o+ J# t return TRUE;% x [ G# N7 h- a! ~2 g
}. `+ Q4 T5 p+ V+ a* _: ^3 g; N
下面插入" u* l( V* W6 L5 p0 G
BOOL TextCmd_rebirth( CScanner& scanner )* ]7 \( I0 ~$ Q" S; T: ]4 _
{! ?/ E& [6 p* s" X+ q( n
#ifdef __WORLDSERVER
* [. |5 T' l( lCUser *pUser;: T- d# z) \! _, w# x
pUser = (CUser*)scanner.dwValue;# L8 i" x; \4 N5 U6 n2 S4 w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 P4 D* K1 x1 R0 tpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); X/ c3 F; o- V+ F3 z
else
7 U6 y5 q4 s. A' x8 h0 FpUser->AddText("你还未达到重生条件!");$ x, _ { o$ p* K- d$ v' Z: X2 S
#endif
% s2 O! W _: L- ~; Areturn TRUE;, r. t( D) y v* [ W: P
} / t. \2 w7 t, j; s
# p% G" T1 L# ^& Y- U. F' v7 E, d4 s' ^' C; A
! K' R5 F4 \3 l2 t' G( w
7 c7 ~% d, T4 f" ~$ \4 D |
|