|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! |% U! ]5 \9 S( ]) Q" A1 n
! ^1 C; K. s/ `Mover.h; F# g+ W6 y1 q. E+ V
代码:0 c1 T) }+ B. A* I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, J+ h0 \' t1 G1 T- e! \5 U0 S% u! |& ^+ F6 m; Q% W: ]& p$ O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 y+ O: P$ Q/ @4 T5 \
! j: y0 ~! G; {0 w+ i7 Y2 t g然后你去mover.cpp添加* ~2 g! t* D( o8 Z
; h! `; g, U' P& E代码:1 X. H; B6 K& S6 X9 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) v' ^5 ]4 S. h0 o& }9 h
{4 {2 n) T5 S5 L
#ifdef __WORLDSERVER
& l# Y8 t6 p# M. @' [8 [2 r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: @; y+ q" b5 e! H& | h MoverProp* pProp = GetProp();1 g8 o9 r! l/ |$ _& v: t
if( pProp )
% ~1 }: d: p2 @# j( O {% X; b: T7 F z2 e5 Y6 e/ A: t
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) i- R1 p# K& x V- a1 K
{
# p3 |* r$ b. k' { o9 U AddChangeJob( nJob );
8 Z/ U3 Z s( x! t) I, G0 b1 Y }else{% `; N7 b5 X( V8 p) O5 k! @* _5 T1 l% J
return;
0 t" H2 L, @! a0 d3 G }
; z# W: H+ R. _. [ int nPoint = 0;; q- ? U! r) F* M
if( m_nJob == JOB_MERCENARY )3 B8 M. k* |* x) h+ k8 B
nPoint += 40;
4 I* y! U; ^8 W else if( m_nJob == JOB_ACROBAT ). E _; N2 L# C; z5 u! _' \$ L
nPoint += 50;1 h% M2 S. A# q1 M
else if( m_nJob == JOB_ASSIST )
^7 M# ~! }9 b( S& q# |5 A nPoint += 60;
i4 ?; Z/ Q7 O; _+ f) O k' { else if( m_nJob == JOB_MAGICIAN )( k, `/ F! ~6 v" }& b- }
nPoint += 90;
( ^0 J/ P1 G6 b8 \; ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ @1 o% ?% v# y# g nPoint += 120;% M! k) D* A% B) U2 g" L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 u5 q1 T) i1 o l4 y2 c
nPoint += 150;
. P" N4 g* y/ v1 u. `3 c else if( m_nJob == JOB_RINGMASTER )
% N3 ^# |/ z. W" v% p& h) M$ H nPoint += 160;1 E( |. l6 @# ~3 w+ G7 ]+ A3 `
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ q& f8 ]7 V% p6 I nPoint += 180;
7 O+ I3 D# w1 a1 V+ r else if( m_nJob == JOB_ELEMENTOR )
3 r8 D4 h* V4 q; \+ i9 m1 }8 _ nPoint += 390;
2 ^+ r1 _: M n) U! M/ h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ G# R. u5 h8 }. ^
nPoint += 120;
7 D, C0 e+ b" g1 k7 x6 S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( O, W- q4 k; A nPoint += 150;
' T$ X) w& i6 `$ n# {: F, u, d9 K else if( nJob == JOB_FLORIST_HERO )
! U, Z2 N" ?/ e$ ~- r/ \ nPoint += 160;7 ~8 S+ v l! j. \& n+ ~0 D3 Y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; i& |5 h6 e3 F nPoint += 180;
! I: p: e5 L8 T& ^% _. v0 |$ N$ w8 w else if( nJob == JOB_ELEMENTORLORD_HERO )+ ~: @% g" l' U6 `/ o+ V
nPoint += 390;6 E! A R/ R3 B
- Z% W& ]7 }: Z$ \6 t
AddSkillPoint( nPoint );6 F2 O7 ]+ Y& D) h% h
m_nLevel = nLevel;
1 b) R) t" K" P8 H5 n
* t) `; ^7 f7 b/ V$ G0 I* q SetJobLevel( nLevel, nJob );
* D, h) Q% H, B" J& S9 e m_nDeathLevel = nLevel;9 K; b5 k3 |- {! f5 o- ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 l9 G* ?7 G% Z$ y
if(IsMaster())$ b# s! Q. N* B/ |2 `
{
/ Z- R! |; S- s- O# h; Y7 [; H int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! V$ q) N, R( q2 S) c. x if( nLevel > 59 && nLevel < 72 )
9 n: l" m* h! }- }8 N% A dwTmpSkLevel = 1;
& u9 q) q& C$ G! @$ r0 ` else if( nLevel > 71 && nLevel < 84 )
( k1 G4 l* R5 G- H2 |; u dwTmpSkLevel = 2;
: b# R% l3 r% Q+ G3 M: R7 r7 |+ I else if( nLevel > 83 && nLevel < 96 )! m- ^8 P5 j2 U e7 i
dwTmpSkLevel = 3;
8 ~! i# |! Y: c$ g$ i+ i else if( nLevel > 95 && nLevel < 108 )- _7 E3 y$ @: ^0 u3 Y* W1 q. [
dwTmpSkLevel = 4;6 l2 y) Z+ K# v& E! I) \
else if( nLevel > 107 && nLevel < 120 )7 j( D K6 R8 W+ G( }7 \
dwTmpSkLevel = 5;+ u; [, S, F6 [7 d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 X) k! \4 a/ w2 a0 E7 h5 \4 K
{ , Y; c F* W Q$ g7 g+ a
LPSKILL lpSkill = &(m_aJobSkill);
% r6 d) {( C0 O% j, ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 k. s$ D' i5 i' ~4 f0 ~ {
' K: p7 G2 m, M d3 n- b) R: p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 [' c+ w! @8 J- ~" N/ h
if( pSkillProp == NULL )/ W/ k) `) a, Z! E
continue;0 N8 `& w9 l1 H' V- r2 n3 }- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ q, @8 K3 t, {1 D0 a, Q9 \
continue;6 j: `3 z6 v% B. e6 m) p) Q
lpSkill->dwLevel = dwTmpSkLevel;# a4 o; o7 s1 H3 L1 r; b
}8 G1 j0 H4 q( \" k+ M
}
( d+ g7 g$ V' B- {# y2 W+ R }
1 }4 ]- j6 w' M8 w' O& ? else if(IsHero())0 Z8 U @2 o& H5 p
{
. t* o- J4 Y; d, ?, W5 J for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! t" @" E5 V' |
{
6 Y: k0 D( y4 ]0 ] LPSKILL lpSkill = &(m_aJobSkill);
- z7 W0 f C( K/ @ if( lpSkill && lpSkill->dwSkill != NULL_ID )2 O3 i- @% Q# V1 w
{
2 b7 [ ~9 j, |0 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % E$ u# p7 }# o9 o* t: D
if( pSkillProp == NULL )
, x6 y" Q& X1 g/ H8 T { continue;8 G- v, A' C7 Q& S7 l9 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# y' G& }- R* G4 N/ W5 n$ p continue; q' c5 j7 D- ^/ N
lpSkill->dwLevel = 5;( [2 B" r9 `2 w7 I: L9 A6 s3 V
}
( j, L, F9 d# k) }. f% c8 c+ N; h: i3 R }
; Y5 _' {$ j, G9 z8 w }" r7 }# B* C& E0 D+ U' {. z
else if(IsLegendHero())0 B5 r" E3 M+ a; }
{
4 J. \9 B. G$ `! O* c* y$ E for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ v2 Y* F+ H$ X9 r; ?# T9 ?% A {
" D& Z+ J8 O9 O# w" k LPSKILL lpSkill = &(m_aJobSkill);7 \/ a G0 a F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 t* e3 ]: ^' b4 x {
; v2 m$ _0 D! P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : s0 i a% U1 `6 S# w
if( pSkillProp == NULL )+ K/ M) ~% s) g* B3 n
continue;
% ] B4 x' D* L Y, ?2 ^( B8 p if( pSkillProp->dwItemKind1 != JTYPE_MASTER): h1 k+ Y4 A8 ^/ U' ?- s
continue;
, r: f* A; _" X( X% o4 X' D lpSkill->dwLevel = 5;
- V+ l% \# F# R- C* n, N }
( R. Y) C* K8 E' q g }9 d0 ?. \: @0 f
}
8 i X8 m$ k( C+ g4 G- ~#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! y* i6 O2 \2 Q3 r
if( bGamma )7 T/ k, F2 A2 P& _* B
{: r9 o( S: v; O" S$ x( W
m_nExp1 = 0;
+ m4 |3 k0 @( O$ j& c2 q' f+ w } `; O: h l2 I9 `1 i) D+ ?
+ \) ]1 l/ r' e; W% S ( (CUser*)this )->AddSetChangeJob( nJob );. z+ z# s, o: e3 L7 @; [0 r) A
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ Y* @# G# E% N$ d1 ^3 G
# n' N: |; D$ [9 ^* R/ m
3 v$ J1 Y1 a- Q8 t' D% V3 }$ U Z#if __VER >= 11 // __SYS_PLAYER_DATA" A4 o- ?) \0 p; ?) I3 j& v$ Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 n+ ] R& L( c, S. r4 P
#else // __SYS_PLAYER_DATA
1 D- V1 i' t- W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 D2 U) L- \' z: I) r; z0 Z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 J& p; l: O* k/ b
if( m_idGuild != 0 )
! K3 C g5 `9 n& ~0 J1 Y) I/ K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# F5 p% F p, X# W2 o! R$ W8 y
#endif // __SYS_PLAYER_DATA; y3 t. [; J/ J" P. e
SetHitPoint( GetMaxHitPoint() );' ?- g% R' C S* ^( q- U: H. v4 u) _
SetManaPoint( GetMaxManaPoint() ); H+ z2 z. Z% i; s. c
SetFatiguePoint( GetMaxFatiguePoint() );
+ o' a! b+ X0 A6 w6 V& b6 X) {, I if( nJob >= 1 && nJob <= 4 )7 G0 | d! A- T0 d- H3 g
{, U& L% ]% X) I. W5 e0 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# x1 n* P# T6 I, C4 s m_nRemainGP = 28;
- o3 y+ X3 Y; V1 i, D9 n7 |/ `4 z }( u+ {& o: B0 [/ e" A+ m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) M% T+ b* I2 v {
$ E9 {3 n7 Z+ b9 h+ G+ @" ]- y m_nRemainGP = 118;
' @. S3 z9 B( O, Q4 i3 R& S* ` //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 @6 U- R( V& `; H1 l9 y m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 z( s- n+ w0 W) x2 g2 K }* }! o! u9 H2 I( h- [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 ?. k( _* c5 `, X2 j2 m$ L0 E& ~ {
, ^) t8 k5 m( `- w5 C CItemElem itemelem;, Q& m6 ^8 Y( h+ Z7 U6 g% X! }
itemelem.m_nItemNum = 1;
* o+ B* B0 R+ L- O* Z! i itemelem.m_bCharged = TRUE;
" Y- ~6 A& ^! b$ @ J7 | BYTE nID;
. p/ e5 x- e! j: M- w
8 `' S. `+ u" q if( nJob == JOB_MENTALIST_HERO )
& j" G( _% S; i4 z: g1 R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ p0 Z( F# v" f' L9 Y4 y! b( D
if( nJob == JOB_FORCEMASTER_HERO )
: k; H- c L4 I9 x4 D. j6 ^ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 g2 A! u* [7 V0 z7 p( u8 A& R
7 @" g& k, Q& ?) q# m4 N ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. E/ p" r. B, f, V1 N# k& k }
! V2 v) F& N F/ {. X B: ~ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 {7 D! q) w Q, h& e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% P% B s( v3 d+ |& P5 J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 H3 ]; u. Y6 v+ g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# Q# K- {* p9 z" ^3 i
( (CUser*)this )->AddTaskBar();*/0 ]; y5 D8 |7 F7 _' v% t$ u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' y* B" ^) }: C3 g* w( ^$ @#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 W( D$ K4 R/ F ((CUser*)this)->CheckHonorStat();
- W" g w% p3 J* E. n- u, ? ((CUser*)this)->AddHonorListAck();
0 k' _5 {1 S/ Z- U B. n- J g_UserMng.AddHonorTitleChange( this, m_nHonor);% I/ c+ X" p6 l7 J
#endif // __HONORABLE_TITLE // ′Tà?
; }; s$ L0 b* c7 \8 p }8 @, {. ~2 f9 E: Z5 s% K
#endif // __WORLDSERVER' z, i( ~8 I* ], F
}
4 x+ s1 d. e' m) u1 x8 H! [& [4 ~8 \/ ~% {
然后你进入functextcmd.cpp并添加以下
( g3 H* G- Y2 `% C2 i+ M, D
6 x/ f& c& ~+ x# L' K9 F1 R) I代码:
5 R0 ]. {) @/ m& B B7 m4 eON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). |7 L, w) j% e) r* [0 O* J8 V0 f9 X
下面插入 j* h6 N2 |4 u# K) Q! S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) q" p5 D8 A& L B% }! L3 v2 z- A0 g
然后你去
, @1 ~! U5 j) x' P" X
' b% b2 v. t3 r, n7 X代码:+ f% v W' e# e- r- v
代码9 M: w9 N4 i& o, r8 a e, Y" p
BOOL TextCmd_ClearPropose( CScanner & s )
+ z! a* |3 I0 Q! E( o{
( p8 A, O0 k' I" u) p8 `#ifdef __WORLDSERVER
- N+ g! n9 i2 T2 ~. w0 O CUser* pUser = (CUser*)s.dwValue;8 J2 ~3 }4 O& x& U% L0 |0 J6 X8 R
g_dpDBClient.SendClearPropose();: m& d. |4 \# ^* F2 U' t! }
#endif // __WORLDSERVER
& F3 x6 p/ n2 y ^/ _0 R6 G) K return TRUE;: q: [7 Q) ]$ t- V; C; \- d
}
' A- } X2 s+ \" b, @下面插入
* Z N: m% O9 |1 s' h" ?" j: _/ qBOOL TextCmd_rebirth( CScanner& scanner )* B9 a) M+ w2 |* ]8 l
{# u, b1 M" }" p( J
#ifdef __WORLDSERVER2 |9 {5 r: N3 y& [) e
CUser *pUser;
G2 h) f5 \8 L& B/ R8 {- p3 RpUser = (CUser*)scanner.dwValue;9 E4 H5 `" M4 `% A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" K0 e3 D/ ~# {; E: A
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# |) H) B8 g0 R0 l: nelse
; W8 m6 n5 i% n% p% L5 VpUser->AddText("你还未达到重生条件!");* \4 X0 R3 M' M+ U/ F G
#endif
2 j! E1 i. C8 l) m! J2 `/ ?( areturn TRUE;" z% x! q4 ]! P0 O5 A+ c" u
}
* O9 z# A. @$ U% q+ N, z5 @7 R# @ J, t0 ^1 p1 u- ~/ u: V1 f/ j" \: E
; p3 q: H/ Q# `3 d+ g
4 r7 u! G7 }2 L
4 E2 z3 R. }1 ^% P4 V |
|