|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: ` f% H8 d- T' t- g4 x3 K9 k U3 L m0 `/ P
Mover.h# m9 ]$ q8 K5 U7 `9 H
代码:' }$ ]/ G+ H- s7 ~0 _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" N I j0 k, T7 h6 D
2 _* v$ e% ?- a$ ]! W8 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % U. x4 ]7 m, O. g8 v% v t! ?7 W
- F- Y; W2 |% N+ p& q6 l然后你去mover.cpp添加" g* O* Q0 z. n7 ]$ g
; N4 K) E w6 |$ J; x% i; O8 I
代码:
- c' d9 ^2 l5 f( nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ m1 b/ Z& o, P; W0 l
{
6 P2 L# J& N4 K/ N#ifdef __WORLDSERVER) S# ?3 V) j! V8 f. d! E8 y6 J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# |7 ~: N3 b/ c9 x2 E$ P MoverProp* pProp = GetProp();/ b0 N& V1 ~. v* d" }! N
if( pProp )6 C! Z6 N8 r/ D4 B
{* c9 `+ Y# C% f [) @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" d; h8 x$ V+ E! y. j3 Z7 u
{
5 y2 l3 L' G0 c+ D5 ~# \ AddChangeJob( nJob );2 ?( ~3 x- M( _- l
}else{4 ^: c4 |% S+ ~6 ^% Y3 I: ~
return;, H" ?% s& ?( Q# H {6 [+ r9 q
}% o9 E, D. h; P
int nPoint = 0;
- H$ C% Z* t. Y# R) r if( m_nJob == JOB_MERCENARY ): F5 o# Z& k$ ^' n; h' r0 W
nPoint += 40;! ?/ _2 I( Q |" K
else if( m_nJob == JOB_ACROBAT )
+ A: b# U: v3 T) [ nPoint += 50;
0 Q( k; E/ a5 c else if( m_nJob == JOB_ASSIST )
4 U" T+ @) o* a/ x7 M: u4 e! Z nPoint += 60;
7 Y2 h4 i; s6 x- o3 `, ? else if( m_nJob == JOB_MAGICIAN )( D: ~' y! P1 \1 u
nPoint += 90;
6 T9 y. G0 _: e5 T! f" n6 {+ h* r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, Z. J! y) c3 Y nPoint += 120;
" o4 d) ^, j0 G% T* r+ T3 l( Q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 i& I/ `/ p" r6 [& [" B, H" V
nPoint += 150;
: L5 \% p: i! F5 ?7 H else if( m_nJob == JOB_RINGMASTER )
( u5 a, ^, `+ N' N3 l nPoint += 160;
5 j( j1 F* j, {6 f! r# W+ \+ G2 R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) V" _4 y$ s6 U% i6 m
nPoint += 180;6 o$ X6 i9 T$ g, M2 w
else if( m_nJob == JOB_ELEMENTOR )) k; p' j3 D4 ?* F7 G0 g( D
nPoint += 390;; L5 m3 C6 |. r: Q+ o+ R9 ^; w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' {1 j- R+ i: m9 f; J* ` nPoint += 120;
2 L* K3 y/ d) j else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! E3 i( C6 |7 e) [
nPoint += 150;' W0 I6 y) v8 l- m: u
else if( nJob == JOB_FLORIST_HERO )
0 X& V4 D" |* N3 Q nPoint += 160;
& h7 a( z+ j1 I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% u1 X9 I; ]: w1 A) N) B( U# H/ w* ` nPoint += 180;% g% f' h$ v* {9 q, w
else if( nJob == JOB_ELEMENTORLORD_HERO )+ @7 Y% a4 ?: s" O# m* W4 {* d5 ^
nPoint += 390;
' M( a" M+ l) b+ c {) K$ n
- N# b3 P: o2 _) w AddSkillPoint( nPoint );( Z o& {4 A9 g5 A! y* c) ^
m_nLevel = nLevel;
- _% f N* B# l. d( [$ z+ W
+ f# I5 q( e/ D6 ` SetJobLevel( nLevel, nJob );
/ P+ A* w3 r3 z) W9 X& Q( U m_nDeathLevel = nLevel;
- c( B, i+ l+ ] I" Y4 j! b#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 w* e: _( {7 x3 w. x4 [7 G
if(IsMaster())
+ ~" G3 H3 X, `4 ]% T% B0 F' m {
6 k2 h8 Z* Q7 K3 r) `6 e# }7 _! c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% }2 H* t0 N$ R2 G" A! n2 J if( nLevel > 59 && nLevel < 72 )" J% r6 m+ v) }, ~
dwTmpSkLevel = 1;* d. X1 T/ k s
else if( nLevel > 71 && nLevel < 84 )# P( L/ d, w* \1 i1 P5 v
dwTmpSkLevel = 2;. Q$ r6 T: g0 Y4 m/ ?, o
else if( nLevel > 83 && nLevel < 96 )
. v8 O. Z1 A1 L dwTmpSkLevel = 3;) q/ e& `4 ~7 z1 y1 |) a
else if( nLevel > 95 && nLevel < 108 )
! l( l0 D& E1 v7 N, V dwTmpSkLevel = 4;7 t8 y* U. A" k8 w! W$ q& y8 F( X
else if( nLevel > 107 && nLevel < 120 )
+ `/ ~3 C" g0 Z3 W4 i dwTmpSkLevel = 5; ?- _- M1 k2 s5 Q* {1 F0 R ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # x& B- g9 H' Y; T" Z' y
{
: q5 X5 V# F* b! ]: ` LPSKILL lpSkill = &(m_aJobSkill);
8 G6 g& ^* o* }- ]: g- U if( lpSkill && lpSkill->dwSkill != NULL_ID )
( Z' |+ K9 v4 G1 f5 P+ { {* t! {2 K/ Y5 i4 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ n9 N4 y! P/ C( i9 |$ U/ ]3 P
if( pSkillProp == NULL )! M* h) r, E; N/ a# J) O% G+ d
continue;9 b5 d) b% N4 Y1 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; F2 e; l. h: I* A b continue;, k0 h% h8 K6 [4 c! H; G. v& m4 c5 o
lpSkill->dwLevel = dwTmpSkLevel;7 L; a- U! W9 E$ d
}
$ a+ K" S% z( @. V1 f6 S }
, @4 T7 \+ U% c+ c) B- Y) P$ k U6 E }3 B8 B% l! d! O! P
else if(IsHero())& d' L0 p$ B% i; b. R- ^
{
, _! {6 G( G% q, w$ O% Q8 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ^+ h! A: k U' L4 ^, G
{
3 R, g8 h2 C5 y; H" A0 X LPSKILL lpSkill = &(m_aJobSkill);
! ?# R* P; p: T: u& n if( lpSkill && lpSkill->dwSkill != NULL_ID )# S1 X3 S7 |) t6 Q+ A7 V, @
{5 t5 c1 n* Y& K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# @( M6 Q# K2 i" w4 x5 R if( pSkillProp == NULL )( l: l4 h6 M1 @& J7 f+ n
continue;4 f Z7 a- l0 w+ \0 k* h3 i# j( `8 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& j1 r1 K C) @# }, ]0 A continue;
6 S" z: H6 P+ a lpSkill->dwLevel = 5;5 }2 H$ n4 e( a+ y
}& J8 O7 _! O. a
}4 W* I7 _! O! _
}
% h( U( R3 ~1 E( |" F. t4 c: u- ^/ j else if(IsLegendHero())
- T+ D1 l& i$ w- G6 A {
- V* p" e: o/ G7 | for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' ?9 g8 L! e' E8 D+ W
{ ' `, ?) O6 `% Q. x W- a
LPSKILL lpSkill = &(m_aJobSkill); [7 S3 C4 X' L5 E
if( lpSkill && lpSkill->dwSkill != NULL_ID )" k5 d' Q1 e: y( L( h
{
- V4 L- U) s( X" q5 Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # G" @! D L6 p$ ^5 R& r3 d' F
if( pSkillProp == NULL )
F) C; ^1 @! ]* H! e: K8 v continue;2 n( ?! J/ L7 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ B, ^8 x$ _/ k9 l7 R% S7 P continue;
1 U- s- e* V2 W7 } lpSkill->dwLevel = 5;
9 x4 L2 Z( l4 H' ]3 \ ] }
" d- a/ N6 l; S# i. s* ` }3 S1 U; R6 U8 Y* V- U3 g: f
}0 T3 F/ l! F6 i
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 U8 b1 c+ e3 k3 m; q if( bGamma )
& C- z, J! ~: m {
1 a& w. @3 G$ ]. ~/ Y2 ` m_nExp1 = 0;6 [4 v' s1 j" P' h) k$ G
}
& E" Q- \! R) W/ V3 h
2 A5 ^5 ]7 T3 t [5 m2 e ( (CUser*)this )->AddSetChangeJob( nJob );, }9 q9 u/ K1 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' b- A. P( X# C: T% ?8 v. n( `0 T0 T9 C- ~9 a
$ }5 f' Q. [7 O! r. P \#if __VER >= 11 // __SYS_PLAYER_DATA# P( D; t0 L: q- J& L; Y: e* f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 X; S# ~: _9 W#else // __SYS_PLAYER_DATA
# ^% f& H! c$ Y- F( O- E# v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: b1 P7 |, U; S9 y. [, N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( I A' {( [) L# u: ~- A0 `
if( m_idGuild != 0 )
' S4 y2 x# r0 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& R+ f& m' B" m/ H* ?+ m#endif // __SYS_PLAYER_DATA8 G! O6 r6 v% r; T
SetHitPoint( GetMaxHitPoint() );$ ~7 W' k" k; k( J n+ V
SetManaPoint( GetMaxManaPoint() );/ X) B4 S7 N) ~8 _$ r4 B
SetFatiguePoint( GetMaxFatiguePoint() );: O, ~0 E7 F% W4 a, D
if( nJob >= 1 && nJob <= 4 )
7 C9 L' p. H s7 I {
% c" i; P7 c# Y( c Q: y- A5 o7 v m_nStr = m_nSta = m_nDex = m_nInt = 15;9 Q) x1 V% _9 K6 V! }9 \ c
m_nRemainGP = 28;
) w; [/ @2 }8 _6 D }6 h5 l& d. g4 h Z, d5 m6 ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 i5 L) ~ \: S) W# @ {( H: N3 n/ ~3 m; }
m_nRemainGP = 118;8 z+ R B5 l$ e+ N0 y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 e a& P n6 w2 e. U% K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ F- r/ ?$ y1 t6 d/ v4 _( W }6 ^( F G4 \: T: `! s ?+ [! b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 Q" {* `; x' o8 L0 l5 S { x0 w! D. b1 @ e9 y$ }
CItemElem itemelem;
( l; p; d) u: s0 G8 n itemelem.m_nItemNum = 1;- W. n f7 g+ f; b
itemelem.m_bCharged = TRUE;( O6 l! P6 S% n |
BYTE nID;
2 W, {6 F M9 V( J1 G3 c H3 ?. g+ I- q8 f: d
if( nJob == JOB_MENTALIST_HERO )
% V/ w# j* w0 |3 J. j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# v+ I+ c* i: o8 ^+ S- ]: M
if( nJob == JOB_FORCEMASTER_HERO ); \$ ]& I) b- p" v$ y% w0 `7 B0 z" Q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 {& \7 E: z1 I. ^ G
" H% [" ?4 R6 u! P e' k( {2 [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );% Q' C, x& W! c
}. p5 K7 I8 _8 f/ ]- t& k' r+ E+ R: q0 t
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# u8 _! S# K8 \" \7 D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, c( M/ y" L6 t" i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ s7 f, e9 }: [# e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ }9 O0 w3 y1 z1 @ ( (CUser*)this )->AddTaskBar();*/6 Q- `; S9 v0 i: }$ ]- K j+ R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ u6 e6 ^% n/ i% E6 |0 k8 k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 s3 e/ B+ W9 P% d% I3 A: l ((CUser*)this)->CheckHonorStat();$ Z7 x0 P1 |" W& f) y2 r* V3 C, T
((CUser*)this)->AddHonorListAck();
5 l% q9 c. g/ x7 c% z3 W g_UserMng.AddHonorTitleChange( this, m_nHonor);1 L8 [3 ^/ R2 K' p
#endif // __HONORABLE_TITLE // ′Tà?0 Q$ g' M5 b7 b( t
}
/ N2 [1 A. {: h0 F#endif // __WORLDSERVER
) Z! L% f) c) Z}
& K3 G6 K8 }: @( X; [; i/ }4 a( c! S4 O9 I1 w) c4 C
然后你进入functextcmd.cpp并添加以下0 D0 V- M$ h3 X. X3 d3 M3 B
$ C# c y/ x/ J+ I* _. q
代码:0 }* T1 @% _; F) S: _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ q' L- A9 Y4 U+ Q1 T) d' W下面插入
( l; t# ?" n7 J$ Q% RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 S+ u4 R* R3 F' V
: J, V3 ?, {! y; O' I5 N( R
然后你去' [9 ~ D! k* ?# i, f0 N
" e5 n+ A) h! C* b) y3 Z代码:0 b# C# I3 k6 k3 n+ p+ r) i. N
代码
% i, h& @% e y$ IBOOL TextCmd_ClearPropose( CScanner & s )
. b0 \$ U7 Z# X{
9 V9 e% \; P: a6 ] K! z' ? r#ifdef __WORLDSERVER
" _9 I/ q1 t5 y CUser* pUser = (CUser*)s.dwValue;. O9 P( R; H# n% ~* a
g_dpDBClient.SendClearPropose();
) u A- s2 f- A" K5 ?! \+ W( g#endif // __WORLDSERVER$ b$ X) `4 Y$ E# P* F
return TRUE;+ G& Y) m) l A0 \
}3 Z8 L/ g X) G; u( ?. b
下面插入7 ~. ?% N1 Z, f$ k; [1 Q: p G) ~8 A& m5 g4 d
BOOL TextCmd_rebirth( CScanner& scanner )
M+ l2 I: @5 ?0 h+ w3 F{
$ T' l0 z3 U% c* i#ifdef __WORLDSERVER
: C0 a; Z3 j3 z3 i% z' VCUser *pUser;% R8 f- V8 x( a9 l. I
pUser = (CUser*)scanner.dwValue;
j& @5 {* V4 o* E; ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" H' \; o+ ^* b$ w: J1 f/ m/ h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. v; t: H# u! m, Pelse
* U F6 V( B i# @pUser->AddText("你还未达到重生条件!");# D7 I, \) c6 I7 p9 L( {
#endif1 @, I' B! k: z3 |6 f- E. l
return TRUE;
5 ]$ z0 Q5 c8 r- f/ y} * V; f3 K+ V5 Y6 }2 J; B
( y& J; b' g: U7 @+ z) _3 ]) t, z8 R, U+ U
% t/ X. g7 T r
" K* K. T$ X1 X0 |2 D |
|