|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" @* J: C/ j. t
" R) O* { G, C' r( Y
Mover.h
& K' v7 u4 ]7 u" ?代码:
1 ~" k, l4 J( u' `2 o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
l: [& F# J* S% O% f9 x ~& N2 G1 N/ \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 w5 X5 c p& d) |
6 F/ _8 Y+ M$ h$ T% R: B8 l* O然后你去mover.cpp添加
, [( O% @0 e8 [5 w2 N5 k7 i5 M: N& X' l5 B
代码: ?# L0 P) h) O8 Y# @( l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 O# E/ f V G- h( U e{
+ A- P6 \! p7 r2 w#ifdef __WORLDSERVER
9 ]0 [1 ^3 v% P: L# } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó X8 z6 q; N- f/ w
MoverProp* pProp = GetProp();$ s3 }; y5 l. e* w* J2 z
if( pProp )
4 I4 j- n* d. @5 w/ J6 q; i {
) S5 Q% U: g6 Z" U+ H/ }1 n if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 Y6 s1 j( c. y7 y0 m {
# L4 z- X6 I7 w, I6 D AddChangeJob( nJob );3 t5 x4 V7 c+ q5 _6 j+ U9 _3 k+ M, f
}else{2 k: @. \: _3 N( V
return;- P5 ^( m5 {( ~! m
}
/ P' p& M7 ~# ] int nPoint = 0;
( p; o! X" g) ? if( m_nJob == JOB_MERCENARY )+ a. g3 Y* r3 d
nPoint += 40;, K+ {+ x# f* i- d& P
else if( m_nJob == JOB_ACROBAT ) I0 i7 |# b- Z1 A/ ^/ r
nPoint += 50;
8 y- ~: U; b' b/ |! m1 S else if( m_nJob == JOB_ASSIST )
% a; g( p* z$ K5 B. `( i7 l& M$ X nPoint += 60;. Y. l) P4 a# I+ C
else if( m_nJob == JOB_MAGICIAN )
( |- ~& J3 ` b+ u$ v5 S nPoint += 90;
/ K7 s# _0 t% g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& X2 t( D# H: x, E5 s nPoint += 120;) |/ |1 T& n2 N! [( ~
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) `* _2 D; T( K/ f. Q$ M* A
nPoint += 150;
# I2 f5 h% v" a3 H( N5 ~ else if( m_nJob == JOB_RINGMASTER )
# {& _3 H5 r( `" |2 E8 z nPoint += 160;; D6 j7 p7 R: R0 h" |) U$ b( H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; k9 S; T2 [& s nPoint += 180;# D5 ]" N) K- S" r0 [
else if( m_nJob == JOB_ELEMENTOR )
6 f4 ]1 k. f5 P' L7 q ?( C2 ] nPoint += 390;
) K/ o& Q T, [: T* B! v( ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 P) z8 z9 u% u, }5 X nPoint += 120;' ~; C7 x/ a# ^- J1 P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' P" A; e# r M: H nPoint += 150;7 m' }. c: y. L+ U' _% L( Y3 }
else if( nJob == JOB_FLORIST_HERO )+ \) _* H5 @, A( C9 ~4 _
nPoint += 160;, v$ e( X" Z2 c! i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 V) i7 |3 X$ {0 c) { nPoint += 180;0 ? L. [& i% i5 x) H
else if( nJob == JOB_ELEMENTORLORD_HERO ) `9 `& v- l0 @( c. E
nPoint += 390;
! t; W$ W) U8 p r3 D& ?% f! ?# @) h; F) T, g
AddSkillPoint( nPoint );% T! N7 S! ^2 ^5 e
m_nLevel = nLevel;1 n2 F/ W6 ~) q% t" q" w1 v
1 O# a! p6 O# g3 c: j7 T0 \% V0 u SetJobLevel( nLevel, nJob );
2 p! N. J: S2 r( q m_nDeathLevel = nLevel;" Z$ S6 B) a8 o0 W: D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! p) ?) j) Z. q- w. F0 S if(IsMaster()): I( l8 W$ K w1 y: a
{
1 V: R. A1 T8 { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 x; [/ D; U' w" E" r7 E( g if( nLevel > 59 && nLevel < 72 )& p4 Y& E: v5 D0 d, _
dwTmpSkLevel = 1;
4 k6 s7 Y; c% K; O, q( K9 a9 I: r else if( nLevel > 71 && nLevel < 84 )+ d/ ^$ k0 _/ N
dwTmpSkLevel = 2;
, \5 L5 q& ~7 [4 G. n% r3 |' n; V else if( nLevel > 83 && nLevel < 96 )0 ^' k3 l) N2 r4 t+ U/ X4 d
dwTmpSkLevel = 3;
3 N( ^4 M1 J' V* z0 E) } else if( nLevel > 95 && nLevel < 108 )) R9 J% J J3 i; g( p6 |. F, E
dwTmpSkLevel = 4;
7 T6 w& C9 \6 [3 n$ E. N else if( nLevel > 107 && nLevel < 120 ), P! B: `1 }9 G4 z
dwTmpSkLevel = 5;+ m7 {+ e+ s8 _" _+ D0 c, ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ V% U/ @ B0 U2 C- Z6 |& U
{
4 o% L$ y3 X5 o LPSKILL lpSkill = &(m_aJobSkill);- U* n+ ?+ V' ^0 A/ o1 X* o }
if( lpSkill && lpSkill->dwSkill != NULL_ID ): f8 f( w* q6 c" ?& @- p" ` l0 M8 j& T
{/ d4 v" l0 B/ |% m$ l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" g5 g8 ]1 P. n if( pSkillProp == NULL ), W+ P! R' g% D
continue;& M3 X3 Y# v( H i+ v1 L2 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 E' { k7 {" `6 E$ c) R. h9 n
continue;9 U `1 ?3 R9 A% b
lpSkill->dwLevel = dwTmpSkLevel;
2 _$ z2 v1 h2 @3 j* W2 j, H }
! s1 c( R. P! v+ T1 {+ f0 Y }
& q& P- e$ h" c( P Z( [ } _0 S; s: u! n, F7 D
else if(IsHero())
. Z" F0 ~$ l E( L: l- O$ M* Y( [ {2 }4 s% ]4 c; z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " |/ v- ~/ O* D8 f7 W6 H4 J
{ $ c$ Q* ?* a2 y
LPSKILL lpSkill = &(m_aJobSkill);
0 A" U; I( _2 E9 w; e: K! e# ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 B0 l% g X7 |5 w1 v& }8 b {
" P# [- k" S" o' F( G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , Y" M) P! [: Q% s
if( pSkillProp == NULL )
* z' |: F. n1 j# v: L" F3 D0 X continue;; N: w+ O/ R, A" T" z c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 I( [4 |. I' e9 u3 \. d
continue;
4 t Y1 I% v8 o5 Q( ^' U, p lpSkill->dwLevel = 5;
: p. T) P1 U& r5 U. W# b }6 P8 B0 ~: }, s2 r- ?7 T* v- ~
}
3 i, m3 O# C/ l }
. i( S6 _" F! N: s7 v \ else if(IsLegendHero())
! {. _* n1 K0 N. d, C# C9 P {
$ Q: M4 c* _- k5 O for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 S, a4 i" `/ F9 X4 f
{ $ e* n5 t* H+ f: r/ [1 w" Q% D
LPSKILL lpSkill = &(m_aJobSkill);
2 ] j. j/ [# t8 W4 n% L. K+ v if( lpSkill && lpSkill->dwSkill != NULL_ID )
* z' w6 J! q0 a- {3 d {
. n+ [- e0 h- A1 T# e! e* Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' R' `, Q1 f" e/ @
if( pSkillProp == NULL ) V0 [. n/ y: o. _( L# ?3 o2 o0 \9 v$ t
continue;
% L, G+ T7 ^+ N& {1 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! ^: `1 P( y* m0 i- n
continue;9 y( D2 u) T( l: ]
lpSkill->dwLevel = 5;$ J. m- K' _& W$ H, ~+ I
}
! [1 u5 l! N3 G" F }8 D, w. i% _$ K- z6 f& Y0 L0 l. M
}1 i* R( G$ r% z5 v' }9 ?" k7 u9 |/ ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 ?5 H2 f# ~6 j; f if( bGamma )
8 V% e$ |# M+ l2 R7 w/ N; O {
7 W: n- }/ K- x/ x9 I m_nExp1 = 0;
. n, f1 Z; _" z- I; g/ o" l0 l }( Z; |3 |% [5 S$ A+ a
: j$ @+ y% O, V" [ ( (CUser*)this )->AddSetChangeJob( nJob );
9 D _! V/ q$ e9 M+ S9 z! C* q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 n! J( A F" o' H5 C v9 n+ I; _! ?) `1 Z
4 d3 q8 r8 V; A/ z2 o2 k; Y% |#if __VER >= 11 // __SYS_PLAYER_DATA
+ F7 W9 N6 k+ x1 j, |" h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 Z3 [5 t9 I3 f( ^#else // __SYS_PLAYER_DATA4 O% T" J; x. U/ V
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 i& m$ u/ Y, F7 E0 H# T g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( w. v& A t: T if( m_idGuild != 0 )
, M7 i- Y, \5 b0 D1 T g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, u4 l8 I+ v i2 `& k! y#endif // __SYS_PLAYER_DATA1 a8 O# b) O1 ~+ y K8 O
SetHitPoint( GetMaxHitPoint() );5 T4 X$ _- L7 Y+ } _
SetManaPoint( GetMaxManaPoint() );
+ |6 C( C3 m3 d# a SetFatiguePoint( GetMaxFatiguePoint() );6 O2 Z4 I9 ~+ C% p4 w
if( nJob >= 1 && nJob <= 4 )1 R* n0 O! @8 `: [
{
, Y7 u, I7 v& `6 r4 C% D' w m_nStr = m_nSta = m_nDex = m_nInt = 15;
% z! F$ [0 I2 c$ e/ @+ p m_nRemainGP = 28;
, v: {0 L$ D% O }( ~ i, P/ h K" |$ A& _- ]: B, C c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ B# l% f' ]. i {
4 J/ ^% _/ L# F& c; F L m_nRemainGP = 118;
9 u- A8 T, M/ j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ B0 F% _: d3 c9 {* U1 v% F m_nStr = m_nSta = m_nDex = m_nInt = 15;
! l3 ^' j$ [- q/ E4 d }* _! w" [6 C- D6 n7 X7 J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: l1 R. w9 x5 \( f {/ q$ l# v m' R! q8 r
CItemElem itemelem;5 z) g5 C. e) h- G# e
itemelem.m_nItemNum = 1; `. c5 O7 G6 Z9 Z
itemelem.m_bCharged = TRUE;
5 X/ G9 D* p* d& D BYTE nID;
& H0 J+ S0 P% Y. m
" X" p) t) [/ q9 w2 v7 e4 O if( nJob == JOB_MENTALIST_HERO )
! l" y7 F1 D) ?1 { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 ^+ Q) b) |/ _
if( nJob == JOB_FORCEMASTER_HERO )
, z( `, W: p. k) d7 Q1 ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 i$ _0 v; w% N0 z9 p" v* t" s' |; w% A# i
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 M$ }, r, q. ` }
. p3 C) t0 D: F q0 Q. q+ g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" C& c& ]% D! V- ~+ f! @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 ?% r( B/ i; x: z" i/ v4 d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ `3 {" O0 Z: u8 ^& X4 Z4 H: L7 q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 E5 K, J' n* m; C% m0 g4 U
( (CUser*)this )->AddTaskBar();*/
, l5 S% {% l" O7 P: | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( u( D+ t% H. F- m0 o/ [5 ^1 _/ C8 L
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 v% U( M9 k8 D! k% N6 p. L
((CUser*)this)->CheckHonorStat();
, e* ]9 d8 V% X+ ~. U, B ((CUser*)this)->AddHonorListAck();6 T4 m5 ?; C7 w- e* Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 N; l1 f+ p7 l$ L. o: r+ d#endif // __HONORABLE_TITLE // ′Tà?
# |& g7 d. P% u1 U6 `3 J- z& f/ s }
2 A; G3 u- m: j' o7 J& @#endif // __WORLDSERVER
& u d. R4 f/ W$ |}
" z8 W3 q1 @* Z2 f$ ?, J6 m1 G! d, H
然后你进入functextcmd.cpp并添加以下
, t0 Q/ _$ r5 p% c4 Y2 r! L5 l/ |1 c$ D
代码:/ N5 x5 p3 u/ ?& `- n7 _7 I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) b+ @1 f) ]0 J9 J9 b, L& A( `
下面插入! W4 f: q u) r# u- B& R5 M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 K6 ~8 n' n- ]% {1 u# r( `, o3 @
. J( e/ m/ [2 o/ B6 M) O" i- \然后你去
2 }# ]; Y- e- l G& @$ r, ~+ j
/ _( s- d4 ~/ X) r! Y5 E9 H1 R0 F1 r代码:
( W3 w2 @ W _( m代码
! b9 J0 \# j& {BOOL TextCmd_ClearPropose( CScanner & s )4 i; k/ Z' l o( Y6 l# I, G$ w
{
6 g( q$ E$ O3 W; w( s. O#ifdef __WORLDSERVER6 a& @% u# z4 D6 f/ M" H# K) E
CUser* pUser = (CUser*)s.dwValue;0 V: a4 m. L2 w( K) d. e
g_dpDBClient.SendClearPropose();
4 C( W/ V$ L+ P6 D* m7 x#endif // __WORLDSERVER
# A, s4 @0 ?8 h1 N; T return TRUE;
" R( J# p8 n7 |9 n( Q% F/ M9 w}
2 @0 X; e7 G7 z5 s B" g下面插入
1 y. z% _7 X8 L" G' @! cBOOL TextCmd_rebirth( CScanner& scanner ), O" `6 ?: ~4 h* |2 v. F
{1 l" ^7 C ]) x- g0 o2 {
#ifdef __WORLDSERVER
: N/ p) Z' l3 \7 C% o" D' YCUser *pUser;
# U! q1 N: n' J7 M6 {& mpUser = (CUser*)scanner.dwValue;& F- T9 v# R# o% t; F8 t% e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* b) t5 k$ n \8 g9 F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. }* M, c) \1 m! \ \/ E% p
else- B* [% D3 o$ G; [9 l
pUser->AddText("你还未达到重生条件!");- z; u' m% W: I$ F
#endif+ k9 V h Z$ ], `9 L# k& I7 g( b
return TRUE;
5 d$ l7 I8 c# C9 @} " a" n& ?9 ?6 J% X% k
: c6 }4 `6 y( m1 B P4 z
1 c5 q+ b- V8 b- u) @ ]3 X6 m* Z7 o
9 P- ?) h; v7 |* g0 K3 J |
|