|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( M/ Y* q: I$ ?6 W. K1 v) v( Q. S/ S' V, |/ D, L& Z! i7 j3 M6 S4 O9 b4 |
Mover.h
w0 ~! e& d+ g( f' _代码:5 N8 U' ^& E1 t/ k' C" `7 F+ I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 e6 R$ o; D% w8 S
0 e- V+ a- O- ~, m* u% h9 _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 p9 u' I6 z. ^( Y) F l
& d" \4 W" }, O( `9 I
然后你去mover.cpp添加+ F; ^7 J& G$ Z m+ l) L1 J4 Z
( Z5 W5 f N8 M8 l代码:
4 s$ S1 c) l0 J, N0 }9 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 a# _. K% i; M: F6 g# i- `
{
$ R( b O% Y+ f3 N* E#ifdef __WORLDSERVER8 ]# c% j: r# T* W# H4 Y" l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 A2 f5 f7 H8 Q5 Q ` V$ O0 R MoverProp* pProp = GetProp();& c8 \; j# G U5 ~
if( pProp )5 ~' m# T, { k, i; J: w' j
{- g4 V7 z$ v& O4 p8 ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, H: ?) b8 Z/ e9 o: C9 [ {! b% z c6 A5 n' D/ S; s- X
AddChangeJob( nJob );
( I) k! R$ F. w0 E }else{8 q% U% M- M" o3 G
return;
3 c' i; U6 b) W2 `+ e* h }6 O% W5 V7 |0 M" y( ]( L6 @
int nPoint = 0;
+ X% B9 ^' Q E if( m_nJob == JOB_MERCENARY )4 |. I1 v/ ?( u) k x3 ~* c7 S
nPoint += 40;# P& ]! j9 e3 b4 s" K
else if( m_nJob == JOB_ACROBAT )
& Z; J8 i8 _, o nPoint += 50;
6 I* a; R; u5 {9 z3 }; h) D$ O6 a else if( m_nJob == JOB_ASSIST )
$ w1 e- b: j C. L; E' b: @ nPoint += 60;4 k# `; h3 F' o" ?
else if( m_nJob == JOB_MAGICIAN )
, o! Z2 C3 `4 i2 H8 S* F nPoint += 90;6 i: w1 q+ D. L+ f3 g4 H$ u9 n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 z) p! u4 t8 W c' z- K6 @8 ]
nPoint += 120;. P% I4 ], \6 L! }2 r' h/ Q" ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) x9 g- z/ ]7 \" P3 H; U/ I, T4 X
nPoint += 150;5 y) |$ p3 p5 |" t1 X
else if( m_nJob == JOB_RINGMASTER )
1 {1 {3 {$ G0 m nPoint += 160;
: v; `) W# m5 F z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% B2 l8 p N' [' _2 Z nPoint += 180;& [& t( E' C5 k6 m& W0 }
else if( m_nJob == JOB_ELEMENTOR )
. D/ E* j! h, E nPoint += 390;5 P- p5 e% _ A" |9 h1 d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 B; \) v: B' c0 j3 ~ z4 `. j
nPoint += 120;6 l& l! Z$ M( b3 L& u. A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 U1 b3 r9 U' Q. u S3 J1 p nPoint += 150;$ ~* f/ P% i. o
else if( nJob == JOB_FLORIST_HERO )+ ~4 }% p; F! l
nPoint += 160;: Z# m7 V |8 ~7 n, ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 ]" h6 F2 o) F- A, Z( J
nPoint += 180;
) K/ ~# Y4 e, b$ g- x else if( nJob == JOB_ELEMENTORLORD_HERO )
; A) J6 i. d( [* p# G; m3 f- i! Q6 e nPoint += 390;
/ a l2 \7 i' H! T6 X
, u$ Y: m2 o/ d4 q AddSkillPoint( nPoint );
+ ^+ k3 {7 u' K5 i4 u7 A m_nLevel = nLevel;3 }/ V5 c& e( Q. Z7 }, G0 B
. d+ \4 P" S" U
SetJobLevel( nLevel, nJob );
) O' @& | I5 J m_nDeathLevel = nLevel;2 I1 k8 M- w2 C$ Z9 G( F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. a& k3 S8 I7 S0 I4 [$ e% O9 p5 s if(IsMaster())' p |6 S) T E& G( w1 X
{5 U! s5 ~: { H/ e) r
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. \- C& g, Q, g5 y/ ^$ a# f if( nLevel > 59 && nLevel < 72 )
: u: m) ~- B) q! U X; L K dwTmpSkLevel = 1;
; X/ b* S+ B+ x0 Q else if( nLevel > 71 && nLevel < 84 )6 N2 c2 e# O1 D4 Z+ @; d
dwTmpSkLevel = 2;
) r g8 d; h9 Y2 v' ~0 w! ~" M else if( nLevel > 83 && nLevel < 96 )
- p# |, R7 @3 ^! O) t" \2 f dwTmpSkLevel = 3;
# T9 S/ [; G, W; a1 ^$ O9 b* ]% C else if( nLevel > 95 && nLevel < 108 ). b8 G( B7 ~& X+ I1 `) [+ F( J
dwTmpSkLevel = 4;
8 m3 s D# h2 d% r9 F% X else if( nLevel > 107 && nLevel < 120 )* D2 x8 n/ {: G% A% I5 q
dwTmpSkLevel = 5;2 h4 ?0 l8 c# e2 v( \: w; ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* w9 y7 U9 \7 ]7 i9 m3 d$ C9 y { " R3 w& K6 ^: A5 U
LPSKILL lpSkill = &(m_aJobSkill);
5 W3 v# @9 C6 x- f6 _ R if( lpSkill && lpSkill->dwSkill != NULL_ID )2 m+ L7 `' U: f" h
{
/ D6 o& t7 e" t7 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. O0 \# K# K5 e if( pSkillProp == NULL )2 e9 W6 [' H" S9 ~$ @) C& V
continue;/ V! E: s8 V: c4 G1 m- N" }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; Z9 u2 R% f4 C1 _ continue;+ L8 _4 `( h! D8 R) z$ y9 d+ Y
lpSkill->dwLevel = dwTmpSkLevel;
7 H0 a- i: ]7 ~- X8 { }+ E) |6 G7 c* _' v- n. H
}
, l% k0 |% ]3 C" |* @ }
) t1 }' w0 w9 ^# H else if(IsHero())
- t6 N/ c/ r! ]" p3 k8 H {2 ]5 l# @! t) i7 E7 q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! p2 G' \* Z# S {
) C9 H J$ E* h LPSKILL lpSkill = &(m_aJobSkill);$ [# p! ~- n! S+ ~5 k7 j) k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ }0 d8 W+ L& r) ^ {9 T1 r% v( f' h0 q1 x" a. v. G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 H" g: b) y$ q V% K! s5 Y
if( pSkillProp == NULL ), V6 K: \( x* O2 H/ S+ C1 O+ f
continue;% l; Y# U8 }9 h0 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); |1 P. {) c- L$ {" g& @0 D a
continue;# Y7 i. b( T* l: B/ p$ ^" r9 a1 f
lpSkill->dwLevel = 5;4 Z; a, ~9 h% F
}2 B* M3 s% Q' I, w0 N
}1 I' a# k, m. N8 @+ C. L. z: Y% Y" i
}
& v4 }" i2 G/ g else if(IsLegendHero())% U, I5 W& K/ H6 [+ b1 }; U
{
' L7 K* V, H+ A2 N' O for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 b7 L1 o* C! a" S { 5 ~0 f2 E, ^: A# I
LPSKILL lpSkill = &(m_aJobSkill);# @4 n6 Z3 ]* K1 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# _0 x/ M2 e3 {4 P( l {, m z7 I8 w7 H" _; W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( ?/ T; [0 m) r7 Y3 w, F: F9 J+ I if( pSkillProp == NULL )# @& |$ Q8 c- b& I% |
continue;- y4 O( Y$ f5 B6 Y, R& z, p( a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ s5 C( S8 u& L5 `2 Z& |0 e4 O continue;$ [& X9 c" }* z0 t. R1 Q* `7 w
lpSkill->dwLevel = 5;
8 t/ [2 ^# D0 \) I) N% P. d* v }) P! ]; o% h' j) s
}
1 g0 r# _& w4 m) n& ^ }
8 M4 P4 h. P" O. l; E; s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 B, [9 Q* Y# s9 G( i1 C; w
if( bGamma )) Q4 B" @1 _6 D/ f$ R5 ~1 [. J/ N
{
3 J; W# W! @, \- B" J m_nExp1 = 0;
# [( W+ l: C$ W u. ] }2 i0 `$ |* ^' M# |/ A
. W$ j, q! @! n3 g5 Q' {' e ( (CUser*)this )->AddSetChangeJob( nJob );7 ]9 c. y. w, z' }- K4 B0 e3 h. u2 v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 H* c6 F6 p) E, n+ y
& V K( x4 M0 G0 ~' P# N$ w! T. Z. s( `9 L3 A% `4 B" [
#if __VER >= 11 // __SYS_PLAYER_DATA3 w$ H2 i( l* Q' M' b, `( b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- Y6 W. P: G" f( Q3 o' Y
#else // __SYS_PLAYER_DATA4 d8 Y8 ^4 p4 z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& y h) P* j& J4 q7 y J4 j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 S2 T( B/ d* s2 w: K
if( m_idGuild != 0 )
3 A6 C2 P' n; u+ r) c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" F8 R! i8 d. ]+ c; O1 ?; ?
#endif // __SYS_PLAYER_DATA
/ H+ A; [2 {1 C8 J/ V SetHitPoint( GetMaxHitPoint() );
% B1 {& m. |5 K& O/ R b2 T1 Q SetManaPoint( GetMaxManaPoint() );
! T" V8 d& `7 V SetFatiguePoint( GetMaxFatiguePoint() );( d# l- T& T6 L0 I3 P5 F; _/ ]
if( nJob >= 1 && nJob <= 4 )
5 W: E1 a0 O, R0 L K* ?4 ~ {
~5 x7 M, H3 Q& t5 t m_nStr = m_nSta = m_nDex = m_nInt = 15;
: {2 I( p _' P m_nRemainGP = 28;
8 j& m7 H; Q2 V1 h0 Y9 X! N }! B. u, V; F# E5 [. y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, h& d# y/ E7 _9 K {( y8 K& T7 r& E8 X
m_nRemainGP = 118;" {$ N! k. J5 z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: f, i* z+ E4 j' s7 F( _- }$ Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' E. Y+ j; U8 F2 L b1 z }
# n" @1 V% K& e* U0 g9 M& t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' M; z" @6 _2 V
{
+ y! p% e0 R5 Y" k7 ]7 B CItemElem itemelem;
) M3 `1 x( U$ |% v- z4 C itemelem.m_nItemNum = 1;
8 f P9 R2 k E/ a itemelem.m_bCharged = TRUE;# ^& [' j% t+ ~! B& Q, M: C L* B. n
BYTE nID;; e, Q6 K$ \5 f* \ S8 \
( ^9 t* T+ g7 l, ]& Q( P+ }
if( nJob == JOB_MENTALIST_HERO ): }7 N+ U* y, l4 P# ?2 ?+ d- V
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 R* [2 O# O% p* h- @6 y) z if( nJob == JOB_FORCEMASTER_HERO )
# l7 q, L, a8 | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! E% q3 C8 j$ F& P/ T. t, ]/ [2 `: R! |( N' V' r
( ( CUser*)this)->CreateItem( &itemelem, &nID );
P9 E& D" g. Z, L" H! a }/ u& M' j+ R7 V3 R3 T8 f) {3 Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ E$ `* _& ] ?! T$ ?3 r6 A8 x2 V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' F7 }. B# |0 P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 \4 @1 F6 O) s4 j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- ^- o8 O2 P& B: \
( (CUser*)this )->AddTaskBar();*/; z. P* g9 x2 H: I7 b- Q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. H$ ]0 D7 x; _$ ~( h. }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! c* f) G- _$ m, M
((CUser*)this)->CheckHonorStat();
2 _8 Z6 a0 e: E! ~# T3 ]6 N ((CUser*)this)->AddHonorListAck();
' D2 \. ]% F/ J6 {: n7 b g_UserMng.AddHonorTitleChange( this, m_nHonor);6 l. O$ e+ Q2 J3 U1 C/ a
#endif // __HONORABLE_TITLE // ′Tà?5 L8 t' T8 K) _7 Z) m
}
Q! h' n. H3 G6 ]( P/ o. |& U5 H#endif // __WORLDSERVER
- {0 g" b: L) O# k} ( {$ C' L0 B$ ^5 w- O5 H
& m& c$ i7 `1 t: r, u7 d/ g& [7 y* z) j& O
然后你进入functextcmd.cpp并添加以下/ s2 y" j2 W+ |4 }
+ i- t" b1 P* ?" M; Y$ `* x [& H% X
代码:% ?. c0 |0 z6 l+ x4 g! i* l% X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 q7 m) B. Z6 a2 W/ a* r下面插入
) i3 x, @3 c1 Z, pON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 k X" E, B$ T) I! t2 q. D# W# V. f- y* @; d
然后你去3 }- h# ?- W. J) G
+ |( r! E2 G4 D3 @7 W( ~
代码:
" H/ @' X; N8 H$ H代码
" e, F7 o+ I* m2 F5 p9 ZBOOL TextCmd_ClearPropose( CScanner & s )
/ q+ d4 K) d7 b4 f' H{( S: k( e' n: Q, w
#ifdef __WORLDSERVER
# Y( Z% X7 h9 {7 U7 q7 f4 F CUser* pUser = (CUser*)s.dwValue;
N, H- v, ?9 B* C6 `& J$ C. R( Q g_dpDBClient.SendClearPropose();
8 H- P; z0 O6 h+ D#endif // __WORLDSERVER
! u, M2 i* B( O% k, P: H return TRUE;3 s0 d K& O8 |, C
}
7 V8 L! B& t1 }下面插入
L3 ~& a# o% f! v, ~BOOL TextCmd_rebirth( CScanner& scanner )# A; ?8 h7 B- V& Z; a1 @5 b5 f
{ q" J& A8 X+ P0 a4 e+ b
#ifdef __WORLDSERVER4 E2 r3 X& G/ v, M, E0 P8 Q, [
CUser *pUser;
! ~$ ]% D O# fpUser = (CUser*)scanner.dwValue;
& G' U' G# {) D6 U# e1 Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 I: Z- U2 I* C( w lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% e* b% |/ e" i: u% Y+ Q
else: [; H* _ q+ B2 T \! K
pUser->AddText("你还未达到重生条件!");
% Y- _4 E8 P2 ]2 Z) V#endif
& d; C. `; J$ freturn TRUE;
+ Y9 c; t# }/ \) B4 _}
! S" ^; I/ E# |. G; _ @- r5 v% s6 e9 P. Y# z7 r$ \/ X
8 ^: F+ L/ |/ t, S- b3 u& `
* M3 c9 |* z m+ d. r
2 L3 c, {5 P+ W1 g& W |
|