|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 K- D$ n9 _) W: m# F8 @
+ `3 T) r4 ?4 M9 g: zMover.h
. w& [1 I" t0 o. a; w2 ~1 a代码:7 Q$ H- S# ?# Z: e) f: r2 b* l3 ~& x
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ U3 ~" e5 T9 b- a0 y. m4 V
8 h8 U' T! T) J2 L+ n下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , z" W3 j1 @: A" [/ @0 w( k
7 U' O: D% i+ h5 P$ r
然后你去mover.cpp添加
7 K: ^& ?0 {5 ]% J8 O3 c
, E" j* `$ u7 H; y' U代码:
) a0 I/ ?7 V8 {4 p9 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). G+ {! o3 Z- z5 ~+ |7 w0 |
{2 i) [/ ?& i, P) Q5 h$ j( m
#ifdef __WORLDSERVER7 u; { f( W d% y' O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( d: s8 M" K; y g1 k
MoverProp* pProp = GetProp();3 X0 n( m( y5 y& l( c& E
if( pProp )
+ f" Z7 ~$ a3 e0 D/ Z {9 a( P" J$ I) ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 l- s* [: `4 e# n8 j$ s9 V, i {# L/ v* j0 N5 o& w! `3 i
AddChangeJob( nJob );1 T7 t' J1 w5 r
}else{
9 ^8 ~5 K f2 ]1 @ return;$ a7 i: L+ r# Z. s0 w, J0 l' J
}
: }3 s, V: A* ~8 {- i int nPoint = 0;8 Q! y' n3 E; e$ x+ G$ A& X
if( m_nJob == JOB_MERCENARY )
) a% t+ ^' U. j8 V; I& @+ @ nPoint += 40;
9 C) D: C' y+ [9 ?5 e else if( m_nJob == JOB_ACROBAT )# j2 N5 X9 F, B/ p# q+ \
nPoint += 50;
( \3 |3 J% f$ N1 o+ m else if( m_nJob == JOB_ASSIST )! S" C `4 k& `6 i
nPoint += 60;& U' h3 S( y8 ?$ `& j7 _% O
else if( m_nJob == JOB_MAGICIAN )6 s5 V# t% d9 H/ |
nPoint += 90;
- J e" a' S8 J8 R2 p0 [ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 u! v! e( e: n4 Q9 U( t- v7 y nPoint += 120;
& l( m- C" L( n5 L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' F; G7 Y, ?4 R1 T4 J- A
nPoint += 150;
+ U6 X2 i( E( x+ `- t" p else if( m_nJob == JOB_RINGMASTER )8 j& C' [5 [! J: Z, P8 o3 t
nPoint += 160;
, `4 j& \! ?( e% Y& f else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: d7 K m& c( E# w" U# q% E, Q nPoint += 180;% h) _1 a7 y8 z; j. |0 s# Z7 D: t; \# @
else if( m_nJob == JOB_ELEMENTOR )/ A- y9 D) ]6 a4 @
nPoint += 390;
# ?' h( q$ u6 v/ N/ |4 b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 c" K, n- ]( I# z
nPoint += 120;' t+ s8 X1 b8 O/ R$ t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. M$ H* n9 `7 \/ X v& @$ a) Q& b nPoint += 150;: O# v' j" l' P+ l2 f! g) Q
else if( nJob == JOB_FLORIST_HERO )
7 h9 u1 a' q% ]" ? nPoint += 160;
0 j5 I% ]; R) K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): i* l! i$ c+ d0 V* Z4 Z# p
nPoint += 180;
* D! @4 Z4 A+ x; a0 A9 l else if( nJob == JOB_ELEMENTORLORD_HERO )/ J8 e, G3 X. T6 N' t
nPoint += 390;
3 h1 N( w0 A" F$ d6 C Y$ L/ b8 C A/ n2 M. j, a5 O P. \/ K
AddSkillPoint( nPoint );& V( K9 e3 B& |
m_nLevel = nLevel;
' M! A3 v5 Q( F! x \; Q6 f% h% ^5 n6 \. M4 x! u
SetJobLevel( nLevel, nJob );
1 G/ _. t, o" h) y- ^2 D, E m_nDeathLevel = nLevel;4 T6 R H# J0 t4 `$ D3 p- |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* d: S; x$ s' E1 W$ ?/ _( z! J if(IsMaster())% a0 L* r |5 f; E# ^
{
* a. y& _; T+ r4 Q7 M int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- u w6 _# e/ F- v
if( nLevel > 59 && nLevel < 72 )1 S3 _. @/ O- g b/ q9 M
dwTmpSkLevel = 1;9 q7 {9 {, Y1 N
else if( nLevel > 71 && nLevel < 84 )5 g" D8 ~. J( }& \$ {
dwTmpSkLevel = 2;: F4 d5 ]) O# k3 u0 d
else if( nLevel > 83 && nLevel < 96 )1 F3 g8 Q; z8 m8 H% g
dwTmpSkLevel = 3;8 P! f: o* o8 n( `' D
else if( nLevel > 95 && nLevel < 108 )
( n6 w- f5 G; j# g' O* {, M3 P dwTmpSkLevel = 4;
3 o5 J3 v% B0 p9 n" c else if( nLevel > 107 && nLevel < 120 )$ g! v6 ^( n9 f8 M5 k& e: K
dwTmpSkLevel = 5;
8 n& v7 ^/ p' R+ k" d for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 q+ u# u! U& N' l {
; d- A! W! g7 ?0 R LPSKILL lpSkill = &(m_aJobSkill);
/ u& F0 A8 P4 q' B& B7 o0 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )$ z+ c* ~& ~# L& z! }
{; d( c" q. C9 D/ ^5 f u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* \; p1 R% k0 W6 r if( pSkillProp == NULL )
8 @* A( ~ Q _% r& V9 n5 s% c continue;( j: n/ b4 v: d. F/ R. {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 {; p! y$ {+ D4 j0 b continue;* a* Y. H; P2 X' r& n! G# Q
lpSkill->dwLevel = dwTmpSkLevel;
8 Q! p! C: W2 N2 r, W5 h L# h }
) v* }3 l. o }) h; b' J }
( K5 g) y% a; w' t3 U( `. ]9 [ }
9 g8 [* ]8 F% [- N0 o8 ~* }1 q9 A# H else if(IsHero())0 [- A" |& C2 | e
{. r) E7 Y6 d/ R- j8 Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & n* M+ P3 g- X3 o) A
{ 8 N/ t+ C1 o( h) |' B5 b" D6 R
LPSKILL lpSkill = &(m_aJobSkill);
9 u# k k/ S. y+ l. W3 F if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 h* i- E6 o K0 C8 q {' m* A& W* w4 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : b* o$ `, Q7 k' a
if( pSkillProp == NULL )3 o5 r3 v6 ]5 Y, [! `: G: O. s) Y
continue;
6 z, N3 R0 P$ i1 `2 J! Q0 b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 k1 q4 {1 v! J8 w; ^& d
continue;
* z5 x$ |& q' [8 o( @ lpSkill->dwLevel = 5;" r3 d2 ]$ }5 O6 Q: r9 o! T- E1 b
}4 I6 [) k( p! T/ [! F
}- Y0 w: b+ a$ o8 s
}2 l) d. f! P1 V; _4 Y! X0 P
else if(IsLegendHero())2 [( @$ ]' D6 d! {* z
{
, m' Y4 h% s# n; ~. V6 z+ t for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 L8 T8 W% F4 [( h8 a8 r( N* h { % a! r, z0 D: m8 {" Y
LPSKILL lpSkill = &(m_aJobSkill);
1 p a" |5 {2 {* p& W if( lpSkill && lpSkill->dwSkill != NULL_ID )9 l1 g8 G% A. f! s! V5 }5 {- N
{, d6 o' ^" o9 A& O0 Y \. a7 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# J+ J' h& Y" _5 B# G- v( A& u if( pSkillProp == NULL )
# t, I+ q; k0 k& q+ ^ continue;% }8 z* y2 `5 h) R# @" s2 l2 {7 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: e$ F6 i* \9 v& \7 p8 C7 n continue; e& E" p5 {+ n5 }6 j- M- h
lpSkill->dwLevel = 5;
! Y. \2 l. f( ^ x6 v+ n z! P }" L: C) Q9 X! m1 m3 Q
}
7 l5 a/ m8 k) |: A9 A) K }
5 Z: d, n4 y5 c/ L: ?( \#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ u+ U* t, ?* D3 S) e$ O( K4 `
if( bGamma )
* S' ^6 @3 D+ g; j4 B; c$ C' c( Z {
9 w% [- M, d, R: c5 a4 m0 T m_nExp1 = 0;
) C. C" |. p1 r! b/ n4 X }) P$ v9 N- Q8 L: C8 S, L7 [$ w9 s
% O& _+ ~. B6 N& l6 q ( (CUser*)this )->AddSetChangeJob( nJob );
4 k) [; E1 w2 X& d' d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); [8 O1 p) u) Y. z
9 F: x, g" Y3 m+ h* P% X, G8 b
- R( Q" L# [* ^9 V0 q5 E
#if __VER >= 11 // __SYS_PLAYER_DATA
, r, ~/ b2 h0 z+ J; G# v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% a1 X" x7 d7 n
#else // __SYS_PLAYER_DATA
* t9 g6 g' I4 C: N; v( p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: N, V2 O0 A4 C( j3 o y. x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 e. _. \- V$ l) ^6 Z8 a if( m_idGuild != 0 )
2 l, I* A; j! l' O$ ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 e3 U) R5 q- { \9 t+ o$ @#endif // __SYS_PLAYER_DATA
9 ~/ ~& X) G, K SetHitPoint( GetMaxHitPoint() );
2 E; c& u7 {: G% p9 k, [+ H SetManaPoint( GetMaxManaPoint() );, {+ I2 }6 I- B5 w" q* ^: M( H3 l/ e
SetFatiguePoint( GetMaxFatiguePoint() );; c- y7 k6 p5 H; X( ]
if( nJob >= 1 && nJob <= 4 )% a+ I, j, G0 d6 E' t# `
{
6 j" k* H6 q* g1 \5 o m_nStr = m_nSta = m_nDex = m_nInt = 15;
: b: v" K, a+ H6 y8 N- E m_nRemainGP = 28;: O3 M. w- {6 u- E8 m F/ ]
}
: h- `8 E& R$ N. e( C( d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
n0 |* E7 O0 i) E. I4 J h% O4 D {% _* m$ | a1 S) N2 u i' p
m_nRemainGP = 118;
" f" o* W! L. X2 o2 m, h8 f ?2 i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 h/ E; @: T( Q( {- G m_nStr = m_nSta = m_nDex = m_nInt = 15;
. K: u' k1 h5 D2 {; Q u! \# r }
! {+ h! r5 a1 Q1 D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 P" x, Z$ g0 o/ I6 i7 ]" t
{; A" e+ B1 ~5 K) @* c; }
CItemElem itemelem;/ S$ A! i( o$ K) R# {% {9 L
itemelem.m_nItemNum = 1;
; n; J( m U# _+ |0 M9 j u itemelem.m_bCharged = TRUE;9 i) X1 k- R' w% v+ Z
BYTE nID;
4 j5 b O' |$ S& \, m. P( ~# {2 x, V# m( ?# G- B; i9 m4 o5 E- L
if( nJob == JOB_MENTALIST_HERO )) i& Z# {0 R0 ^/ q% P h8 Q( _
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# n% [1 c B+ k2 L& l F" C5 g if( nJob == JOB_FORCEMASTER_HERO )
) n) v; W i( v! e itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- i+ e$ k" t4 q$ U& `' [, e! q
3 \% [! R8 P6 e% y+ ^0 ?* o# j; E2 ?' `
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 w+ ^. A+ R( V) U v: P6 c: o, _ }
M4 q7 ]1 p5 G8 l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& E) {/ c$ v5 Z- ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# r* } b% e; E0 u# s, N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 T" k, V, _! u, c3 P9 D* }9 v /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 e9 U) I; q8 B ( (CUser*)this )->AddTaskBar();*/
0 q {# h% }8 r8 x0 m2 } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. q1 I! r" O9 h" }# D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ `. t3 J% A8 t. U& q5 N; f ((CUser*)this)->CheckHonorStat();
# V" V3 y6 z8 a. J+ O0 q( ]) T ((CUser*)this)->AddHonorListAck();
) V! s6 t0 H( C1 m( W4 W g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 p) q( M7 d+ R9 v#endif // __HONORABLE_TITLE // ′Tà?
/ t; ~) w! @* s, C( t }
' t" l3 w( t0 z) ]* [- p#endif // __WORLDSERVER
; v. T* V) v$ ~. g* R# F* ^% [}
0 j: n) S7 p/ R' j/ I
& v- L: y8 `! o6 j4 s然后你进入functextcmd.cpp并添加以下
* C" h; t' q. |; S2 {% {
5 M3 c4 @# S! x代码:5 L# B1 R8 e- m
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ N) F$ [. k* P. c$ K4 n下面插入: K" o7 Q$ p2 O( u1 t
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 Q4 y. H4 x* k
0 Q& B [; _3 {$ z7 y
然后你去
9 X3 A6 \5 f& H" N/ ` N2 Y' I! r' D- H* z
代码:! p( p/ | [$ U/ c/ }% D4 M
代码
% c, W8 I7 g6 t6 o7 m$ N) t8 s a! ZBOOL TextCmd_ClearPropose( CScanner & s )! x3 J! K" n5 E1 J! D$ W
{. W( D- g$ L/ C y0 L4 y% q/ @
#ifdef __WORLDSERVER
) ~, m1 }) }- e% ?; k1 Z CUser* pUser = (CUser*)s.dwValue;
# L# w" z4 l2 y g_dpDBClient.SendClearPropose();
% U5 S6 G: m# y% T- |# ^2 [, k#endif // __WORLDSERVER
4 [7 V0 V; O- n4 G A. Y return TRUE;4 j8 J) U. J( t/ m* [4 ?* f5 x x
}5 w4 d" b* k$ R: T& c
下面插入) o+ E( q& P- a1 O
BOOL TextCmd_rebirth( CScanner& scanner )) m3 Z1 b: n6 ~( Q. l5 {+ r1 N9 S
{
: `% h/ F7 T% n# {#ifdef __WORLDSERVER
, u8 X1 R7 O8 t; G# `9 WCUser *pUser;
7 c' K, |, b' _, O: m3 K3 h7 zpUser = (CUser*)scanner.dwValue;1 ~; I2 o9 \* c: w J! L$ K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! r4 c) q( A3 dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( h6 [5 x! d# y, ]+ S! O
else
5 v/ d% F. t/ v; R3 ~pUser->AddText("你还未达到重生条件!");
Z+ }6 i6 Z, U9 E. O8 c+ v#endif: @- o7 c, A/ W" k0 f6 x4 j
return TRUE;
6 q5 f$ J" X V; k: ^$ W} # J4 J6 r/ e3 K% g4 K6 \$ o% d4 _' {
9 q. W# ], |' ~- x6 n& ~$ J% P
& m( }: X. G6 B4 c' V$ V* m- R! V) t9 W1 \5 j# k% d R
6 D: R' M( ~( ~$ t
|
|