|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( @5 ?& l/ i. l$ K# [+ P# y- c' _: j6 b3 D
Mover.h
( \& s6 X; B4 X; b6 }2 N/ \' E0 r+ N5 z代码:2 W9 \8 y" u7 S6 Q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ k4 ^3 h N& C& g
6 h7 ^8 M0 C0 q- v# Q2 B, N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 J9 n# Z" j% C; T) {6 p5 ] {; @: [9 J& s. x3 v
然后你去mover.cpp添加2 N) ~, O8 d: v: P
2 X0 Q+ R" p' z3 g& n代码:
& l6 O, U. v! H/ K; o$ nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; ^- T7 z7 |. m( x4 E& C{
N4 u5 k$ [9 T7 G$ @#ifdef __WORLDSERVER
2 g# J$ x3 \$ v% E* m4 a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
]' d; h6 C0 @6 c* p MoverProp* pProp = GetProp();- C w1 h3 X9 A6 s/ Y( `
if( pProp )
]! h( g1 v; z {
7 N7 e& m- G3 [, T% j if( nJob > 0 && nJob < MAX_LEGEND_HERO ). Z' W+ U9 y1 @& A/ e# N
{
) o3 z- ^* m1 ?6 d" ^1 y AddChangeJob( nJob );4 W$ g% r6 y6 v
}else{
! g$ i9 j3 t6 c* O. o& e return;
5 ]5 V" _& ]9 c( E7 j% R$ S7 S6 d }, b$ d% m0 U5 T- g' J: _
int nPoint = 0;
0 J3 H$ H4 i; X; Y& U& { if( m_nJob == JOB_MERCENARY )
) k# x# Z+ g, b; [( z8 c7 J nPoint += 40;
* i+ n; d o0 p" o else if( m_nJob == JOB_ACROBAT )
: i$ j4 B! N+ P8 p8 v Z5 C2 L nPoint += 50;: z+ I* W: W) H5 W8 t: r/ Y3 F; g
else if( m_nJob == JOB_ASSIST ); q H4 J1 B3 G
nPoint += 60;
8 L7 E8 O5 V% m6 p/ ]1 U else if( m_nJob == JOB_MAGICIAN )/ ~5 p/ E l6 y) w' Z+ I
nPoint += 90;( U- M A* {' r) Q0 s; F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 x. ?% w: o# Q3 ]8 S8 p) j4 R2 x
nPoint += 120;
y: ?5 r; _: d3 f) R$ B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ z% x3 I0 H4 @0 [5 J
nPoint += 150;
2 N# o( b E8 g; H, r7 W) F, ] else if( m_nJob == JOB_RINGMASTER )
5 p' V) v% L3 W nPoint += 160;
: }: n8 T1 j: ?# ?4 m, j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 p# E4 a( _8 z& F nPoint += 180;
+ e# A; d C/ M: Z( u- P else if( m_nJob == JOB_ELEMENTOR )
$ ~9 Z+ B% s; C$ N4 H nPoint += 390;
, G6 N N7 h7 K4 g+ I1 F: o6 n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& p- z5 _6 a/ {9 v/ R/ G# f nPoint += 120;+ o+ D8 A7 d* ?1 t5 p$ ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ X+ a8 G5 I" s
nPoint += 150;. E: C1 F1 I( U
else if( nJob == JOB_FLORIST_HERO )
4 c1 N2 J8 m3 ] nPoint += 160;* p8 h" \' `5 U# f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* d9 V9 E' g' {
nPoint += 180;% j& M2 Y3 D+ K) E$ r# q: t9 q8 y+ Z
else if( nJob == JOB_ELEMENTORLORD_HERO )
# `% x% t2 s3 |' M8 X nPoint += 390;
3 d- ]8 q+ |) Y* L' H0 X2 F! {* v# b
) o" {% e* i! X$ C, `9 q* p AddSkillPoint( nPoint );
" A& }4 P, M1 }+ n/ o1 C. e" G0 g% q m_nLevel = nLevel;& M8 ]& I3 p$ i8 `
1 s1 a+ Q5 k# E# v6 |
SetJobLevel( nLevel, nJob );
/ ` e% ~1 G2 N m_nDeathLevel = nLevel;
9 b8 b# H/ X7 K2 u: D# |( P1 M( K. v' ~% o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ c0 Q' R' w7 ?# M6 B2 I if(IsMaster())
( b: n/ K5 Q0 U7 o! C* e {
' f! `7 ^ R' t6 w3 O% Y, M/ m int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 Y. A. r" a+ |8 ^: O
if( nLevel > 59 && nLevel < 72 )# [5 N. g6 U U2 M
dwTmpSkLevel = 1;
1 v* @: }* C' w, @3 h( M else if( nLevel > 71 && nLevel < 84 )" z, U+ m1 y9 V$ y H2 B
dwTmpSkLevel = 2;
! ], L) a- q0 i/ I else if( nLevel > 83 && nLevel < 96 )
8 a |! `' d. |# A$ m) Y# \ dwTmpSkLevel = 3;
7 h3 s+ N. P* }. A& F7 t else if( nLevel > 95 && nLevel < 108 )$ g0 w1 X% |2 Y& C
dwTmpSkLevel = 4;
" H2 o& u" K5 h( g- p$ X, c2 ] else if( nLevel > 107 && nLevel < 120 ). w8 D4 Y- W4 E1 K- N) |
dwTmpSkLevel = 5;% ~6 ^! w# E# A- E) r8 \7 e0 B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ^! E" Q: B# n { : _' o J/ s( K6 C1 R$ s1 A! o
LPSKILL lpSkill = &(m_aJobSkill);, D3 n7 y* B* n* X+ V
if( lpSkill && lpSkill->dwSkill != NULL_ID ); ^3 T9 l, ?; }: X8 M9 C0 y: n+ g
{" |' |* n, e0 K9 K: ]: S1 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. @1 Q" f3 f/ |8 ?8 N if( pSkillProp == NULL )
1 W& ]. M; ?6 l' x5 g; `3 Z8 S& n continue;2 D1 w% X$ o& w, @* ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( E* m8 o, P, {4 j8 d- h! s# V$ O continue;7 a0 z+ V1 v/ U/ [# `
lpSkill->dwLevel = dwTmpSkLevel;- b4 L# ?2 Z6 K
}
* i% |. @8 [6 s3 m }1 {: I: q; V+ X! P$ K7 M; h
}! T0 @5 [" j1 V$ |0 K# d: l9 [
else if(IsHero())
& \% o' i3 L1 z* j3 f& x {3 H# U$ K2 n! V1 b9 w- m6 O! _/ O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! O+ K& y; |- u# Y; A4 ?" K' L
{
3 k3 f) B; m0 C- f9 u" J* C LPSKILL lpSkill = &(m_aJobSkill);) E- T. Z r5 Z" V8 H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 S) c4 ^: a6 @5 C2 `2 d/ m2 c {
# X ~1 ? Z' ` a" `; O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& X& _, o/ j( w- B& ? if( pSkillProp == NULL )
! j* E- {# v8 K. x5 H4 C. B4 O continue;
9 D; \8 Q+ Z( E4 g7 q9 j1 A$ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 }3 k0 }1 Q/ b5 b continue;- @8 Q" i4 F( J6 m& I6 m
lpSkill->dwLevel = 5;8 V3 q4 d- K6 F. \
}8 g- [$ U7 l- T) B! C' B6 _9 j
}
* V6 f* e( P3 Y4 P5 y- n }
; h% a+ F2 V# V' B) o0 I else if(IsLegendHero())6 m1 N% _( C* y2 c
{6 \/ g8 o; S% G, a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- ^- {5 f+ y' D* E5 ]5 t! t { * M. o8 Y, T7 t
LPSKILL lpSkill = &(m_aJobSkill);: P: w# E' L% \( y: D- ~
if( lpSkill && lpSkill->dwSkill != NULL_ID ). b1 _( X7 U" G4 W# [# P
{
4 M' |+ f8 N& i+ d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 V/ {' P1 J4 v5 p
if( pSkillProp == NULL ): R% K) L; h" W; |( m' K4 F
continue;0 k6 t1 x% M: y0 O; Y* `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' _9 C* o4 |( |8 n continue;/ x) E3 j( \/ J5 p( S- C9 ]
lpSkill->dwLevel = 5;) I3 S0 N- W, c* K; @8 k4 C
}7 H) M9 x0 G- `2 `
}
* q4 I; l6 D+ X% q: {$ F }
; Q$ q9 m$ C4 ~& F# M a#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 s* g4 F# J: S3 ^! C2 i" q6 z if( bGamma )
5 }5 M7 j, u6 L* _* o1 d* F {
% z* ^; }+ z$ C! W, d" m) a/ x m_nExp1 = 0;1 l' c+ m; o" b
}
1 Z: S H. S7 ~( n
) a* F, r% Y4 s6 U/ Z# y$ d; i ( (CUser*)this )->AddSetChangeJob( nJob );
0 g) w- j8 x: z9 W: S' P/ y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 D6 w1 v f: `
: D, A# N3 y. t) b' t5 V) y' @# e' I x! c. \) \/ Q' S
#if __VER >= 11 // __SYS_PLAYER_DATA
% u" D7 M1 C! d/ f& \4 s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 Y: d8 j0 f# P- N#else // __SYS_PLAYER_DATA
5 r; v$ j* a+ R. n9 } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. T3 H6 q# h, E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( M4 y6 T$ z8 {4 f if( m_idGuild != 0 )
o) i* n0 E) q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" ~/ K, h: G7 Z
#endif // __SYS_PLAYER_DATA ]5 o( K$ s* t" W
SetHitPoint( GetMaxHitPoint() );( ~+ o) ]) I+ |* g8 |- I! k
SetManaPoint( GetMaxManaPoint() );' R7 J9 X) H0 a0 m2 C
SetFatiguePoint( GetMaxFatiguePoint() );
8 O* ?6 w" t/ o# E if( nJob >= 1 && nJob <= 4 )
$ j" M/ O3 i7 E" G" I$ K {
9 w+ }6 c3 m7 r7 N% c/ K, s+ F# J m_nStr = m_nSta = m_nDex = m_nInt = 15;- c3 C5 x, x' n$ e2 Z& c
m_nRemainGP = 28;. `6 ^5 K& F8 F( H
}7 M# Z! o8 B: U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 ]( F* G, `5 k& i- a9 b9 _& w {+ E- W# H+ Z, z, G1 c" v% @; b
m_nRemainGP = 118;/ Y. ^1 |% n/ @% F/ n8 s% W! h# v: e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 Z6 O; o% J( Y4 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! c( E2 W+ t) e9 G4 T' W- F1 D }3 ?+ E8 x# N. E) H+ }1 Y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* G& _) f/ R2 t1 Z# }2 r& Y' S
{
. Q; V9 O; @& Y' ^ CItemElem itemelem;
1 a0 ?$ v, ], @3 Q* j itemelem.m_nItemNum = 1;9 H$ d0 i& Y I2 P! P% j. k; ~
itemelem.m_bCharged = TRUE;( w% B$ _# r6 ?& z+ C
BYTE nID;
" b7 `; o+ s9 R' O, h
( ~1 i) O1 {) n: R* C4 | if( nJob == JOB_MENTALIST_HERO ) b- A$ `0 A; Q5 k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 y" [% I4 r2 j4 f: ]9 d" T
if( nJob == JOB_FORCEMASTER_HERO )
' i/ [; U; ^0 I* x: ]# n; ] itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 o) D6 p) l% ]- q
$ }- M2 o9 }* l6 B2 F; B
( ( CUser*)this)->CreateItem( &itemelem, &nID );! z5 c% q3 V B+ d$ |/ l8 e ~
}
1 E. C. n/ e: @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 e3 K. J4 C2 d& r, q5 g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 x: z7 g' R8 `& a, k, J6 v ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% S ?4 V: \1 y3 v- P% {& ^9 d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ P4 r" ~; k- i1 ~. R1 H3 _8 j ( (CUser*)this )->AddTaskBar();*/ e0 q8 a) C) h# m7 m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ t6 x+ i8 {& t( o# L0 f. m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( H& B0 o+ y2 Z% Q* I' } ((CUser*)this)->CheckHonorStat();( W# t5 h5 d; K' N/ c {
((CUser*)this)->AddHonorListAck();) l3 r, K1 Y+ @7 Q- c( N
g_UserMng.AddHonorTitleChange( this, m_nHonor);
J r$ Y+ }7 d3 ~#endif // __HONORABLE_TITLE // ′Tà?
2 A# N# `5 y" s8 Q6 ?5 L0 [5 h }" t3 C: u+ G7 T5 H
#endif // __WORLDSERVER
2 Y0 A3 h* o, Z. f5 d; f- T/ F} 1 U* N+ H- `/ K3 G$ N
) I9 p" }! J A* y Q; X
然后你进入functextcmd.cpp并添加以下
3 O4 u z1 i6 |! n
; s2 \% N, P7 l% @; f7 A) {2 {6 i# D代码:
- \, r/ N$ _, u6 DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- c. H; T5 K" e+ p% w5 O$ ]
下面插入
7 V0 J- Y1 h. \! BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' F+ u9 h9 c2 T4 q( r) G3 R2 Z
6 x. H) Y5 V: F% Y" b
然后你去; L& l- x4 q9 j+ F: x8 M3 t
h0 N/ U$ g; ]% y" o# C
代码:
% ^, A& S+ [5 W8 b" ^* p8 G, r代码' @- L1 T, q. ^# O5 u+ {
BOOL TextCmd_ClearPropose( CScanner & s )
+ G7 O8 C P& e3 Y6 d$ R' ]9 b{
9 g3 F* K! v6 |9 ]6 M#ifdef __WORLDSERVER
* X: \: c3 s. y% A5 i CUser* pUser = (CUser*)s.dwValue;
; h1 F2 X& g$ g( Q/ A, v g_dpDBClient.SendClearPropose();. D8 E. F* k+ G. f9 g' ^
#endif // __WORLDSERVER4 j7 ?4 u" \5 q4 N8 A4 Z
return TRUE;1 A. P* \# C. G2 e+ z. A
}( r4 U$ a. k1 d
下面插入8 U! g3 T. Z& a) a( O1 u! w; y
BOOL TextCmd_rebirth( CScanner& scanner )
- x! J& \9 i- Q7 v( ^& P{3 s- v! V2 Q$ w
#ifdef __WORLDSERVER
5 i$ F5 `. ~1 VCUser *pUser;
# w+ [& R# A7 S. j- G* F' \; H% Y# ]pUser = (CUser*)scanner.dwValue;
2 S; _2 w& C7 x# `# r# \# i, ~if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). ?( l* |2 [3 _$ I8 ]( w" [: M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ }; W0 {4 o! c3 r1 j8 A/ N l
else
# B! H! ^4 m- HpUser->AddText("你还未达到重生条件!");
9 B2 @( `* {" f- R, @1 g0 Y#endif
+ K7 `+ u% w: V. t, G/ ?return TRUE;0 y, V- u; O# `% H0 S6 x
}
0 I5 e! p+ G! V3 N3 D3 [. \( g3 n9 I3 k
C! Q, k! {! ^4 k/ n7 d, A; p
* R; j- v+ T: G: g/ N7 u1 c6 @5 w1 I& M, G. i
|
|