|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 G9 Z1 _- E! N1 T1 s- f* g! W8 { f0 ~
Mover.h
% ~! y% Q/ u( c3 T' q代码:
1 u5 O6 J0 s0 E6 A4 E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; k) s% Y7 ^1 q% v( v* n4 d+ o' X! a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ R( T1 A$ g, I0 [2 a2 Q
$ b# n1 |; W4 F! X6 p# n7 x6 [然后你去mover.cpp添加
$ q' n2 |6 o& I; p1 ]$ j" w) X
, H. h/ v3 i* e$ Q4 ~代码:2 Y5 M1 Y7 V) C) x, t L9 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 k6 R# p2 x5 p$ b! z$ `, K; i
{
+ H$ y3 J( k% F: ^#ifdef __WORLDSERVER
2 ^4 d, r" [7 b& `: G // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ V' i8 w7 p" D
MoverProp* pProp = GetProp();
; K6 i* S' ^8 x- s/ h! V' K if( pProp )$ S" y. g. J) }2 R" v+ p8 \
{- {; t' d; e7 B2 A
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& L: P% `1 @8 b& K
{
% K X7 {+ t/ s, ?( R5 T, O( W AddChangeJob( nJob );6 D9 @/ N/ ~+ k
}else{
( f E+ O9 `/ b8 {0 a return;; `6 u F7 H. [6 i# o ^
}
; ^; q8 q; y, R1 c0 O int nPoint = 0;
! O* G) U$ X7 n% Y if( m_nJob == JOB_MERCENARY )
/ D* m/ t% K; G' n- y( p nPoint += 40;
# h' C& ?& u2 s0 h3 \ else if( m_nJob == JOB_ACROBAT )
( X6 `% j5 J0 ?( }" d nPoint += 50;3 Y; }, p# v0 ~
else if( m_nJob == JOB_ASSIST )
5 [* G3 T. P5 k" V2 p nPoint += 60;
9 S% h+ Q2 M) |3 K else if( m_nJob == JOB_MAGICIAN ); ]+ g% e; F. K- W
nPoint += 90;
8 @: ^- A7 j# S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); {4 A* b! U: G# r1 o F% I
nPoint += 120;2 v) A7 S% I" m
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 p# {8 W" V9 B! V7 v f" p nPoint += 150;" a8 t6 a/ L8 D. g9 e, ^! c6 z6 s" y
else if( m_nJob == JOB_RINGMASTER )
$ |) u5 S2 U/ ^/ t( C8 C/ F nPoint += 160;+ b3 c; n/ t- [3 i/ y9 i' Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) y" f) H J" G0 x0 m2 ^
nPoint += 180;. i6 ^; d* d! B2 b; z- P
else if( m_nJob == JOB_ELEMENTOR )
$ W- O3 m8 }0 z3 j- D8 e9 o3 ~ nPoint += 390;
( w( D. \/ m/ N' N5 E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. p+ s0 k) L# n2 P. h nPoint += 120;# O/ z& j/ ^' {( [+ Q+ a5 Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), a8 Y9 H* b0 J: d2 ?" O
nPoint += 150;! t* N, q- k) @1 L, V8 P. f
else if( nJob == JOB_FLORIST_HERO ), L: ~+ D) O% U" X7 h
nPoint += 160;
2 h1 f# m- }. ]& h) k9 J4 ^# [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 k! d+ Q4 Y: {. U- K. _: T nPoint += 180;% k5 i$ R: x1 E N% s, E( C
else if( nJob == JOB_ELEMENTORLORD_HERO )
( \9 k. a/ T* P: `) J! @( e. Y9 D nPoint += 390;* ^/ a6 j7 P3 e7 f
' j( e# `3 k* v( c0 T5 E6 f- D) x AddSkillPoint( nPoint );, P+ H0 H7 b8 N' D8 x) `: O
m_nLevel = nLevel;
0 b, d0 m$ r3 I" C4 y$ Y
$ F, F% x; w r SetJobLevel( nLevel, nJob );% U: b3 {8 A- I5 c
m_nDeathLevel = nLevel;" O2 r- g# d) a5 e& g( C( w+ }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ s) d1 P* k8 r; u% Y/ ? if(IsMaster())
) U: J$ `2 ~" r$ V# w {
0 |* N, P$ k) O L" k' @6 y u, @ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: Y/ s" C6 J6 N if( nLevel > 59 && nLevel < 72 )
* Y$ V; M+ C- E) _ dwTmpSkLevel = 1;
! p8 s# q- V, h3 T6 v! h; F else if( nLevel > 71 && nLevel < 84 )! d% `" n- w1 v, a
dwTmpSkLevel = 2;9 B c0 a0 ?2 _# x, Q! ]* A7 n! u; c
else if( nLevel > 83 && nLevel < 96 )
; ^" L1 Q/ m X. f$ u; @# N# I. d9 a* o8 X dwTmpSkLevel = 3;; k. n1 ]# _4 r) U0 B1 v6 T, _
else if( nLevel > 95 && nLevel < 108 )7 ^0 g) V0 N% s5 U/ j
dwTmpSkLevel = 4;6 I* D0 m4 W, g1 ~; j; b3 u
else if( nLevel > 107 && nLevel < 120 )
6 \/ p$ q( I) B$ t4 C dwTmpSkLevel = 5;
, t$ U4 L$ S. Q2 g$ a: ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
# [2 w1 r- B6 n3 c { / X. d0 `4 n" x+ e1 U, R) z
LPSKILL lpSkill = &(m_aJobSkill);
, p; M- @4 c) {% D |/ A2 r b+ \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
. K7 T8 w+ A/ S- G5 p* h {9 n" F( y5 J* ?* x% N, L% ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) j! F {/ B8 U, }6 O if( pSkillProp == NULL )7 W- d) O5 F3 a8 l9 Z
continue;
9 _0 @) I' E) I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# V3 V' D! P( X( R1 T continue;
- g* Y* t) r j" ?+ a* Q% Q0 t lpSkill->dwLevel = dwTmpSkLevel;# v' `. \- f6 l% `
}1 o5 H8 ^; M) H- A
}
9 \; o; i5 ^9 \( |1 s: c+ K }
) i" Q1 h0 k( }; I& L, z8 G else if(IsHero())
" n( M! y$ D' a' D/ t& \ {
, z- m& _2 b8 R' n- P for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 Y: Z' Y8 Q7 S; Q' ]- x& R; u% n {
: Y( @( u8 c8 M' [% [- l1 Y' ~1 q2 N9 ^8 Z LPSKILL lpSkill = &(m_aJobSkill);
, x+ i5 V0 J3 D" M if( lpSkill && lpSkill->dwSkill != NULL_ID )
& {+ H! o1 m$ `! t, z {' z T4 p" K* P0 i( J+ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 u! A+ r, y, ~- \4 k9 t
if( pSkillProp == NULL )
! p: T# q$ Q" B& f6 L! w continue;1 r5 D% c% u Q" R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! ]1 E B* x- J: s1 J' \" C1 }( F
continue;
! P4 k. }' z* i+ H/ Q) n$ ] lpSkill->dwLevel = 5;
+ N/ [8 P; A) o ]1 w }! Z: y$ Y2 o6 l' \
}
1 L' G E. \4 E( a8 |6 D* ? ` }
( D5 H. t! ?) b else if(IsLegendHero())
/ R9 Z+ q3 A5 h5 I% x$ g: _ {
3 J, @. E$ A, R6 C/ i4 q7 N for( int i = 0; i < MAX_SKILL_JOB; i++ )
' [# |4 M8 |! t8 u& _ {
. ]# y. `, y5 w8 s* y3 M! b LPSKILL lpSkill = &(m_aJobSkill);
; K, w. ~9 T$ {" B8 \6 J6 |1 U if( lpSkill && lpSkill->dwSkill != NULL_ID )" o; Q/ C+ ?" t
{$ Z$ w" ^2 W" Y, y: A1 z/ [# G4 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 W. k4 L( U& k0 j8 F if( pSkillProp == NULL )
: Q( S+ e F2 f$ l continue;
( ^# L! G7 ~. p7 l2 o/ _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' N& `8 `- e- B- F$ u* Y) x) y
continue;! b q0 k! w& J
lpSkill->dwLevel = 5;- F9 v/ O% Z3 Y8 ~# ^
}* A/ `5 ?6 ?0 t- e! L5 V
}
0 k7 S! @- W3 l' V) e; \" U" c) e( s }6 _0 W! ~% m# q1 K3 I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 a# N r/ n' R R. M% R
if( bGamma )+ D6 j! }8 F5 K
{/ R4 H. @0 r) Q+ E* o& b; d- H* K
m_nExp1 = 0;& W6 H3 j9 ]+ B" v1 U E
}6 t `% @" T9 P q; x0 s3 P
# {3 `7 L# p }3 c. u
( (CUser*)this )->AddSetChangeJob( nJob );; t& P+ Y5 ^* S# @/ V! W& k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ X* r8 e. v6 A# U% _! |
6 d" m( R) D, n4 I1 Z
, f+ B4 `8 Y N' [
#if __VER >= 11 // __SYS_PLAYER_DATA
8 x+ S3 |9 @. [- g, U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 f* G- e: ]$ m/ [. Q6 M
#else // __SYS_PLAYER_DATA6 g9 J$ c9 h8 J& ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 _( N ^1 Q& a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# Z" b: g6 r8 n7 [& O
if( m_idGuild != 0 )
" a! U/ n* i! l' O F/ g& P* F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 t2 Z# m4 g& x2 Z* [#endif // __SYS_PLAYER_DATA
& f4 }7 T, }2 G- i3 G1 ?* Q SetHitPoint( GetMaxHitPoint() );
. {6 F q: h E* e5 h SetManaPoint( GetMaxManaPoint() );
: p8 v/ y- M6 e1 T0 L' x. i, U. Q4 z SetFatiguePoint( GetMaxFatiguePoint() );* M7 n) Q/ q8 W9 p4 w4 Z- h, V
if( nJob >= 1 && nJob <= 4 )
9 B$ e4 B4 |: Y% Z" t6 { {
: n& D" |, V$ I" J3 b m_nStr = m_nSta = m_nDex = m_nInt = 15;. y0 R( M4 C7 {1 ^7 {8 d7 W/ }; ]+ L
m_nRemainGP = 28;* }* d6 c+ G0 w' P
}
2 }: y: ]' `% ~4 j9 r8 K7 o2 J! O9 c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 K) m2 ~8 U6 R8 U J
{) L; O3 c3 V" M' f; Z& q/ S( T' \
m_nRemainGP = 118;: p! _5 i' F- m. K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& S" n1 N- @, E% G
m_nStr = m_nSta = m_nDex = m_nInt = 15;& A9 i; O3 C+ E( R' l: K) C
}6 V/ G [" k3 Z! M' _
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# A( a3 v9 i; O2 d( @ {6 j2 p, `" _) y
CItemElem itemelem;
1 ~. |/ }4 H; L) P! S itemelem.m_nItemNum = 1;
( N* S2 c6 b: n2 Q& u itemelem.m_bCharged = TRUE;
/ |3 e+ i1 c5 l3 k BYTE nID;( E& Z n! j2 V }6 e
+ e/ P; g. b: ~$ M2 o0 ` if( nJob == JOB_MENTALIST_HERO )
3 T% l# ?) N& N6 ~$ D* Y, o% T, P itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% n* S: x7 t9 d7 A! E
if( nJob == JOB_FORCEMASTER_HERO )
+ W$ r8 c" ^4 K/ l/ |3 K itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. b, ~: O: G. O3 V! o/ U& i
' k, S7 v; u: u: l3 O ( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 b2 W& U) X; J% z7 c. R }# q# {% i1 t* }) [6 S! P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! S' A+ o* E' ^! N) F9 E
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 l2 Q6 ?/ u# y, i6 P0 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ g- q$ n9 d+ F0 i/ o. }
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( H9 X/ t4 `* `/ a8 e8 I
( (CUser*)this )->AddTaskBar();*/
( x& H& W$ ?* f4 b. @ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( X: L; D0 |. \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 X+ S8 f3 i# h5 X# `4 H( |, o
((CUser*)this)->CheckHonorStat();
0 a$ o$ q% D# c& D; }! { ((CUser*)this)->AddHonorListAck();
3 I, @$ G$ i! x0 g g_UserMng.AddHonorTitleChange( this, m_nHonor);/ |9 h: Y: `1 F
#endif // __HONORABLE_TITLE // ′Tà?* B2 X/ A) a# |, k) ^! b
}
) v$ ~. X6 a2 d8 Q#endif // __WORLDSERVER
9 M& j2 l& ?/ p; i1 u} + `9 U7 A# ^; L+ V( a2 l
$ @5 T" H) B' g# D1 C
然后你进入functextcmd.cpp并添加以下
/ N/ ^+ U0 e+ u% k6 {+ }
}0 E! X* ]* [代码:) i( I/ x: g: a0 X3 X. |( S% f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 a1 U* r8 X* ]2 K5 Z
下面插入
; A, c+ W: p5 ]1 b3 R/ UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 h z) h2 D0 h* a
. X/ ?" J9 u6 X% r. m5 z k然后你去/ I& R, C8 ?4 R
( }% H' t2 Q5 I& I
代码:
& T+ L6 {9 [4 j4 `2 C代码
" A3 k5 |1 V: Q: z/ l+ B: J: gBOOL TextCmd_ClearPropose( CScanner & s )) ?6 ^- f, R& U# I
{4 ]5 x/ ]. Z& ]$ R% }4 ~$ q
#ifdef __WORLDSERVER
6 f R( p) F1 i7 e CUser* pUser = (CUser*)s.dwValue;' B; O: O+ m- r, v% \: V& H
g_dpDBClient.SendClearPropose();3 U0 u* { B/ Y, n3 v
#endif // __WORLDSERVER
. I4 d1 t: u+ w( A5 V$ \ return TRUE;
! ], {: ~- q$ ^" E}- J4 H9 x, a& X; \5 e
下面插入
5 e Q$ W" Z- Z7 K! b# c3 P7 CBOOL TextCmd_rebirth( CScanner& scanner )1 ^* a& y. _1 B) H; I& o
{, K* _( z0 L/ i( Z) [. h
#ifdef __WORLDSERVER; t. l4 w) |$ u) V
CUser *pUser;4 x6 | |2 F3 y; _! A3 u% U8 M6 m- f
pUser = (CUser*)scanner.dwValue;
" W1 A2 U5 F' l, G, f' |, U% jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# w* Y7 S9 p/ c. ?. O4 B: opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ W( W# ?* d- g7 u
else
) B/ }' M% j% b: n) C1 `pUser->AddText("你还未达到重生条件!");& L* K: A0 `+ Y+ |% f( G
#endif* ~# B5 L6 P y" n. z0 A' C
return TRUE;2 x0 J) S- Y+ T
} 7 b: ?8 W2 e* f. U# p. X; z
* p" H2 j- G0 V, I
2 S7 C0 r5 z- `4 J$ f" z4 H
|4 b% N- i& P* n! m: j4 S7 l
7 {- O+ T" m; Z# F3 |" |
|
|