|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 [8 e& [* V2 x# Y5 n1 O z$ {: K! C* I; c7 U0 c
Mover.h
/ P9 X8 K* m0 ^5 b* y$ b代码:# g* d$ X; n0 E& B3 X; C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) [. Z& i7 T2 J5 ^9 A. e4 j( e7 W
4 M) n. O6 @! j" ^3 R! ~7 y+ E* Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 q' P8 N1 a. g3 }" }+ O7 W9 b( ]$ |
然后你去mover.cpp添加( R3 T* P) ? K3 I8 O( c: l4 G
# ^( ?% I4 K" H7 l$ e
代码:
4 n9 P, C' {/ y) N- l; S4 ^5 [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% n, V. N/ u/ o6 S! M
{
3 X& ^" y" y. @& h% @2 B#ifdef __WORLDSERVER
9 V0 O1 \ f3 ^ h: I% j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 j* q) J7 f! z: |" @
MoverProp* pProp = GetProp();: U1 y, t J5 `9 K
if( pProp ). a3 G4 Y+ v3 I: Z
{, _. b' D* d; X2 J; b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& ~ [; b h5 y# x+ y9 E' A& |. J
{
# C9 c2 }4 U7 L" n1 q, h( n AddChangeJob( nJob );
- ]6 z5 m! n( Z# L, g. n }else{
2 J8 U4 g1 r1 _ return;
) F+ H7 \# e& t2 h8 H* P+ {" ` }
9 Y4 V5 N9 @# H/ O/ G4 E2 L int nPoint = 0;
2 z0 P v, B! V% o1 z! m& d if( m_nJob == JOB_MERCENARY )6 N# D- E, [) k9 H, [! c. B
nPoint += 40;
4 E) O* l9 o$ l8 Z% W else if( m_nJob == JOB_ACROBAT )
2 \7 @8 o2 `1 G$ ^$ N nPoint += 50;( \& K! T$ D1 I% A* h
else if( m_nJob == JOB_ASSIST )/ [& i- T! {0 a' e$ Z9 c
nPoint += 60;
V: ^- f8 a% D4 u a else if( m_nJob == JOB_MAGICIAN )" r2 U: T) w& R* d. d. w
nPoint += 90;
# Y) O- Z$ z" y7 k3 G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% I' e8 r5 ~. X& g: Q4 [' g* A nPoint += 120;
9 [7 P$ `5 o' A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ }- T6 x/ Q5 u
nPoint += 150;
8 T* A, d) v& y7 A else if( m_nJob == JOB_RINGMASTER )
& O) y# O; r4 |3 s( W nPoint += 160;/ [7 }+ c( l* O# y+ ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 c# I. d9 M6 Z. n9 l; `% l nPoint += 180;
1 c* f5 X1 m/ l" o" I6 m else if( m_nJob == JOB_ELEMENTOR )* ^2 ~. k; V N' _: _0 ], T$ G1 ]( D
nPoint += 390;& M7 W {9 y& |) P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ s% Y8 \* | k5 y3 F6 d
nPoint += 120;9 q' z7 J4 A& j3 y! V) Z, Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 R& l& r+ o' v nPoint += 150;
7 F* W" z D7 i" U else if( nJob == JOB_FLORIST_HERO )
- M- R$ ~; c2 O* \' w1 b nPoint += 160;
+ t$ S6 l) s5 S3 s) v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; `) `3 J6 @" @/ W/ I nPoint += 180;$ x/ V0 E( u. m" C- |
else if( nJob == JOB_ELEMENTORLORD_HERO )
! ?6 g2 y3 [/ c6 j% _8 i. t1 n+ \ nPoint += 390;7 R/ L# L/ m D* ~% b0 @
/ {7 Z6 {9 k1 c3 E+ f; S, c
AddSkillPoint( nPoint );
' ^' L2 W' [" J/ s. f( e3 O m_nLevel = nLevel;
( \6 Y9 a' Q% k; [, F! c) Q6 {/ n9 i' e) u( U9 E- W( T; Z
SetJobLevel( nLevel, nJob );
0 n( }# D- Z2 Z9 ^! T m_nDeathLevel = nLevel;% K9 Y4 y) Y$ p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- V2 @) E B2 F: x* V- L
if(IsMaster())6 _# F1 v- M( b' k
{
! w' T$ k J. Z1 |3 Z3 M int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" s+ s2 S. G2 p2 t if( nLevel > 59 && nLevel < 72 ) e6 E5 b3 B1 t0 w4 ?
dwTmpSkLevel = 1; T$ c7 ]9 l: z( `
else if( nLevel > 71 && nLevel < 84 )
" @5 _+ j, O! |# G! J dwTmpSkLevel = 2;
9 R! N/ L9 Q7 n7 E% ]1 @ else if( nLevel > 83 && nLevel < 96 ) `4 T' M0 ]" T# T. J3 {
dwTmpSkLevel = 3;0 d) Y6 H; j2 M8 X' q8 [8 s
else if( nLevel > 95 && nLevel < 108 ) v7 p+ w ^5 L5 s. z. j
dwTmpSkLevel = 4;
# R& N; C" C8 v! y- R# h else if( nLevel > 107 && nLevel < 120 )8 h; ^: Z* k. P7 S5 F6 X* ?
dwTmpSkLevel = 5;5 ?, q0 ?9 p. O3 v. J: ?/ K$ c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 A+ W4 \2 T. H, D+ b/ d {
( O0 w( S* f% W& k/ n, s7 P LPSKILL lpSkill = &(m_aJobSkill);8 ~) a7 n$ j3 o3 N& q0 w; k
if( lpSkill && lpSkill->dwSkill != NULL_ID ): p% p* Q5 F. q* \4 Q" f
{ W# l5 h$ U+ O- K- J8 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 N9 h7 s0 D- r9 \: l4 M
if( pSkillProp == NULL )
5 ^2 V7 ?* X" K: L2 W5 y continue;( |. `5 F x& f1 u6 W. K* g" ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 H; o2 G5 F2 V) u0 t/ K$ f
continue;
: \3 N& ?) t- x( T lpSkill->dwLevel = dwTmpSkLevel;% H4 O5 M! Q* O- F
}
$ \4 V$ D3 M, D$ M2 ? }
' ?' J+ ]# |: ^' ]- R5 R& I }
5 _/ @% g% c7 K0 K+ Z( M) X else if(IsHero()) C4 l' f, @2 w+ `1 e# j) }. ]6 ?
{
. I. @3 H1 T: t for( int i = 0; i < MAX_SKILL_JOB; i++ )
% C% F5 F4 D& C$ b6 J7 R. A" [ { $ k) k5 C. `* J+ Y
LPSKILL lpSkill = &(m_aJobSkill);$ E r, L. u, e2 k' H! @) s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
R2 ~& H' M* w$ C {% O, E/ E( c. M) t; d! H3 I- C& O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# b) a8 R8 }5 w$ [0 O2 H if( pSkillProp == NULL )& ~7 R/ b% |" Z! P
continue;0 F, U/ ?0 `: T$ y2 l6 x1 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& d) H2 V* [8 j+ ?9 p7 z+ W
continue;
( E: Q, K; B0 m# g# }! Z lpSkill->dwLevel = 5;
7 {. c+ s) _: Z7 U. i- W9 s3 v5 t% V }. r9 u3 m/ j7 z8 x1 J3 v7 _. H. k$ u
}5 V" k# M5 u+ r7 S
}9 G9 X# E- }7 K( C4 Y% W
else if(IsLegendHero()). C& k. K& ]* J; O5 t" n, I# a0 N; w
{
' q( _9 {( U; T4 c/ K) e( B: q for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 z& c! L& _( W: t3 | {
% j3 Q: d* t9 h/ f5 V LPSKILL lpSkill = &(m_aJobSkill);
$ I" @# |# O0 t% |+ c! A, W if( lpSkill && lpSkill->dwSkill != NULL_ID )% F3 v1 Q7 e; V$ d
{$ ?, `/ ` l6 s$ j1 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- j5 U; X8 n- c! [& ]+ h; i$ o( D/ V if( pSkillProp == NULL )
% o8 H2 v; v( @" @6 b( g continue;
* D. U! t# @2 D' _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# Y, y) ]9 b$ A/ v continue;' |( Y+ I6 ]: q& Y' ?1 s8 d6 [3 J/ D! X
lpSkill->dwLevel = 5;( o5 g8 n7 |; o# h! n
}
B6 }' `3 Q+ | P# S" u- C! k9 m }
& a1 F/ K. i/ |& N }
0 k1 l; F' ~3 d3 m i+ X#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: U) C: m/ n4 n9 g( |% i if( bGamma )
# u* f" E. g& }! ?( U {
& ~) q! c! ~4 U! g m_nExp1 = 0;* `# i7 B& F, }, P: r
}1 K, V3 F5 M+ S3 ?3 B
5 L2 J1 ]) }9 u5 ]* A
( (CUser*)this )->AddSetChangeJob( nJob );4 f, S" _( M" T
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ D/ [. ?* `& I4 c* w% Z& e
+ `* h6 L4 y$ ]
; c6 g3 y8 f, J5 D5 T
#if __VER >= 11 // __SYS_PLAYER_DATA
" ^" r' b% w! {( S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! ]- Y- z- S8 o& q2 c; Y' x
#else // __SYS_PLAYER_DATA- L- [2 F5 F8 S6 P, D6 ?$ g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; E+ v5 \7 t) f8 X$ D, W. a
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' J9 v) q4 S/ q' A7 A& q
if( m_idGuild != 0 )
+ g, X1 {, |9 U8 V( m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; p; S T8 \" h/ @0 |" Y( M#endif // __SYS_PLAYER_DATA
h( H7 i* H `2 w# H8 w# Z8 ]4 f2 \ SetHitPoint( GetMaxHitPoint() );
_/ L9 d7 m2 `0 L5 V SetManaPoint( GetMaxManaPoint() );1 j& E; l& q8 Q& s/ v
SetFatiguePoint( GetMaxFatiguePoint() );* z$ l3 l. D! Q+ e) r- E8 M
if( nJob >= 1 && nJob <= 4 )
* {: ~$ ^5 `' |( ~; }' H {. N% B8 G( S* n$ B) p* w
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ q0 H- t1 o1 L% ]! ]
m_nRemainGP = 28;( y; S4 }! K4 n& f/ u
}
# N- G6 @- y: `, i- G: M; i5 m# V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 ^, L# h, V$ ?; e6 ^; p+ e
{
& p7 j% e( y1 `# [( Y/ s+ N m_nRemainGP = 118;
$ C) e/ Q9 g+ I& j3 ]5 E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# q5 }0 l# |3 @! H" Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
O+ v+ @6 j7 U }/ U! X% H/ t4 \/ W' c, [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ k$ s! o4 s, ?+ e% E" X
{
6 d! f% O9 g U) { CItemElem itemelem;) m* ^$ Z' W# A9 U1 ~
itemelem.m_nItemNum = 1;
# h: @ F- H# F5 b itemelem.m_bCharged = TRUE;
7 Y# x U, e" b+ o1 S( k BYTE nID;- ^" @3 f9 z' S# o
1 d/ A4 X. k6 ^/ D; o$ h7 b4 {
if( nJob == JOB_MENTALIST_HERO )
* t7 s4 O! M4 m; g! m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& I) Z9 {9 J+ T0 N
if( nJob == JOB_FORCEMASTER_HERO )9 R ~& j) L) |' A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 o) o! r7 ]( C
: V6 h/ C" }$ W ( ( CUser*)this)->CreateItem( &itemelem, &nID ); S' H- z k- g5 ?% R, L, _
}
' _4 a/ f4 u) W% X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, U- ?9 `, |) d- i/ u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 Q1 N) Y! C& v1 Q8 u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ \5 ~ s( j# n; u! z3 ^6 b4 w& \" D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, q( r! b0 |: V5 c ( (CUser*)this )->AddTaskBar();*/. g. A" y! d0 F$ u; d' H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" c1 s: ?9 \: T6 w z$ L' b* W0 E#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 ~8 |$ X. B* L8 t& ?8 [- C- q% J/ w ((CUser*)this)->CheckHonorStat();, { }' d) \, g( j! e( B; r% t. _
((CUser*)this)->AddHonorListAck();7 p% f! j# h; y n: H6 O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" i+ k& i9 t6 P! s#endif // __HONORABLE_TITLE // ′Tà?
2 J( D6 w9 H8 k* Y5 O }: x) t* a* O: h5 p& g9 ^* ^" S* w1 M! J# R
#endif // __WORLDSERVER
- j' Z9 W& Q+ r9 \+ n} : O4 i/ j' Y3 I$ G, P
: q! q# i2 G) |. H- Z1 W然后你进入functextcmd.cpp并添加以下4 W% y# V& {! X8 f
$ V% i& R4 q4 z' m0 O
代码:' m; \2 x, j* |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' ^) h5 x# D& z% B: L3 K2 i1 m下面插入
. s) n1 o. C, |5 A; x+ VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 i+ P1 ]) O! e0 y u5 b( [2 P7 w
3 V' ]9 ]6 U3 V P- L# D然后你去$ S& }! A1 \7 U0 q" w3 t$ Q5 g
6 E3 ~, Q7 T+ f$ \. W代码:
) V) h% C% f$ K代码
: E, P* A5 C; ?: {* Y. Q, f9 l% pBOOL TextCmd_ClearPropose( CScanner & s )
1 [+ {& `; ?* u4 R6 {{ p3 |% R3 ?1 e2 K J2 G4 c
#ifdef __WORLDSERVER/ s0 D# T. H# A
CUser* pUser = (CUser*)s.dwValue;; ?9 C) o$ o# w" l/ D$ s
g_dpDBClient.SendClearPropose();2 }7 q; L9 D( I; o `) A* f% I% R- n
#endif // __WORLDSERVER1 j0 h6 w( R7 w! j3 g7 C' o
return TRUE;/ p" f" P/ u8 a# s
} g. O. H$ L Z3 G) G# b
下面插入
$ b# k% b8 s5 Z) E* E" c5 W7 YBOOL TextCmd_rebirth( CScanner& scanner )
+ Q3 g; h4 I0 T! Y, w{/ K( ^2 Y1 S, }9 u
#ifdef __WORLDSERVER( q3 {. J, k( y, z; |
CUser *pUser;
3 X* \. y4 L* V5 [1 opUser = (CUser*)scanner.dwValue;
9 E% f$ k! a, v' k% pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); L& X8 n }9 x8 @. k
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 c8 i4 z2 x5 x% selse- j" f' |. L+ M: A1 ~" r
pUser->AddText("你还未达到重生条件!");' J2 a7 m% N, k2 K
#endif
9 x/ W) U; K, e; I5 x/ i$ preturn TRUE;
0 t& ?% P2 ]0 P7 L} * b; {0 ?8 h" N1 h, a
! v/ N, V9 ]+ O0 |. w
- G* J2 p% d( y# l8 o$ D8 t
- u" y, P! n/ _9 P' Q) O( f' q) t
/ ^+ w/ j; h* q8 v1 o |
|