|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( W% {- {! {/ F) ?9 M7 V2 b
( R& v: Z5 r& c$ u2 cMover.h
+ b3 Y# e1 w: n" b! S代码:
0 |9 C, J( @( R8 Y3 f' O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. A4 {2 `5 \; J f' w0 n3 h* b1 U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & n( f' m ^3 e% y" V
0 o, c/ [& ~9 d+ |/ Z2 M. ]4 ?9 u1 [
然后你去mover.cpp添加+ S9 Z$ A9 E3 @6 ]2 G
: ~+ p5 N. h( [5 R0 |6 H5 b0 c代码:
6 B6 ] I( |# W( I: A3 evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ S% G2 S/ u, F{
# L5 M& K" ^& d9 v3 T#ifdef __WORLDSERVER* L: T1 c: X {" \/ x% _0 o3 ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% T) X6 `# U6 `6 b- A* p4 r
MoverProp* pProp = GetProp();; y* o0 [% P0 _, h8 `$ P
if( pProp )9 a3 J) n+ O" B+ i
{- ~& F! k' z- j, D2 j
if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 @( M0 x9 r- @8 C, K( ?
{
- t/ L' N4 H/ X% s. F" M AddChangeJob( nJob );# _& y& k& G: j9 Z4 V7 C
}else{
% u6 R2 q3 n/ U0 ]8 P; v% O return;
, i4 Z2 j' T) K( Q' m }% `/ W' y! N/ r6 I& r6 e' ?6 Q
int nPoint = 0;, ^; g- S& s: w X" o# r; L& H
if( m_nJob == JOB_MERCENARY )* w& T% H+ h+ ~ O
nPoint += 40;
' ~$ M) U& o: }) f/ d6 G4 O4 F" n else if( m_nJob == JOB_ACROBAT )
R- ?, t Q, I1 y nPoint += 50;
& U& q4 w# S: s' h- f else if( m_nJob == JOB_ASSIST )
# y0 v6 e4 b8 W0 |* P( j! j0 \/ i nPoint += 60;% o; Y6 F# L' B
else if( m_nJob == JOB_MAGICIAN )) l! d+ U: u' R; V( Y& N
nPoint += 90;4 C6 Q1 W) f% ~! U+ D K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- z. A4 ^/ P, r6 e
nPoint += 120;, U3 A& X1 x/ a; e, ^+ h& s7 J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 |8 \3 A+ K8 \0 J E( i
nPoint += 150;, M2 K1 z8 M5 f1 b, {- Y3 ]: @
else if( m_nJob == JOB_RINGMASTER )
; u! x" d1 `* }0 M% A5 K nPoint += 160;
' c, p A4 W3 L7 q A1 m. ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& `3 Z a+ H. g6 `5 C ]5 X3 H
nPoint += 180;
4 m2 @6 @) C1 Z+ _$ X else if( m_nJob == JOB_ELEMENTOR )
; y7 Y9 n4 D$ P/ D! b- D nPoint += 390;
9 U2 D' r b. ^0 I+ | else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 m% Y% y1 ~) h) u8 e$ o' i
nPoint += 120;- ^9 z' E7 z3 k! V) I+ p5 ^( i9 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 m* o e3 |) ^* K4 o nPoint += 150;' i g: X( d# a$ E
else if( nJob == JOB_FLORIST_HERO )5 @. ]& c* v. o5 k( K q6 X
nPoint += 160;
- b! |: M- @. g) g9 [2 l+ f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), t4 H" S, f- h% ^' P; }: h
nPoint += 180;: ~) s# L4 ~# x/ P P
else if( nJob == JOB_ELEMENTORLORD_HERO )) n0 u1 O/ E& j8 p
nPoint += 390;+ Q0 x; ~5 v% ~7 O) O7 E2 |
. ^$ l# P. ?* T0 I AddSkillPoint( nPoint );. I8 X0 J3 D/ R/ Y7 d
m_nLevel = nLevel;
$ X% K$ E3 K+ P/ t. k6 O# K- g) b2 O5 T4 _* q) |1 ?4 W
SetJobLevel( nLevel, nJob );" c# b9 t7 f5 ~4 m- @; l
m_nDeathLevel = nLevel;
- r0 i+ P# v) W) g4 U#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 r3 p/ i( C8 ~ if(IsMaster())
, n! m0 o+ k: B6 d* H7 d {. x6 O- e8 O* p6 k* @8 u; Z4 P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
E% K0 c) v' q7 T if( nLevel > 59 && nLevel < 72 )7 P; Q# G F6 x r" e4 D
dwTmpSkLevel = 1;! |- y) Z! W& ?( P4 j2 N4 z
else if( nLevel > 71 && nLevel < 84 )
: D5 x- e y$ M, V8 w, S, R dwTmpSkLevel = 2;0 ^ l3 S, m5 l; ^" e' o) F0 P
else if( nLevel > 83 && nLevel < 96 )
1 ~3 X# h$ f i2 V dwTmpSkLevel = 3;
; C' \3 V+ L8 Z& p( L! Z else if( nLevel > 95 && nLevel < 108 )
! [- I$ y& s; @( c( h/ @3 } v dwTmpSkLevel = 4;% y& q" g! N+ {7 O
else if( nLevel > 107 && nLevel < 120 )
& j9 z7 C6 {2 y" A- N0 q dwTmpSkLevel = 5;; W6 M- j p, L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ u( }& O) j6 Y6 A' ]( |" Y { 3 Z+ A: y% ?' Q$ _, q) ~
LPSKILL lpSkill = &(m_aJobSkill);" A1 h, e0 U% w9 i. ^- I$ c" A) N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, B7 o3 Z3 ~* k& Y+ r {
4 o \* z. y3 ~$ u& i; G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ R1 h" ?4 @1 c1 t if( pSkillProp == NULL ), Y$ b1 N. `3 @( @! R( g) n3 _
continue;
3 d9 ?/ G8 U& t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 r% w( p- |2 N. M
continue;6 \$ Y- ]) w# E0 \, J) J+ H: e7 Y
lpSkill->dwLevel = dwTmpSkLevel;
+ j) [* Q0 Z+ w3 j" W1 q }% R$ H* L: B. m! `) y
}
6 f6 }/ C% a& P0 P }2 E( r4 @* _) I5 E: c- M
else if(IsHero())/ `3 s$ o( X( V) B5 S
{
, L3 R9 i" w u# m- x1 L for( int i = 0; i < MAX_SKILL_JOB; i++ )
: Z* X5 g$ P. [/ e7 T5 n {
3 k8 `, c# N6 L5 E LPSKILL lpSkill = &(m_aJobSkill);
# C6 B$ i( ?' J' L8 S; Z if( lpSkill && lpSkill->dwSkill != NULL_ID )- Z4 F( U" K3 D" _
{
+ u/ r" [+ x1 D+ g. A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! v/ ^7 l. V* y) S" ^0 ? if( pSkillProp == NULL )
. R* Y) P/ |3 [ continue;
l" I4 D4 n4 J; n) i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 Q, G" W, l$ S- m continue; x7 Z, G7 p- [7 w5 h- l
lpSkill->dwLevel = 5;
2 W( H; @" F; T' |7 j }
, x0 x2 b) t' q J4 ~ }2 U& [$ B1 k: l, h2 f
}6 F7 H! f' g( R1 k# s
else if(IsLegendHero())1 `" v @' B" r* f0 N, p
{
: F, ^2 q* f, `" c3 k$ `6 G for( int i = 0; i < MAX_SKILL_JOB; i++ ) + Z& n. b0 F% f2 L" C5 I
{
' }; x; G% h: D LPSKILL lpSkill = &(m_aJobSkill);4 J+ T6 y' `% V R
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ M# g# a( ~$ H, ]5 F- S
{7 }: H( X/ y/ B( x! \ d! |. G# I9 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 M, b+ s) b# S
if( pSkillProp == NULL )* q8 e" ^) Y: m. v4 _6 B) [
continue;
% P6 i; ^$ ?& l' Z$ K2 {) G% ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# F: C% W" w9 f- D5 v8 f8 F- s6 u
continue;
2 H7 B, Y, n3 J lpSkill->dwLevel = 5;
; e2 F' U' v6 f/ P. k1 ?3 F }2 a& Q* H/ `: A& w
}! ~: j; Z2 t; m4 K% v
}8 q, ^; N+ O: Q: G' ^4 n; L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% J& c+ G5 K$ ^7 P; Z5 \ if( bGamma )
+ z! s4 n) f* N+ z* }1 S {
$ h* u# ]& r7 ]* F m_nExp1 = 0;
" k4 o: B( g1 T& T# _. z }& E. X3 v( h2 O5 A; K8 J3 ]
- _, w6 O) }" k5 v: k
( (CUser*)this )->AddSetChangeJob( nJob );
Y6 i4 j3 C8 P! `# _: _" t/ b- T g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( `) z! g$ S. a m5 I0 |
5 \+ |5 L6 ~1 y0 ~* D2 w' f5 i$ J0 B' b
#if __VER >= 11 // __SYS_PLAYER_DATA
9 D! D% M! p1 L- F9 J% o2 Y$ | g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 F' P0 A4 p+ f" }! @' W
#else // __SYS_PLAYER_DATA. e% C( L5 ?& S
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) a$ m# h# J5 t% a N* U7 M9 Z5 o# [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ W2 f) `; U6 R3 w
if( m_idGuild != 0 )4 K- k/ ^, ` o$ F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 l! N2 S% C5 }0 J2 v#endif // __SYS_PLAYER_DATA! K, V; d! @' N" s
SetHitPoint( GetMaxHitPoint() );7 T7 t! o7 v, n0 X
SetManaPoint( GetMaxManaPoint() );
7 ~! j4 W) W3 L' q0 [+ h SetFatiguePoint( GetMaxFatiguePoint() );
6 B! Z! {2 j& r1 T4 j! L+ z! X if( nJob >= 1 && nJob <= 4 )" ^9 c( f6 C R! O8 n
{" f! k3 ~ h$ ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ r$ ?0 e0 H/ P: ` m_nRemainGP = 28;
, Z2 ]) H, Q8 S N( A }
# O' V) }, ^0 Y" P8 B+ R if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 D; F( W8 D X, L% X( U; J/ P4 i. J
{
3 P; j) c/ c7 S! x. | m_nRemainGP = 118;
4 n1 M0 E2 O! X6 T1 e% [. I% v+ c/ K: j3 L //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 c7 w- t4 I: H+ w3 h) H m_nStr = m_nSta = m_nDex = m_nInt = 15;& S, A2 l5 l( _
}
, m9 X* _1 ?0 G9 q5 G$ c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ t& s! O6 p l {9 x1 I# b8 x0 P" D$ R
CItemElem itemelem;! x* |/ l7 n7 ^$ P: H. f; V' D w
itemelem.m_nItemNum = 1;3 o/ Y9 \6 H3 V5 `- k* |
itemelem.m_bCharged = TRUE;- t4 |/ \( W2 i% J$ _
BYTE nID;
4 ^2 ?- Y2 N: K# N3 j; Q
% `" Y7 W* r/ q+ X/ O4 S: j if( nJob == JOB_MENTALIST_HERO )
- z _: D: M2 ^; z# ^ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* t$ T! f, Y4 y& J# u if( nJob == JOB_FORCEMASTER_HERO )5 b, a8 h; s0 @9 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' W& C) } s/ B8 d
) S' B, r, G, R2 ~; [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# Y) N0 N1 K$ V }
0 s9 b+ K y& i* z3 j) |9 M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 `! O; C% D' Y$ w7 ?% h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% \+ A* ~% v! k9 i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* A- T0 A G+ w4 X7 b; x) z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( \; U& p( T) ? G6 ]: L6 a ( (CUser*)this )->AddTaskBar();*/$ b7 a. z( `* x( ?5 s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 N( U9 y, Y. h2 ~5 k3 t#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) N, ^4 b1 Z& w- q* E
((CUser*)this)->CheckHonorStat();
7 o3 C( p" J. [6 X( X+ X9 C ((CUser*)this)->AddHonorListAck();( F* s# L: _$ r! f d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ \" Z! ]1 v0 O( J#endif // __HONORABLE_TITLE // ′Tà?
, H1 A) c: G2 D4 |0 f6 h }
7 _+ u, ]1 Q% F#endif // __WORLDSERVER
# Z7 o- n" \1 B5 P9 z9 W} 5 L* ]: i$ p, o, C5 r
+ E$ Q2 u3 L" f" S然后你进入functextcmd.cpp并添加以下! D2 \2 c* S; I: g
: C! y: P: Z$ B5 W6 g6 a# J代码:, z' ]/ b& Y/ Z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 D# D" ]* V& a- Y* h, F下面插入
6 d$ C- D2 x/ ^: [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: \4 t ?, F7 U$ `! R2 {& P
- Q" S9 P- @6 ~$ T然后你去
) s+ `" i5 ~1 m0 a( I/ W5 w
3 n; T; s& c! L1 P代码:
1 X% r, e) c6 j+ k# ]% K7 X' `代码8 c a9 R6 O* L. j; k
BOOL TextCmd_ClearPropose( CScanner & s )8 ^* O. a4 I$ }
{
7 }6 ]. x1 Z. R5 z4 G. Z7 w& Q% F#ifdef __WORLDSERVER
" A- R7 p/ ?5 j: p, m CUser* pUser = (CUser*)s.dwValue;
" _+ s; [* g, U/ g9 {" j( O g_dpDBClient.SendClearPropose();
% f3 s2 h9 B0 h# |+ U#endif // __WORLDSERVER" l Y% d3 p+ I) n7 t8 P- F
return TRUE; r$ t$ ?6 Q8 b1 G. e
}
- _8 F/ K ]6 _下面插入
8 a+ @6 m5 S( Z/ ?0 }BOOL TextCmd_rebirth( CScanner& scanner )4 b/ n2 T q; i! ]
{0 k$ n$ h# l) @9 O+ w& i8 a/ k1 R% @
#ifdef __WORLDSERVER& X, D8 H& s$ c8 C' {) Q+ L* [
CUser *pUser;! b/ `- T; G+ k9 O C
pUser = (CUser*)scanner.dwValue;
, p; z/ W6 o. M& S B2 P# Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* [9 w" r b- D/ Z/ M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& p9 x0 J+ _, ?# U* s
else
8 a8 ]& p. W( N! a. V5 y7 v& UpUser->AddText("你还未达到重生条件!");
; z9 [: m! m5 P6 j4 r/ [/ [9 R) j. T#endif+ H" o( s2 d& @7 T1 X" U
return TRUE;* w4 J) k$ v0 x4 B9 W
}
3 t4 K _& F( l! ~3 O, E% F; ]- @3 l& T* `7 n
9 s5 m. W, C2 ]$ h4 G9 Z/ M
1 B# y# A3 F. |4 W8 e9 b8 y; V
6 _! |% M- e+ \+ t |
|