|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' x; Z4 B* A3 P5 L$ j% h$ c
/ Z6 Z0 q! `% u1 P4 b' N' AMover.h
5 f" N* c5 E0 }+ R代码:
, d, \2 h, t; m4 ?. i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 [( g4 b q/ U' _8 l
5 R' j7 U. u3 u! {3 a( X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 g; R$ \+ H. h% h( B, T( R( C! d u
# p A* a. M) t1 R K
然后你去mover.cpp添加$ E7 @ t: D% T# \5 C5 \
( O* S, O1 @: A$ i5 h代码:
* D+ S8 `. u0 z# @. Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 c7 \* N$ P% Y3 p9 G( D8 n4 b' v3 D
{- k1 W% q7 g- T. d# B
#ifdef __WORLDSERVER
+ I( K8 U2 f$ Z$ X% Z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ X4 F8 u6 p2 E3 X7 U MoverProp* pProp = GetProp();
2 e( M, I$ t3 Q* e( L) _ if( pProp )
5 [9 Z) Q& `# R2 \ {$ r3 a; E B# B
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& a8 u; v' {) U$ I
{
' P% j* H% G) `/ | AddChangeJob( nJob );' D3 V& r0 y/ W) S0 h% h% m
}else{
- y7 d( O5 r: @ return;
1 l$ s2 C0 I6 W$ s }2 s- i! i5 A O
int nPoint = 0;
n( Q; J8 t/ [+ e: w if( m_nJob == JOB_MERCENARY )& L8 c: G' j9 m
nPoint += 40;
/ V! ^: p. Q& z else if( m_nJob == JOB_ACROBAT )1 D3 {" F) u% @7 h' f$ H
nPoint += 50;
1 b! T( i! ~% M- }3 S else if( m_nJob == JOB_ASSIST )
5 x4 x3 |- b0 \0 w nPoint += 60;
0 V- z. p: J1 s! {# ]2 @ else if( m_nJob == JOB_MAGICIAN )+ p0 p. [) t& ]# [" {; w
nPoint += 90;
( I H9 W. I. z; L else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! `; J4 F7 K, U6 D7 q nPoint += 120;" t$ s) J6 p5 N3 M- V
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 v2 r0 m# `3 _* P4 K; G nPoint += 150;+ C9 g" X( E( H+ S
else if( m_nJob == JOB_RINGMASTER )
9 C3 ^- @* i* z4 o3 w2 B nPoint += 160;$ V0 W/ a( L4 \) D. h+ l4 t3 Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 I3 l4 \9 `3 X: v nPoint += 180;$ S7 ^6 I) D8 k5 @* m) X
else if( m_nJob == JOB_ELEMENTOR )
& Q! A0 {" Q" }- Z7 {0 \! s- m nPoint += 390;! p+ |" z: T1 ^; g; h4 |( @+ ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 s$ U$ T/ m4 Y5 _
nPoint += 120;
2 W) W7 v8 G1 ~+ l7 G+ X9 H1 { else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' w. q* N* ?4 p* _) | ], l nPoint += 150;
/ r% {6 ^& G: x- N! M3 C V else if( nJob == JOB_FLORIST_HERO )1 z$ L2 A. u/ H B d
nPoint += 160;
" t% H3 Z% ]+ H- @, r" k# j* F else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 X, o" X' t4 E! C9 S+ b9 p
nPoint += 180;8 P2 b& Y' y# r& p, ~/ e9 m7 y
else if( nJob == JOB_ELEMENTORLORD_HERO )! n! |7 i( | P/ ]* s4 W
nPoint += 390;
' k4 F, I+ p9 T( y k4 k
, S: Z* v6 I/ ?2 j# a; Q1 z4 {" } AddSkillPoint( nPoint );$ R, \( u1 T% m4 U
m_nLevel = nLevel; }' C0 ^1 [5 S. }$ @; R
* k! H9 _2 k" [: u/ a) y! y n; a SetJobLevel( nLevel, nJob );3 i3 m9 `+ p# A2 H: w. p; D
m_nDeathLevel = nLevel;8 n1 j. j( o/ z# z4 E
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* t' \6 Y1 t+ V) O' v
if(IsMaster())( w, s x' j% I
{# O3 j. Q- x {4 h# ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 Z, }( S4 V- t8 \. G0 a3 ]* x
if( nLevel > 59 && nLevel < 72 )
1 p: q4 l% @% }* F dwTmpSkLevel = 1;
0 ?5 |: U3 P1 y! E7 N3 S8 p else if( nLevel > 71 && nLevel < 84 )% l$ w; E( l% }: ]
dwTmpSkLevel = 2;
6 q; V L& Z y$ Z. G4 x2 ?! a else if( nLevel > 83 && nLevel < 96 )9 h$ {0 G9 x* b8 O
dwTmpSkLevel = 3;
% ?: g9 H! Z1 N+ _: o else if( nLevel > 95 && nLevel < 108 )
- d; \5 s4 ?% f# ~; t dwTmpSkLevel = 4;4 Z% S6 K' D! M8 K7 d/ H* v& H
else if( nLevel > 107 && nLevel < 120 )
+ d( y" |7 r! C7 d5 @( O1 d dwTmpSkLevel = 5;/ @1 Q" F3 E( d* ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 R6 E! P$ E% L& S& Y' N% y& n& n' y
{
1 d/ v8 ]( e* Q1 }, _ LPSKILL lpSkill = &(m_aJobSkill);
8 @$ |) J) T7 Y' f u if( lpSkill && lpSkill->dwSkill != NULL_ID )
. @/ u# Z' I4 t9 N {1 t3 E9 i9 B: G/ p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); B7 T f, z& [% a2 w( W
if( pSkillProp == NULL )
* F0 ^; D0 C$ q A/ p ? continue;9 m- T5 L- l0 V7 [/ Q4 ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. h* P. W6 e7 P9 \& m$ D continue;5 s" Q( C( o, X2 d
lpSkill->dwLevel = dwTmpSkLevel;# N$ q: t0 p, n1 p2 f
}
# i' F$ s4 `$ ?! V }
- c1 c. `$ h& n/ K8 c }3 ?2 J' `; x5 q" w" [; m
else if(IsHero())% d2 G1 j" r' X; W: k
{
& V* ~% ~8 K' O3 l for( int i = 0; i < MAX_SKILL_JOB; i++ ) + E! ~ M/ d6 r! v: Q ^
{
& Z* E1 t1 n5 y1 T# j1 ?9 u LPSKILL lpSkill = &(m_aJobSkill);8 o: n# e3 |% [: y& j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: v% ]8 y) b0 E& x9 O) [2 ? {* h7 h6 j6 h! w5 P! B0 I: ~+ T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" U6 q+ w3 `# y! h' f2 }) Z$ @ if( pSkillProp == NULL )2 W' ]% z' P* ?3 K3 m3 q
continue;9 X3 U$ P; ~7 \5 N3 N, v( C- @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( \' P R7 i; M0 H continue;
9 m, ?5 w* e2 d- o3 h+ U% @ lpSkill->dwLevel = 5;) S' @7 T4 e3 {: e' ^' C
}
, O5 \9 v4 Q% T5 g8 T+ H }
/ d, R; E- |' U' D: a& n }
2 u: A9 Y. _+ i6 G% v/ A' I else if(IsLegendHero())
$ @% _2 m. ~3 w5 q8 [- U {, R; ^# d1 `. k7 u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- _5 W; f8 y1 v7 y5 K0 T. C {
# q* g, l9 V6 M& e% Z7 s LPSKILL lpSkill = &(m_aJobSkill);: ~0 c4 I3 W# }6 J) d ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 Z' Y3 f1 O, l6 X6 | {
! Z1 S$ Y' s, O! j& B% L- C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 d1 P# G) @8 v. q5 y# z8 e6 n0 |. z
if( pSkillProp == NULL )
& h) b% K) D+ \6 @6 o continue;
. R* v+ V; [$ s% `0 o+ \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) ~$ K) t) s1 d. k# G+ w2 H8 s
continue;
4 P2 T( k/ K8 X# b& v lpSkill->dwLevel = 5;/ X" A! _% N% I" F4 P
}
! n H$ r" a0 Z. d) F0 R, V }3 m8 G# g7 R3 v5 j- Y+ ~' U
}) b. f0 F5 G* Z1 @% ]0 D
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ Y) K% W+ l# x6 K8 \* X* O. @ if( bGamma )
( ?7 x7 y# k" I {
6 O f; C4 O! q5 A& D% d" |0 B4 D m_nExp1 = 0;
4 ?/ ]8 ^" |' M5 r3 @ }
# o8 Z" n4 {# Q) ^
& ?3 W( [' _ Z1 I% Z ( (CUser*)this )->AddSetChangeJob( nJob );
! V4 H+ h# X' W* u# o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 ]2 t, i: A5 G9 N1 M
* E3 Z0 S) @6 Y [3 a) i8 u5 y8 X( I2 ]
#if __VER >= 11 // __SYS_PLAYER_DATA
9 r/ C7 `) V5 G& }( s$ S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 |1 n- | E: s' |0 p* E5 H2 x% t
#else // __SYS_PLAYER_DATA. e5 U# B! x5 Q$ O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 _/ f0 ?" r4 y2 F( Y8 M. S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; }+ H4 R8 \ |6 e# e2 h( ^ if( m_idGuild != 0 )
% }8 m, ]" s) D- E. S( ]. L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# g( H% @* t% v- I" D, R) ~
#endif // __SYS_PLAYER_DATA
0 q7 `% p! Y* m6 d9 f8 f SetHitPoint( GetMaxHitPoint() );
/ l2 d* y b1 \" o0 c$ O W/ Y: y6 y SetManaPoint( GetMaxManaPoint() );
% N4 P' q0 k7 L SetFatiguePoint( GetMaxFatiguePoint() );
$ l" n) c1 ]7 Y9 V6 V; K5 _7 t if( nJob >= 1 && nJob <= 4 )
( _! Z* L# C5 B/ ~ {; b! C* s6 Z8 Z- O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 V" a, Z/ s+ a6 E3 x/ w W m_nRemainGP = 28;
B+ R4 ]. b1 \0 ^# y. f9 K+ T }
5 w" W2 t ?# k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! _3 _5 {8 R B8 Q; m; E* k0 l {
6 o4 D( t Y) h Z0 S# q9 T m_nRemainGP = 118;
* P% {: w5 O# W. k* v' O* M! H, [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
k9 @% _5 n2 v5 l% D" i m_nStr = m_nSta = m_nDex = m_nInt = 15;. k" n9 Y3 C I, Q5 X
}
! o+ B6 e! {. F6 a, X2 E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 C+ b* _9 }& p4 v; x$ H7 h/ D {2 x; T* q6 T- `6 v b
CItemElem itemelem;* g5 Z3 c& q, ~! f7 {2 r
itemelem.m_nItemNum = 1;
6 f$ h4 E2 T/ @+ [( {" k5 ~$ y- L itemelem.m_bCharged = TRUE;
( I9 W* ^/ j6 v9 z- d BYTE nID;
7 W9 |7 W f+ D `" |
" @/ c* }6 B" O! d! O* D if( nJob == JOB_MENTALIST_HERO )
" Y+ o6 ?3 N& ^# _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! x1 o" }4 O" J% S$ [+ |, O( Y5 c if( nJob == JOB_FORCEMASTER_HERO )4 W" i) b! c+ B* q! P) y3 ~
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 }4 B% o) Q7 z+ P
& l- R+ l3 ]9 O5 ]8 V ( ( CUser*)this)->CreateItem( &itemelem, &nID );( K( r. y! [. l) U; q5 Z0 N
}0 D$ U/ I0 x P, V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 D7 I% t5 T" M E! Y, ]; { ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 D6 ]% Y _6 L' N; J+ F& p+ F: V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( t5 U. F% M- Z$ w% u, |9 o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" r" n3 r/ y' k9 V ( (CUser*)this )->AddTaskBar();*/
@7 ~7 v+ M# O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ l4 q' `, \' R6 G. P2 I" U! U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& m; F, S2 \5 M; X' f
((CUser*)this)->CheckHonorStat();( c; h3 O! y0 K! e- u" Y% }
((CUser*)this)->AddHonorListAck();; V- H& ^; C; q% b+ M7 d( k- o; K) G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 i2 `. R' a! q; ^#endif // __HONORABLE_TITLE // ′Tà?6 J: t. R m' x# q1 a$ o
}- I! A' E! d4 F, o& I
#endif // __WORLDSERVER3 T: O1 k0 O6 T: t+ h7 M
} 6 b+ y4 E4 N4 G* @% L
' f' b- m! a4 f- O1 n; B, g
然后你进入functextcmd.cpp并添加以下
N, j5 [, E# Z4 t/ R7 j, z0 G4 F4 `2 C& U7 u7 u8 v( {+ ~- o
代码:
0 O7 g; A: @$ ?# BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); p& h6 Y* s2 _6 v; x# P. t
下面插入5 k8 \9 B( c" ]. z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 e0 W8 @3 J9 Y# }* z* x
+ J1 E% |4 n! X
然后你去- t9 Q: P9 [& Z* \4 D' P
' j! a" H) A0 G! u6 k
代码:/ K$ g# X9 E* c( b% m4 Z
代码
2 n6 j) n' R$ ~3 vBOOL TextCmd_ClearPropose( CScanner & s )- z( {2 l) D, a/ W$ |2 ^* F
{
. X8 m0 Z" p$ E$ k# L# r6 w#ifdef __WORLDSERVER
4 X* H# K! V5 H- I) o J( _3 f CUser* pUser = (CUser*)s.dwValue;
; O" s! _8 ?& K g_dpDBClient.SendClearPropose();" B6 u, ]; K7 y/ h
#endif // __WORLDSERVER2 u' P' U! X/ ?- d; y% Q; a
return TRUE;& { g3 ~- C9 `) _
}; N4 f' ~" S6 x% x
下面插入* z4 D* _4 F/ D6 h
BOOL TextCmd_rebirth( CScanner& scanner )& n' Y$ `7 }. p+ a7 X- k
{
+ @4 D) A$ k) C#ifdef __WORLDSERVER: M+ p& u9 Q9 a m
CUser *pUser;# a/ l& @ r: Y( ?; [( C
pUser = (CUser*)scanner.dwValue;
+ n/ K: k% g# c: E4 uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): E4 N/ i* a0 q+ N" n7 A6 h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 z+ |4 m; C( G0 ?$ l, t* Welse, u+ z1 j* _+ \8 r) ?" i. w
pUser->AddText("你还未达到重生条件!");
' T! q3 w% {* H#endif
& ]1 ?4 q, x4 W# `3 Q7 n0 A2 |: u" lreturn TRUE;
3 l. Z& D1 F/ ^3 J- {- p" u; U}
2 y% E$ |$ ^8 j2 O
0 J3 j, ^* H7 p( D% J' D/ z: \) w. A
( l# W4 D* I6 q, ?+ E3 V) H I, L, s+ ?$ _( A6 G. |* Z5 W" l
|
|