|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* v" K/ c, p7 B: W* v0 Q+ N/ e" L, ]2 g/ u" U. J
Mover.h0 r3 Q7 p% ^( S0 k" A( B E7 B- j
代码:
R0 B( ?3 C. A2 K# K找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 t! ~* p$ ~0 W" V0 Q1 K
0 I4 {* T! b+ d. m
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 T3 c+ D! t7 A4 ?1 N
3 Y& ?: ~, L, t/ [6 t0 j: G+ v
然后你去mover.cpp添加
0 B) A( z4 G5 g! v! ?- a: D/ k) Y2 [: K1 y) O
代码:$ X. w/ n9 {, k; ~, M. M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 \; c: q, F2 g5 t# ?: O% i6 K2 T' L
{7 j- N3 s6 u( G( p4 T7 ~- t
#ifdef __WORLDSERVER
1 Q* l: u N) q: U) V4 g" a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& H: Z. P0 P4 v5 B ? MoverProp* pProp = GetProp();
$ o H( \4 ]7 l! K5 `: O if( pProp )6 ]1 `* ]' m; F
{3 p) N; @& H7 r! w, y2 p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* h+ s# u( v5 J! w& |9 I/ X
{
: i$ `) ?& j: V l$ c. J5 b: y# Y AddChangeJob( nJob );
. A( }% J5 B4 Y2 C }else{
7 a+ V$ s) d: F- B9 a3 i; j return;
) u* Q6 x" n& J8 a; H }
" x: Z1 [, G8 O5 O* D8 H+ C int nPoint = 0;% W. ?' A3 D, q' X/ o1 j) |2 B9 e; V
if( m_nJob == JOB_MERCENARY )
1 b" E% l9 i0 D# i. w* e4 Y8 r& ]8 S! h nPoint += 40;
2 I2 F2 `6 `) _0 G; s7 n4 v else if( m_nJob == JOB_ACROBAT )3 [1 e3 k& _# E0 @ w
nPoint += 50;
; j: ` C- X) ?& g! O9 y else if( m_nJob == JOB_ASSIST )
! v# O8 q, R9 C2 ?! o nPoint += 60;* T# G- o" y% F _. A; D$ e. A
else if( m_nJob == JOB_MAGICIAN )
9 F( X* c( }$ j4 i% n8 q nPoint += 90;5 g- x9 P% O% {$ k6 ^; ?) u7 y- U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 u0 H' H, X/ E2 `1 T; K nPoint += 120;# i0 V1 a9 b) p. z# b
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! T$ O2 L- r2 {2 x" I nPoint += 150;
6 M% k6 _" L4 z. ]3 _) o5 ? else if( m_nJob == JOB_RINGMASTER )* O5 H+ a& ?8 l- U' o7 r6 q
nPoint += 160;2 b5 z8 i0 n* U2 o2 o0 w, n4 m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 ^5 j( [( l' w! ~ nPoint += 180;
0 a- t1 m) O. [, y6 Y else if( m_nJob == JOB_ELEMENTOR )
7 O& S3 F8 ?8 U) e) l nPoint += 390;' V1 O* B, _; n* o2 M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( w$ [" X" p2 M. I p& v/ P t nPoint += 120;; w' r B* b9 Z9 e3 l
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ O0 v8 ~; y) t2 K/ h, d* q" M) `
nPoint += 150;
u3 I9 I; l ?/ n, y/ [! @9 W1 a, S else if( nJob == JOB_FLORIST_HERO ): }: @* \& D8 D
nPoint += 160;
$ I8 g J- K+ y( X) W4 _: L$ | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 J+ m m& e/ g0 F4 I G
nPoint += 180;
l( V0 l. z0 O/ ^* V+ \ [, f& Y b else if( nJob == JOB_ELEMENTORLORD_HERO )
8 H4 ~# Y+ \0 b' G* D nPoint += 390;. p9 e9 u3 I. q: X% `: P
* X1 ]' R4 c. h [7 K V+ }7 K' V AddSkillPoint( nPoint );% C3 C9 k6 P7 E; i( _) O/ Q1 U
m_nLevel = nLevel;
2 s. T; p- ^) b# [2 e5 A# j0 _6 u# Y/ _. j
SetJobLevel( nLevel, nJob );8 F0 I$ S: B5 F+ B' h
m_nDeathLevel = nLevel;. v& G" G+ S6 v: S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 u; I9 _$ I" j$ D) j if(IsMaster())2 ^- G# _; K8 h0 V; e5 H$ u* p
{/ P! F( l; w3 b' t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; d. I. W* D! Z1 B
if( nLevel > 59 && nLevel < 72 )
. e5 ~- [: v: f6 F7 f( F3 y9 n; G G dwTmpSkLevel = 1;
0 @' T U. C, |+ W9 A1 _1 X& H# l else if( nLevel > 71 && nLevel < 84 )! |3 F) j# y+ f: @3 _& @
dwTmpSkLevel = 2;
, K( _. N8 G& F+ A$ U else if( nLevel > 83 && nLevel < 96 )/ q. b( U e' I* K$ o X: X
dwTmpSkLevel = 3;5 {% ?- M- c, x. C2 p- l1 @- V
else if( nLevel > 95 && nLevel < 108 )
" F9 [6 G6 y @1 k0 f* m3 } dwTmpSkLevel = 4;7 n' z# h8 i7 w% z
else if( nLevel > 107 && nLevel < 120 )5 N5 E+ F9 j9 T9 |# l: Y' S
dwTmpSkLevel = 5;
; T( ]1 z3 u8 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 W9 H8 ?/ w- E1 [# ]. N { # m7 _ Q1 P( s( S6 M2 H. w% x6 `
LPSKILL lpSkill = &(m_aJobSkill);
$ E3 z8 E& p# o if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 i: F) K& z2 e2 ` {
1 f/ Z5 q% A. w' H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; Y; S4 m4 H1 k1 n% r, a; o5 Z if( pSkillProp == NULL )
( y' V2 I7 _- K! X) }$ c! @ continue;1 W. I |) A: J7 A. B: a1 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! O' ]2 Z/ b5 ?" S" k, H. ~ continue;+ i5 J# M: L+ {' B% q
lpSkill->dwLevel = dwTmpSkLevel; C8 L- H; e( L \! ?
}
% N5 K+ _; [, Z6 J }
4 `9 f# t9 A2 z0 T: b }
% N, o5 y- Y. u) d/ h9 u* r4 U- ] else if(IsHero())
9 Y7 F1 j! M5 P, `# I! g { K4 Y% G" z6 H# e7 g6 o$ i/ B- y/ P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 k( b. Y# g! Q8 k& h2 j {
0 e8 R" I6 U: s1 E8 f* I LPSKILL lpSkill = &(m_aJobSkill);
4 X! @. H& H& V' ~: y3 S if( lpSkill && lpSkill->dwSkill != NULL_ID )( S; w+ a2 j- Q) U
{) S( ?5 U2 `& V, R2 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 v, k( e1 ]' S/ d% S/ S# U if( pSkillProp == NULL )
/ V- o. g, q6 a( d continue;6 o7 Z- K Y: t, L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 `- |' l8 r0 O) m* l
continue;
4 b+ }0 k+ @: n% C2 R" X lpSkill->dwLevel = 5;
* c& _$ U+ H4 b/ D }: Y' f& v/ _) y
}
% x5 d+ \% h! u1 L8 U$ f4 b }+ j8 C; n9 m. X
else if(IsLegendHero())! t: i; x. {9 U3 K2 W: o
{
3 u: f7 U, ^1 k% ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
% C6 T: i- U+ M, T. q8 f {
; p7 s2 Q6 ]% t3 R LPSKILL lpSkill = &(m_aJobSkill);
; x" t5 L" l% ~4 c# d7 j! U if( lpSkill && lpSkill->dwSkill != NULL_ID )0 m; p; _- p B
{- w2 [& f% u2 A! a% C4 }. M- }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 L) v$ t, A4 ~, B! L5 C
if( pSkillProp == NULL )
& D5 a1 i& a3 \" f7 W" W continue;
' U; n) u+ W5 X) `0 n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 p# h5 M. i5 U/ o; Q1 x5 w! V" E
continue;; @& ` U# b3 d5 S2 z6 ?2 j/ o
lpSkill->dwLevel = 5;
8 X9 s1 D0 j: O0 t* r& d1 U, a }7 L/ n# M6 E V) C" E/ [* _0 d
}
! R7 T+ x# ?( e, x }; ^6 m4 S6 _7 X) a* A# O* W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ R: H4 \! M- l+ j. T% h! Y) A if( bGamma )2 D: w4 j2 F2 f. b+ c
{
2 n, y1 z; I2 k% h* F9 ` m_nExp1 = 0;3 ^- d, Z6 K, R) ~
}
- C! u1 D# B3 L+ e) f3 H9 z1 k: b* F
- N% S8 S( q' o! p3 v ( (CUser*)this )->AddSetChangeJob( nJob );
; v9 Y& Z& U9 @* [ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 q+ v) s1 U, ^6 m6 E/ f: K, @9 m8 `9 _+ o3 x9 v
( K/ g& j/ N; j- c$ X; K. f
#if __VER >= 11 // __SYS_PLAYER_DATA
' L" j1 ^3 O1 m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 z. q/ l' t" H! V: p#else // __SYS_PLAYER_DATA
; S k8 m- e6 j5 d7 n% k z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
E( R* F$ y. t% } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 V* X2 M! h, Y8 m* ?6 W if( m_idGuild != 0 )
1 Q2 M1 I; ?& m% g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 s% y( e) q' n' v
#endif // __SYS_PLAYER_DATA: x( `5 e3 G7 t: n
SetHitPoint( GetMaxHitPoint() );$ f6 `" M1 O9 W2 k
SetManaPoint( GetMaxManaPoint() );3 X& |# ~8 c0 ]9 E1 A' y
SetFatiguePoint( GetMaxFatiguePoint() );
. j$ J8 W1 p8 ]& } if( nJob >= 1 && nJob <= 4 )% j" `3 Y7 R. X
{/ V5 c& S1 a) L
m_nStr = m_nSta = m_nDex = m_nInt = 15;* f( ~4 r; G6 O2 n
m_nRemainGP = 28;+ q# M' E1 i4 ^, ?
}: G8 ]+ Z& o2 ^& D+ g) _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 q: a& w6 X* ^0 r# E( w2 M {
0 X5 ~9 e) ?$ a Q$ t" W m_nRemainGP = 118;! u9 B8 C2 k3 b* {. H8 O8 f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 c$ Y& L. K; ]% S# n
m_nStr = m_nSta = m_nDex = m_nInt = 15; c& {' d# e/ r
}* Q5 N/ o) x# k( {- {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" Z% O5 @8 X$ p6 b C$ R4 P
{
, ?1 y0 b+ r _' U0 r CItemElem itemelem;& J! c5 }" G3 G7 C
itemelem.m_nItemNum = 1;+ H' O- U! ]% F0 {2 L, l
itemelem.m_bCharged = TRUE;. l/ J6 w6 P5 U8 J1 Z4 b$ Z
BYTE nID;
- R' I1 D$ @& k8 K( |' @2 i6 ` l: v% D5 N# i7 t! y9 ^9 d
if( nJob == JOB_MENTALIST_HERO )
/ T) L+ p' S) [& a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% r- Y" o X! p3 |% M
if( nJob == JOB_FORCEMASTER_HERO )
8 Q- v9 v8 H5 Z# z1 @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- Z. N" B2 H8 y+ U
+ s! d& n& q. |
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" x. ^. f+ R4 I }
7 \0 [1 x) S) h% @/ o g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 c$ a4 R& m7 J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 m, z8 K0 o1 r0 I* I5 Q0 _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( [& c. U9 p, n& }; R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); f h: {( p6 L& M
( (CUser*)this )->AddTaskBar();*/& H! H0 m' N* K3 i" J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( L& C* Q8 x' f+ ]& j) a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ w$ e. }# s" L( O
((CUser*)this)->CheckHonorStat();
2 | V' @( N- G5 A5 Q; a. C ((CUser*)this)->AddHonorListAck();/ c' d$ I% J+ k* A+ D) P9 u
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ |. E ^$ Z# S0 S
#endif // __HONORABLE_TITLE // ′Tà?& P% C& W# ?) L- D& w
}
, A. v, ^; P/ H#endif // __WORLDSERVER
: M/ [/ F: i6 p4 |6 ^7 ]" [- d} 5 v9 ]' u' b, l j- y
/ Y: s$ ?2 a# Q1 r, M
然后你进入functextcmd.cpp并添加以下
3 w* z" y/ L- L& O0 Q( n( K6 k9 K- S- z0 X
代码:0 W3 F1 c* P1 ]' Z7 _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) k( j+ |8 J3 C5 `
下面插入
9 I8 t% I5 A p" C8 x: `' ?6 U* [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 c0 w8 e# l4 v# }) A- H% X6 F& P: F: ]- Y" V
然后你去
9 M& w1 G9 _# C- H: ~8 F
4 c9 i" G5 L7 f, L# D代码:* ~) K% l" i1 N# `
代码
: }7 p$ G) H& C, ^; f% dBOOL TextCmd_ClearPropose( CScanner & s )
+ n7 k @" Q2 K* K; u! E{/ G0 i0 p6 k4 w, g7 i
#ifdef __WORLDSERVER
+ ^: |* W3 E: W7 q+ s( Y& x) y CUser* pUser = (CUser*)s.dwValue;$ u9 w) W9 t0 q3 H/ b
g_dpDBClient.SendClearPropose();
. ^7 k1 p7 {7 j#endif // __WORLDSERVER
( B: o# \! c% v return TRUE;) p8 X& O% |, p$ `0 Q9 W' l- t# f% z% w
}
( p0 ^( `8 Z- o$ f- o1 f, V. W下面插入
6 p; T( { d& oBOOL TextCmd_rebirth( CScanner& scanner )7 e& X9 r' o# [$ P7 b) |& M O
{' L: \: M7 T( g1 A3 ]* i$ n3 Y
#ifdef __WORLDSERVER
4 P& X$ N# x Q. yCUser *pUser;
+ s% F- ~+ l# `0 f/ ^( |5 S' F \pUser = (CUser*)scanner.dwValue;* s( y/ W$ K, ]6 _7 Q2 M4 N, m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 J5 D) g _: ]% ~. [: V9 y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ w3 _* w8 t0 N& {( |# ^else
3 M5 N3 S1 {6 {3 |" W! N q+ N0 rpUser->AddText("你还未达到重生条件!");
, I6 }, h, X9 ~7 I, M2 _4 ?, g3 M#endif
1 ?/ G( A6 C% I' V9 ~9 e: nreturn TRUE;
# L& s7 y+ A$ d5 K: ]4 W( q8 L} 7 Z' U% `4 Y- @; s
% A5 A* U" N9 r5 w" {" ?: M# K( W, l" N" D3 t
2 |$ x8 T; v" s& I8 J
, T' |, r0 }. u1 s* H; P |
|