|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! l' T, Z3 Y& C
2 P* a8 V+ @. A* G% D* d
Mover.h& S# a! B P% r" B: o( P
代码:
2 m' L0 B. t2 V8 O, T: J8 R, e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ K9 f3 f8 D4 J( K& }! J; a; j1 j
5 u; D# S! u/ [# h& R# n下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 W, m( o7 G! W0 t9 \
; j' `! ~! I3 b, W9 P然后你去mover.cpp添加
9 }& Q i0 j) U! E4 Z7 I7 q5 ]9 S! C( `. a; o
代码:
% b. I1 K- ^* z' y- dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; w% F/ \! f" C; R7 M) |{( n! Q1 O! G& ]$ y
#ifdef __WORLDSERVER
2 q' g! _, M- F$ G9 W( s5 f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 B* y6 b. ]3 ^5 p0 s' c7 ?
MoverProp* pProp = GetProp();
; Y$ A; o5 A, ^1 M1 c if( pProp )
8 z4 K, \' \4 L) m( e1 t {
# t+ V+ ^, q3 A! Y. \! t if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 A$ v- |+ O% Y* ^ {
& m- j& j, x/ o) @7 o: P8 T0 q6 f AddChangeJob( nJob );
0 s* R$ b4 w v# y }else{' ^+ a, b0 g* [" C/ @
return;
4 w; Y7 K% G0 |* P7 e& ?& S& _ }$ j( I2 ^) p% o8 _6 D
int nPoint = 0;
7 U1 A9 S# `2 r8 S if( m_nJob == JOB_MERCENARY )1 k5 `" j" Z+ T C1 P: F
nPoint += 40;2 I8 b6 I D. k& A' T; E0 t5 y) _
else if( m_nJob == JOB_ACROBAT )7 L9 T% m* o o/ E, [1 c
nPoint += 50;. K: h+ M. N5 [( b
else if( m_nJob == JOB_ASSIST )
; u* R/ i- M9 T5 [. i, {/ D nPoint += 60;
9 m3 J# w, T( Z1 [! r else if( m_nJob == JOB_MAGICIAN )
5 R: d( X5 v; i( w( X nPoint += 90; P8 r0 t/ n- A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& k( Z$ b8 b1 A# T nPoint += 120;
/ `" x' w& y! h7 B9 o* v" ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! r% _+ X' l( j nPoint += 150;9 T- u! ?! L' V5 l
else if( m_nJob == JOB_RINGMASTER )# d9 u( I) m: O' q2 ~& g8 A
nPoint += 160;
+ e! H& a! Z6 T5 r' @$ q8 p# h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" \) S) \+ D7 v" q3 P$ ` nPoint += 180;9 Y* c' ~# E) l7 [" c' t7 h$ }
else if( m_nJob == JOB_ELEMENTOR )& U2 q% p0 d: G/ ?
nPoint += 390;
# S% w; I" F5 _1 {* S8 X7 |2 z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 N d, Q: c3 g
nPoint += 120;7 r [1 M3 T" b Q+ F: v" v- Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ ~; J, }3 P9 Z# r0 A% @ nPoint += 150;3 L# w6 Z/ z5 [) M
else if( nJob == JOB_FLORIST_HERO )
+ A) l- {: c5 p" D nPoint += 160;
+ R5 q* o$ A. P! w8 v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); F: Z) n8 q" }1 A
nPoint += 180;
+ r( o8 g$ N B+ a1 l6 ]3 c else if( nJob == JOB_ELEMENTORLORD_HERO )3 I; F5 V9 u0 i% E3 y& u
nPoint += 390;5 w$ W* {+ p' v' T
, h6 s& G/ k$ X- U9 d) i* { AddSkillPoint( nPoint );
+ o8 {! }$ l& c' g+ G! o& e2 W8 q m_nLevel = nLevel;
6 ]( P6 R2 @& j6 j8 }# j8 p* Y* S; q# e. B
SetJobLevel( nLevel, nJob );
! [$ l/ ~, G+ t$ j m_nDeathLevel = nLevel;
6 ?9 N+ U2 J4 j P5 H8 C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) q$ b7 Y* x! V1 p Q if(IsMaster())
+ k5 Q7 V' R1 W% f {$ H; Y4 Y2 N+ f' B: R8 b- g( o) |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. \% k( r$ x, }- Y8 T2 U& b H if( nLevel > 59 && nLevel < 72 )) O. f& c# G8 d; _) Y6 Y9 G0 A
dwTmpSkLevel = 1;
; h: A0 j8 W! e else if( nLevel > 71 && nLevel < 84 )* t) i3 i! D) ^7 D! L
dwTmpSkLevel = 2;
4 |* F; }- n* D else if( nLevel > 83 && nLevel < 96 )2 h7 E( ~& a( m
dwTmpSkLevel = 3;
& l6 j7 E$ V2 m else if( nLevel > 95 && nLevel < 108 )# Z+ t/ o7 U: g& ^4 g$ ^" @
dwTmpSkLevel = 4;
) `. p# z1 t$ @2 ] else if( nLevel > 107 && nLevel < 120 )( V" B% w. I( I2 B! p
dwTmpSkLevel = 5;
9 T7 |. Y5 T; I% b2 M5 E for( int i = 0; i < MAX_SKILL_JOB; i++ ) & W9 e9 j d' e0 L% x# Y
{ * P" @0 r( N) K9 N" @9 U4 A5 z
LPSKILL lpSkill = &(m_aJobSkill);
1 U+ T& E2 v1 K- [, s- S if( lpSkill && lpSkill->dwSkill != NULL_ID )( |( O0 p% i; [9 r. y
{
% s9 z; \5 O* c t; ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # Q: t7 ]9 Q8 N6 Y
if( pSkillProp == NULL )
6 a7 g2 G# e6 ^- d! O: ~ continue;" Y2 U0 c2 `$ j" I8 N1 H. a6 {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 Q$ B2 [: g6 W; C4 z
continue;3 }0 K# D7 F& X
lpSkill->dwLevel = dwTmpSkLevel;6 H3 A' h- b. N- V
}
0 P+ p! j. N0 M }
& I5 ?* _% _' C! ]8 ]1 v" Q }
) o) A4 w" k( c% k# @6 M2 g; f/ [ else if(IsHero())3 ?( t8 \+ @8 [8 ?+ K
{0 O9 Q% q( O0 h- n2 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . `# e8 {0 X0 e1 t( m1 P9 V
{ 6 R2 S' W1 e }* D/ H; m
LPSKILL lpSkill = &(m_aJobSkill); T0 M1 Q7 a5 A4 E4 A: ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )% ~# U8 q/ Y; E* A* G
{6 m0 c; U$ o+ d; ~' [) h1 d: u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- k2 R& j5 S o& y1 o" B( H if( pSkillProp == NULL )) d- T0 a( p! N- V, v
continue;
. l; v+ @1 A/ r; x) ?- c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 |) K% j% ^/ q* A5 W
continue;
5 O( _1 m' L8 \2 T* z# y lpSkill->dwLevel = 5;, ]* G$ f: t D
}+ G. ^% `2 ?" G0 `2 `$ i
}1 b' d, M. ~9 L; r9 [0 ?/ O
}0 s( @; @' q6 m, X& g6 \
else if(IsLegendHero())
; Q3 C" q: }8 U {
% B/ T) y7 ^* g l for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 g# c$ F5 Z0 Z8 Y( }, T5 E
{
" c5 J: n. q% Z2 } u5 X3 A LPSKILL lpSkill = &(m_aJobSkill);
6 O0 {2 x9 T5 z; `3 U/ W0 w if( lpSkill && lpSkill->dwSkill != NULL_ID )% L2 p. X) t! y8 [" |- U
{
+ \8 W: ~! n; g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 u9 t0 `. u) y! ?$ y5 [
if( pSkillProp == NULL )
! ~, Z2 V4 O# ~ continue;
3 ?4 t" J9 U" p9 y8 O) }; g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 C) p0 `; r7 b; S4 P continue;
/ B/ K" T) E: ~ lpSkill->dwLevel = 5;- }' k* ^* P; X: S7 O6 N
}
+ J- d$ D6 q( k2 @ }# F# N3 [+ ` Q* z/ k4 H
}/ o, j. M% u$ s8 H* n
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 G- t% }3 y: |3 B3 {
if( bGamma ), a; m1 q/ |4 F' k; g
{
. C* @* z' Z$ n' ?2 I m_nExp1 = 0;, C6 z! ~& W+ g; P: ~
}' A) h# \ f. V- q' U5 `% u
* Z& R9 o5 H6 p \" A ( (CUser*)this )->AddSetChangeJob( nJob ); R- R# W1 v; Q* _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' u( P0 k& ^3 @8 @0 T7 [+ w5 i, z5 [
3 ^0 a V% I1 X/ ]; Z+ X7 M
! m9 u" `* A0 B+ O6 y( U. Z* @
#if __VER >= 11 // __SYS_PLAYER_DATA
9 I9 ~9 [" n0 \- B$ l! ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 Q1 L" g \. ^6 m1 K+ q
#else // __SYS_PLAYER_DATA
- y) @. I* e# [. j: |9 N* U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& Q2 N$ b3 Z1 y0 b; J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; e, c2 g) F/ G7 |9 p6 R# E2 D' Q
if( m_idGuild != 0 )8 j* C+ P0 h, g$ O4 ?( ~& P, v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' f5 P. ~9 p B; [& C2 G
#endif // __SYS_PLAYER_DATA
) A5 R3 X/ p& O: x8 W% l9 } SetHitPoint( GetMaxHitPoint() );
/ A- \. q0 f7 g4 | SetManaPoint( GetMaxManaPoint() );: n: q' z" \8 k: q) E
SetFatiguePoint( GetMaxFatiguePoint() );9 H+ P- d* }$ Y1 `
if( nJob >= 1 && nJob <= 4 )" X4 {& `! p7 x3 i
{: U2 b) A: J2 k8 }/ i
m_nStr = m_nSta = m_nDex = m_nInt = 15;' C; L9 c' O- [3 \/ S7 R) Z
m_nRemainGP = 28;
9 {9 T6 A& e3 c! {' U0 S }. W+ i4 @' ?4 o, p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), V) A6 q6 n5 |# k t! j6 q
{# x+ y) w1 Z4 M- w) o# {
m_nRemainGP = 118;
2 P$ @5 ^# A$ R3 {6 E1 [6 m$ {6 S //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' S- M" C* m% l
m_nStr = m_nSta = m_nDex = m_nInt = 15; Z- i3 x9 {" K: X. U
}
. @0 U) [! G4 w: T D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* ~" ~- {5 \# H/ a% I2 f {5 u- X% H. M( m7 N0 o- d
CItemElem itemelem;/ {4 ?% e0 e- @
itemelem.m_nItemNum = 1;
8 ]. P2 l& {2 n4 A itemelem.m_bCharged = TRUE;/ c. S0 K+ M# K L
BYTE nID;
1 D# P/ |% n+ @* B( `7 @# O6 M- S( a- \- g' y
if( nJob == JOB_MENTALIST_HERO )
4 i2 r; }+ m1 B* K0 k. R8 Y& R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. H, ^1 ^, M+ F( U7 s if( nJob == JOB_FORCEMASTER_HERO )
7 Q& `1 V; K5 O# [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' L+ l% P) y1 o! s; e7 K6 r/ y; i# Z4 g4 h
5 U1 q0 H4 O% V
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 V/ m. B: L# J; {/ B! n$ R }
, W0 q! B" j! z# n: e1 [7 C# @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( l( e: o5 T8 Q$ ^( y& j5 V. h8 R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- K* u# v, A* e2 ?* [; b/ u, Y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# A3 U1 S. e3 n9 e C/ X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; J4 X m7 G ~% |; O8 A; k
( (CUser*)this )->AddTaskBar();*/
: ^& m* q5 E! p5 k2 y5 \) k$ F f8 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: G+ I, p$ a X0 K: T% V+ s& M
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, {1 ~) I" i/ Z7 b# G
((CUser*)this)->CheckHonorStat();" ]0 K% l& v/ G0 O
((CUser*)this)->AddHonorListAck();8 ]/ X( {8 t$ d) A, h' _; P
g_UserMng.AddHonorTitleChange( this, m_nHonor);% v+ x: ^- a3 l* O2 @
#endif // __HONORABLE_TITLE // ′Tà? o0 V/ R8 N/ Z% U
}
. T& b* F/ g6 C, Z7 z) w#endif // __WORLDSERVER& j3 H( k- p1 r9 p
} " s0 l4 G L4 t# w+ U
! g: w/ R6 e9 {* @然后你进入functextcmd.cpp并添加以下
) X5 Z) v+ I) i6 m" [3 e" y
, w- R* u1 x1 E6 w0 E3 Y( E代码:% f4 \+ ]6 q$ E/ t2 H& b: h/ P, c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 m. r0 t; w) F( ~' h, Y5 Y s下面插入# X# ]* u0 N( F" e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 |+ z5 C4 m2 V" J v# x
0 j+ h' m9 M* U1 Q3 m0 W! q( v$ M然后你去
- \1 |+ [' _ c. z% O, z. e- R: C- O& s, }2 d0 Q
代码:
3 x: X$ H; l. I% d5 J0 S& r! K代码
! X! { c# G7 ` ]) |BOOL TextCmd_ClearPropose( CScanner & s )) a* [" N8 M3 i
{% {% R4 W& h& m- {1 I$ s
#ifdef __WORLDSERVER
8 X; M7 q- w$ O# l1 w6 J& e1 n CUser* pUser = (CUser*)s.dwValue;
) }8 E; R- g$ X g_dpDBClient.SendClearPropose();
+ P9 ]" H1 r; M3 w2 e9 [! Q( q#endif // __WORLDSERVER
+ R" D9 {. U7 z1 M# q$ I return TRUE;
, R! C/ f1 ~ m4 A T4 D4 d}
1 r8 q0 H$ f5 z8 H# e: A/ q下面插入& q+ I2 N8 ?0 h( Z6 m
BOOL TextCmd_rebirth( CScanner& scanner )
6 E8 G; Z( c3 D# [+ N4 n{0 B; v! Y4 K. i. w" V, g: q) ?
#ifdef __WORLDSERVER, P+ b( F3 c; Y2 z( I/ Z6 M
CUser *pUser;
, A1 S9 b. ^7 K) g7 a9 J% \, G$ KpUser = (CUser*)scanner.dwValue;8 y- U4 n, E: ~2 Y) V
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 ]" J6 U, O8 l' k' p$ i5 QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 _) ~7 @9 H$ J* r9 |! Q
else
3 D- U' e" V, q/ |. C0 A- l+ DpUser->AddText("你还未达到重生条件!");
# H2 {/ @' P4 r- e w H#endif
+ B. e2 c2 g/ Z0 q3 x: |) a) Preturn TRUE;; {( K8 Z' Z. y
}
6 M {$ i9 z6 x: b# r: T' n: d0 j) }% |/ S
' y+ ]$ U% H" v1 {4 X
4 A6 U; w# N+ J/ P) X
! p( K$ L/ p f9 j8 a; ^ |
|