|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) X: @8 O y- I/ r
6 ^7 G1 Y: e' O( _7 k7 HMover.h
% ~! K# l! u& y$ s% U& p; j) P; s: c" @代码:, k( j* a6 B6 g3 X! K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. w/ @% ]# [: X: g) W2 q. y; B! p3 g3 n+ c5 ~: l, k5 W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
L4 a; X1 A* L
7 k( Y1 V$ t, r7 s( p然后你去mover.cpp添加
7 h; u* H' [5 s% G, U0 W- e& \0 ?* G, {5 o% Q" H+ ?
代码:" H* l" v2 x& Z) T8 E- R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 B/ S: @- k ]% c
{: l2 [9 h, u% C' P5 |: G6 u" q3 z* m
#ifdef __WORLDSERVER7 a& h) s- D c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: A% t& r. m9 x- l2 u MoverProp* pProp = GetProp();
( T S9 R0 [1 Q7 f3 I if( pProp )1 d9 w; [8 l6 m2 \( S
{
" E! X' t( M3 F" s2 I if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ R' F8 @+ x2 D2 ~ {" [5 B2 N4 W/ B, C" D7 d! N* ~
AddChangeJob( nJob );
5 {0 V, E4 O. L7 g8 ^7 j }else{
) N) ?1 j: \( ]" O" @3 K5 R, P return;& f) ]/ d$ {( ^3 g1 I
}
0 Y1 K# d8 |5 n9 O: g int nPoint = 0;" }/ x& o' T) t5 M2 P8 t: |' O
if( m_nJob == JOB_MERCENARY )& O- r$ R9 o4 X7 ~4 P9 t
nPoint += 40;
. v! S8 ^+ r3 j. t2 @+ \ else if( m_nJob == JOB_ACROBAT )
2 o+ e/ E- ~ k1 _# b nPoint += 50;
% t: \4 y0 P* V else if( m_nJob == JOB_ASSIST )
% l& q. y4 K8 ?% ~3 U nPoint += 60;
/ v3 T9 `: w2 V0 g% V v else if( m_nJob == JOB_MAGICIAN )6 ]5 i$ z3 J9 A4 E7 y$ V; }! F
nPoint += 90;% u. O' }$ X& h; K$ ?2 l
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& P# E' K. o% Y" l& A nPoint += 120;9 R- W8 P6 z$ q6 \$ G# o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 G! D o' k& O) z# } ~
nPoint += 150;
! H6 Q' {) V4 [7 J# s else if( m_nJob == JOB_RINGMASTER )7 n. p" k2 h& K0 Z, \, g1 R8 u
nPoint += 160;
9 B& i1 g- L+ ]! _+ r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# d+ H, H5 {6 i, B nPoint += 180;
- o; _% x& G; _ else if( m_nJob == JOB_ELEMENTOR )
# U; a- @! Q) H; F) L0 J; _ nPoint += 390;# [' {7 {4 t' v+ N. w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' d9 S+ a3 F0 h nPoint += 120;% m5 }- q, w5 v5 V% O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 U p8 G5 \( U. V* a5 H3 `( B% S
nPoint += 150;3 L4 L4 a( U; E( _
else if( nJob == JOB_FLORIST_HERO )+ j- ], M e" S' l
nPoint += 160;
3 d: ?" R2 e; L2 J5 d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 m" N1 l, U: ?! \' v6 h0 a$ b+ r
nPoint += 180;
1 W& J. Q. H1 y4 J5 c else if( nJob == JOB_ELEMENTORLORD_HERO )) O6 m0 O$ k0 G% m& n. u
nPoint += 390;
7 d' j6 U( o+ E9 o
+ o2 r3 M7 d( W/ I AddSkillPoint( nPoint );
5 [ t; g5 N; D4 O m_nLevel = nLevel;
# l0 Y4 A) H! \# U1 n7 Z" t- K$ n) {* d) s/ X+ Q ~8 |; W7 z4 j+ h
SetJobLevel( nLevel, nJob );, M% C. ^% b4 n( C E
m_nDeathLevel = nLevel;
" h( @9 t) u& b7 K" K#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, b. W% A! @4 K# v+ g; p if(IsMaster())
0 g2 a3 m( q7 b/ [! w7 w {
' ?2 m5 t! E4 p7 x int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 Z. g6 E+ h& x
if( nLevel > 59 && nLevel < 72 ) m# }0 E. K2 O& g1 F( F$ k$ z
dwTmpSkLevel = 1;
* k2 E' m, ^: L else if( nLevel > 71 && nLevel < 84 )1 q. a" v' k; [1 x
dwTmpSkLevel = 2;
, {" o) h9 M. |( R% J! d% A% | else if( nLevel > 83 && nLevel < 96 ) p( Q- N7 x/ d' ]7 l
dwTmpSkLevel = 3;/ T6 r/ @0 @3 y- c
else if( nLevel > 95 && nLevel < 108 )
* z/ K Z7 L6 G dwTmpSkLevel = 4;. C+ S2 f) l! z; v8 w
else if( nLevel > 107 && nLevel < 120 )
# j, U' T4 M; v# Z dwTmpSkLevel = 5;. f# P+ A6 V2 R8 _$ o {+ U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! s0 B0 B) Z9 w6 t {
& J2 q7 a, `3 ^+ o+ U( p! b LPSKILL lpSkill = &(m_aJobSkill);
5 @3 b, h+ B; T% A( D- z if( lpSkill && lpSkill->dwSkill != NULL_ID )
* u; Q n( Z7 D5 a0 w* W$ Q {$ a# Z y% a1 h8 p9 j: x4 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . p; b$ E# \$ x4 | r7 J
if( pSkillProp == NULL )5 b; O5 W: S e5 h6 e
continue;
& _+ W2 Z- e5 D& h% M: N1 a- P' r C. G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 G" e+ E% ]% I/ C4 h% G continue;
2 s: T/ G& B6 E* E6 V! n5 a% N lpSkill->dwLevel = dwTmpSkLevel;% f; I- M0 f6 `9 n% s
}
9 j1 Q$ w( R" H7 e B }
6 }2 p6 Q" @; K1 z2 p* @ }
. _# b4 G" e$ ? else if(IsHero())
- Z3 {( X7 P F: O) K) i {
' C; n+ }) l/ b! w e- N for( int i = 0; i < MAX_SKILL_JOB; i++ ) : s; S ~+ v% R) i
{ 9 S9 x& T* L4 j; E/ X
LPSKILL lpSkill = &(m_aJobSkill);$ W3 l9 i% O5 p- m0 b) ]( f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% l H/ z7 W* ]" g* S% v {8 M" ]8 o& ?/ C$ [9 O( B( t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - F8 _$ k1 Z. ^+ T' q* Q
if( pSkillProp == NULL )& X8 u2 ]3 W* `0 y% D% s
continue;! i0 v! l ~$ X2 J( J8 ^; o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 k; s- d2 j n8 M2 H$ B# E continue; l7 p, _0 i" |9 e! R7 {" e9 _
lpSkill->dwLevel = 5; Y6 e3 z/ h, P' _( Y
}2 N0 B, X' e' ?% b
}
6 n: Y1 o: n+ W3 ?/ C }; i S2 u4 R V6 [, {0 H( a
else if(IsLegendHero()); r7 }3 P% N. j+ W
{
" X: {% D1 q4 ^ S5 |& i1 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 X# B! A0 k8 O2 j { 9 w6 c' P9 \: L3 t
LPSKILL lpSkill = &(m_aJobSkill);# w' Y4 R( E3 {5 M! p: C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; M: F/ I0 k: I* ]+ I& Q {
0 {4 p$ n: @! g9 f/ z; y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
V; `( P$ W) k# E0 i D0 G% P5 w2 y if( pSkillProp == NULL )
5 ?4 P. ~& S* Q/ Z: N# s continue;1 g' ~. t. ^6 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! z! T N3 M/ l: h$ a
continue;+ k7 c8 O5 s+ q/ O0 K9 C
lpSkill->dwLevel = 5;
8 k# u1 Q5 v% ~+ F }
8 E5 n2 D6 V. K. z2 Z! \ }
. }2 ^' S, g) T' [$ g9 L) y8 f }2 B: @$ b& F' E- {$ V) b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 e6 c& e s9 r' a6 e if( bGamma )
, L$ O6 H0 ^. w1 f3 g/ f; \7 l+ { {
: h5 |5 m$ ^9 i# U m_nExp1 = 0;
( I9 {" O- u, E9 I. p+ N; i, ^ }
: O8 r6 Q% [) r% H
% T7 {' F( Y! m# y, H6 k3 Z7 \ ( (CUser*)this )->AddSetChangeJob( nJob );" |. j# e( u! b/ X9 A4 K: v& h- d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" t! a) v* f% t* p+ f6 g/ T
4 N% x$ \0 w) v) O1 I
% w4 {7 R5 b& l7 b% f, g' u#if __VER >= 11 // __SYS_PLAYER_DATA
1 K2 M9 ^6 C' W8 q. l' W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ J* j* z5 X! z- z/ V Q4 R
#else // __SYS_PLAYER_DATA
& i1 G" A2 q7 \7 j( w g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 X8 U* \- [6 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# [' c* D% L7 ~/ Y if( m_idGuild != 0 )
( Z' Q l9 s1 g, X g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 m3 L7 u8 @" e. n0 ]#endif // __SYS_PLAYER_DATA
# X+ C6 X. t$ K& G2 i% t( Y SetHitPoint( GetMaxHitPoint() );1 z/ I$ V- Y. \6 O6 N
SetManaPoint( GetMaxManaPoint() );; M" m2 _* h r
SetFatiguePoint( GetMaxFatiguePoint() );
/ L8 ? e; h; {9 [* U% \$ Y5 r if( nJob >= 1 && nJob <= 4 )
+ M% [3 s8 v( ?3 q+ p1 f {$ e3 Z2 h4 l; ^% A; `5 l$ ~
m_nStr = m_nSta = m_nDex = m_nInt = 15; ?* g. _$ b1 y/ _
m_nRemainGP = 28;$ ?9 W2 e( z7 V7 }: |: }) ^
}4 @! [) h; j1 u2 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# ?: s7 u9 C0 i0 | {
# p" A9 B1 j1 f. B7 A m_nRemainGP = 118;0 k3 X8 C/ \0 }9 B8 X
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 f8 }; D0 O3 w( ~2 _# t# c$ w m_nStr = m_nSta = m_nDex = m_nInt = 15;2 o3 \5 Z! ~8 J* d
}
9 Y/ q# }9 F7 V- f; s7 X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- X; ^; M% C# p$ l \1 e
{
+ I, ~. f1 }; l; V CItemElem itemelem;7 s7 c \' e& `' f. X" H/ i: g$ e6 Z; j
itemelem.m_nItemNum = 1;
& j! R8 _8 I) `' e: r; T itemelem.m_bCharged = TRUE;
, C' o6 ^ [: S- r BYTE nID;
5 b+ \; Y1 w, B% I$ C
8 A. m4 j& F4 v0 t0 U if( nJob == JOB_MENTALIST_HERO )
2 O1 n6 w" L' f) Z+ h1 w( o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* z' W8 F5 x1 t% `
if( nJob == JOB_FORCEMASTER_HERO )' K) ]6 W8 d+ [( ^$ e8 V3 {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;0 q2 B( j Y9 g: G
. J2 ?! c# t9 a5 V
( ( CUser*)this)->CreateItem( &itemelem, &nID );. L! s1 ]& f l; ~1 I
}; {; @: {0 x: _' m5 u: T* ]! i" c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' n$ w' B- p) O5 _" x) B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 m/ ?" R% d# S7 F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 Z6 S, a+ H. l; S2 g /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 e9 Z; b+ p5 Z7 ^- G ( (CUser*)this )->AddTaskBar();*/
- Z$ y+ C5 h. L8 E2 k- x r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); p+ ^! |( T c# e1 {6 r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 ]- J6 z X' J
((CUser*)this)->CheckHonorStat();. W+ m; N- \& W5 j
((CUser*)this)->AddHonorListAck();
& E8 R' \/ D) Q5 I& V g_UserMng.AddHonorTitleChange( this, m_nHonor);
- `8 i- J0 n$ [0 i" W& |1 w#endif // __HONORABLE_TITLE // ′Tà?8 t) Y1 r! g! L+ P
}
% o( O0 I: ^9 r: ]0 i* u: m" m#endif // __WORLDSERVER
$ H# G$ C- L q% r& L8 c% r} 4 R. s3 d# m+ Z. P+ T
2 E4 |) ], T I6 N) j6 I9 v3 j. H然后你进入functextcmd.cpp并添加以下5 q( c) f& \* p$ w7 m E) ^( p4 s
8 `0 w$ i/ O, c1 D: b, N6 C) |; N
代码:
" x, c" m7 S& u! B6 r6 {2 ~) N9 y' ?ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 X5 d/ x' j C
下面插入
], D4 v4 s% DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 K2 H4 W% [0 w r# V$ a
! f1 [6 b4 U: J8 q) M+ c/ Z然后你去
$ K6 ^- I: Z8 F" u- ~, u/ s5 @! x8 L. d: I
代码:; D7 w8 t. p5 y; q
代码
1 |# I0 J: g! Q) [0 iBOOL TextCmd_ClearPropose( CScanner & s )
& M3 V8 i' R& |* ~{
6 M0 e2 r- y/ }4 v0 C5 _: l: U#ifdef __WORLDSERVER. {# h; T( J! s# x; i1 X
CUser* pUser = (CUser*)s.dwValue;
" H/ S: v( `$ X( b g_dpDBClient.SendClearPropose();
1 U. d( U, v# p% y7 P#endif // __WORLDSERVER2 m6 u/ R: D& I7 w1 J" F7 {, ]
return TRUE;
. ^) G9 X, P, O9 C3 X}
& r/ c* u# e7 n/ I8 @. p下面插入
9 c7 t( W" ~! V1 m. j6 ?BOOL TextCmd_rebirth( CScanner& scanner )
0 m$ V: t; _; c' ^& J{* ?& D8 G3 M# _; J5 j) p
#ifdef __WORLDSERVER
" s7 G6 X0 q6 h, \$ S7 BCUser *pUser;, r3 e+ N8 E# v- [4 n
pUser = (CUser*)scanner.dwValue;
3 @4 W) G& U. O- E% l( v- [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 ~/ e# T: V4 {. rpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, C. S0 n! K( L, b: ` C; W$ U
else& y7 T: r' H- l3 @% O
pUser->AddText("你还未达到重生条件!");
5 \% V) G) [' L#endif
% z9 p+ {$ K+ |return TRUE;
% b. J) ?3 C* o0 J6 J} $ E! j! }7 j! q$ e4 a$ V1 |6 x
; d8 r/ M9 ^+ e. _( o% f5 S+ W
; `* B7 Y+ d5 `, j
% e6 K, v- X: Q0 ^: X" @9 D% C+ P) A; |# B
|
|