|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 q8 C/ q$ Q0 W2 K& g# u ?
" ?# x% G0 w- {( E
Mover.h
/ G$ `, O: Q8 G& U7 ~. R代码:
& q% @4 b( c2 O5 a. O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* J9 B2 W8 U3 ~9 I
' K6 C/ A$ H; k# s! ~下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % U) V8 K0 l4 {$ H: x L2 _, b7 s+ }3 c- O
9 z. I9 c ^$ B7 C6 @然后你去mover.cpp添加0 x) k5 R0 r2 ^( p, R4 B, B8 q
$ J5 H# p: ?7 ]; u0 V
代码:- j9 t5 _0 R( j# P( B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. O* T; f. y2 g' Z, U' k- o{
$ c9 Q9 e) q" H: G#ifdef __WORLDSERVER
5 x5 ?! w. y! Y9 `& `; `4 b: Z- J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* w, q/ L" ^% n) K! v0 D MoverProp* pProp = GetProp();
1 v7 |" t" o2 G if( pProp )
6 u5 O! X4 y) T {
1 ~ z6 w' f9 G# x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 N% c3 b+ C5 p, V7 p% P9 H3 Z {3 |- L4 l' l& s, s
AddChangeJob( nJob );
0 ?: s3 b0 D! Z3 y2 e }else{
+ i. d: U7 }; e! Q return;
% Z6 I9 |- }# P+ P2 V3 }, f2 R7 r }
* b: m- |) @. K. R* ^7 }8 \# B int nPoint = 0;
( c$ t8 [8 ?2 m2 f" G if( m_nJob == JOB_MERCENARY )' Q+ R6 x J; k& e6 g& i
nPoint += 40;: |$ S( o# f5 b6 ^7 J' f5 X1 c
else if( m_nJob == JOB_ACROBAT )
# I# u- p# v0 n; s W8 a7 N nPoint += 50;" I+ ?3 m4 T. s0 @& q3 k
else if( m_nJob == JOB_ASSIST )
8 q! O% T8 P9 | nPoint += 60;8 D. t, y% _( ` O- i8 w6 B
else if( m_nJob == JOB_MAGICIAN )" ~; S( [* K3 U: c! _0 t9 r; u7 P
nPoint += 90;
" E. s( R' A6 @0 {% ^: R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) }# a, G4 B! D. I
nPoint += 120;; N4 P# @- n+ B$ s! G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, {# c9 v% s% L2 v nPoint += 150;
8 S! }9 L2 G7 t else if( m_nJob == JOB_RINGMASTER )0 _) H: j; A3 f: j
nPoint += 160;& t4 Y) N, v1 q( u. n2 X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" p7 w% \; k2 Y) X! u, \' e
nPoint += 180;9 ~( l2 _" M6 J! Q9 Z" `- E/ I
else if( m_nJob == JOB_ELEMENTOR )
+ j7 j c. |! f# t: @& `# T nPoint += 390;
5 `$ {$ g# N3 Q! {# l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): Q Y* _9 w% }
nPoint += 120;
8 j {1 s8 v& H5 _- v& z' v/ B& i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- W/ n1 J& d6 ?6 _3 r% J# ]- g
nPoint += 150; _! K7 o9 N0 m n0 N
else if( nJob == JOB_FLORIST_HERO ). h. d9 [2 j8 _
nPoint += 160;
6 j2 r6 m4 x7 H. Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 h6 |+ A6 H6 K6 b- K
nPoint += 180;5 ^. Z7 d3 C! f j
else if( nJob == JOB_ELEMENTORLORD_HERO ) M! `; L7 n6 P* J0 H4 j) o5 a
nPoint += 390;
- |0 u! N: }$ f
( E. Q0 `/ m( h0 W0 q* u AddSkillPoint( nPoint );
' P$ r6 M, [& R; Y, j m_nLevel = nLevel;
5 U' I/ x* \0 d# ~2 k) }' f
$ j6 {$ z# H9 ~) Z; Q3 e( @1 A8 q% S& E SetJobLevel( nLevel, nJob );* X2 G S. a) t
m_nDeathLevel = nLevel;
0 D' E% f6 k$ g% t- a/ T3 o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 Q, g4 u1 C7 j7 Z9 L6 s
if(IsMaster())
( a) c% t# D$ n# W" H4 m { ]1 _( r4 X1 a/ L9 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ D/ O2 E6 N! `8 V3 p% B if( nLevel > 59 && nLevel < 72 )
& N1 ?1 Y. ?/ d$ ]" X8 k dwTmpSkLevel = 1;
2 \. ?5 u9 D8 U5 w else if( nLevel > 71 && nLevel < 84 )3 o4 @% F: V/ g6 P& D
dwTmpSkLevel = 2;8 e7 d, E% Q" s* ~6 o4 l4 |
else if( nLevel > 83 && nLevel < 96 )
2 W% k# I. e' r* } dwTmpSkLevel = 3;
! `2 B! V7 l- g7 k+ V/ l1 S else if( nLevel > 95 && nLevel < 108 )
2 i5 ?0 O7 y$ o$ }- p% A2 u) @& ^ dwTmpSkLevel = 4;
6 y( \( `% V8 V else if( nLevel > 107 && nLevel < 120 )
" p9 n# L7 K1 P. ~ dwTmpSkLevel = 5;. g( X, U2 r) b! x( {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: u9 x5 `" ?) z( o! J5 @ b { ! @4 |( L$ C# k! s0 i. C* P* ~
LPSKILL lpSkill = &(m_aJobSkill);0 S: t0 a3 o4 l' y
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 x5 t+ p) G- X' C$ S
{( @ ?: Z$ s/ [' T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # c8 j0 ~3 ], t0 y+ |
if( pSkillProp == NULL )
( F$ C# R P$ \8 T3 s! z! R( W continue;
( V$ j% u, x% n8 H4 W& _: [0 f/ k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( }1 N- V2 |2 D: B5 j
continue;: t: M& C/ E8 ~/ Y+ q, y L# q. V7 r! c
lpSkill->dwLevel = dwTmpSkLevel;
5 |7 Y" L) n5 i G2 T1 ]: M }6 g2 t: {' M2 g: f0 K @
}2 x9 Q% r. Z8 w
}
1 }& O6 ] d- Z. c% Y else if(IsHero())
$ j6 v8 x" ]! q- y$ ^ {1 t& ~) t9 s$ s2 V" ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + c7 b1 t6 R' I9 h' S- g7 E8 x. ]6 S
{ L9 G _: L& L0 f2 O& A3 n
LPSKILL lpSkill = &(m_aJobSkill);5 t2 H6 p6 J) {. @* _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 S( }/ D. B5 g# H {8 ~: i; w) F8 D& K) P! Q+ }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 K' W9 d8 w5 h2 K+ N
if( pSkillProp == NULL )) }) X; i1 p0 K8 S
continue;
6 \. G6 p# r0 `8 m& s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% m6 i3 s) v% ? continue;. w. d9 i' Y7 k
lpSkill->dwLevel = 5;& }. h" ^! A* C& B/ |" U& p7 L
}
! A7 [/ @3 m7 B4 f b }
: g* g8 p7 w. y- p- d% b3 |7 H# x }
" A2 O0 C' Z! H, h# s' s else if(IsLegendHero())
8 C8 Z* A1 O+ F- n) J$ @- O {
( f5 m2 R- w8 c- [+ U, z' I for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 L$ u3 `. l ^7 s6 l {
Z' T5 `( B. b* D; z& t: d0 F; Q0 V" { LPSKILL lpSkill = &(m_aJobSkill);! I6 G" k& K. h& E1 o2 c9 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" y, `1 g h8 q9 n8 {) l {
, Y- o/ Z x& {, D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* t3 Q3 b7 v& q8 u if( pSkillProp == NULL )
4 e1 R8 n, k- S4 n continue;9 l$ Y0 G" w: R. u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ X* c! B, }& S continue;
! s l3 p' w& q- R* U# s lpSkill->dwLevel = 5;$ K0 g' h6 p7 H# t% u
}
6 y, F' l- {& q: j, G/ N' B }! P8 w+ L0 z. M7 v$ G( S5 n
}
. X1 Z* W# ]. Z4 G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, n" V# Y, ~# l% R4 T! x2 j' R- | if( bGamma )% u t1 B. c' ^: O
{$ k* M. i2 H6 O9 z; p3 h( {( N
m_nExp1 = 0;5 Y! x. d, d/ Y% c M
}5 }; Q( Z$ ^, w
$ y0 b5 S3 C9 [/ X) L0 }
( (CUser*)this )->AddSetChangeJob( nJob );
& e4 T1 ^/ \" c2 G$ a: A0 h( | g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% U: S, _ m& H7 x. m9 n% w8 U
( E) G5 i; p) m& \' }. i
' u( R( V8 X/ |#if __VER >= 11 // __SYS_PLAYER_DATA
4 o2 R) x. d8 B6 M, n h2 _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) P/ B4 E) V5 S0 W# I% j#else // __SYS_PLAYER_DATA
5 c* M! D8 N7 J2 [ H5 U- m7 u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, `9 y3 Z" Z/ D- Q1 [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 p, W) l7 p+ ^5 b; A
if( m_idGuild != 0 )- n& G8 M6 ]4 y6 {( z) o& S9 I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( `, L7 ~( G5 t2 T) M#endif // __SYS_PLAYER_DATA( G: X" P. b. P0 V& x
SetHitPoint( GetMaxHitPoint() ); K: Z& H8 k2 y5 r, T' [
SetManaPoint( GetMaxManaPoint() );! n+ |2 t4 x8 v: Z/ @- I5 @
SetFatiguePoint( GetMaxFatiguePoint() );# _6 }6 V- Y. _3 {/ I/ A- ]
if( nJob >= 1 && nJob <= 4 )0 K% `* J8 x+ z& K1 D7 R) d. V
{
: r" W$ i7 p0 j m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 d. |% I2 ?8 W, g N m_nRemainGP = 28;/ S7 B# ?/ w1 M2 b- K3 B' \/ _+ c8 [2 b
}# g* l8 i# r' g
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; o& x) R3 T) L {, e$ Q& A( s5 m" Q* G
m_nRemainGP = 118;( C- S1 i& T0 o. p& m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ c( S; x: Q) E- t" t' }5 ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 B) b- ? e4 H$ s8 s( w) F3 a }( c) d0 i3 J) I- T5 [. ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ N W2 R2 n( d k. O/ u- f$ } {
2 k0 Z; S7 B' A& N; F3 {, o$ [ CItemElem itemelem;
4 p- j1 ~% ?* \. v, V. j8 O3 _ itemelem.m_nItemNum = 1;$ T+ \( C" Z/ V" x& W* z+ N" q
itemelem.m_bCharged = TRUE;9 Q/ ?3 s/ d$ n/ N
BYTE nID;
9 _4 N7 P; ^9 _3 m+ r u
6 ~$ d; {. r8 M! d8 M if( nJob == JOB_MENTALIST_HERO )
9 ^; D1 W- k j* ^% ]$ N; B- j3 J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 V. m D4 k* I1 O4 r4 ]: ^ if( nJob == JOB_FORCEMASTER_HERO )
4 s( c3 J* G, v- R2 B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ u, E; o! V6 w
* `' q5 Q. [% _2 a, K) r ( ( CUser*)this)->CreateItem( &itemelem, &nID );: l0 [7 ]1 @; U0 f: s
} P3 o5 o) s' Y/ }
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& n: l `0 g, F) W: g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 k: z1 M) U2 b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, d. A3 X; D2 H2 a' n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: V: b+ P+ X4 E' w, P# z3 H ( (CUser*)this )->AddTaskBar();*/% ^! u/ @' ]) a( B, k, o Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% _0 h& I2 r; m8 }4 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 D. e0 L3 G7 k1 c& L% F9 p' m" O ((CUser*)this)->CheckHonorStat();
8 A" ~# k6 @3 f1 O7 y ((CUser*)this)->AddHonorListAck(); O+ |. v! v: {1 W6 `' _4 [. c U
g_UserMng.AddHonorTitleChange( this, m_nHonor);* G' Q% V# D7 h9 Y5 h
#endif // __HONORABLE_TITLE // ′Tà?
; x! g: f. M9 b! l8 T5 { }; u9 }: f B! Q9 b/ ?
#endif // __WORLDSERVER' B0 B! Q U0 L( H' G) _- R2 O8 m; S
} 9 Q- T+ F- `: f6 m9 C9 i+ y+ j
: H7 f% g: G9 W/ d' x8 Y
然后你进入functextcmd.cpp并添加以下
, ^! F+ N" b* {$ `- U/ G2 |2 D3 u: Z0 v0 [5 Q/ K( t
代码:( S9 V" ?' |# m9 K. A6 z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( `( s; |+ r2 ]' |& a P下面插入; @$ E/ O1 ?) ~ n) Z3 l7 `. I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" i9 h$ c% G+ y4 |5 o+ \4 S; W% M& G- s* q) X- y
然后你去
6 _6 d: x- x g( b7 y- g5 Y; T1 \8 A' ~& G9 X
代码:5 n v2 E$ d# n, \" z1 [* E2 s
代码
+ b" w- Z3 k+ T Y/ a s eBOOL TextCmd_ClearPropose( CScanner & s )1 ~5 X" }7 W# {8 d) C% w
{6 U4 n2 f( m* }/ `% {
#ifdef __WORLDSERVER
; Z9 B7 a) I/ W CUser* pUser = (CUser*)s.dwValue;
3 m( W6 v% W2 l. X g_dpDBClient.SendClearPropose();
+ v8 J5 f- A- h: `1 n5 J* D$ |8 @& z#endif // __WORLDSERVER
. W' |: \4 e; P6 W return TRUE;
1 x* ^7 G" [. _& q( q- j}( c5 H& Y. [3 `1 W, d) n, }
下面插入! x6 V7 w, y( S% |4 z
BOOL TextCmd_rebirth( CScanner& scanner )$ i; F( i( q4 q- N5 l
{; e# y( h1 ]- Q8 ?: C# ]& \1 }0 x
#ifdef __WORLDSERVER
+ w- t2 F/ A* g" gCUser *pUser;% w' R1 n, U1 u1 _! h
pUser = (CUser*)scanner.dwValue;" O# A/ X& _/ M/ Q' a* q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 n. a2 n3 S5 V! SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ u. G& B9 G7 O* Q' [else
# f3 }) O, \3 }6 O; A. R) EpUser->AddText("你还未达到重生条件!");1 Z1 U& K7 ~) a5 r
#endif# T+ N9 d O& k7 u, S' c1 F
return TRUE;9 ]6 C$ A% Y& }" B/ n% x) v
} ' h4 W4 A: R `
8 V, ?" A& S: I! L
" j" t; \ A: J' Q X
7 ~; Z! G! Y8 Y! L) O( f4 n" c! F4 ]2 C' H+ W; \6 p* U
|
|