|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* a! Q' b3 U8 R1 y
4 L( G5 V* g1 V/ M& ~Mover.h- E! s9 o( N B; r& G
代码:" G# d& c6 b2 f, ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ Z3 }6 u* y0 g' e
$ C3 I& ]" A9 v! r. }下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / y j- A- A5 T0 N% q! c2 h
: X5 u; K) s6 k2 O6 ~然后你去mover.cpp添加
# {3 R1 |8 v* h" \9 s
7 o/ Y; @8 M( _1 d代码:, H1 V4 e; }+ c# M) }1 J5 |3 _: }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 E& B0 w) X, G# h/ O{+ a* q3 _8 b, P
#ifdef __WORLDSERVER( k) N! d4 ~- e/ Z0 {4 S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ y8 h0 V* y+ m$ }9 F, t$ H MoverProp* pProp = GetProp();
" A* F/ j8 z& p0 z P if( pProp )3 z Q; |- Z8 c0 E( }& x1 T2 M
{
3 _, I( k6 M. V6 J+ q9 k3 b" i if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 }" T, J7 u) E
{
. y( n9 l6 p3 p7 Q2 R AddChangeJob( nJob );
9 k r: b" C# B H4 r }else{7 F6 W% j0 z( n$ p; z4 L, E
return;
* y7 l- r/ f" |. L! y) V" F }
3 g' M$ Q% z# p' G/ z+ }% F& w int nPoint = 0;& v* x$ a. i5 P; u' P! ~9 B6 x
if( m_nJob == JOB_MERCENARY )) }: J! J" |3 P9 P
nPoint += 40;% X% o* |1 G' j" H# q' {
else if( m_nJob == JOB_ACROBAT )
- w2 g2 u" a' e* `( e( S nPoint += 50;$ [' j; X9 N" j( F8 m; k% o
else if( m_nJob == JOB_ASSIST )/ B4 e9 Y/ c& t# x
nPoint += 60;
: E6 I _2 @5 Z: ?2 v1 x else if( m_nJob == JOB_MAGICIAN )
- v' `2 @* H& j nPoint += 90;
2 V* W- H! U" p9 J9 c& j9 @ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* `6 S6 p7 |7 x9 M( t8 e2 q nPoint += 120;
) b& p5 c0 d# |7 S+ R/ a else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- |+ S( y$ i" i, ?7 X5 D# ~
nPoint += 150;: Q& N' a I7 `2 g8 u
else if( m_nJob == JOB_RINGMASTER )
& b* M$ S2 r( D- D' f nPoint += 160;4 i* x2 I2 I- u6 p* t$ z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 L. p# B- v) f3 I* |& g nPoint += 180;$ r$ n2 @6 x& ^+ a4 R q8 g6 C
else if( m_nJob == JOB_ELEMENTOR ), ~- @% J" X& X2 }5 ~
nPoint += 390;
) t" _, D9 A9 d* s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); K( Z( l! b8 |# T2 J
nPoint += 120;
x9 R. F0 |8 N% n# K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( F4 u$ @8 E! z) I3 ]
nPoint += 150;
/ B! V8 h: k9 l' e& I else if( nJob == JOB_FLORIST_HERO )) R4 ?& j! `8 g
nPoint += 160;4 G6 J& W5 V) S: j' P" [, O6 f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); ]# U* C* ?9 U9 x8 Z k* F- o
nPoint += 180;) j2 {( B3 S+ y6 }( c+ _4 U
else if( nJob == JOB_ELEMENTORLORD_HERO )
" M9 F1 e( r# H& K( @" s nPoint += 390;
' L9 k% }8 p# r; l; ~
; T% @! S4 B K8 n AddSkillPoint( nPoint );# `0 g$ w7 s+ _$ ^* C/ Z
m_nLevel = nLevel;
* O' K: Y1 B. d5 [7 \4 c# r7 z" i2 r, I7 \3 {" ] B4 v
SetJobLevel( nLevel, nJob );+ f5 _! e7 T; i
m_nDeathLevel = nLevel;
" ^0 k$ \4 O( C2 Z3 i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 y8 k5 G5 L- T+ {
if(IsMaster())
/ k% {- {) l; \" D- V* _) y/ ^1 H {0 Y1 v+ v$ E5 G, O* ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ y; V7 ~& ^7 B if( nLevel > 59 && nLevel < 72 )4 S' ?# T( p7 k/ h0 Y& h* z+ w. t
dwTmpSkLevel = 1;3 }! G; k6 N+ ?. ^
else if( nLevel > 71 && nLevel < 84 )3 ~# p, f+ K# u+ i$ M
dwTmpSkLevel = 2;
* M" t, ?* y- C+ O% L; @3 p7 A$ `$ ] else if( nLevel > 83 && nLevel < 96 ) c# v% d3 b8 X' {3 \* Y' \
dwTmpSkLevel = 3;8 t; ~# @1 I. H: s4 V+ {4 U- f
else if( nLevel > 95 && nLevel < 108 )
' \3 F! p% w0 t+ `' n dwTmpSkLevel = 4;1 l0 v* H/ |% b3 F8 ^
else if( nLevel > 107 && nLevel < 120 )
1 z0 O" r; l- Q# C3 `, N S# { dwTmpSkLevel = 5;
9 o/ w" R6 @; ?" G/ x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 o7 ~+ n! j: d4 l
{ : [- i; i0 k8 v% w6 N, n
LPSKILL lpSkill = &(m_aJobSkill);
# X1 Z& e* R8 ~% i" ]- ] if( lpSkill && lpSkill->dwSkill != NULL_ID )' Z! _7 J+ \9 H# t2 ?5 a/ F. S
{
3 _7 I8 z0 G+ v+ K/ h r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , i3 p1 ^' f4 o7 f$ B2 W* }
if( pSkillProp == NULL )
+ U) r4 y( h' x, A continue;
5 |, B/ e6 Q% p4 L- w3 X1 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ j, j Y3 H) F
continue;
: y9 G' N8 x; Q# o7 w$ Q lpSkill->dwLevel = dwTmpSkLevel;, H# z/ Z/ }* ?; y
}
: ?& U3 F8 `0 c: e( Q: I }
. e$ V( ~! i+ ]! g4 }+ ?- } }
4 v% w1 A+ a, `0 U( k: x else if(IsHero())* \% o. V# w: e% \! F9 G5 s
{, y# k4 \4 d" P C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 U# F* u. Q) Q9 t {
8 P& m5 L U0 \8 T$ |+ } LPSKILL lpSkill = &(m_aJobSkill);
& S7 Z5 @" @2 k. ?) I! ? if( lpSkill && lpSkill->dwSkill != NULL_ID )+ X/ J( z. |- [1 d5 [
{6 q' X }+ q4 h9 \. g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * a# S" j1 E# B2 z
if( pSkillProp == NULL )
8 X, W+ q5 v5 T, _) v$ H, i continue;
+ \4 v1 ?0 ], U* ^+ |; r5 [. c! F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ C, {3 a, H4 \' M% y- }
continue;
: c! ?4 }& }/ r lpSkill->dwLevel = 5; X; s* I. S& _! ~
}
8 H' i @- G7 W2 K, ?, C7 L. @ }8 [9 P+ e( d) q1 M
}
" ]+ |1 ]4 B% j8 x; A3 n% c$ S else if(IsLegendHero())
( L/ t1 T1 a; q7 m {
* Y; I1 V- Y8 X2 f5 ~ i( f6 j for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 }' y; I3 e$ f2 ^4 N. x {
; R* B8 }! o( @+ t6 x LPSKILL lpSkill = &(m_aJobSkill);
$ D8 q( c3 F+ G$ S* R if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ [- P4 u5 Z6 l G; `: m! k: r {
; ?( S) M. g- y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 u) ]# c( F! \3 h6 c ~ if( pSkillProp == NULL )
% x& |; n/ }+ b. x continue;) u6 L( O; Z5 r' w3 d% m/ N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, R0 z: q% U8 c# w' m7 w4 e continue;( ]& A( R; }: N. t5 q9 c' j
lpSkill->dwLevel = 5;
! E7 I/ q( z: [! x }$ Y% J4 J- N4 W1 T, R
}# j t, w: n1 h" A
}
6 K1 G& k; P* _# l( H( Y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ `; X4 C i" d" X; W if( bGamma )& g* B9 A7 K7 V' W9 S% c$ N
{6 e$ ~. x& s* _* c
m_nExp1 = 0;6 p8 k7 ~2 k4 ^6 d* G6 d2 _& z
}7 T: B4 @2 x' O/ h( e- i; d- r a
/ I+ ]( Q3 e' j& V ? ( (CUser*)this )->AddSetChangeJob( nJob );
, g0 q' `7 ~! g0 q( | F6 L. }# @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; {, K4 d' {0 r0 E9 T
9 r$ L* F; P. F+ H% j; x' a# D0 Z9 H3 K4 V
#if __VER >= 11 // __SYS_PLAYER_DATA. e0 s% [2 X( D+ F0 N9 w/ Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 j2 f! b9 ]2 T& Q6 U/ y#else // __SYS_PLAYER_DATA6 a$ T% O# L7 f
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* \3 x1 R' k; D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( N+ t8 ^4 ]7 z" [; H if( m_idGuild != 0 )
. V* ]4 |% f1 M# _- O: ], n' ]# U g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. V) `* `6 A' x0 I2 j; h
#endif // __SYS_PLAYER_DATA0 l" Y% ^- o( c; Z. Y/ y1 H
SetHitPoint( GetMaxHitPoint() );/ {6 s' V- ]0 g3 N# k
SetManaPoint( GetMaxManaPoint() );
9 ^5 `2 _" D/ L/ b; r4 f1 l SetFatiguePoint( GetMaxFatiguePoint() );
/ r* y& Q* K7 G9 w! e; L, r if( nJob >= 1 && nJob <= 4 ), A3 v3 a" J$ f2 j" Q# f$ @: [
{- [6 x1 v; A+ p- x4 J9 {! \7 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ i* e: r$ ]% \$ V, q# m
m_nRemainGP = 28;# m, t; R3 Y8 Q; p9 |, k8 _
}
" h6 C2 I* Q' R1 w# Y" L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& K7 k, _: ~2 K k {
- z/ {# w- Z1 d N3 x1 {8 Z m_nRemainGP = 118;. `4 X2 b u: P! v4 {: d% v
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 _9 `; P3 Y* j2 _0 y/ x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 Z" P/ ^3 y7 [3 x$ A: M0 e% r( `5 t }5 a" L- {! ^8 Z! }* b: y9 G; |" N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" X* p7 R9 ~; b, ? {
# j2 X* Y: O% ]$ O3 B CItemElem itemelem;# m% z# [% N# k" E* n
itemelem.m_nItemNum = 1;2 B' z0 P8 U' q6 F' W) G+ p
itemelem.m_bCharged = TRUE;
4 Z9 i e# m+ Y; m* J4 T2 t, v( k# w BYTE nID;9 {; W- N* x0 x+ }1 k3 j
' l ?% G) w1 s* s: g5 V if( nJob == JOB_MENTALIST_HERO )5 g1 U* m; Q0 S% b3 ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 O9 p; K' w7 Y
if( nJob == JOB_FORCEMASTER_HERO )% W5 }4 R; J8 d7 v5 T
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( P( @: o$ o/ y* _6 `
$ V, Z! Z$ b" N" G
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) w4 z- V+ b1 q5 I9 x% H }6 a- R% D2 g( F; B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* a a: l& ?2 o4 |' }4 H+ i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' ~- E' A. M" q# {7 P5 K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" p+ G8 G& j7 G$ I9 o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, J. e! Q2 [% ~( _ ( (CUser*)this )->AddTaskBar();*/* y5 V$ N% e+ g7 e0 v5 o/ d
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! n1 \; T2 l0 L
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 _! a$ ?) T$ O) ?
((CUser*)this)->CheckHonorStat();. ~! [( v# B; n% w
((CUser*)this)->AddHonorListAck();0 {: a4 O: N* N$ u. Y w. ?( V
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 r" G& B; L9 G; h& P: \
#endif // __HONORABLE_TITLE // ′Tà?- |/ V# L) v1 K( r W* H# F
}
T5 C( {, L7 q" D#endif // __WORLDSERVER2 k7 B1 b- h. y7 i8 U$ j
}
1 W" M9 |( g8 l$ K1 f: e4 m2 T' K1 f* C$ U& ?
然后你进入functextcmd.cpp并添加以下
6 C* m" a* ]" h7 d3 `
# X# B# D* l. B代码:
5 z6 z# W$ \3 i" @7 \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, \* n4 I7 d. y& J( L8 w$ V下面插入
4 b* Q$ e' `! P9 TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 g' t% s# }2 [# w) m- u% I" n& K. y
然后你去
/ u3 g0 X3 v$ o1 H$ {3 h. q6 ~2 G$ U, t, T( H' m6 T
代码:
8 m! O5 ~. W" u代码
2 h& J, [& D9 ?* TBOOL TextCmd_ClearPropose( CScanner & s )
/ t4 J Q2 S( ~7 q8 Z+ Q{
7 P0 E" i+ c7 \( u) n! l' T#ifdef __WORLDSERVER0 J; {( z/ d( j1 z/ j& x* ]' @1 P" ~
CUser* pUser = (CUser*)s.dwValue;8 v3 L5 U( O. T& h! O2 F; n! G
g_dpDBClient.SendClearPropose();' [/ i4 ~9 a. x3 N5 ~
#endif // __WORLDSERVER
# q0 O5 A8 a' w4 X( U. t2 D return TRUE;
; [. m3 }% d5 e}
6 ^2 K' N7 C- |下面插入) [/ ]: k7 _2 Z1 C7 C+ O3 R, ]
BOOL TextCmd_rebirth( CScanner& scanner )
# ]% ]/ [6 I( o2 l) e{
# h3 y" @5 a( h9 }: ^2 s' E) g#ifdef __WORLDSERVER
: l/ l+ ?0 O0 T5 u! LCUser *pUser;* J6 ~" ?' w# U/ j
pUser = (CUser*)scanner.dwValue;* b4 j% w1 L8 i8 Q5 a# Z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* V0 p) F7 v! J" E5 D& K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); m! ?* y) v! v" k
else* T: E- }: k. z/ a
pUser->AddText("你还未达到重生条件!");
3 P6 ?! E/ `+ |: Z3 H- n" Z" Z#endif
! F6 k+ S! W; ~/ Creturn TRUE;
! E* |) K# a- d1 t} % {' n* k- X- n8 `. y
$ j" b' G2 [8 O* t, \' r
8 H5 g; j1 {3 r) j* N& Q1 r+ i7 _3 j, ?' n" U s; g
5 ^" M1 b5 p3 S0 A6 e' p
|
|