|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' p* K3 P P( L: }/ E( T2 D
1 b- Z6 u E; hMover.h
, k* `2 n# H0 k8 D6 j" U* ~6 v6 o代码:
6 ?! A, J) Y) F) K8 H1 f4 @; L% n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 z! O. g! G4 w0 ?3 J4 e0 ^( R& g A! e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 z( [4 D% x( [
U2 ?! R. }' R _
然后你去mover.cpp添加9 N. Y. R' q& O4 A( C
( g3 v: `" |, q h/ f' v
代码:
( k& S; v+ \7 z2 c( ?+ o y2 Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ K0 @- {! `: w- M{4 Q' Z7 c( _& e+ B2 r' W1 J
#ifdef __WORLDSERVER
9 C1 p0 r3 n: p5 f, C // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# M/ P! f# ^! K- I* @
MoverProp* pProp = GetProp();3 Y: n3 t$ S. h$ z- } c* x* K
if( pProp )5 j4 ^ v- s/ H# n
{& ~" q$ p$ w1 ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
R6 T8 {( I; U, n8 i$ H0 u {
+ J9 e% F% ~6 E" Z! G AddChangeJob( nJob );1 B2 ?- A4 S* X! w
}else{8 x0 g4 H/ `+ e, h/ v3 R
return;
8 T0 L; S' n" C6 S& f) v0 h/ ? }+ [8 T/ u( w* @1 r b$ |
int nPoint = 0;
$ ?; A! Q2 r& y8 B! d! A if( m_nJob == JOB_MERCENARY )* o( T7 ?2 _1 d! O( j0 W* Y
nPoint += 40;5 _7 Y6 X2 E/ j" G# F
else if( m_nJob == JOB_ACROBAT )8 Y4 ^: g. r7 S* Q% h! l
nPoint += 50;
/ e% O8 h5 N* b+ R else if( m_nJob == JOB_ASSIST )5 e1 a) F# L, F+ y
nPoint += 60;" v O: S9 e/ C+ V! |, o* n. r
else if( m_nJob == JOB_MAGICIAN )$ d2 t Y4 U; n( c7 P
nPoint += 90;
$ h# t( H9 d" e* W& I2 l$ ^ S/ p else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* X9 b8 G" I" J s, g: N nPoint += 120;- n: }! ^7 b0 s+ ~& C% |
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 L. a; a% I( t nPoint += 150;
2 C2 Z7 Z# Z0 B: `- z9 X$ ~! d else if( m_nJob == JOB_RINGMASTER )
" ^" k5 b+ E) I; ?$ n! q+ ? ~ nPoint += 160;
; K( | A- t) [2 A0 a- s, v/ t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
a( l( H5 t) m nPoint += 180;0 {( H& @3 G+ H; h: P# b
else if( m_nJob == JOB_ELEMENTOR )) I ~1 h M- i, z k( W5 m
nPoint += 390;
1 i9 B) d% X0 |( N4 q( h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) Z1 b `# L$ K1 O9 q
nPoint += 120;) D" z: J/ W% T' C/ G: u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 @; o5 t t+ q/ @ nPoint += 150;8 O" A- r- f( K. @7 G
else if( nJob == JOB_FLORIST_HERO )/ C5 @( t6 O5 v: M* m, m
nPoint += 160;0 t" I( B! r t' V1 M9 Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ y6 l0 A6 u: q$ E5 N% K
nPoint += 180;
" G. y! @4 Q' `4 s, a else if( nJob == JOB_ELEMENTORLORD_HERO )
0 d$ J: k+ }: l1 y. _ nPoint += 390;- V0 d% h5 J! c' q7 O- h) c. p1 Z
; E3 q0 D4 z3 n# U+ X6 G
AddSkillPoint( nPoint );
' N" W% [ f7 {4 {5 x m_nLevel = nLevel;5 q# Z% Z+ X. Q3 I0 P
3 h9 }/ d! k; a0 m
SetJobLevel( nLevel, nJob );
) R3 I3 B5 o8 |8 r0 @6 t m_nDeathLevel = nLevel;
. h/ b# |+ M" R+ f2 z+ L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: H7 P1 v% f' e! ^: W
if(IsMaster())7 N8 ~5 {' K) j$ _
{
0 o, q0 U9 U1 r* y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 I1 ]: @- J+ R/ H1 z4 \( w+ S if( nLevel > 59 && nLevel < 72 )0 i( E( F) N9 q( f( t; k
dwTmpSkLevel = 1;
/ B( j1 Z8 a1 M5 O4 z6 Z else if( nLevel > 71 && nLevel < 84 )/ Z5 q( ?3 X5 q7 m1 {: g
dwTmpSkLevel = 2;
2 x0 p$ P8 B; {2 e3 ^+ V3 f else if( nLevel > 83 && nLevel < 96 )
, G2 _ o7 t( o! Y dwTmpSkLevel = 3;
) A2 T6 ^% I4 _* q: k else if( nLevel > 95 && nLevel < 108 )8 h6 }+ C H# O2 {
dwTmpSkLevel = 4;2 T' ^5 s0 X" d* n( J0 x
else if( nLevel > 107 && nLevel < 120 )
. Q; [* F- V( z: g7 U6 u dwTmpSkLevel = 5;+ n; @* P4 z* E# H) T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 n P% j8 ~* Q
{
, \2 _4 g0 \& T* R1 B LPSKILL lpSkill = &(m_aJobSkill);1 h7 t+ k# \4 P- F2 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. I8 W( i& h& a v5 V {
+ R- m% [" _7 @2 n- l# Y6 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * i- C8 P5 T0 P9 Y+ e, r# X
if( pSkillProp == NULL )! t! y( M- @1 }, ^+ G# r& b9 T
continue;
2 `4 s7 S ]. U# A& h: t U" H2 e5 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. Q! R M0 W3 U/ p8 j$ p continue;
# n t. ~ a! o. D" v8 Y lpSkill->dwLevel = dwTmpSkLevel;
: U* ?! c5 }9 _# R8 q2 V- B$ M }
- w4 A! L, J4 L2 `. S" J; N- O( h! k0 ~ }% @( ]$ Z @8 ~* C
}
& U2 t7 g' q7 n# M) U else if(IsHero())
9 |, `8 o7 Q0 [4 E5 _# ^7 C" d9 C {; \& _4 e+ R R& X, v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 {+ X* j! T, u1 e! ?% B# ~4 P { . Y+ |( F* C! [9 J0 }' U R Y% z2 |
LPSKILL lpSkill = &(m_aJobSkill);7 n* P' F3 L6 H# X9 |& f6 X
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ f n2 {3 S1 j* S/ Y9 R5 K) Y
{
3 g/ c7 S0 s7 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / q5 d! D/ k- M/ Z$ f# g) @
if( pSkillProp == NULL )
# U! @/ F0 h, W/ L5 K6 a* z, O continue;
2 f7 V( y" N$ i( Y& }# F# s" ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' n- C% S* Y' \* j' o continue;4 E- d1 _/ X; K7 D
lpSkill->dwLevel = 5;8 O2 ~2 T# z5 Q- p& p+ l* C
}
( B- M% M$ @ A [, `; @9 y$ V: S }1 o" G8 ~) t5 [0 b/ p& h3 T6 S; c
}
, `! q: I- p8 p! v$ d9 v7 k, k else if(IsLegendHero())
& i8 n1 s+ s; m1 f( I+ u: p/ ~ {
/ R+ E* X# A+ T& \% `7 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! l, M9 L6 ^+ i( d* P" |
{
2 c$ `4 }4 r# P1 w. S8 g% u% N) m LPSKILL lpSkill = &(m_aJobSkill);
# r5 l1 k8 c; n- B( f1 R. F if( lpSkill && lpSkill->dwSkill != NULL_ID )
" I2 D3 {' U7 P" J0 Q: u5 ] {, t8 q) j6 C ?7 v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! N; p3 X3 t3 Y5 }3 V" I1 g if( pSkillProp == NULL )
0 h2 H B+ W" C continue;
9 F5 E. x# g2 w5 _+ @+ S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" r8 @" u4 |, u$ r% C; o
continue;
# Q& F" j i: _' O lpSkill->dwLevel = 5;
- H: w; O/ R7 H2 B }
0 L, M3 r: C8 g- {" X+ S }
3 W+ p b" O$ G }3 c& s0 K! b/ j+ q B. U4 r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- A9 F+ e% H$ K& n" ] if( bGamma )
8 [3 e; h4 M2 x6 K {
# ^& q/ O8 T, L& I( \1 P- }: L m_nExp1 = 0;! s9 @) e( k: |, f" m
}1 d! x$ S3 f5 ?. t' P
6 V- A! W- i5 K; E5 X ( (CUser*)this )->AddSetChangeJob( nJob );' K$ T8 y' m$ \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; A5 g$ Z2 C9 b7 M+ z
$ q/ t0 y, t! N4 j$ V& N& Z5 Q$ C, |" c# F# }3 }+ l% E( v
#if __VER >= 11 // __SYS_PLAYER_DATA' Z' b4 l; ~: o3 b, j) B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 ] E1 ^2 B/ z
#else // __SYS_PLAYER_DATA
* H" L1 |' w8 d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ K: N/ w- d( y' K1 H2 G% Z* x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& q+ q7 K( C( P0 R7 n% T
if( m_idGuild != 0 )8 Z- G4 K8 m& B- e/ u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" v% ?0 m! i# m#endif // __SYS_PLAYER_DATA" J6 M+ r& \+ i) Q0 @
SetHitPoint( GetMaxHitPoint() );& H( V4 v- ?( q
SetManaPoint( GetMaxManaPoint() );
" g3 R [" a; b, @0 l) I. o5 S SetFatiguePoint( GetMaxFatiguePoint() );' w9 ], f; V% C0 Y$ U
if( nJob >= 1 && nJob <= 4 )
8 k2 w0 q0 f ^+ M& F0 z {
7 g0 x; @, A0 x# D m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 g7 N7 R5 S$ N( u3 m8 z m_nRemainGP = 28;
( F( Y# z* R" V4 m% { }0 }* l5 y; J9 Z; n1 P
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 X+ t* E4 u* P( o2 W0 J9 ] v& l8 S
{. T2 C2 Z6 r* b) b3 C2 G7 n. p
m_nRemainGP = 118;; f- Q8 C$ ?5 R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% m6 X- T( y* T9 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 D a8 o* ]8 D }
8 t* ?: m. Q! e$ X0 c) ` if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 ?; B" |4 _2 c; n V; ~( K2 Q, L {
I1 ?. I3 T& Y, B CItemElem itemelem;' k' U5 i- U- v- {+ V: O& c; \/ `
itemelem.m_nItemNum = 1;
" C1 x+ i. C* X8 j w itemelem.m_bCharged = TRUE;
- V) C/ K; Z- J* w+ Q BYTE nID;
3 w/ m3 n0 S8 L- Q
/ C9 |* u0 a1 |/ Y' O if( nJob == JOB_MENTALIST_HERO )
9 w# n4 g6 W7 k/ d4 _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 S3 L) \* z& X; ]: I if( nJob == JOB_FORCEMASTER_HERO )
& J+ b+ @2 }/ }7 i9 u, m1 g; `) z+ x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: G) |0 ]+ b( @ M4 l9 a! z/ W
, T9 [# s0 ?5 I7 y! p7 i
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ A {6 E$ ^( [% t* m }% \. N- |) T- f" \3 _% W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* O/ T4 l# M; a7 n+ ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: S! ? N" ~/ V2 V2 |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 a3 h1 C, {! C, }: x/ C4 K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. f# \* I4 v' }/ D; @* w& @, n ( (CUser*)this )->AddTaskBar();*/" D- q# {+ E: ~: m6 h1 f8 T' W. n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ z/ U; C4 [5 R8 l1 X7 U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 U1 y+ _. ^4 B6 z
((CUser*)this)->CheckHonorStat();* ~$ }" r9 t6 f* w' e) X
((CUser*)this)->AddHonorListAck();% R, C4 Y+ D* C/ F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- z% F1 Z/ m) P7 v9 W#endif // __HONORABLE_TITLE // ′Tà?) W4 d- _3 O, h$ \! F% ?+ u
}
! K" M* b+ N# s#endif // __WORLDSERVER
; U$ U$ n% x) f' ]} 1 y5 p! N9 ~1 E7 o
1 G) I# I2 i+ z! {
然后你进入functextcmd.cpp并添加以下
+ x/ \. q/ r' v) L2 K; I9 t
$ m% H$ c% P7 R2 N代码:
" S( {; K# o5 m4 s7 xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) p, c P& ^" X, Z4 p; L
下面插入
* Z: W( \, G2 V6 G9 yON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 u, Q3 c& l& m) E' g: J+ L7 h% J( r6 s2 m$ \
然后你去
1 j0 y) D2 W5 I( y+ R) K6 l
X9 V9 W+ }, u, k/ }2 w8 [代码:3 x. f6 g# ^: `6 B0 N1 [. T! ~
代码
. e! V5 D8 A4 t% V2 G: B/ n) q' KBOOL TextCmd_ClearPropose( CScanner & s )' T& N' \4 Q$ v1 L8 G( _' n9 ^
{' N9 a1 w, c# _ J; K$ f2 A
#ifdef __WORLDSERVER% f3 e$ W, [3 H6 y# {3 J% D
CUser* pUser = (CUser*)s.dwValue;
0 l. K0 E S" b4 r g_dpDBClient.SendClearPropose();
8 p# K- C9 J1 F6 Z#endif // __WORLDSERVER/ F7 d& M9 l7 k, ]2 u
return TRUE;. k. J8 X g% p+ n$ w& y
}
/ W: e2 H# `8 |. d: K5 ~下面插入, F0 k5 \2 R0 r) _6 l
BOOL TextCmd_rebirth( CScanner& scanner )+ f: E: V; F* W, M
{. M% f7 h6 p4 i) V3 F5 f
#ifdef __WORLDSERVER
V. [& x- r4 n" X) I* ]7 [7 K3 d* YCUser *pUser;8 B) }4 P- s P; R# J8 }" D! n2 M# `
pUser = (CUser*)scanner.dwValue;' t- P- m6 R$ o3 y; H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 Q* v) c! q# n. E2 ^! e9 Y# T! D0 z. v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* C7 ?; `9 q. d, F$ {else, d& I+ D2 E. c2 W$ _
pUser->AddText("你还未达到重生条件!");( t4 v' L9 @, N* V7 U" G9 K
#endif
$ {4 F5 @/ ?1 `1 r. P9 V" r& breturn TRUE;
" f. H3 t3 E; ]! }" L! H+ `9 A}
: L2 j( B6 Z3 [! P" V7 Z5 ^+ U; K# h0 X: F6 D5 H- a
* @8 _1 d( P& a v0 k) w
# l; ^- ]( }9 m3 \( K8 P I
: T: Y$ [5 p! M |
|