|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( R& B: X- Q3 w* q, Y" G/ A* [
; S! {5 T% [; ^, ~: E3 Q2 U2 W$ {% K
Mover.h
7 ]/ p, c0 X$ Y) R' F& d6 k代码:$ T0 b2 f+ c4 w; q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ A# S8 p$ d+ |6 v% V5 {" q1 ]0 D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 ?5 ] D& T$ d6 q
N3 d+ C7 C" u- D
然后你去mover.cpp添加
1 \% O+ X3 N2 {) Z8 U7 j$ _0 j+ D$ k! p9 C5 V
代码:# c- Y9 Z/ z0 }. [8 F* |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 i$ n( h: o$ ]+ l8 d
{
6 J1 ]4 u* @9 E, q! L#ifdef __WORLDSERVER
. b# b# ~4 y# u8 c, v. p3 H& C7 y n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 X7 D5 i4 x) p8 F, m, e" Z6 G- @ MoverProp* pProp = GetProp();
) G1 B2 B- q1 O m+ t/ H5 I; { if( pProp )
+ N; d; F9 v8 a" r- _1 N {* k/ p& |* Z1 m; K6 N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 g' e3 L6 ?1 d9 q
{( g. C' v4 o9 Y
AddChangeJob( nJob );1 g! k. q: ?' a) W
}else{# r. R, }) c% k: m/ Y7 ?8 ?! T
return;
, O% m% p& F) Y" Y7 x }
# F6 P% @) X) O int nPoint = 0;, |7 ]0 z4 a8 P; J
if( m_nJob == JOB_MERCENARY )% P0 z% L9 g" u1 D; C s, x. F+ f6 k
nPoint += 40; r* R8 J6 H) Z6 T7 H4 `
else if( m_nJob == JOB_ACROBAT )
0 c+ H! i: V# Q$ O {2 b nPoint += 50;; V' \: f! Y+ W% T! m! r* c1 F( E
else if( m_nJob == JOB_ASSIST )
$ m7 Z, K( K7 J8 _1 U" [5 L$ d9 b! j nPoint += 60;! ]5 q; j1 a9 m/ ~& H6 |3 {
else if( m_nJob == JOB_MAGICIAN )
4 J: e$ m, b+ D1 d" g2 ]; k7 k nPoint += 90;
4 {4 f' H$ o$ S$ q. }) s else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 n3 X* z) j% Q4 Q8 o% e$ K( _ nPoint += 120;
7 Q& X6 c8 o6 U% l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ ~0 E5 k3 J# W& s5 c' S
nPoint += 150;9 R8 q2 K9 p( w) }
else if( m_nJob == JOB_RINGMASTER )
8 k a0 I! g9 B: G `9 N: Y+ J nPoint += 160;
b' l- w, Q! R8 E5 _/ A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 y9 m) I- i( d+ t: |
nPoint += 180;
+ c( C5 E8 U% |1 } else if( m_nJob == JOB_ELEMENTOR )% N% h/ O$ n. f4 x% _. ~: P
nPoint += 390;
1 G8 r! @+ }2 {0 _* {1 g. s0 C else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( o! Z D0 B/ K4 }5 c& Z q+ J
nPoint += 120;
3 p& u8 o0 }8 K- e: \% k3 }8 \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' N. Z9 E: v! q6 K1 s" j/ D9 T nPoint += 150;
. Q5 C% F" A" u, O: n else if( nJob == JOB_FLORIST_HERO )5 q* ~' O' U: M4 V$ n% ]/ F
nPoint += 160;
* l: _! [/ [) {% u9 i1 c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! ]2 O8 ?0 N9 i+ e1 S6 N. h nPoint += 180;5 p) n5 Z5 B8 r g% t8 F
else if( nJob == JOB_ELEMENTORLORD_HERO )8 A$ r$ A. }( N% A2 N Z
nPoint += 390;
- l7 M1 V, V" }" D. k/ q
6 `& W/ I; o0 O* ^4 [ AddSkillPoint( nPoint );$ p n6 u! A+ |$ B7 e! k
m_nLevel = nLevel; \% K' J2 e1 a& |1 P
" a1 D8 Y) n* Q2 K8 ?
SetJobLevel( nLevel, nJob );
0 T; ? `/ P/ I1 W* k% O m_nDeathLevel = nLevel;8 Y7 n' N5 `. U9 b+ s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# w8 s3 z% x3 B. I/ x& A8 F if(IsMaster())
! T- z* J4 Z1 R4 \: ]0 m$ E. L {
8 x/ Y u, }6 P; j# Y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: f0 \1 ]4 N) B3 \: P% y
if( nLevel > 59 && nLevel < 72 )
Y/ f) j3 R' Q# s; | dwTmpSkLevel = 1;& e W$ `! p2 y9 v0 D+ ^
else if( nLevel > 71 && nLevel < 84 )
# |$ m5 T2 c" `' h dwTmpSkLevel = 2;! V/ Z n: A0 F/ x# y4 T
else if( nLevel > 83 && nLevel < 96 )- I$ T+ R+ g9 e+ i
dwTmpSkLevel = 3;
, s: T- D; F9 C else if( nLevel > 95 && nLevel < 108 )
, G D, p8 o4 g# F, {0 Y" u8 ] dwTmpSkLevel = 4;
8 S1 ?6 r) H5 Y, x3 G else if( nLevel > 107 && nLevel < 120 )$ s+ S1 s) e6 Y! ]: z
dwTmpSkLevel = 5;
% M) s b% E, ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) & ], X" v3 X& |$ U( P
{ ! C+ |7 W b7 d/ u; E: k8 m
LPSKILL lpSkill = &(m_aJobSkill);
3 v7 W- L% x6 Q+ S. t$ ~& H0 b if( lpSkill && lpSkill->dwSkill != NULL_ID )9 Q: j# q2 Z" f$ _
{) g. i8 E! k' Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 N3 } d! K5 u6 D% Y. u if( pSkillProp == NULL )7 H+ N( b V | f2 j, {3 \
continue;
+ `8 g' D, `! u/ E4 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 L6 N! c" r- Q. p3 h continue;
7 [2 X* O# p6 Z S lpSkill->dwLevel = dwTmpSkLevel;
$ b# M8 T6 r' e6 ? }
u: F& k8 g6 S! M' l4 g" v2 V }
# W* [% q1 |, G" `# Q! c5 D& b) d1 L' O }1 m) O9 t4 x: u6 W
else if(IsHero())1 Z1 {1 B' ~% \$ f" p5 K2 X
{& ^% ?' n' B3 N/ t/ ?4 e4 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" m7 z3 e: ?+ t1 p/ `* Q {
5 r% w/ |9 z2 c LPSKILL lpSkill = &(m_aJobSkill);
8 K" k m4 m7 J2 q. y1 Q% ` if( lpSkill && lpSkill->dwSkill != NULL_ID )/ O7 o! D8 R$ g5 [
{: d! v- {0 }& O; E' ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& k2 |, |% Y! n. I if( pSkillProp == NULL )& s6 E3 f5 Q, g* P' {7 Y
continue;
- e0 A% T6 v; A3 t/ n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 d& |; k0 h' O$ \/ r' |' R
continue;6 M# E2 G. l! l2 I7 R
lpSkill->dwLevel = 5;
9 B2 j1 n2 Z# q+ H; y( y# ` }" e8 G9 w }3 l' C
}1 Q% Q5 }0 z$ ]/ z" k
}
7 V% _/ ^ L5 L$ u7 U6 R2 L else if(IsLegendHero())
- v s* w1 o" f5 h {
9 y5 @; H) C {3 F6 d/ ~5 j for( int i = 0; i < MAX_SKILL_JOB; i++ ) % M f, F T! l2 |" h# U
{
) O& C4 R% c1 D& R+ R" n$ } LPSKILL lpSkill = &(m_aJobSkill);
6 t( N" w; v6 k& I if( lpSkill && lpSkill->dwSkill != NULL_ID )
# {$ `7 G+ ]' Z+ M$ ] {9 q {: E f2 [7 P. U/ m7 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 t0 U) K9 {' X- x L; F; q if( pSkillProp == NULL )$ r5 S$ u. q% \
continue;8 j @# r" l+ B& N* z- O1 i/ G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' D$ i5 s2 Y$ Q: I$ y o continue;$ k2 I8 O2 R3 i" Y2 t
lpSkill->dwLevel = 5;
5 s1 j* i7 f+ p4 E' Z, t }
; O0 o8 U; I9 p. y }$ {+ P) Q$ \# X. y3 O
}& y6 M$ _3 ~0 u' a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 C! {& I- l! `/ N3 r( ], D+ w0 ^
if( bGamma )
2 p2 \/ z3 Y+ }( u. l {
9 K! ?& E- ~: M& }1 p2 \* | m_nExp1 = 0;6 p3 |2 t* v" b/ l- P
}4 Z0 h7 \4 u) D, T
/ V2 [( D; i" R- w4 y3 ` ( (CUser*)this )->AddSetChangeJob( nJob );
+ s3 S, G4 l- T: H( P. {: C7 G" N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 m. \4 i* h' d3 [- ~
0 L$ [& W" j6 I/ R' @) X1 B! O) P0 N+ K6 V" h# V; ~$ i
#if __VER >= 11 // __SYS_PLAYER_DATA
3 R* U _ C$ u* T/ x- X7 c7 B4 U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 n( Z x* t5 m+ t
#else // __SYS_PLAYER_DATA& H2 d2 O0 n$ v) I2 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! T0 j$ F. J H! X% n+ F/ g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 {$ Y. \2 |8 b, ^7 | if( m_idGuild != 0 )- w. Y3 Z$ F. ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* `9 V1 Q) M2 N4 @#endif // __SYS_PLAYER_DATA
' Y, d3 U B; C7 D3 D) F SetHitPoint( GetMaxHitPoint() );
" T0 r: V4 F2 h8 ?1 ^ SetManaPoint( GetMaxManaPoint() );
/ S+ A) F( P: N/ N- m/ m SetFatiguePoint( GetMaxFatiguePoint() );9 H7 h6 [" Z" M! W8 F6 i
if( nJob >= 1 && nJob <= 4 )
8 e4 r6 T; x; Z: W* H0 R0 P {) y' |4 b5 B$ a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
Z- F4 @' r8 y# |) y' d. I m_nRemainGP = 28;
% z6 h3 z8 z6 i- s2 a6 L }
2 V9 P6 ~9 ]6 v6 f, f( s' p! I if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" ?9 n% A! [( d( H {
7 y* p4 v% d4 c m_nRemainGP = 118;. R9 u2 h( k4 o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 w0 S$ `! J; l" y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ h: k- x' O4 Z, E }. Q6 D- U4 n, `1 Z! a r E( e2 j
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ I) W! Z$ P1 v8 r {
& [; ], W% b/ ^7 D CItemElem itemelem;
# v0 R" ~" J6 J- V2 R# F( H itemelem.m_nItemNum = 1;+ g2 x+ W, C* g, D( f3 C3 m: E
itemelem.m_bCharged = TRUE;% o" T& w. I7 M5 i9 D$ v
BYTE nID;
& {; o, ]2 T4 i& k8 v* `; Z3 l4 S+ \
" f( O! B" N' _5 R3 _* t& K x, ~ if( nJob == JOB_MENTALIST_HERO )
1 |: a ]- p) v9 m6 P itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ A: d$ y1 _/ D2 T6 Z7 h8 X
if( nJob == JOB_FORCEMASTER_HERO )# W0 q" R' Z# M" d1 A0 c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 k$ ^; A! h5 F$ d: m H2 a
; I8 v% _$ e/ \& ]1 ], N
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 _4 l0 S1 J# R4 \& g3 Y
} X+ G9 i v; }! O9 B- R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 q, W! H0 a& `" J9 W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 Z- f) C8 D6 }) \' r/ _6 z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ @$ Y4 \ e, c! V/ ` /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! g, a: \7 R$ [* b ( (CUser*)this )->AddTaskBar();*/
, }; p H# v/ z- G6 Q0 z# H I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 s" _4 l W ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 S% o& y" c) R$ K: D# [3 p, g ((CUser*)this)->CheckHonorStat();+ D& s- k! `: o5 I* l
((CUser*)this)->AddHonorListAck();0 J9 A6 ~& ]1 o
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ I9 }1 ]2 _6 u#endif // __HONORABLE_TITLE // ′Tà?
6 F% V' b% H1 ?( }' _. |/ e, c }
5 P" i2 w! F, P#endif // __WORLDSERVER; G' \7 i: q* K2 ~
} - E4 D0 f9 P3 ]& _! X, Q/ v& Y& e; F
3 a1 l' s, q* T3 G8 D
然后你进入functextcmd.cpp并添加以下
+ }* f% g- [9 S1 ^$ X' S( z7 F4 O& @) J2 ^4 c- @- a
代码:' u1 w2 t* A) D# p) }- H6 l
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): {7 T2 D2 L! A2 s% B) H
下面插入
* z" D* E* A% j7 o* K5 d5 e9 bON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, A q0 r5 g: Q: V5 Z+ T* p' v
. l3 q* K0 M3 A) Z; T% a' C- {然后你去' [. W: w; o0 ]5 d+ t& B* g
& |, q2 g! R0 y8 s代码:
! O w9 ], D' v. T7 S代码' D$ M, s9 `; ]- i' ~8 j
BOOL TextCmd_ClearPropose( CScanner & s )6 y' i' O: }% }; K/ a
{
- A* d' o- H, Z- d$ i4 a#ifdef __WORLDSERVER
* K! D6 @2 C; c/ Q( z CUser* pUser = (CUser*)s.dwValue;& a' ~1 Q2 Q6 H# C: J
g_dpDBClient.SendClearPropose();
7 N! i) B( ~; [- `+ \) a' x#endif // __WORLDSERVER
8 M; l6 [# w' J' H6 C: ? return TRUE;
! W# E/ W5 d) J( o9 Z5 [7 P4 x/ J r' V}: E- A4 s- W8 C/ m. o
下面插入
' s" w! S* i+ R# n" b4 wBOOL TextCmd_rebirth( CScanner& scanner )
* y0 }! n. ?7 `( W{2 e( Q! _' S7 u
#ifdef __WORLDSERVER
( q; i$ [3 I, C, _CUser *pUser;
. ^+ a: P% L; T1 Q. A& C2 W) spUser = (CUser*)scanner.dwValue;" Z$ x3 h7 Y+ R9 s
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 a6 ]- P0 l2 d) X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- w& e1 H4 w1 @0 x7 L6 {( Delse
8 ]+ ?6 Q3 W1 d; b. T3 U [) C& GpUser->AddText("你还未达到重生条件!");4 e: u% q* ~0 I* v
#endif
( R1 S0 g% T) r" F8 C3 Qreturn TRUE;
7 v, @; P0 U y# |# w! Z7 o9 A} , D2 v. [" n$ V- k) W% M
' g6 P- A& T3 A2 {' y
) X6 P5 ?7 R( I3 U( Y7 B! w
& f; @7 C' X7 W W9 Z6 {% m
- J# \$ D/ s v |
|