|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 k: f& m+ ^! W; z7 n) ?8 G& j9 ? _- T9 s2 y% q' m u$ I5 ~
Mover.h0 H3 Y! q. w% K: z
代码:
$ n0 ^+ t9 W, C/ h找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( y' `. B/ t% U' Z
: M+ [, u4 f2 j$ ?6 [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 n0 i6 K) m2 |& e' U7 j8 ]. j. v9 v ~# }& F( d0 o# C
然后你去mover.cpp添加
1 P6 @. W+ p" K, B8 K5 d/ z
; A2 X: L" S6 \2 E" W; X代码:
1 b4 A5 p# \7 S/ J* f& p$ T3 vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' z2 e1 @9 N! C& z) p
{
, w& v2 r: H' I- `/ \! Q( ~#ifdef __WORLDSERVER7 E( B `9 E6 s6 A* S2 k
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ ~' J* [7 n" E MoverProp* pProp = GetProp();! x- M$ r/ X8 {' C( W) p
if( pProp )9 ^4 P: x: W( J2 x
{
1 v, O; u% E% P0 |5 I. {. a if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ A) ~0 @ y* n. X1 f: N" v
{3 X) K2 i7 z) T N5 q
AddChangeJob( nJob );
* \5 j( x k# H7 T |3 | }else{: H6 l0 X0 R& K" G
return;
8 m, W6 o- S& v8 h }
- v9 ?, ?+ F; ^0 z1 A int nPoint = 0;5 w1 k) ]8 n$ _0 U- y! J2 i
if( m_nJob == JOB_MERCENARY )
- i, n6 c8 c, B A7 g1 | nPoint += 40;6 j0 M. V4 O( d/ d
else if( m_nJob == JOB_ACROBAT )1 h& a& l, T( d9 l7 R% V
nPoint += 50; i L5 f; P9 Q+ r
else if( m_nJob == JOB_ASSIST )
- @6 N! a6 d9 ~ nPoint += 60;
3 G' E+ M' m* i- F$ _ g else if( m_nJob == JOB_MAGICIAN )
& F! Z S) ~ \ ^+ C nPoint += 90;9 T* R7 D: \( f; V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 y/ p' X+ }& z nPoint += 120;3 C0 @! X3 k2 N
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# `. c* k1 D+ t$ w" f4 M. b
nPoint += 150;
' W$ W- ^8 i5 {/ d2 D else if( m_nJob == JOB_RINGMASTER )9 X$ X+ Y" d' q# W) I' a% o& N+ n
nPoint += 160;& d9 Q: W4 u! G' ?& I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ I" l% D3 |2 Z1 O) p/ n6 o/ d nPoint += 180; l3 U: Y: Z, K$ w9 `1 M r2 e
else if( m_nJob == JOB_ELEMENTOR )+ v* O$ L6 o$ l4 Q! g" c/ W
nPoint += 390;7 u0 X% ^5 ]( h9 f! L+ `+ C
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) W8 |: R) }) J1 t' P
nPoint += 120;: A1 n% P4 L3 T, u9 m* J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% V" S, r( g; z/ J
nPoint += 150;5 x7 f% b+ i9 j! n7 E3 G H
else if( nJob == JOB_FLORIST_HERO )4 [) f0 h( X. ~8 \
nPoint += 160;7 e) }* A! T* s0 Y0 {* a3 j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% C( w6 _4 ]( b$ M
nPoint += 180;+ o5 [$ s3 Z0 K, l3 K
else if( nJob == JOB_ELEMENTORLORD_HERO )
( h- K# M+ e7 {- Q6 I4 y' J nPoint += 390;$ L" W+ I) h1 o$ |6 j" f
4 @$ {7 i$ {! k7 Y9 @ AddSkillPoint( nPoint );
( X' \7 g4 j0 F/ X* `# O$ G! U m_nLevel = nLevel;6 Y8 \, k! |3 D/ G, q. ~+ B
+ r: l Q1 X3 L$ K& ?/ |2 R
SetJobLevel( nLevel, nJob );: H" u: e. Z: i. {1 H P. f* ^# Q4 e
m_nDeathLevel = nLevel;) {& ?! C0 T& |* } U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 d/ a F: q2 Y' ] if(IsMaster())
& h* y8 Q" e& ]7 J {* C; F3 a7 t) [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 r2 r8 O+ N$ [( t
if( nLevel > 59 && nLevel < 72 )( V/ o, i! f5 c
dwTmpSkLevel = 1;
4 Z" h* }, {- |' K% `% M# |3 G else if( nLevel > 71 && nLevel < 84 )" k; b0 M1 N" b
dwTmpSkLevel = 2;( J! E3 z* H4 B0 d/ f7 W' B, w
else if( nLevel > 83 && nLevel < 96 )+ V" r3 ^8 a7 M3 H0 `
dwTmpSkLevel = 3;
% G7 w Y3 @$ y8 B( g2 d$ v else if( nLevel > 95 && nLevel < 108 )
/ m0 `& E& w8 F: m: x3 j K dwTmpSkLevel = 4;
/ E+ k3 v! O1 f else if( nLevel > 107 && nLevel < 120 )* \) q, ^1 {, J% y
dwTmpSkLevel = 5; I. m4 E) u: S3 W" S% l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ K z7 t' F u7 e. |4 m' D { 8 `2 L, Y \2 g# W# G, W
LPSKILL lpSkill = &(m_aJobSkill);* K, j2 H, C+ D# ^" N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. g4 B9 `, |: m$ Y {
) X. a" z0 t* l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 m6 F5 E! @# {8 S) Q
if( pSkillProp == NULL )
2 n3 e3 U, a; y( E continue;$ {, H$ @$ M+ d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' v- R7 K: j W l; Q
continue;
6 X. G3 J9 E& g: r# @ lpSkill->dwLevel = dwTmpSkLevel;3 q3 L( P' t6 U
}+ [% ^! E, v- B' f4 K/ u- u
}& `& f" Q" v7 O0 }4 D7 t' ^
}
8 J+ M/ A2 S% _$ V0 G else if(IsHero())
& y; {, O5 g9 E2 [ {. J, @1 k- R9 Q2 q1 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, k1 `5 L7 p+ M% @, ^ {
! N, `* X: H0 X9 l. `) w" j0 a LPSKILL lpSkill = &(m_aJobSkill);% ]' M- t! H( K; ?9 I" R" O
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 w* m/ S3 ^$ M# p& B& T" U. g: d$ F
{
1 A. [1 S* L' \4 m. \: I- y' g4 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" ^. V3 f7 c. }8 j' Q8 y) f if( pSkillProp == NULL ). \5 A; _1 q# L2 c$ q* [
continue;
( H( u3 H2 j3 |: E b! L, r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; y, t% r& B# z continue;) C4 g& z0 o' y# C
lpSkill->dwLevel = 5;9 x4 ~- w' \7 y. l; M
}
1 i& s5 G) Q9 a, X0 B @ }
) i2 e) ~% `! ~ }
9 y9 g- B |, C. @$ b" S else if(IsLegendHero())
$ o. K4 y1 S$ F. E: o {: t" ~3 _' ^( S4 c' x0 ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 `2 x: y, s2 Y
{
' j: g% ^- `8 O) S2 o( _/ M LPSKILL lpSkill = &(m_aJobSkill);0 M, m* c. B$ u1 ] d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 x* I9 o0 f6 m; M5 H* I {, ?8 o6 n: \) C3 g+ F8 `7 j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( q4 K$ A) C* k& ^ if( pSkillProp == NULL )" C1 m" c0 S1 T
continue;
6 _# [3 j) ~& a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 @ Q- |+ m& H0 Q+ ^
continue;
`( Y/ W8 m( v lpSkill->dwLevel = 5;
, b4 B' H; z% o* z% {0 G }
- w" o" ^2 t5 H0 m }0 `% ^% R' @. c1 f( m4 O# z
}6 k7 D6 C0 s4 k- G. h# H6 R
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# }' r! C# r& b( G1 c
if( bGamma ); b2 e7 [6 W1 z9 C: X8 C
{ U/ Q8 l2 t( r' e& v7 u; Y b P
m_nExp1 = 0;
+ g& [5 L+ k. g! i# R9 n }
$ R6 l5 p( x; X7 N3 E' ^8 d2 i+ Z9 @* t4 j% q$ P
( (CUser*)this )->AddSetChangeJob( nJob );3 A+ j s, h& ]$ X+ D9 Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 d( p( }# K: c1 P
9 c2 R9 |7 H9 h
1 {4 I+ v: G4 [5 I- B3 d/ H7 \ m
#if __VER >= 11 // __SYS_PLAYER_DATA
% N1 ~* f6 k0 G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 p6 g' H. d9 H. a8 | c5 s7 H
#else // __SYS_PLAYER_DATA
/ y- T5 K$ J/ G- z. n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ S) r* O; p% K+ Y8 q/ B; ?4 Z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. y1 {) K' n# j3 n
if( m_idGuild != 0 ). h% s$ H. s; Y: j6 l _( |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, g0 H1 g4 S* M; J#endif // __SYS_PLAYER_DATA
7 o' q: J( c2 `3 D7 ?/ g& U) \9 a+ M+ Q2 g SetHitPoint( GetMaxHitPoint() );3 U% ~" K/ M* W7 Q4 }* H( X
SetManaPoint( GetMaxManaPoint() );
6 j- h/ m8 r( t" g8 t SetFatiguePoint( GetMaxFatiguePoint() );* `' j$ H# _; H6 Q3 w' e
if( nJob >= 1 && nJob <= 4 )" N8 j( n6 g, Y- j; T1 y
{
# X5 T6 U ]# d8 I* p* ]& J- O m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 ]$ R2 y8 t8 i m_nRemainGP = 28;: G' s# {- m1 }: B$ V4 b
}
" F+ F3 n4 k5 Z7 M) R if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( Y4 l. q2 \( K$ A/ n- l, c$ M! j9 _
{2 a( z! J- X5 c. E: u/ J* g* ]
m_nRemainGP = 118;0 K9 ^- `( S! h4 |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# K. o( H0 z3 G) s; J m_nStr = m_nSta = m_nDex = m_nInt = 15;- C+ h2 h$ D. m( L* U" i; E: `8 j
}! v4 W! L) @1 T( p5 i) F# J+ T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) a% N# B q# |, ? {! t6 l8 Q Q+ c0 d# P# d
CItemElem itemelem;0 r: U: B* Q0 L. K# v/ d7 ]! m
itemelem.m_nItemNum = 1;
% s0 c. H& L" V/ D2 j5 V itemelem.m_bCharged = TRUE;
6 m' T; ?, u/ ^ BYTE nID;3 x( ]* i% }( P3 J% t2 o
. U# G+ x) p. s$ k if( nJob == JOB_MENTALIST_HERO )$ A$ i$ D! H, L. \: }5 z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) D3 T$ P# y5 j q, I
if( nJob == JOB_FORCEMASTER_HERO )8 m1 M' ^% O0 P7 j- d0 T! W
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 K# I8 n* q1 G7 X; K' [- k! H! n
( p; X+ S: H8 P- p9 v3 c8 V# @1 V ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 c1 [! C. }7 I1 a6 E. N& y) `( z
}8 V5 r5 j" K& n& z& ?4 u- X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 g6 u( R) p8 `& \5 _- d+ t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 I* `& _0 E7 A0 j- E
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 M+ ?" f& m/ J2 H9 \: C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 {- b0 ]/ ^2 K ( (CUser*)this )->AddTaskBar();*/1 Q; L$ w6 t3 i0 q2 \6 W* ]' u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! i7 v1 w1 S5 U& m5 {$ E }8 Q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 N& G2 t2 ^8 t2 A ((CUser*)this)->CheckHonorStat();$ a+ X5 z9 k1 B9 H3 e# {0 q$ g
((CUser*)this)->AddHonorListAck();+ G3 d# F0 t* a4 e R' Z" k( U
g_UserMng.AddHonorTitleChange( this, m_nHonor);% R# w+ X: e- s) c- p0 [; J6 j+ Y
#endif // __HONORABLE_TITLE // ′Tà?
) b/ y, ` U$ U5 R }
7 V0 Z E' Q$ s3 G% P9 ^, A- A#endif // __WORLDSERVER9 o. F0 K( v0 r& J6 ^$ N7 m
} 7 |. \0 T' y W ] ?
2 _& X5 R ?& u
然后你进入functextcmd.cpp并添加以下7 n: y/ Q- m7 O U2 ^3 L$ [
0 l7 W, X9 r6 f. V d6 V |7 J
代码:& z5 l' T# O3 A# x5 p, |/ Q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( X7 u. H: M: v7 v下面插入
7 H$ y9 h$ ?# Q# J$ P* w7 L/ n/ [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
o; F0 ]8 b$ D4 i/ Q- x$ G: g2 i' _0 x" n) L9 m$ J" e4 u
然后你去
2 N6 v" ~& f, }: i6 j1 \
. ?. y7 M, q b2 U! F! N7 y代码:
( o7 j. K. ]% T- R7 e代码
0 P3 |: q) T* P. TBOOL TextCmd_ClearPropose( CScanner & s )- r' [1 [6 d+ N6 x2 c
{
, b+ g& e4 r4 m: }#ifdef __WORLDSERVER5 [. D7 w$ |7 p
CUser* pUser = (CUser*)s.dwValue;
8 |4 m+ G4 S1 f; M( Y$ i' Q+ h1 v g_dpDBClient.SendClearPropose();
$ g' z" }9 q+ b( @% H#endif // __WORLDSERVER
0 |3 u8 w6 r7 B% u, Z return TRUE;
0 r$ X- W, h. y( Z; D}; O: \8 T T4 E% ^! w
下面插入+ E: |- v% O& F$ t
BOOL TextCmd_rebirth( CScanner& scanner )
! r2 b, o3 ]; o2 B9 ^% p1 Y/ k{
5 I1 ?- G7 i, Z. @& n' K" N#ifdef __WORLDSERVER
# e- @6 ?, A' U% ICUser *pUser;
) t2 i. X6 m/ A7 i. K' WpUser = (CUser*)scanner.dwValue;8 R- [+ ]2 V! @& e7 l: Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" k7 @* i2 V: K7 b: c; _& k6 Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. Q: G) x$ Q7 A$ r% V. E: l
else
0 i3 H" Z7 ~. S0 J! F5 L$ apUser->AddText("你还未达到重生条件!");, Z1 e$ M. a) o: b6 Z
#endif
& j: i- Y- }. O2 G$ A mreturn TRUE;
9 {5 }( w/ Z+ |8 a6 g: `} ( E8 P: f9 L, O7 Q$ r/ L8 t
3 d; P/ G! w" G T: o) R0 r* U
5 A2 O# o, X. u& L3 J3 K3 g. O' Z, Y; \# j/ D/ o9 p
: E/ k( |: h. H3 G$ b |
|