|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& i& F& \) j/ A7 ^; H( k; U% W/ F/ H5 k
' j. H' r j6 ?+ A, }8 {/ M, EMover.h
! ]" l. p9 U) z9 {4 ?; |代码:0 X: H# X. B/ O* _3 l1 h) f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# Z* o# Y6 j h% b1 b! p+ h. |% v- w: v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 i( _3 V0 }" `0 [$ C5 V: W) j
; x9 }: x" c. T2 f) k' @然后你去mover.cpp添加/ w' r# w3 C' v; y, l: P$ t* K
8 o- R( q7 V* \# t: O( A
代码:: d. b( R# i8 E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% g$ }1 d/ X6 p7 Z
{
7 {% Q" z* @& k+ u! q; ]) {! U( U: f#ifdef __WORLDSERVER4 K) s, }8 h4 Q( y* R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 ^! z( P) Z( j' \( e4 K& O
MoverProp* pProp = GetProp();
* V# `8 P8 X$ k% j. U$ _$ r- B if( pProp )
3 G4 ?: s( q. \# O0 `4 O {& P) z# p4 A* x; \# i! `9 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& x. ^* a3 P- s+ b; y {6 X" k% X$ X [# @
AddChangeJob( nJob );
( A- k! w: [' I }else{( K9 j; W( b5 U0 |
return;
3 F7 |+ ]3 b2 b1 B7 }% R }
( R% F7 P q9 c. Z% E4 b int nPoint = 0;' h& B6 l. n3 T
if( m_nJob == JOB_MERCENARY )5 w: M" T0 a' R# T# T
nPoint += 40;8 g9 @- r5 G% e; s/ {, e( F. S
else if( m_nJob == JOB_ACROBAT )) n: h* M% M: O! a) x" e
nPoint += 50;) S- _$ U2 H/ @; x; R1 m: H
else if( m_nJob == JOB_ASSIST )
: x8 p, d ~* L2 f4 j0 b nPoint += 60;% V4 X$ `8 o3 B H/ H: S2 c
else if( m_nJob == JOB_MAGICIAN )
& N/ g% Z) l$ X' o2 d- ~+ ]) J- J# C nPoint += 90;0 C; O- z4 \; @1 s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 A" J% {) A9 c
nPoint += 120;# g7 T5 |) i6 f5 B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% s' g# e2 }* L1 `% n8 W! l
nPoint += 150;+ O. ?$ ? x: r9 H
else if( m_nJob == JOB_RINGMASTER )/ p# L& v8 S4 F/ N$ f& c2 s7 d
nPoint += 160;; S- T) X; c: E3 c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, S( d$ k3 ~( a- W1 b% ] B nPoint += 180;
% H! F2 F: C [& O else if( m_nJob == JOB_ELEMENTOR )8 @1 D! m8 ~8 ~9 f. `. G
nPoint += 390;
& p0 K3 \ U8 ]2 M; e- H7 ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); A0 O& t ?7 |+ g4 L1 d7 o
nPoint += 120;# E9 V, y/ q& N. [) G- n
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) @ W( F1 V9 S$ g- d
nPoint += 150; Q$ r- p9 Z# v
else if( nJob == JOB_FLORIST_HERO )
* ?- X2 |2 ~5 ? nPoint += 160;
# {3 ?- u `2 @+ X: A4 C7 z) U3 C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ J% {$ q1 @# f8 ^7 \. L nPoint += 180;& b Z/ Y. ^6 ` q; V
else if( nJob == JOB_ELEMENTORLORD_HERO )
! u' R9 g% D) Z) \3 w3 C1 @ j2 a) s* z nPoint += 390;
4 @8 p- w, q! y; M' N1 I/ a7 `
- V: c$ J- ? d$ e AddSkillPoint( nPoint );
/ H" p, ^- g E m_nLevel = nLevel;3 N) L* [# N7 X- j
( s; m L, o; z% y SetJobLevel( nLevel, nJob );
: r: l- u5 C/ J, y m_nDeathLevel = nLevel;
2 l, K: q# r. L) G. C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 F( m2 a1 Q' _/ P: S | if(IsMaster())* _* K o2 X' {2 K4 x3 W
{
9 ^) t- C/ {0 S$ y3 b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' R! T$ w# X& d8 s+ i) o+ J" H
if( nLevel > 59 && nLevel < 72 )
2 Q7 f. @0 G L! a4 ~$ b# P dwTmpSkLevel = 1;
9 M" e; U0 m7 Q; `4 B else if( nLevel > 71 && nLevel < 84 )6 w, u/ b" H- C% H3 j3 C' T2 P2 I
dwTmpSkLevel = 2;
' D! D B0 o) F! r+ O4 _9 b else if( nLevel > 83 && nLevel < 96 )) S$ @* H- {+ R7 M/ h
dwTmpSkLevel = 3;
8 O6 o3 n* x5 D/ @2 W, X' @ y else if( nLevel > 95 && nLevel < 108 )" s' T9 f% ~2 h: A3 w
dwTmpSkLevel = 4;) z0 c, J/ r7 w0 _, w
else if( nLevel > 107 && nLevel < 120 )+ l2 S4 w! N2 k1 `
dwTmpSkLevel = 5;
! O# O0 b; z4 o. f8 g for( int i = 0; i < MAX_SKILL_JOB; i++ )
" X: m6 t; T2 g' G0 J6 M { - J* o! F/ H4 T" t5 m, R) W
LPSKILL lpSkill = &(m_aJobSkill);
9 W/ K) p" Z" p! I/ K( ^% B if( lpSkill && lpSkill->dwSkill != NULL_ID )! r) D# q( M4 o! N* r+ o$ S
{
6 F9 @( v2 S' L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ B/ h6 i3 v5 `5 |0 Q if( pSkillProp == NULL )
8 o1 w3 K8 C( p# |+ A continue;) h3 I. J8 J$ A+ c0 ]# I: B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! R V9 h, u% Z' e8 M0 X continue;, J! _! i0 y* w
lpSkill->dwLevel = dwTmpSkLevel;. j% h' v z3 H6 V
}
/ ]8 ]0 U' U1 `! f7 l1 V! c1 g }
0 C; s R0 s5 d }
4 M0 c' ]) c& c else if(IsHero())
Z5 \- R7 q/ P8 P7 ^2 _: e1 |! t7 r {
8 z @2 l2 R( ~6 G/ ], b( [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 b: w6 i5 D. r, _- K& ~4 O* X
{ q% n/ d7 A! S( W- ?
LPSKILL lpSkill = &(m_aJobSkill);/ X7 S! {( `8 r; W Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 z! _/ Z5 \+ Q) T( o O$ A7 ~6 C {. V( K/ V; q5 J4 h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 w. j0 D1 V3 G* G4 T
if( pSkillProp == NULL )! e; ^0 b; G$ L% v
continue;" h) C& E# @! y3 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 c q: X' w# f6 u continue;
" A8 J2 P2 b b: g: [1 ^% m! a lpSkill->dwLevel = 5;
- B3 E+ e: g: B, i$ T }2 h* H0 N2 y) {/ b( T
}6 {% V8 j7 f0 M. L
}1 F" `& {& T/ X( m) \2 s0 H. q: o
else if(IsLegendHero())! N- O5 e6 B5 n0 z! r+ _4 y6 J. E
{: r0 V% ]! d; A6 }+ o n% ?) I6 y6 ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; I) a' I! M7 ^+ Q, ^ ~- G. i
{ 0 X# i8 g, P9 i$ t' Y( O' i' l$ L
LPSKILL lpSkill = &(m_aJobSkill);
7 S) N/ H9 h) }9 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
- k! N! l1 v. y% Z5 ~" o" `4 h {
+ I5 u& ] R5 A6 \ q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# e* a: K7 K6 A$ F0 O2 p/ f: @ if( pSkillProp == NULL )
' g$ L. l5 Q0 ~& A0 e8 o: u continue;1 T2 l; q9 l( _2 W. m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 O: ?& T2 m0 T# w continue;
; u: p7 `' D, u6 V1 h% g+ f$ r lpSkill->dwLevel = 5;
* r* ~+ b; ?: G A" T, w }9 t( c& u4 e! d8 `+ L+ k! T
}& {, _# R( z4 ~( z
}- E, y: y' P. v2 D" T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 `4 G9 s3 D2 j& t0 }4 i* ?: J, a2 a7 R if( bGamma )$ K) J$ `2 `7 g8 T$ s
{
8 @( E6 ?2 W1 t. Q2 D m_nExp1 = 0;# E' @; V& `6 y, M7 c+ D) z
}
- c; a: t$ L) H" a# S) k3 R( z
% K# G, s* \# J# I ( (CUser*)this )->AddSetChangeJob( nJob );
9 j8 }' ]/ w' ?, W8 L, A g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 a, j5 r( y9 V. F5 V# p$ ?* r* b9 w) d7 j# M/ G! i
/ I4 y2 i9 e' c/ _* @
#if __VER >= 11 // __SYS_PLAYER_DATA
4 u3 P3 X; `( @ U& v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 |8 k4 y0 z- P4 ^8 q
#else // __SYS_PLAYER_DATA
2 I( D' [( l: r2 q, o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 [) F* {3 G( `3 ~( Q0 h/ P8 b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 u: L+ {+ ?9 q" Z; w# k' i
if( m_idGuild != 0 )
5 H, p: M2 u: l& |4 m* r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ k+ A* ]' [8 Z3 b' `#endif // __SYS_PLAYER_DATA4 Y* Q7 H5 I5 Z6 h" r+ T9 s# c3 O; H
SetHitPoint( GetMaxHitPoint() );
, D+ @7 d, T0 F3 {* G) d- i SetManaPoint( GetMaxManaPoint() );
; V' X/ U; I5 [) ?- t+ ]/ c" E SetFatiguePoint( GetMaxFatiguePoint() );
: D. a- i" ?& \* S if( nJob >= 1 && nJob <= 4 )
# _% g. V5 U' S0 T6 Z {: [* c( {& `* O% K! B
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 F& O# G8 ~4 N- g+ `, f$ w
m_nRemainGP = 28;
% ?: U* i. ~" B' m1 ?. J }
' v6 k; H: T$ {+ o' e( d+ H3 U) O. N+ S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- h; i" d7 [3 T
{5 a% U4 f# z& o9 _
m_nRemainGP = 118;8 h/ E& H; E' |3 |; Q0 |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) L+ n3 E* c5 o: v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 T2 ^+ Q' ]8 p* U }8 L4 Z" H! z" i+ ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). M2 `/ ]! e3 `' I1 m [, o
{
* V3 [! r8 X6 _* f6 p8 O CItemElem itemelem;5 `" ^7 F# K. A i
itemelem.m_nItemNum = 1;
5 p1 w+ P0 A4 F( D& U7 @ itemelem.m_bCharged = TRUE;; h. X( D' N& T+ {9 H2 z2 s
BYTE nID;
( |: b, K# \* G: v- D7 j* A) P5 T: F
if( nJob == JOB_MENTALIST_HERO )5 ?/ S4 p; [% _. b8 T& s# I6 B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 B2 n+ w7 d" `' D" v0 M y t" x if( nJob == JOB_FORCEMASTER_HERO ). e S# f4 Q- X6 `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ ]: w8 T( C4 w8 q) M
* c5 Q1 P- k! C d4 ?' F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, n. ?$ M' J' h L9 ~' f }
2 M$ B, X% g. H3 {; c1 [# S4 }* R8 F4 ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: R% D) F1 f. H1 u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# E5 E2 c! T$ u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! O' J, ~" T) k1 X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 T, p7 K: v6 ~' X
( (CUser*)this )->AddTaskBar();*/% D5 @2 T7 r$ l) d9 u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. M# q3 |' q3 l1 S. v/ F6 \#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& u2 N, z. M) S1 @6 y) u3 n' Z ((CUser*)this)->CheckHonorStat();, F; s$ A8 ]* a7 t3 J
((CUser*)this)->AddHonorListAck();
* ?5 g" S$ e5 e4 V0 p g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 n% J( x$ M5 x W4 ]* U#endif // __HONORABLE_TITLE // ′Tà? X7 A8 s! c. g6 ^- U z
}
& n; j, ^8 u) X; i- V#endif // __WORLDSERVER
( Z/ N( ?) T: C+ X1 ~} ! G! y- R! B0 ]8 g. P' q6 w, b G
9 l; f+ `, G5 G8 [" m9 y
然后你进入functextcmd.cpp并添加以下! a( {% Y# A7 X. D9 Q9 {
7 l- A# k# s( |# D4 _2 ]
代码:
' k+ J) s6 Q) y% i+ i/ @% vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 u0 m; c/ R3 q' C" p5 ?
下面插入# r& p+ s5 \/ A- W) U6 A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
x0 ^( g) |' x, `
( n0 j' n' J! K- b d" O然后你去" ^1 z: `( ]9 c- _ k# |; X
( t; y- N3 V+ j; D' c# `
代码:
- ]3 S3 U# }6 H6 [2 {4 {$ i代码
7 C7 b7 Y/ C# c9 fBOOL TextCmd_ClearPropose( CScanner & s )* y- t: d; A! ?9 s- u
{
* o1 ^0 O- I2 x- a#ifdef __WORLDSERVER- J( g' {# y/ u1 O. o6 n
CUser* pUser = (CUser*)s.dwValue;, R+ j+ o) k! R' J8 K3 S
g_dpDBClient.SendClearPropose();
, [5 m+ {7 J! M4 G% x8 U" H#endif // __WORLDSERVER+ ?& W. R/ K' G8 S" A6 x& G4 ?
return TRUE;
* I% j( _1 G# D3 N5 W/ E3 x}
& q; r. C, U c% M& ?; A下面插入
w% |* n! p: s& [) OBOOL TextCmd_rebirth( CScanner& scanner )3 s" b, a. [% o5 O
{
6 R7 a& j: j. [7 u" H c#ifdef __WORLDSERVER
' V \9 R; U% rCUser *pUser;4 j# q9 q* A, t4 y8 }
pUser = (CUser*)scanner.dwValue;
( I. z6 S z% g4 o, [: e, |if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
}% b$ \" D4 i/ B. \5 mpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, |3 @) B) L2 U* U% J0 O$ y8 s
else
; Z( @0 V. @ K0 U- I- s3 G2 Y6 VpUser->AddText("你还未达到重生条件!");
6 o; R( k1 c* R#endif
" r" z" T- O. ^/ B3 O6 b$ t! Nreturn TRUE;
. u6 n4 f5 |- q# g5 x! Y, f$ f; E} % y7 h( ]9 V- |! G) d
0 ~2 x0 e/ J, W% r1 b% k& T) g
" C/ m" S, i, V
9 l$ N& g( x/ w! j8 W: D+ R0 F
2 R% J2 R- y5 M- j$ g0 A9 N |
|