|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# K- u U0 ^: G. l6 s. G
1 x# i3 W. @# I! l; q0 W' o5 i& e- h
Mover.h
6 n5 c2 F9 P* w代码:
/ B2 U4 |4 x$ ~" I2 A/ p9 ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& [& a! W/ Q* |( A: R
; q. I4 Z$ m* z* @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: i6 J. M* b( o- g. n9 p; N5 K# y6 ] P# t9 u S
然后你去mover.cpp添加
: H% i7 Y; s2 Q! ^, Y. V' ?
/ h/ Q- j/ T1 M/ F代码:
" j) L# C- u( k8 M# u: f" dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 E T7 S V% s* o6 j$ S
{
) y0 h/ {! }7 R& e# Q$ g#ifdef __WORLDSERVER
$ Q5 }. |( Z: O: M: l$ I // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( R1 s, p. j. } N" w2 \4 ?
MoverProp* pProp = GetProp();
- M" X! _% V' m( [* e% [% V2 y if( pProp )
& y5 F9 T, \) p" ~2 `& d, l {- l* f( `9 ?* q7 w6 m/ u8 `
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 |7 M! H( x/ _1 D
{+ U" X h/ B# J3 A
AddChangeJob( nJob );
; V: S; j# |1 C6 J) O. x% A# B }else{
" } O1 ~9 k: C! y. v0 g4 d return;
; ]; F& x' `9 f% E$ Y1 M3 K }3 g- d, v6 G9 t1 k4 L) B
int nPoint = 0;
$ N1 ^, s0 }% Z9 x' u) ^ if( m_nJob == JOB_MERCENARY )
. e* Y0 }4 l1 s" i nPoint += 40;$ w2 N7 w9 H) B8 d+ a
else if( m_nJob == JOB_ACROBAT )
7 ]- B: q7 [. c3 @7 V$ V4 b, T nPoint += 50;
% U1 x7 k6 ~: I" L else if( m_nJob == JOB_ASSIST )+ Z5 g9 f5 v( V0 w
nPoint += 60; X. V8 B% l! i
else if( m_nJob == JOB_MAGICIAN )1 e5 M' Z: g" u: P- `
nPoint += 90;9 T' f) f9 a( z% L; ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): h9 |& }9 O$ j* h3 L9 Z
nPoint += 120;4 x! Y, e- x! r/ D$ ~
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# \' w/ }2 D4 V nPoint += 150;
4 J) c5 O( ]# Z7 O else if( m_nJob == JOB_RINGMASTER )
; v7 U& Z9 _: |) X6 I1 p nPoint += 160;
) Z; k. m" r6 J& h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); H% K# J: T# k1 H1 a4 y4 j; ^
nPoint += 180;
1 i# _8 ^" E. B else if( m_nJob == JOB_ELEMENTOR )
& \& V; H* G8 Z1 o! o" @8 y# | nPoint += 390;) o% f' g! Z/ ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 ~+ d. N9 |& U nPoint += 120;* n& v5 x$ f* `! p- e9 F
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 q. ?+ b0 Q/ l! r6 G; _ nPoint += 150;2 H# i" R6 y& K# b% s: I0 t9 v
else if( nJob == JOB_FLORIST_HERO )& l# Z; E, `; l* q
nPoint += 160;
/ a8 Q- E; u5 p$ I# P else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). F1 ^) p, p, g6 M+ W
nPoint += 180;* E- }3 W k) @3 Q6 H
else if( nJob == JOB_ELEMENTORLORD_HERO )
& L& [! _6 p2 a2 a% w nPoint += 390;3 E; j4 l: S& e8 o: K( |+ N
9 R) d5 N6 q& G* f+ i
AddSkillPoint( nPoint );
6 d' i+ z- v" j5 l/ Z% A6 m3 K m_nLevel = nLevel;# ^* L5 B# y5 n7 y+ W4 x/ ]
# Y% S( i9 q9 D. v" ~4 i4 n
SetJobLevel( nLevel, nJob );: V' l; B3 R/ G0 h. m' a
m_nDeathLevel = nLevel;
+ Z* v* T0 s" }( \2 d3 R0 H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, E7 d+ M( k% Z) `
if(IsMaster())
9 w7 I" ^( o$ X; N& g" X+ L {& w7 y7 O Q- k% `0 _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) v$ K% {+ Q7 |+ ?) e
if( nLevel > 59 && nLevel < 72 )8 P" M1 z7 }+ s! z
dwTmpSkLevel = 1;
/ ^( I6 \8 F+ \# f' s2 j8 K+ O else if( nLevel > 71 && nLevel < 84 )
1 O4 _ r- B1 | dwTmpSkLevel = 2;
3 X3 v- [ V, H& | else if( nLevel > 83 && nLevel < 96 )8 o$ K, z# T: [
dwTmpSkLevel = 3;
/ u8 W& W0 D( v% x" i+ j else if( nLevel > 95 && nLevel < 108 )+ j5 l, E$ G+ z5 P- T/ e1 }9 H
dwTmpSkLevel = 4;
, Q, X% T, d2 Q* Q; ? else if( nLevel > 107 && nLevel < 120 )
8 w7 E; Y. y) C: p) _/ P dwTmpSkLevel = 5;
7 k9 n; |+ |5 |- z& j1 E/ J for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ h% h! Q! U% M8 Q% @* ^9 ~3 L3 k {
! a% t- Y7 }5 g$ {( D; J6 y LPSKILL lpSkill = &(m_aJobSkill);) g) ?' T6 y+ b0 [- }
if( lpSkill && lpSkill->dwSkill != NULL_ID )# y# i, E* A, h9 o
{& n) u" R$ X/ R: p. H' l1 M; L u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 B* g8 S7 q6 j if( pSkillProp == NULL )
/ {, j6 S e! x" n& r+ G6 V continue;
4 s! K( d4 B! s' K% t& Y# g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% Y# x- \# S) M" n6 j4 l
continue;+ g# S5 A J; D! ]" K: F
lpSkill->dwLevel = dwTmpSkLevel;
( Q! ^$ j' ?% X% W: r/ K }
5 x$ y( e! e3 q f0 w }7 a3 y% G- F! R& j8 l
}0 h% Y4 q( t# F1 J, E0 \
else if(IsHero())( h( ?- u% e# v0 D1 W; A
{
% O3 K% ]3 o X" \6 |/ x, t. r for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 j( v4 s! K3 Z8 ]7 B( d { % O3 v. J- a; b1 h! C0 u% G; w
LPSKILL lpSkill = &(m_aJobSkill);8 t) c, ?% E; ?1 d& d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 g6 l/ I, h1 U6 z% W {5 Y3 x8 v$ G c$ ?& h( R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " e" n; o7 c n2 Y( ^0 z$ m
if( pSkillProp == NULL )
/ d5 Z* y3 v9 u- C+ I/ P o2 n continue;% p1 V. E* R) J- @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! H& p( A0 {1 P$ p7 v4 u+ q continue;
# b) Y, S4 P, W" E; j6 P) j lpSkill->dwLevel = 5;- C# S) E* L7 c- i
}# w/ ?: B+ N2 A( g/ D
}+ Y1 d! x% \4 y p6 A
}2 r% u: d, T1 Q1 }( n4 x3 Q4 v& b" s
else if(IsLegendHero())+ Z( k! _4 s1 d; x
{
5 ~# f9 X# E1 m5 z0 g( _( l$ S for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 o5 b, g) ^- X( b1 K {
! o1 g# X7 b3 @) c- I" j LPSKILL lpSkill = &(m_aJobSkill);
u/ G' J/ r3 E' \) _ if( lpSkill && lpSkill->dwSkill != NULL_ID )- z# I. |9 s* @" Z
{
+ `& ?1 `! J' p4 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 Q L& \* y' R* G
if( pSkillProp == NULL ) g1 s1 Y5 g k6 n# |" g) ?9 i
continue;& s0 K' |* s) Q) F: b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 x3 I q" B, |1 N$ A: Q continue;
) U6 v3 r& T' d8 @ lpSkill->dwLevel = 5;. k% Y1 ]! T! n$ W9 [4 x7 Y
}
( Q: e' s* u$ b/ _' ?' `8 B }) q7 S& f+ K! N' u- A
}
$ |4 [( Y' x: A2 b- K#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& [7 D" {3 @3 x' D; s/ x if( bGamma )
8 r( W& ?/ l2 v { h' C' i7 d! Q* _( ~" o, S% }
m_nExp1 = 0;' W* m) i: e+ _
}
7 p' h: E- p Y, [
# {& G# ^7 b, n! O ( (CUser*)this )->AddSetChangeJob( nJob );
- F5 ^7 N5 K8 i; c7 y; X$ L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 i1 Y4 ~5 g; d. B1 `% E5 O
7 ]( ?& O2 B1 G. Y, P( u3 D5 d/ f* _% _
5 D9 ^0 W3 Y% l% E' x#if __VER >= 11 // __SYS_PLAYER_DATA
. i, Q/ H% S$ [2 S4 e0 c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: j4 N% p8 B, P3 w6 G9 t, X* D
#else // __SYS_PLAYER_DATA
c) W. _, i1 C% I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 o4 L! h) M% x9 z& L6 N! z/ d g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; L; F H8 h: H% `4 \2 E" r if( m_idGuild != 0 )
; g& o9 {: D) s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- l, C5 A+ ~. a2 t/ C1 R#endif // __SYS_PLAYER_DATA/ q$ L. \9 p4 W6 Z( J5 X+ ^
SetHitPoint( GetMaxHitPoint() );/ l7 G6 F- |* d. |( K
SetManaPoint( GetMaxManaPoint() );
& V* W3 L# R& G: O SetFatiguePoint( GetMaxFatiguePoint() );
3 s& Y6 Y! E( [- c; ^5 l ]# T. L4 {5 {& Z if( nJob >= 1 && nJob <= 4 )1 o* Z& F7 j& f0 T# ~5 |
{
, }( v$ Y+ i2 P- l" t8 L! @$ a m_nStr = m_nSta = m_nDex = m_nInt = 15;% o5 R+ `! _4 ^+ e3 J, [
m_nRemainGP = 28;
9 j0 r) V$ ^- K+ [# w }4 t/ p! m X" {( p, d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( j& u* w* `, }- Y, L {
( G2 y2 s8 D2 @3 M m_nRemainGP = 118;
5 N' N" g) z4 j2 i+ }7 q1 R4 a0 u3 E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, F6 d" Y5 j; K$ V( O
m_nStr = m_nSta = m_nDex = m_nInt = 15;# L& ?, Z/ e* |8 z' ?
}2 P* C6 E, ]% W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( ~, V' q& @5 W, G7 e$ ^
{
+ b$ s7 g5 }* P \7 X CItemElem itemelem;
1 G* W4 K1 }- H3 j, g itemelem.m_nItemNum = 1;( m. V) q! Z2 o- r/ v& Q$ e
itemelem.m_bCharged = TRUE;
! t/ y$ G( o7 m) g BYTE nID;
3 G/ u* g ?6 o0 G3 }$ G6 K' \& ~! [" ?5 P
if( nJob == JOB_MENTALIST_HERO ) [4 |6 f7 x( g1 k! n5 F; j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 z) v1 Z, ^5 R( z; d if( nJob == JOB_FORCEMASTER_HERO )% c, p$ [; y9 K5 n- C2 h4 `. |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& b' f# C/ f$ N0 f& R& D+ d) d5 G( e$ f* }* U. ~1 K9 e
( ( CUser*)this)->CreateItem( &itemelem, &nID );) t: B" E. r# p6 P
}9 F0 w U/ R, V8 Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 N8 g" v- w; @/ l ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" _6 p* c3 |, N, X, l) k5 i( x% D: ] ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. K3 P1 T1 C% [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, @# k- y4 Q1 R) J+ O ( (CUser*)this )->AddTaskBar();*/+ j6 ^" E3 g+ l! D1 h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ s; o: W% X) b9 O- X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 |7 K$ U0 b. f A
((CUser*)this)->CheckHonorStat();& C* J/ C6 Z2 _5 T6 m% q
((CUser*)this)->AddHonorListAck();
1 W* r R* E" T% K$ | g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ @ L) E* r$ T# B% ~#endif // __HONORABLE_TITLE // ′Tà?5 q* ]1 Y4 c9 {; O8 P
}
6 `, a8 ]9 [ H" b2 s#endif // __WORLDSERVER2 G; n0 n: ?5 Y. L9 m$ k
}
" ~; u. P! e- W0 M, V; Q: c$ P: S5 K- d0 P
然后你进入functextcmd.cpp并添加以下
) a$ i' g/ u. L+ N8 Q% A- z- H
0 _. [+ |$ r& S9 ]2 [4 j; ~代码:
5 A/ A7 P$ A% X4 m) UON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( \& H# r2 m: d% s- q下面插入
- D$ B% B- q! M7 TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 z$ M( J- Z7 l7 m9 c$ K
4 u* Q4 S% [. F( \6 k, L( B然后你去2 |% f% q" L# f/ X! f
% H; }9 }( [5 y0 n1 {. Y' X+ B代码:
5 ~" t% t0 E7 i/ B* v K+ K7 \! ?代码
0 Y$ G2 J- m- }7 r, ?5 fBOOL TextCmd_ClearPropose( CScanner & s )* E0 ^2 c% N' {$ ]: b% \# ?
{
6 g1 o) l# p( \9 n, D5 d#ifdef __WORLDSERVER" P$ C7 \1 } M3 H! e% j
CUser* pUser = (CUser*)s.dwValue;
k! e( }0 ]9 ^# c1 X g_dpDBClient.SendClearPropose();+ F8 l0 z8 _* ?
#endif // __WORLDSERVER
/ a% V. v: o% f1 F0 g return TRUE;
9 E1 X( [- O2 x# g' Y7 p. h}+ [* u! s! ?/ M' [
下面插入% Y- G, s, w k
BOOL TextCmd_rebirth( CScanner& scanner )3 g1 E k; k) f% e
{
& R3 f/ T* J1 Z$ u y. n; ~#ifdef __WORLDSERVER
7 z( F/ Z+ n( N9 ~' t+ sCUser *pUser;
& |8 O- m K) ^. EpUser = (CUser*)scanner.dwValue;& M) z7 x# F. B/ a
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: ^4 I, A) ]: J& DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 o8 O; G+ I5 xelse% h7 n! g T8 }
pUser->AddText("你还未达到重生条件!");1 O" P8 N) k7 d
#endif* d, h/ w- @) l( I0 X
return TRUE;6 W- S: S2 B' D% ?1 A" e7 z' N
}
) W- X* L+ K1 [* ]. a( \# H& E1 a) u E) F( |0 s+ _; ^
& Q& `! u6 ?) z
! t7 @: f. m* k1 ?$ q: L
. |3 g3 r G' G |
|