|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ g8 _9 }2 m- ]0 a6 y, p( V+ m
3 E: E9 D9 ~5 l7 f6 {8 \0 {Mover.h
2 W" \; D$ R' E9 K$ e% G* j代码:+ g4 d& r8 F7 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 U" `" A& k* v$ @- |9 D$ P$ f! T
! J6 h$ n2 T- b! X( f _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " v: Y4 D- r4 u! u, H9 }' X) j
9 l3 c5 g& V( T
然后你去mover.cpp添加
& c* K3 }8 }1 X7 I. H
4 |! D9 R+ ~7 o' c, u代码:
6 a3 v7 U7 @5 t8 S- F% wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: J4 G. J& b X8 P; C8 ?{) P* j: F R2 H4 D: m1 W1 W
#ifdef __WORLDSERVER
' _% n1 y8 X2 |/ j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 i# c, `- }4 y3 p" C u6 V MoverProp* pProp = GetProp();
1 A% N D- f5 n1 m' A if( pProp ); I4 T# o, k. U& X, u: {
{
# p u$ Z+ {7 x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( L% f# y& a4 L8 j* O! _# i {5 V) c8 @) N6 Z0 @1 o
AddChangeJob( nJob );
, e; W% G- L1 h$ H2 Q( D5 t4 x }else{
2 H }0 l2 s! {+ u7 w return;8 f" p# L2 t0 @1 U
}
2 l, M, G# X4 F/ B7 X; Q* N& r9 Y/ I int nPoint = 0;
/ H6 O+ l: q9 j3 c2 I/ K if( m_nJob == JOB_MERCENARY )
' I" e' n' h- @7 e nPoint += 40;/ v4 R" R6 N" ^6 v3 v8 q: C1 G
else if( m_nJob == JOB_ACROBAT )8 L; ^/ ~" w6 K: |1 H
nPoint += 50;: h3 D8 Y q0 W9 J, g K
else if( m_nJob == JOB_ASSIST )
0 Q! e: D3 v; V2 f nPoint += 60;! O3 A! t4 m3 w
else if( m_nJob == JOB_MAGICIAN )
9 }' b# B0 U" ?; ^2 b* m7 V nPoint += 90;0 b8 N: |+ K3 I8 k; y6 {
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" k6 L& d0 k& N& \. j5 N. [1 y1 R nPoint += 120;, C$ ?4 P0 G0 v _. u. O0 M6 N
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), L9 V0 v' d( [/ h
nPoint += 150;
( v) k; t; Y6 T$ n else if( m_nJob == JOB_RINGMASTER ); s+ F' N/ ^) G6 M; {! Q( n6 e
nPoint += 160;' o( f3 d7 c3 V0 n& a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 M! z' y! y* ^2 |. A
nPoint += 180;
4 I- b! f1 R" K9 R9 | p9 X' W else if( m_nJob == JOB_ELEMENTOR )( f: X. e0 x0 V' Z) B
nPoint += 390;4 B2 C$ @2 z A* H, b# i) D3 T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 n( h, T- |2 i9 T$ E: f
nPoint += 120;- A- J2 H4 |5 V1 X. n: h/ Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ l- _8 I" E8 A nPoint += 150;
4 O- T) k1 H4 n5 x4 ~4 i0 X else if( nJob == JOB_FLORIST_HERO ), t' }2 u9 r+ O- i0 k
nPoint += 160;
3 @( W/ r6 X g2 y' x. A3 K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) ~( V) `2 K, d# G( I5 n$ ?
nPoint += 180;1 c4 d6 R* K$ p# p$ c( K
else if( nJob == JOB_ELEMENTORLORD_HERO )- l7 W4 U, {' p# K- r' P
nPoint += 390;
6 O8 Z9 ^5 `4 m5 p( c! S9 o- U7 V3 D, R4 t
AddSkillPoint( nPoint );
7 Q+ N" a% U7 w2 o- d m_nLevel = nLevel;
7 }- y. D* R3 g5 a( H( [7 `
/ `" I# T1 y, i. X SetJobLevel( nLevel, nJob );2 V0 B4 p2 C- T$ {" C
m_nDeathLevel = nLevel;
+ p' E p0 C& C3 I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 F2 e2 n1 r! W7 V
if(IsMaster()); v9 C9 ^7 P" I2 `) d& V4 X, L4 p
{
* B6 B$ a/ y3 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ k' s( g4 Y# u* J# g+ Q: }0 }
if( nLevel > 59 && nLevel < 72 )
Z" Z; W- ~" b0 z9 |# m1 g dwTmpSkLevel = 1;$ \" W! F9 K1 F6 Z: ]
else if( nLevel > 71 && nLevel < 84 )
; `9 c& l1 Y' {8 S dwTmpSkLevel = 2;% e$ H2 ^- X0 H2 d$ M. q
else if( nLevel > 83 && nLevel < 96 )
5 m: M/ ^- A1 x9 M) i/ j9 j9 J dwTmpSkLevel = 3;
6 H. J5 g6 }2 a8 L6 J( x, \' q2 R! c else if( nLevel > 95 && nLevel < 108 )# b7 L, @5 \7 w& ?$ A
dwTmpSkLevel = 4;8 g; {/ B, I& h5 m& ?7 M5 r! y7 }* Z O
else if( nLevel > 107 && nLevel < 120 )8 F6 {1 g; D. f& ?- _
dwTmpSkLevel = 5;
4 R3 i* m U; j Y) {- N7 E for( int i = 0; i < MAX_SKILL_JOB; i++ )
( h3 i# E( g6 k6 G: v0 O {
8 U+ w0 Y( F7 F) V, f3 Y; u8 J LPSKILL lpSkill = &(m_aJobSkill);
* T7 I6 w" J; x, w% K, p8 | if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ G2 A! W! ?1 @# Q% x4 w {
' P E q6 u' o" D% W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& j C4 ?. k. B; l% X if( pSkillProp == NULL )
) a# |5 w% P8 K5 s# _( ]2 R( \ continue;; v( I+ _4 r6 C- Q- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 m3 _) Z4 E" C0 z5 y
continue;
F7 E! h/ A7 G lpSkill->dwLevel = dwTmpSkLevel;
# _7 V% s9 z8 H8 Q3 c; [; h% P% y }. q. Z# b- j* O. E7 e# a, U& ~( }
}# A5 P1 x1 s0 D/ y8 j5 d
}
% Y: D4 L; G* F$ j9 F. |' y1 X else if(IsHero())
; P: z* @5 T% c# \7 `4 ^( {" p- @ {
. s( q) D P7 X. _) K5 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 x2 [/ n# Z" j( s! K
{
h% e/ [8 ^8 K0 K+ }/ c7 } LPSKILL lpSkill = &(m_aJobSkill);
0 Y4 ~- a1 \- J* N0 x- X! n if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 \ [: j) t9 e, |* V( ~) C. | {9 M* O- D3 W" J3 b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / J+ j; Q2 a* u7 P: n O/ F$ j
if( pSkillProp == NULL )
4 H* W6 t5 G/ n) v5 X continue;
1 r/ x9 S5 g7 n% G( r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ Q+ K9 c$ J8 s; N
continue;
o& Q3 ~1 x& k% i lpSkill->dwLevel = 5;
2 Q, [" h$ [& t7 P& F0 x }3 ~9 X; v) k' ]% \$ f7 ]
}
8 h6 ~2 g* C; s" v5 z7 W }
3 A- h; E, n. d- F& h) `; I( q1 c; V! P else if(IsLegendHero())4 }! V* X/ r8 \, q+ d$ }/ }/ h) f
{4 U% c3 m# q; Q2 L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( u6 V5 w+ q2 M {
. \( S$ }2 j/ y" `: s LPSKILL lpSkill = &(m_aJobSkill);
) E. R/ ]7 Y3 R9 r5 w, |0 Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 f5 w7 `7 b& o; p! R {
8 h6 H# E7 R# k5 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' d* g* f/ c. O& |4 |
if( pSkillProp == NULL )" J& q' |8 j, G. P p4 v: ~. U
continue;
4 O7 R, Q7 |" ? ?+ y$ b/ v4 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 w+ `& |# u* k4 @+ g+ r& {( j" R continue;
$ J7 W! ?$ X* f8 [$ V lpSkill->dwLevel = 5;
3 M( E# s2 M- ^8 ~- I% g2 ~ }& i1 w& r6 w: D
}6 j' E7 [/ }# h: o! C( \ A/ P8 A( A0 V: P
}
( @) D8 d- u% ~$ k% \" ]$ H#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 p; w6 T5 v, z. W! d% Y
if( bGamma )& y2 Z4 s9 ]5 M9 [. Z$ c% X/ E
{ ]2 y) k, e A' i' h3 m, n
m_nExp1 = 0;
- T3 ?- G8 a* L Y }1 l0 L1 Z+ x* e1 P% W
4 d. q2 t' H5 j3 v ( (CUser*)this )->AddSetChangeJob( nJob );
. ]; d, U W) b% \# V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 q& {# X `( v. Q
6 O1 J6 r- d5 N% c
+ N( {4 m0 L2 B; }* s$ o: l
#if __VER >= 11 // __SYS_PLAYER_DATA5 q, M0 X% e* t: o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 L2 u7 ~0 z0 W$ ~#else // __SYS_PLAYER_DATA6 R% }/ X1 l9 S) @: P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ e+ ]- X& D% D. N7 E' j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! f6 X0 ^2 [1 I. h6 |- R
if( m_idGuild != 0 )8 _1 H# T" P+ Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# ]" o" l+ _/ ~# G0 r6 K2 b
#endif // __SYS_PLAYER_DATA% n% M2 X _( |, p/ J. r
SetHitPoint( GetMaxHitPoint() );
J) m7 u" e# O n+ E `7 z% D; U SetManaPoint( GetMaxManaPoint() );
( ^6 K7 [) T! m+ H5 f% m$ c SetFatiguePoint( GetMaxFatiguePoint() );
) n5 e. _ R/ N if( nJob >= 1 && nJob <= 4 )6 A3 E' `8 \& O
{
+ B; d1 ] Y& t: G8 N9 u m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 K& J7 b' l$ N+ Q m_nRemainGP = 28;
+ @3 u/ w) o) O9 b, Q0 X }
/ N1 s3 L- E9 L, U: y) v9 { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
a* N( n+ ~# T% C {% `7 g$ h H; n5 N. g
m_nRemainGP = 118;
. }& Q. |1 f1 r O' ]# W, f, H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ @- e$ ^% r7 d2 Q0 ~: s# I
m_nStr = m_nSta = m_nDex = m_nInt = 15;- u4 ^( c2 J3 h- U+ a% n
}
# M- R) O' _( l1 H. m! n/ ~3 T1 b0 u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- N q; H, y4 F( G+ n) a {% }0 R5 ?: W" w# z( c3 O- Y: L
CItemElem itemelem;
" F, p) P/ E' b: ` itemelem.m_nItemNum = 1;3 m) X q; I- K& x7 O8 k! ~
itemelem.m_bCharged = TRUE;8 E2 C5 J0 y- Q+ L
BYTE nID;0 L4 T% S" o C' c- V
- a0 ^/ H* A, f: ]- Z! y8 C9 d Y- } if( nJob == JOB_MENTALIST_HERO )6 t, X4 d0 g3 ^+ s# ]$ a) O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ V& _& c$ S- U3 E' V9 k
if( nJob == JOB_FORCEMASTER_HERO )9 b9 k0 Z0 W1 k2 B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 N" `" y0 C. R/ T
7 N7 y9 V! F% Z7 ]+ S- Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) q" W* i- Y" u0 _. E7 ~ }* g% z* l7 r% w+ P; K5 C7 K4 I$ ]( r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! t7 Z5 i, ^& ^$ W: U- x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 q; v+ r2 G9 M: ~# S& a5 ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 @+ G: ~) v- S% ^' w! e" t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: J; O$ Q2 m% Q9 t, a
( (CUser*)this )->AddTaskBar();*/
2 X, B% o5 o" Y) ~& M6 c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 E! b) S: Z! }( |2 }: `! s#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* |# r% b0 \ G4 u9 [
((CUser*)this)->CheckHonorStat();0 V p' h$ C: m% n$ [
((CUser*)this)->AddHonorListAck();6 a0 Z4 I6 f* }, u J
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 Y. J) ^3 y$ v! }9 G
#endif // __HONORABLE_TITLE // ′Tà?# e5 |7 P3 Z, e# @. R9 n
}
7 A @( v, B: c8 m#endif // __WORLDSERVER$ q/ g& k: }8 |' i: |5 D
}
0 G A+ {# g# q" t
* w- A. x5 W! v: Q6 S( e+ f然后你进入functextcmd.cpp并添加以下# d# K% ~9 ] x; o
# P2 O* u# z+ l1 H5 i T) y) r" n
代码:) k) ?/ l) h9 A( F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); W3 A6 A. ]* b. @
下面插入4 l& K; f! O: {" t- b; J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- P: G0 `) h4 [- A: g9 R" n6 \3 }; {, e; Y0 h
然后你去& M* T, k9 J- D
1 {. g( V" u$ ?( v代码:
6 A r, _$ s7 |5 ]代码
8 b5 w! M( o( {% f; _ ?BOOL TextCmd_ClearPropose( CScanner & s )8 M* c. n& h& `; s* u+ W3 ?# X
{$ k/ ?% H5 |/ X+ _
#ifdef __WORLDSERVER9 E/ S: o; r1 Y' ^4 G# e4 C
CUser* pUser = (CUser*)s.dwValue;# t1 t' n. }4 J: Q
g_dpDBClient.SendClearPropose();
' {2 i m( U* c7 f3 X1 a, u. I9 m#endif // __WORLDSERVER' Q$ R7 t+ P+ o/ z6 y& V
return TRUE;
8 n5 E1 B) `0 ^3 H}
: J3 D7 n) k$ @3 P+ r下面插入
) L9 c8 t0 m- k7 vBOOL TextCmd_rebirth( CScanner& scanner )3 v+ }' V0 g$ @3 E
{. g) j' U; D1 y3 W/ U
#ifdef __WORLDSERVER
$ L& `3 N" j2 ]$ v2 v% m* @CUser *pUser;( E& Z, Y! L7 B. \ N
pUser = (CUser*)scanner.dwValue;6 H% X" w) t2 ] _; w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# ~" u6 `/ r' _) K+ i; _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 N8 G6 r, j3 J) _9 v
else- N: F5 E6 K9 v. d, l( s f
pUser->AddText("你还未达到重生条件!");3 w, V4 N: {, x% F4 K2 B
#endif
+ q& r6 V; D9 f- y2 _return TRUE;
+ J9 m: e$ N) c% L}
~* O2 T& ^& Q' j/ O" ?7 G
! ?2 A: `+ B0 ?' S: O
; a1 _3 p# O6 O: p& B: }8 ~7 H( ]0 G8 F
1 i: S: u7 p+ K. y
|
|