|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* \7 l/ ~% a* o8 d: r
" ~9 ^; y I1 mMover.h
' l+ E; B# H; p0 T: ~7 O- q代码:9 F9 X8 m4 |: d3 D# Q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# Q4 d, Z- C) g
& ]' P$ O+ Q+ z8 y. Q7 v0 J" U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! E( N- c( ]8 M8 D$ D% f, W
/ j; ]6 P4 R) S) n
然后你去mover.cpp添加
+ B3 O) z/ R8 s! X( U- U+ |9 f) E1 D4 E2 O3 g( i( m9 ]9 U( k
代码:
/ Z5 z- z$ V8 Z, ?6 _7 x- [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
H8 Y6 l! m" p2 F* r* M{2 o, t9 U! _* V, f* k/ B% b
#ifdef __WORLDSERVER
6 |+ Z# v0 q' k( X/ c; M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 ~; T' Q' }5 e/ d+ ? ~2 V
MoverProp* pProp = GetProp();
, Z& a8 m* @0 [/ M5 P0 Y. m, H if( pProp )
5 `$ X% y p. }' y! s# L: _ {" o& P" Q/ |$ j+ p. X$ G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" ~' H& n& j2 c {' d4 z& Q8 p/ k( X9 l/ U
AddChangeJob( nJob );
& _! t6 o6 e1 B" [ }else{
6 E3 n7 O& C+ Z u return;! e/ K3 F3 L- o" T
}2 V: W1 G+ y v- J. Y
int nPoint = 0;# {! w, @: b; ?- Z; J5 c! t6 u! ?
if( m_nJob == JOB_MERCENARY )
& A; D! W6 r0 Z. |1 T' ]$ h nPoint += 40;
# M; N' V8 D1 A+ `+ I) D( p else if( m_nJob == JOB_ACROBAT )
) J$ t( N( V9 g; f3 P% | nPoint += 50;; i' o: a/ e2 L( r5 y+ _( L
else if( m_nJob == JOB_ASSIST )
" z: B: k* E7 u* J' m) f! J nPoint += 60;
8 P1 s/ \6 e, P* Y; ~7 ] else if( m_nJob == JOB_MAGICIAN )! {8 [+ A' Q1 z# N8 g+ l
nPoint += 90;
" w$ [4 G$ s/ { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 `& P1 k0 B4 ` nPoint += 120;
* ]$ f$ D( t6 X% |' U7 u. ]6 }8 H else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 q2 _" W* a) G nPoint += 150;# b* L& F) |5 D' e3 ?4 l8 Z2 L
else if( m_nJob == JOB_RINGMASTER )
2 n# ~9 D9 f/ J+ n( v nPoint += 160;
, F3 E5 K% z! l D0 U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( l1 e: B9 k- t nPoint += 180;) O n1 r# x$ ~ Z7 Z( C
else if( m_nJob == JOB_ELEMENTOR )0 p6 _6 A3 H$ R$ k( u, {5 K2 X
nPoint += 390;- t. X; m9 g% h- Z0 j) \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 g& [4 N) x( c. n0 l
nPoint += 120;
. F/ _" @3 c4 e J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 K) d, J" ~' O7 f nPoint += 150;
9 k- B; h8 {% J( | else if( nJob == JOB_FLORIST_HERO )
, j2 e6 N9 n& | nPoint += 160;2 ~6 I9 f5 j6 f$ @; K: L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). Z6 K3 ^0 }$ S
nPoint += 180;) i3 P0 l9 s9 g/ P; x+ i
else if( nJob == JOB_ELEMENTORLORD_HERO )
; ?- g# G0 R% `, v nPoint += 390;" e2 c4 m% [+ M% I& G
1 k) z0 J- K3 r* R AddSkillPoint( nPoint );
/ G6 I1 @4 Y' w4 D m_nLevel = nLevel;) U% H$ L. G, t: O
8 R% G5 g( [2 z% e; c9 J+ G SetJobLevel( nLevel, nJob ); q2 C5 d' Z2 n
m_nDeathLevel = nLevel;4 ^; ?' F0 Z7 \2 T& _; @0 K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 U# N1 F* F( x$ m! ^
if(IsMaster())
1 G6 L" y. b- T {* h# ?! {) s0 V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 I4 C, q, g; m9 e
if( nLevel > 59 && nLevel < 72 )6 r% }' e, Z/ [% b: I* M
dwTmpSkLevel = 1;
4 P. u+ M1 p; [8 J6 u else if( nLevel > 71 && nLevel < 84 )* x& v5 W% \8 u3 S" f
dwTmpSkLevel = 2;
" a1 J0 N6 A# W3 ?$ m+ q else if( nLevel > 83 && nLevel < 96 )/ @* L% \/ T- k. U; F6 ^: i
dwTmpSkLevel = 3;
) Y0 s$ W% A6 b7 V/ t+ y else if( nLevel > 95 && nLevel < 108 )
9 h& b% G3 O' d$ W dwTmpSkLevel = 4;6 ^" v, r* o; }6 W
else if( nLevel > 107 && nLevel < 120 )2 a' W, m" a( c, g. p
dwTmpSkLevel = 5;
! B6 K( Z/ U7 ?( ?) J for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 X; D8 ?, N- ^. z1 T/ _# b {
4 ?$ b0 t$ m. f% n LPSKILL lpSkill = &(m_aJobSkill);
$ O& G, ~, W# X+ R6 `5 ?7 j if( lpSkill && lpSkill->dwSkill != NULL_ID )0 L4 U4 G! ?, Z# y9 ^
{
) G/ w1 E( q, S2 Y( D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 R2 y8 e3 n( f
if( pSkillProp == NULL )1 p- ?& L" ^! b* I* ]3 I
continue;
# g' z h G. n3 ]$ h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 W7 P! H( {# S! M; H+ `8 `
continue;& k; _5 d) Q! j, r% }
lpSkill->dwLevel = dwTmpSkLevel;
& I" Y. ~2 A9 p1 o2 a* v: i }- w5 `+ E j4 U2 K, }, J0 z
}
% E# k0 K: L( v0 { }6 g- q# t: x8 Q1 ^/ [7 B( G- X
else if(IsHero())
, E9 o5 }* D3 c0 c {4 {! c7 k: q' A( w) n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % T: ]; c5 w0 m& i/ f1 b
{
! e# a2 ?1 F1 F% [* P LPSKILL lpSkill = &(m_aJobSkill);
+ m4 a; S- H* b% ~/ Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ U6 Q4 r+ W* E+ \; R {0 g& z7 r1 N% a0 q; ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: X; n6 H1 K: _+ k+ i; |2 N if( pSkillProp == NULL )9 U/ p3 r. j# S) B
continue;
# m; p! s# e+ p$ J+ [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ^$ Y% P N; r6 B7 u continue;: K, a: P8 Q6 }( H/ Q/ S
lpSkill->dwLevel = 5;
2 m2 K( ~2 g5 Y C8 _ }
! ?$ ~( O1 K4 G2 w$ R. s }
* r! g3 f( b6 _5 F3 C6 Q4 y8 m }
) n1 U/ {. A& ]* u5 L* ^, t else if(IsLegendHero())
1 j' ^; c5 s/ z( B" L( o {
. h! v/ ?0 U: h; c" K6 R for( int i = 0; i < MAX_SKILL_JOB; i++ ) E2 x& w8 I' M- F" P6 k5 ?
{
7 t1 o7 f1 [. x; o' T LPSKILL lpSkill = &(m_aJobSkill);* {( q- P* N- I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! p3 `# X4 i1 K% b! U: S$ t {, H. z1 u1 ^5 ^. @/ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; b+ T2 I7 B# K$ @) [. _: o( ? if( pSkillProp == NULL )( V/ l9 H( E( M. ^
continue;
8 P% H- g0 I9 B' v7 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
c" b9 }5 K2 B$ C4 ] continue;6 \ j& \7 @% z) s( h, D" i
lpSkill->dwLevel = 5;: `6 {8 u* X0 l2 k7 p) `) A1 k
}
" k$ }% f" G. R# F' x& y# y' M }
0 J- U2 V2 q- | t }; \: X) v$ Z! n @( P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 R' ]! x" r1 w9 z s
if( bGamma )' k2 A2 q$ k/ S* n) @. v9 S$ Q
{/ w" w4 K2 d4 X( K0 ?7 Y% K
m_nExp1 = 0;
* t/ n; c$ j4 M/ G. Q# E9 j/ e }( a X Q9 U/ z5 Z* m! Q, l
: [3 P/ E. {! ^% e
( (CUser*)this )->AddSetChangeJob( nJob );, x$ `# \8 T4 G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 J9 ~6 [2 D) ?: ~0 E# i2 W( ?
9 s, `! q/ c) \1 b7 ^$ |. W' t
* b4 u9 I0 B& m# c8 {# x4 X#if __VER >= 11 // __SYS_PLAYER_DATA! N2 W, Z2 G6 H8 l( V$ w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 w) h, ]9 G! A3 C
#else // __SYS_PLAYER_DATA
, V5 _4 ]0 h k" x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% E8 j: X! \8 w6 T* G0 F8 v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, X; b' a& K: A1 ` if( m_idGuild != 0 )3 K" e. [* s6 F5 ]1 a5 a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: p) W0 G" Y# x; H#endif // __SYS_PLAYER_DATA
& u* Z9 T' x- ]! M: n1 [ SetHitPoint( GetMaxHitPoint() );
3 J& u4 p# ~2 F" S4 ^ SetManaPoint( GetMaxManaPoint() );
# a; k' G: v( l. H$ ?7 `% ~1 ?) m SetFatiguePoint( GetMaxFatiguePoint() );* }" a; D" n) O; o
if( nJob >= 1 && nJob <= 4 )
+ U% r9 m# `1 ^) L+ V {
; A! |' o! ^% a) e) C* n m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 e6 G: I0 a& R m_nRemainGP = 28;$ s! H1 l4 z/ ~7 H# \1 t% b& \$ t
}0 @. U' E* Z6 d% y. b* X/ M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 F( \! j1 E5 P4 v, z* \# \
{
& P; S' t9 i+ _ m_nRemainGP = 118;4 a ^ ? C9 u8 e' Q" M; r- f5 h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! n. \! E, E z
m_nStr = m_nSta = m_nDex = m_nInt = 15;" U7 k, j5 U8 R, _3 E* [) y/ L
}
% A$ E2 N* R3 U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): m. S, h+ e. _; _: J
{* |# m$ N2 f" a/ N# _
CItemElem itemelem;
1 A' O; b ?! y# C* E4 ?# P itemelem.m_nItemNum = 1;
! V' w) T I X8 a+ [6 q itemelem.m_bCharged = TRUE;
: u# z" F N1 Y j BYTE nID;6 J) m) n' [) N
; p+ y3 c+ `* j! ]/ H
if( nJob == JOB_MENTALIST_HERO )
6 F) R7 X5 }# d, {6 v' ~0 U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' K( u' e. P- l if( nJob == JOB_FORCEMASTER_HERO )
% a9 e( c, X7 y3 o itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% k& h: P6 G- x% I3 c% Y/ d7 x) I
8 B- m7 |% {" y( @+ `8 J
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 q0 I+ e& x/ ~7 M
}+ x/ A# y. G; f1 h2 o# A U3 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ ?* ]4 c0 w( P6 K" x, z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( C. ]' h# N1 Q: a/ l$ B# C* H7 Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 z2 a" Q* [9 S" C9 a$ c' X; m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ M! w8 ^& ~/ O$ ^& y: ` ( (CUser*)this )->AddTaskBar();*/
# @5 Q+ G5 y" ~9 x, z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 Y l* v8 p4 L& u( N: S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 O1 j' i3 l8 B$ h- M+ D) S
((CUser*)this)->CheckHonorStat();
, @ ?* x8 b* Q6 ]2 W( u+ X, O ((CUser*)this)->AddHonorListAck();
9 x: y c9 P2 K! c7 R* t+ C g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 ?9 W1 x" W0 ?& o#endif // __HONORABLE_TITLE // ′Tà?
! v( J: m8 Z* f B }
2 T2 F0 Y" M P" z& M#endif // __WORLDSERVER- u3 A j" i2 n$ n' }; Z3 q
}
" [/ P4 |6 C, Y5 J) n9 B2 M( N! ]5 @5 s! b( {# T
然后你进入functextcmd.cpp并添加以下. P2 e h& Q% o/ O" Z {
$ F- s2 G7 ~* s8 ~; s
代码:
4 q8 x/ J) |2 w5 f) u7 l8 ~4 lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& V U7 b4 F' G+ D" |
下面插入
& Z# G u7 Y' v" J& }/ MON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % ]4 r7 P7 R! R
2 E7 K0 r9 P$ M; Y: l0 l5 G/ A然后你去: U/ _8 Y$ ]6 q& p
; V4 B$ C L3 X% N. i
代码:
/ y. {1 K; _+ }代码/ y/ l4 S! y0 _
BOOL TextCmd_ClearPropose( CScanner & s )
$ m, V- p# l* S0 @8 a{! ?% V: `. [& y: \7 g6 @" d
#ifdef __WORLDSERVER
* I3 R9 M8 P3 S7 |* H5 N CUser* pUser = (CUser*)s.dwValue;( |* E, N: v3 B: e: O
g_dpDBClient.SendClearPropose();; C5 A+ x; P$ Q E6 L7 }
#endif // __WORLDSERVER0 w4 j/ P- `3 q W- K" ?
return TRUE;
# v& [" L) K; z/ z% F) Z}
% R' k4 y7 g) ]9 T下面插入/ @6 b* u2 G) O( v) x- K
BOOL TextCmd_rebirth( CScanner& scanner )
6 D1 i, J# y$ M4 @5 D{
. X% n: y5 L- o9 ]/ u#ifdef __WORLDSERVER
C8 {: {; G) v1 n( _! T+ R% Q1 Y$ w: kCUser *pUser;
0 k; q' m u( L8 F: |8 f, z- dpUser = (CUser*)scanner.dwValue;
- X1 J9 f5 `" s9 n/ N7 X. l: ^if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% h& q' o( ?$ }, w# j p) w& IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, v- d7 ?- Q6 F# l& r5 d( T
else
- s: o2 F. T) D* U5 d7 ]) Y$ UpUser->AddText("你还未达到重生条件!");
M- n7 s' e" l- [! w+ }#endif2 L4 ]' `$ i- W( r, t) x( _- J
return TRUE; M/ p9 ^2 o; A9 f1 i, M
} 8 V' t: c- y! X1 A- j
3 T' S: e8 {$ s7 I) t9 n, V0 \% P) A! a g
/ c2 n$ m$ ]6 `) l) x& m
: E8 D2 e W% b8 j: c; f |
|