|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: d( E, i% o: V& B. B, T1 R4 l5 Y, O$ k
Mover.h- T1 K4 e# U" g/ B a
代码:0 K+ v1 T* @/ ~0 m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ V8 s) P. F( m/ ` F
2 `% V+ h- p, ?+ E; Q9 h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 u6 J2 V+ h; y% w2 X1 n2 f. ]
. f$ p* m: ?& n( }! j \
然后你去mover.cpp添加2 ?. r; F6 E3 D, m
/ U' C c. U" V% f代码:
& n$ n' S+ T4 ?2 O2 {4 b/ r, }& kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 P- s, H- Q9 E4 m0 o3 F/ Q{) K N$ s) ~2 T% b
#ifdef __WORLDSERVER: [* c3 E" p% B( L( H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 \3 b+ O% x# W MoverProp* pProp = GetProp();- P4 T% l! F. I8 g
if( pProp ): y+ ~! `, K; t; a* S% t. B2 K% ~
{8 A l7 a( U) O0 a1 V
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); W# n8 d2 o4 g J
{8 K6 S2 a0 }) y+ q+ \
AddChangeJob( nJob );( |4 J i" D3 I* X1 J/ P0 A
}else{
& ?4 Q4 l# B4 g# E5 w$ P) F/ }; Q return;; ?# L2 q3 W$ ?7 |% B
}) L6 p# U# ^/ G* | ^
int nPoint = 0;
* u- y2 f' f! I7 Y5 \2 n if( m_nJob == JOB_MERCENARY )$ _5 @3 d- o" n, D2 K
nPoint += 40;4 m1 G7 b9 y. S, l9 Q
else if( m_nJob == JOB_ACROBAT )
( h4 a. ~4 B. M* D- n nPoint += 50;
! @& v, ?1 D4 t3 H; A else if( m_nJob == JOB_ASSIST ). z) E) J$ f1 v% B
nPoint += 60;( ?3 \7 j4 }7 l1 ~0 z+ }* \! t
else if( m_nJob == JOB_MAGICIAN )
) j4 _% z- P' i2 v5 L8 b- n! ] nPoint += 90;
& s1 V$ E5 L( b. z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 F# b* d; |1 n8 a: c( ^- J8 x nPoint += 120;
$ x9 [5 x0 l" O0 O else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ I% {) ]. Y" O/ I: |3 g0 s5 X
nPoint += 150;
' |6 G1 U: E4 i ]5 O else if( m_nJob == JOB_RINGMASTER )
: k$ x2 {; p- g B, o6 p' O; B nPoint += 160;
; w7 l* L4 m/ C8 R b$ j8 Q' r5 v1 L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# b- u! A* o* X7 s, O8 I# ^- e nPoint += 180;
4 S, k' F" @' L8 N5 {4 i else if( m_nJob == JOB_ELEMENTOR )
9 c& s$ `& y) @$ Z" M" h nPoint += 390;
$ [* n7 B' v' W2 N5 n% ? else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- L2 T2 F) \* s, _
nPoint += 120;
1 J$ R) m8 f4 E/ Q% { else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 V8 z. [2 ?- k+ a; G nPoint += 150;
* I+ s- k% k! l5 ~0 \3 W else if( nJob == JOB_FLORIST_HERO )
( E; M0 V* m- H nPoint += 160;0 ?: w& m0 z; U& g H( i; U% k5 s: i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). ?9 A( J+ b% d2 C, A+ G
nPoint += 180;7 s" z7 W- W1 G( H
else if( nJob == JOB_ELEMENTORLORD_HERO )* K: |: t/ g* _
nPoint += 390;% J* W4 k# U( N/ t- d8 f+ @
8 j y$ j& d0 M AddSkillPoint( nPoint );7 T2 k* N- y' y" h) J! G7 H
m_nLevel = nLevel;
4 v) c6 W1 `! [2 Z! Y( Y1 x
! l1 A: @" B$ j0 ?1 B/ q SetJobLevel( nLevel, nJob );
. u$ G4 n5 e1 D; I1 Y m_nDeathLevel = nLevel;" s; w' h4 J1 [ ]. x: P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
Q4 b! L! e. X" f if(IsMaster())
_/ l& Y w7 O& M {
/ Z2 k2 l3 J8 z8 Z% m int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. V- F7 J; N+ ^" B% D8 k if( nLevel > 59 && nLevel < 72 )
$ S4 P9 G, t3 b6 t7 W, v* J dwTmpSkLevel = 1;" ~% B8 n0 a, Q) s" m0 p
else if( nLevel > 71 && nLevel < 84 )
; } ?7 p7 F* b8 o& e+ T1 C dwTmpSkLevel = 2;
: q& B& `7 W5 n else if( nLevel > 83 && nLevel < 96 )
" g0 |* W5 x& O2 ^, d dwTmpSkLevel = 3;
i$ |8 E6 J3 e" G9 O% I, y1 S else if( nLevel > 95 && nLevel < 108 )- H# k& F9 ?" ~5 |7 z& c
dwTmpSkLevel = 4;
, ^# k4 r/ y3 I" K8 X! H* k else if( nLevel > 107 && nLevel < 120 )
6 Z0 x7 V( |& h7 U. J; C8 c dwTmpSkLevel = 5;' d4 v3 x1 H9 ?! Q3 _7 \* G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 O: R9 X% F& d! W
{
# c! k9 b7 l9 ?% A7 n5 M LPSKILL lpSkill = &(m_aJobSkill);
+ i, i1 w4 l) ? if( lpSkill && lpSkill->dwSkill != NULL_ID )6 d( w4 i9 S- @: O4 b
{* C2 {$ y' W$ D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . j, l3 [, j u! }
if( pSkillProp == NULL )
- ?0 C& j( ^# W t& u' I continue;
5 y' u% E7 J5 w# h% V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 v. }/ E- h/ x9 ~ continue;
1 f) B0 Z$ }) f( ^! d7 W5 v* n% L lpSkill->dwLevel = dwTmpSkLevel;
0 Z% U% L k' a' {& w* a( K' u+ p }. _' O$ b. c/ q+ _6 |6 A4 e
}
6 s3 s* O/ @/ G+ f: ?( q' v }
0 s1 z. }! ^: J( u( X g else if(IsHero())
4 P( d" \. d l$ S3 t {4 p- U+ K+ a% Z! E2 Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) v6 j$ i- V4 ^$ {2 R { , K) R0 m! e! V% H9 s$ t* U/ Y
LPSKILL lpSkill = &(m_aJobSkill);
" m, m( p5 g4 f: f0 V2 j8 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 I$ Q# \/ t8 S7 W3 E4 Z0 ], z) _ {
6 r+ s# y5 f: u* U9 e1 h5 V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * ^* h- H0 ~7 ~/ z. z( n& O5 g
if( pSkillProp == NULL )/ P/ y p# }- ]
continue;
. l/ [8 N+ l! X# r* n; e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* D% g. j$ b! v. q$ A9 P continue;
( n" J+ I3 `- b/ v" @3 g2 Y* H, G lpSkill->dwLevel = 5;/ }, Y" G5 Z& P7 C1 r0 A: g
}
o+ X7 X) z# |0 s }2 G& h: j7 R; r. @
}
; I. K" W+ x( m& e. o+ l else if(IsLegendHero())+ s' Y$ E- N0 d* {5 q7 g
{
7 c* {# ]' g3 m& \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) # K, C: u/ B3 w& p6 }/ v
{ 0 E- S6 n5 b% `* x/ l, n
LPSKILL lpSkill = &(m_aJobSkill);
! `( Y% u/ W7 P2 z! _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
* Y, m8 h% X H8 n- S {' Y% {2 [. e- x+ x' h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* L/ v" G; U: F if( pSkillProp == NULL ), a# w- E' I7 t9 T
continue;
; Z! \6 A% c: [8 n; Z$ l! v7 f: _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, r1 h2 Q9 n1 ]: z continue;. f" k7 D: j) Z! x
lpSkill->dwLevel = 5;
1 x ]7 T: n+ ^& C5 F }6 c$ ~! p& z& j
}
n: @, v; E" D& {' _+ W. n: R }
5 g& h1 P) S" O. L( v' v$ w _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; [/ C6 `; ^4 T' {( Y7 i if( bGamma )
/ q1 p4 K' j. \3 ]5 ~* y {- r$ u' @& G7 a& R( \+ n8 e+ @
m_nExp1 = 0;
1 ?! @" y) H; q" x O }& x! f6 P& R! M4 M2 z2 h. c
7 o% x# }' d; V* C6 i5 s
( (CUser*)this )->AddSetChangeJob( nJob );
/ g6 [ a; S! J2 [- P2 j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) Q j/ M$ w( }$ j
' g* W$ }, ~; Y6 n9 f9 ^
9 K% u; D+ b: ]2 s#if __VER >= 11 // __SYS_PLAYER_DATA
& r" r# i* M: l+ ~5 x g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# k) i$ M1 A1 E#else // __SYS_PLAYER_DATA
/ H" E: p& y5 ?, G- T* Q$ c: V2 t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" G/ y9 q N! j& Y9 u( [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 J' L8 t- ?0 Q6 W! r if( m_idGuild != 0 ) G3 V \5 m% M' N& m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 q% @" _. C! p- F) I# }: R: g
#endif // __SYS_PLAYER_DATA
+ L' h3 c8 p5 w" V) A2 ~2 I SetHitPoint( GetMaxHitPoint() ); Q0 y0 P4 s2 h
SetManaPoint( GetMaxManaPoint() );0 o: R5 j* {4 r) ~7 {+ ?$ d
SetFatiguePoint( GetMaxFatiguePoint() );
: ]% F" p$ K# n if( nJob >= 1 && nJob <= 4 )% n! P$ b( l" @7 F, D; c
{
& E$ G/ ~- }3 z: |* q8 t m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 h8 n8 x5 x! U+ _( _9 e m_nRemainGP = 28;
: a& G( Y- I% L% Q4 p' [ }, [2 L( v' x7 t! y$ K) v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 G; W! I, a6 _3 \& t
{5 }3 c. k) F I. n
m_nRemainGP = 118;
: D7 ^( d3 V1 [7 X //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: @1 D* P: S' [1 C u/ b
m_nStr = m_nSta = m_nDex = m_nInt = 15;: X) w1 O+ ]: T, }
}% p. O( H% O" |5 x! _# |+ n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 ]+ V4 Q- h% G m, z$ A4 L" O4 F {8 T) J4 E- [( O8 y/ B* d
CItemElem itemelem;
. ?2 i1 \; B) R* V5 @2 _ itemelem.m_nItemNum = 1;( h5 q, V* P/ K
itemelem.m_bCharged = TRUE;" \: y/ \7 H3 ?; a3 w, @7 L
BYTE nID;! X1 @6 d8 M3 @$ V c* U X
' d- [' Y! W$ l6 L# `
if( nJob == JOB_MENTALIST_HERO )
: R! [2 n! i5 H3 J% h1 P# x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ Z# ]; c5 P5 Q" _2 f if( nJob == JOB_FORCEMASTER_HERO )
3 G* ]0 |' {7 C' m2 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 l3 ?& u! b3 T4 U3 s$ R# b, x0 r$ K1 g6 ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 \9 [; [- w8 T6 V$ e% o; L. r/ z
}
/ B! m; c1 z% k3 i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 e j6 ~0 E5 M- Z9 ?
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 d0 ]" T( y$ b) w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 `0 Y' x+ V2 T( j [( k1 E' y: x
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. G7 j: X9 d2 ^( Z ( (CUser*)this )->AddTaskBar();*/
) v. L; c A- g' ~+ Q9 { ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& K- P0 ?% G# B#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 t% l- i0 h8 w- |2 D# k: M8 [' A
((CUser*)this)->CheckHonorStat();1 d) ], F2 {; X
((CUser*)this)->AddHonorListAck();
- e, e) B; d' q' H* z) v g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 L( }2 Z: X( J#endif // __HONORABLE_TITLE // ′Tà?: D: Z# _% _; K8 ^
}# G& g4 a9 N2 F1 X
#endif // __WORLDSERVER
8 {2 M( A2 s! k0 T}
* y( L. T+ ^5 C( }4 I; G
V% f1 R9 O6 M9 F" _然后你进入functextcmd.cpp并添加以下
# ?% b) @3 Z/ ? b, p
" G8 x9 V( @ p* V代码:
+ p" h/ s. u) `1 e: T; O9 h5 `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, `* g6 d* z5 K6 C$ \. l下面插入& {6 {6 V/ X' i5 U1 g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; ^' t; E0 F& B4 f3 I$ K6 U8 m8 P
) B1 K5 ?# A3 _2 q! D3 A然后你去
: e5 d2 R8 J- a: z; h+ N8 C. d9 u1 T0 l' @( N5 B6 y6 p" L
代码:. t* ]" b' {" \9 q/ q' }
代码/ \3 `$ G% K" ~: H( d
BOOL TextCmd_ClearPropose( CScanner & s )
5 l; `4 L/ V d9 s# L, W{+ k- F* O) }" x/ c! E$ y
#ifdef __WORLDSERVER
8 k# P0 v A+ ]6 o+ N7 k" B CUser* pUser = (CUser*)s.dwValue;
+ \, F! N5 }& ^ g_dpDBClient.SendClearPropose();5 u, n' `" o e& w
#endif // __WORLDSERVER
3 @& a6 n2 `# ~ return TRUE;& a7 M0 [' Y; ~9 ^! M: l: L1 g
}! U5 K# ]1 Z6 }+ V) v5 T" a
下面插入
7 e2 @4 L8 m1 T: xBOOL TextCmd_rebirth( CScanner& scanner ): \( U" w6 `" [" y r7 ]. E" g
{
, B. e( R) V: h5 n7 ^: K0 N#ifdef __WORLDSERVER8 Z* X2 h% j0 _1 ]/ C! I \9 S
CUser *pUser;
* `8 O/ r! w* h, m" L2 @, ^pUser = (CUser*)scanner.dwValue;
0 [4 b; T( I0 g1 _if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& D0 F* A V7 U" j' r" QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" x5 [5 W3 L& ^ k, j) j+ C
else
/ c1 i9 ?: g7 x7 w: FpUser->AddText("你还未达到重生条件!");, w+ X& y" x0 L% f+ ^0 V
#endif5 x0 X5 D& p" V9 ^. }1 ^- J+ j
return TRUE;
- t7 _6 z4 G, E0 Y+ o$ p8 }}
& \* p" @9 h- L* K$ H+ D: T+ u4 y/ d! k# A
3 M4 Q$ h2 K. L' R1 D8 a, @" O& t2 F. ~6 v- G$ K0 a% i8 p& U8 M; d" p1 m( h
( h: M& z. k/ T [% p X
|
|