|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 ~, p5 H" i. |
: |6 a2 ^5 v, n1 ]/ IMover.h
& Z# m6 W0 C1 Z7 @5 F代码:7 K! X" j- ]% Q* B6 S0 j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ f N( p6 p3 ]& O p4 v; j8 `; v0 ~' i3 N; N3 q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " N& P1 C* ~+ ^. H+ d$ G
7 i4 \8 S+ W0 x然后你去mover.cpp添加
& E5 i" h5 b% B1 y, ~3 A* J
. m' a _+ }7 m* {6 m# w代码:
6 ?0 b Q: |3 c: o7 M% `8 Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); Z5 ?; x/ I! i& f6 V
{9 V& p% l2 n" U2 z v
#ifdef __WORLDSERVER
/ Q$ p) R! j! l9 A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% ^8 A* @, C6 p% d7 x5 Y- n MoverProp* pProp = GetProp();
/ d5 R: [- l& y! r' c4 h if( pProp )
* q& ~! P3 v2 [( p5 ` {- e) I! b0 l& U8 ~' p1 ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) h' d8 `3 ]& ~/ V( ? S. ~* _ {
9 j5 L: k- g' L% h/ S6 W3 R' x AddChangeJob( nJob );
! L' j" b. j' s7 w2 P }else{
, g1 O; ]- y, b! ?6 s% } return;" S2 |: U; i/ L+ B; w
}
& `: M! Y# ~7 r' Q; O& p int nPoint = 0;
2 ]& x; ]8 e/ M" g% N1 b3 y" c if( m_nJob == JOB_MERCENARY )8 J5 W/ O. `1 f, [7 |3 |/ }
nPoint += 40;+ o, X7 _ A R; X0 y7 b
else if( m_nJob == JOB_ACROBAT )7 D+ _1 h# [! B: {+ V6 p8 h7 a" y
nPoint += 50;
% y ?( I* ` M; e else if( m_nJob == JOB_ASSIST )
; y4 ~- u0 a, V8 G9 h+ p w' p ^ nPoint += 60;
6 A0 }. m2 X1 Y( ` else if( m_nJob == JOB_MAGICIAN )
8 c! ?4 s- Z/ Q' f# q# V nPoint += 90;
! l: J- J( f! L( z; `; G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
`$ a4 }: p7 ?: {; Q* ]6 t; I nPoint += 120;
" K% j3 |) g. |5 K) H( d7 ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 ?6 C& q- i1 j9 o0 `
nPoint += 150;* ]# ]; f1 R$ ]9 M* I# Q
else if( m_nJob == JOB_RINGMASTER )
; f. Q; G2 t2 f/ } q0 w. f% ^ nPoint += 160;5 @! g+ g$ \, a* T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' b( c2 V8 o; A
nPoint += 180;5 a: _& L0 I3 a! K& q: w4 i
else if( m_nJob == JOB_ELEMENTOR )
- {, i2 a+ e4 v6 M nPoint += 390;
( K5 }' O- q. e0 l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ J, X$ u. ^# [# S! Z nPoint += 120;0 g6 E; q/ o1 Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 M5 v9 n8 n) L' \" q9 O( G nPoint += 150;
% o# ^& Y; i% G6 o( J else if( nJob == JOB_FLORIST_HERO )2 t" q! h& Q" U
nPoint += 160;* K' Y! ?9 t% ^+ b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 j* v( c$ R4 B- j& r. _) h
nPoint += 180;
3 K1 ~7 p* G8 m9 p( h9 [6 R else if( nJob == JOB_ELEMENTORLORD_HERO )2 P! F2 T2 v* t `, f$ W
nPoint += 390;3 z6 U+ K/ d' e3 u
$ E9 e9 l8 a) ~4 n) V9 \ AddSkillPoint( nPoint );4 B1 t; E3 _, ~
m_nLevel = nLevel;
& {: M# o5 {# c) Q: i% `
5 T& ?( Q" q" x% V: X SetJobLevel( nLevel, nJob );9 s: r4 m! Y- f; {6 z9 u
m_nDeathLevel = nLevel;) H. O: b9 R7 q0 }2 f4 {! |4 a' B
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, y/ P% T. X( M6 h, _# q" `% L( j+ E if(IsMaster())/ V+ ^6 @9 f2 c5 p ?
{0 o. ~) a- w- q" G' w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ G/ l1 {! c( V$ S7 x if( nLevel > 59 && nLevel < 72 )
: n! i: S5 q6 m/ N1 z' ~ dwTmpSkLevel = 1; U2 g9 v9 K8 n
else if( nLevel > 71 && nLevel < 84 )
8 l; |& c' d; m `! H2 s" J dwTmpSkLevel = 2;3 n/ e* p( H2 a( a
else if( nLevel > 83 && nLevel < 96 )
, c3 X4 t1 d) l2 B5 L5 O5 O dwTmpSkLevel = 3;- e4 c9 R, [6 n' L" P/ e( l2 r6 @
else if( nLevel > 95 && nLevel < 108 )9 i; M, C; {$ W6 `# r4 ^7 n' R4 ^
dwTmpSkLevel = 4;
5 C4 p6 H- |. a }+ {" s6 F8 t) l else if( nLevel > 107 && nLevel < 120 )8 L: G; J8 `# |4 b
dwTmpSkLevel = 5;
4 h+ {7 r' l' o4 ~! `2 @3 B2 w for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; g% S R# S+ `
{
0 @/ G0 I! O7 L# \6 j, N LPSKILL lpSkill = &(m_aJobSkill);
1 |1 R9 Y% T# z* o/ j% a3 u if( lpSkill && lpSkill->dwSkill != NULL_ID )
% L# Y& g+ u( \) Z9 m% h {
8 z- X4 T t, E2 w/ Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % v4 B, \! g! x$ j& ~
if( pSkillProp == NULL )
* [8 ]; X# A) s! G* `0 J8 n7 e" u" \ continue;
, O8 o4 ?: r% f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 f' T5 \( Y6 {# [2 O: \ continue;
3 ?/ ^5 u2 N' h, Z8 k lpSkill->dwLevel = dwTmpSkLevel;
: p: p* b% B, o. b }6 U7 P2 k5 g1 X+ q0 Q
}
( q8 b9 ~! t! P6 O3 p, h6 t }
N- I0 p) Z) Y else if(IsHero())
' t! v. W. d3 g6 A/ I {
1 V/ F) {' H/ A# T1 O9 U8 b for( int i = 0; i < MAX_SKILL_JOB; i++ )
) c' `# L, P/ J( P& ?! z" i {
9 f2 ~2 y. u7 {/ h/ Z$ d9 e LPSKILL lpSkill = &(m_aJobSkill);0 v2 U; P2 f1 W' N t- s% R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% n0 ?' i2 }/ x3 Z4 x* | {; P* d. l, `) G F& F8 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 a# x# W3 Z( B4 z. W if( pSkillProp == NULL ). n( H. U: w+ J5 Y# ^: d5 e
continue;5 c l% M! F* t& g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( x% t* v% K e4 L
continue;. y( @$ o8 B: S/ e" I* G, ^
lpSkill->dwLevel = 5;+ R- W5 B2 K" Q2 { L3 c& H
}7 G2 C5 Q" x$ h0 W0 V" y f9 V
}5 p2 F3 o4 e' l( ~/ x8 E/ X, ]
}
+ p3 E5 x2 V* W8 B: N else if(IsLegendHero())8 C) l q! _* R3 N( _
{
. S' |) A; U3 c& s) n6 M for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) n; Q( a8 U7 d* c+ |0 J/ ]; P
{
; u8 m3 t4 `) D LPSKILL lpSkill = &(m_aJobSkill);
- a( J/ r* A7 M3 X1 j2 F if( lpSkill && lpSkill->dwSkill != NULL_ID )
- q7 q5 h# @) b; T; h/ M. ? {
; l: O! y) ~3 W/ ?# d) u3 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ P2 m& T, I/ b% d W
if( pSkillProp == NULL )
+ u- r7 d( z- q- d continue;1 x- ~ u& k$ G1 V3 P" b; s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
Y, R/ h6 R) v% y continue;! R' E7 e7 e) Z& N. f
lpSkill->dwLevel = 5;
1 m# C5 I- p4 ^; Y }
1 _3 F1 t7 l% C9 _9 l( L }% k8 O+ w) D& }+ \# v2 j
}
+ u& {8 d% B7 N) h& x5 p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' x7 H+ t: U8 V N0 W4 e% m$ c if( bGamma )
. w9 L- J* l2 d! U8 P" ? {
+ }+ K& H1 ?6 ?9 X/ q; y/ Z6 G m_nExp1 = 0;- S# H" z* p- X6 ~
}+ s" E8 J, K. e# z; w0 E v& T6 Q
/ m+ R$ l8 w6 w: p: f. g
( (CUser*)this )->AddSetChangeJob( nJob );* L4 z( a9 M# N+ {0 J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- M# I( i2 I& z) z+ i/ u6 P: F% N9 `) V% {
+ O8 W) t# l" A, N
#if __VER >= 11 // __SYS_PLAYER_DATA
5 T) ]- n+ t" k; F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 j+ | [. K* ^( `. n7 ~
#else // __SYS_PLAYER_DATA
8 k0 x+ h2 ^. o u: }/ O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 M/ |: }6 H" x( o g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 b# W$ [' g2 n6 z. a
if( m_idGuild != 0 )' H1 z* E- G8 t3 \" O# V v f
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; v' k4 Z5 c A$ v* A2 m& G
#endif // __SYS_PLAYER_DATA
4 E8 t. `0 B; L! w SetHitPoint( GetMaxHitPoint() );" V2 N- Q0 z" B. F: d2 f2 T
SetManaPoint( GetMaxManaPoint() );
& l' H1 E' N6 U- i2 V; r SetFatiguePoint( GetMaxFatiguePoint() );
8 q- p+ N' U& W# m if( nJob >= 1 && nJob <= 4 )
4 ~7 G6 a( _$ H# w# u {- @5 n- W" X& J' y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. J, R9 B; j0 h$ ^- |; a ?1 v9 t m_nRemainGP = 28;
$ }2 K( e! A9 r6 S } q) z: o) P. u8 `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ B0 _4 ?4 u6 U
{
+ G; D# b; { r$ L3 I7 K7 q1 f% u8 N m_nRemainGP = 118;/ S- p0 Q% @6 K( y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* |2 s& B$ Q7 w9 s* K0 z m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 Y8 D# j' R$ l# G% z+ z) N }
1 g, b. K1 f# t" T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 ^$ }+ p" z# E
{5 r. `( E; r& Z, g
CItemElem itemelem;
3 D6 q/ t% a) c1 K# f a5 t itemelem.m_nItemNum = 1; x0 `5 T o+ j
itemelem.m_bCharged = TRUE;
3 \( ^) Z0 {8 [7 v$ F BYTE nID;8 v) ? W/ l: R* v# z
+ {0 @6 |0 p# N9 o1 v1 ^8 W! P
if( nJob == JOB_MENTALIST_HERO )# G' {0 G4 P7 V6 q: U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# ?, W% H7 ~6 Q P/ d6 [4 Y% j if( nJob == JOB_FORCEMASTER_HERO )
9 s) [/ r% [5 I" T0 h* U) I4 n$ ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% }& s4 q- p; `6 K, N4 k: ]) {5 N' G2 I' l- K* K$ f
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& j a) Z/ @% c$ ? }
9 z5 s4 Z4 R! b: `, S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( Z( x6 O0 Y( O9 {! t, t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, b. x" A4 r2 v4 u( r7 b# F5 c/ A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' [# I( o) z3 R5 [8 A& r7 O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' D4 n' X# t8 Y! b5 l2 I0 X: G; z
( (CUser*)this )->AddTaskBar();*/! ^ ^* J' b6 i& u5 A! h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( {% F G; o8 d9 U, f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* [3 m `3 R" a& t3 c4 h+ N4 E ((CUser*)this)->CheckHonorStat();
4 ?* d/ |+ G; z$ ] ((CUser*)this)->AddHonorListAck();
, ~$ y+ m" E$ l9 o% T g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 y( h) i% e2 E2 i: N#endif // __HONORABLE_TITLE // ′Tà?
2 _ S. u# s& |* z" w1 m3 Y }
4 M/ s" E* p7 Y0 C$ C#endif // __WORLDSERVER
( `" e( ?4 s; e4 j- D. j! R} - B, j1 s u( C$ s1 V* x: h
) _0 y' @/ ?3 U& A, p
然后你进入functextcmd.cpp并添加以下4 u* p2 n) Q. R* X) ?3 d, P6 p
4 a2 Q! H3 C% {6 l* [# a8 _代码:. B+ H! N- P' f% G3 N4 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- T" G5 |6 `( v# T7 r4 r& U
下面插入
6 i5 y: ]- w T1 {2 K. KON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * U1 d- ?, N3 d5 U8 H R% r7 g
9 n# N0 o5 R: u) B L然后你去
% n1 L! a2 B: J" ^3 v+ y
6 m' p2 E$ t7 r代码:" E# r) c3 l; s. W" M% j
代码
P2 l; G& l' vBOOL TextCmd_ClearPropose( CScanner & s )
" K: T* Y- q+ `% t0 Q( y{
; L' M( K K- ]% o$ }#ifdef __WORLDSERVER
6 K$ G9 f, \7 X" B* [ CUser* pUser = (CUser*)s.dwValue; y4 G+ U- O5 i% B1 }$ a" M. \
g_dpDBClient.SendClearPropose();
! n* Q b9 V& m& I3 ~0 F" j1 T#endif // __WORLDSERVER
6 A* q* ]8 q% e4 E- H" w return TRUE;- G# T6 f3 Q& C- P
}' D1 A% o# D# y3 \9 O
下面插入8 ^8 m1 B" f; E# b$ d/ Y. O
BOOL TextCmd_rebirth( CScanner& scanner )
5 O9 |9 R! D% J9 c- t{
6 ^" W9 p' U- s! a$ Z3 ^& ]6 `( ]#ifdef __WORLDSERVER1 _0 {; {/ l' B% A' P$ b. q
CUser *pUser;
" B" w e& [$ ^3 O& m; PpUser = (CUser*)scanner.dwValue;; D, P& f$ Z, s% X" c9 c& p" a
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! J# T8 \6 Y$ t* {* tpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 p5 B% V' p3 b5 g" K; _5 Q
else
7 V7 u; s2 J. w9 n% D2 I: l3 v6 hpUser->AddText("你还未达到重生条件!");
6 G; G' D- w( |! `5 u! ~#endif# J6 f$ @% S2 D$ |; p# c
return TRUE;+ k- d$ W) L, l7 e4 d
} 9 O/ P" n8 _. ^" y# l2 d
" M2 g, U% P3 ~
8 [. D0 p6 d0 a6 K5 S0 `0 [/ U% Q. Q. P
* j: [* b/ m* I' @ r |
|