|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ X' ^2 \" c3 C
; b+ X- y4 b& e9 ^ }Mover.h( N! q8 W) q7 j4 {- `
代码:
; U" k7 F u6 x b* d* l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! W# ~. q5 L. k3 W' }
* w$ P/ I' a3 `- b下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - \# p% U6 w# G* N1 X; w! q: E7 j
, W i- b0 B- \" x8 s
然后你去mover.cpp添加) o6 e% F! L% S) ^: a
0 H. ~# y+ Y# P$ H; l n
代码:) P# f, L; z( M( S2 \1 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# m& Z/ v4 R2 S) N. i, Q4 W6 [$ {{
7 f# e4 U" U* P! }7 S#ifdef __WORLDSERVER
; q" k0 M, t( \$ ^+ p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' I" p# u1 K& K$ Z; J
MoverProp* pProp = GetProp();4 I1 U: F8 N5 t( S( }9 m" C& y
if( pProp )" W$ [! ?( t1 D o, h
{8 [: p$ A( ?/ t, \7 E4 I
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ B; \! e1 n4 C
{ P) s2 v0 E& b7 o4 l
AddChangeJob( nJob );
% X$ s) J. N/ r. Z% i }else{( }! B4 j6 i4 W* Y
return;6 f( ]8 E7 u$ H6 a
}
- P% H. U4 Z! k% l" n" h8 |6 g7 S int nPoint = 0;3 ?$ Y4 { {6 W. t9 q
if( m_nJob == JOB_MERCENARY )
$ N8 @8 r. X. W6 v+ { n. z nPoint += 40;
/ G# V, e( E( @% O! _% F& @ else if( m_nJob == JOB_ACROBAT )$ P7 t: }8 h4 g$ y5 P/ o0 Q
nPoint += 50;
& _8 c1 u/ Y+ J8 l1 ^ else if( m_nJob == JOB_ASSIST )
, c0 O2 f: ~; O; R. s, ^ nPoint += 60; ` J O4 X7 F& j' W+ ?2 W
else if( m_nJob == JOB_MAGICIAN )
% G+ t4 Q# r# W0 f4 ]; O nPoint += 90;
@$ O6 a* a# D/ P# n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, y [' w X+ Z nPoint += 120;4 R. F$ j* D8 Z: h$ d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! x9 Z7 v& y6 ~0 ^& r2 l nPoint += 150;& F1 } P" |* y: Y& F1 [4 t! [- k
else if( m_nJob == JOB_RINGMASTER )
( u/ ~2 R* R4 v, l$ q/ c9 D% Q E" O nPoint += 160;6 N2 T" C9 E4 F" ^1 D Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); T+ t6 ?" r) M! z0 q1 w
nPoint += 180;
+ h c* w% ?4 B5 Z+ i else if( m_nJob == JOB_ELEMENTOR )
( X2 G- f+ y/ x: r" H nPoint += 390;! F" q1 `3 l/ ]# d D( V# B' e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) y2 k$ r3 d) }: Q t2 h, w& T1 l
nPoint += 120;
: z& w' f+ \1 H# G$ [9 ~/ ]& q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; G7 p: ?/ U4 o; Q nPoint += 150;
4 s5 y9 J% ]. C1 n else if( nJob == JOB_FLORIST_HERO )
1 _) {( D0 P9 `$ z$ F' O nPoint += 160;
2 Q3 ]" n! K2 h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 D) [/ L; k, g0 V8 j' S0 z6 B
nPoint += 180;' D8 y7 ^6 L6 L5 u& s4 s! B- R
else if( nJob == JOB_ELEMENTORLORD_HERO ). B. }! g& w; o9 Q/ s# h. W! d5 t
nPoint += 390;6 L' B; x7 \2 u' R6 X
0 r4 c6 I" l6 c% e; f( \
AddSkillPoint( nPoint );! b" C0 P" d; H/ d4 g3 ^
m_nLevel = nLevel;
+ ^. Y' k2 y; k$ \8 I4 I5 u2 k: K( |1 a: z7 t. E! {
SetJobLevel( nLevel, nJob );; t3 y# A* P* ]1 o
m_nDeathLevel = nLevel;! l( g8 \% g% `9 `# |% x: O& v# j1 _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans A& a' V, [. r
if(IsMaster())
; O4 u* s( {' q+ Z* G& M# W% p& A {* q+ f, n8 M. S* Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 V/ U) Z& V( j4 t0 Y4 T
if( nLevel > 59 && nLevel < 72 )
) r4 j5 x$ s: r% W: I% P' z0 { dwTmpSkLevel = 1;; h* a% X: J/ `
else if( nLevel > 71 && nLevel < 84 )
' f( {) G/ B( k% m, z dwTmpSkLevel = 2;- |$ `& R. d( y% E/ o" S8 ?
else if( nLevel > 83 && nLevel < 96 )
1 S' ?0 H* h" {0 q! ~4 g dwTmpSkLevel = 3;
$ Q4 @* s3 d2 V5 h$ t else if( nLevel > 95 && nLevel < 108 )
8 @5 y, l" X9 u! t. |7 X' W dwTmpSkLevel = 4;8 I1 {& m; }- J
else if( nLevel > 107 && nLevel < 120 )3 f6 p- Q, m) O0 c3 h
dwTmpSkLevel = 5;6 S6 E% b; @. U) h8 B& }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : \. z6 p* o8 I& M% M, Q
{ - H" }+ T; A6 S. T. @9 I' e
LPSKILL lpSkill = &(m_aJobSkill);
4 e8 f7 B: M4 W! T3 ^' X% w5 Q5 B: ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
# Q; c% y3 _. l9 G# Z {
/ g5 f; g( `) A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , E7 }" e. N, J8 b3 z
if( pSkillProp == NULL )' r% M; C% v$ |' q3 c1 A- ~
continue;
! F Y+ ~' l2 c' j$ h, h# h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 G, ]; Q$ u! `& H continue;9 z& r4 m/ u. z, Y, d: o
lpSkill->dwLevel = dwTmpSkLevel;
! ^0 @& R$ P8 U) ^, h4 `, U* V4 y }. `3 p; L- b. P
}
1 W9 X I8 A3 e2 j+ B7 H }
, [ r& [* w$ }1 E6 T else if(IsHero())
" }/ L7 Q5 Q9 `5 w2 |$ o" A {( d4 V4 h* W3 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ P* z( \+ d% `+ b# b { $ s0 n" R* G) v9 t0 {
LPSKILL lpSkill = &(m_aJobSkill);
, Q( Y# A5 u1 A$ T) ^8 a if( lpSkill && lpSkill->dwSkill != NULL_ID )$ ?% \! P8 E, N+ f
{9 Q/ e% Y- E2 b) H5 I% B# V3 @/ l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, i) C; l, I$ H if( pSkillProp == NULL )* c U+ j- s5 S
continue;1 h" W5 M- r+ }6 x$ v- O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ u4 [- F0 V( K! u5 S& p0 V continue;
* B' m. s. E! h! O" _+ `$ a, E lpSkill->dwLevel = 5;+ S7 p; c) V: |- m! V4 c
}
8 U$ t2 N- H- t: F }: g! R# F& B# G! _
}3 n$ m0 E6 W4 g; D9 I
else if(IsLegendHero())
' e' ?! F, ]/ O& R' V {
# M8 p3 T/ B: X! C" } for( int i = 0; i < MAX_SKILL_JOB; i++ )
: C6 h+ U5 v- Y0 B {
7 n" k& Q: O5 C0 `4 B4 E4 y5 { LPSKILL lpSkill = &(m_aJobSkill);0 g' ?& ~* A$ H; y
if( lpSkill && lpSkill->dwSkill != NULL_ID ), U" c& v8 d$ I, a2 z9 \
{$ y- {7 s! J0 \3 R7 q' A9 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & m. M" s: p' w$ X
if( pSkillProp == NULL )* S4 U, W7 ^9 A
continue;
5 r, y+ h2 i: N$ e t0 `. ?3 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) r- B7 K* i/ x: _- r continue;4 ^: b% m( c. r. l
lpSkill->dwLevel = 5;0 y0 F3 O6 A) Q1 Z( C. P8 T
}) k# i7 a1 R" I* g- [. Z& D
}
8 l: A& ]+ P' l- {9 V }1 Y L O" `: @3 G2 L5 _4 ?$ z) Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! X1 f8 p6 U# d
if( bGamma )
/ j. O/ L/ K z0 u% q! n# | {8 d0 q( H1 d' z. |2 F% r ~
m_nExp1 = 0;) ]& S- D3 ]6 c2 g* P0 m
}
5 x5 C3 O i, h% | N0 p2 @* \0 i; B1 H5 Z: l2 L+ E! {0 ]# q
( (CUser*)this )->AddSetChangeJob( nJob );8 p9 O3 g/ O \7 \4 H" H( q8 t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! C8 O1 ]4 n) E5 x3 }+ H& U0 U: G
& H8 n1 l' Z& z6 c1 I
2 B8 ^, e; V: c#if __VER >= 11 // __SYS_PLAYER_DATA
) ]& u2 n+ a, L# Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); `6 Z/ v3 n; ^! _3 c
#else // __SYS_PLAYER_DATA
, d1 G# ~) a7 }# G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 D% j& O5 S1 @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 {) ]* y/ S9 R; D
if( m_idGuild != 0 )( Y- K8 ~$ a, L
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' A5 J; ^$ m& Q! D# Y! r. s# K+ @#endif // __SYS_PLAYER_DATA
) U& [/ ?% r% m5 Y; X- t SetHitPoint( GetMaxHitPoint() );, H' L j: t4 p( T" H2 O
SetManaPoint( GetMaxManaPoint() );
" ?6 L" R9 _: E( G! `# Y SetFatiguePoint( GetMaxFatiguePoint() );
/ \& H- ] N' W: x# h- w# R( Z& x @/ ~ if( nJob >= 1 && nJob <= 4 )2 f3 U. g0 {) p6 L$ C/ b
{' t7 r: N0 t" C6 f( _
m_nStr = m_nSta = m_nDex = m_nInt = 15;; C6 E3 {3 O& ?4 L
m_nRemainGP = 28;8 Y8 c( _% E f7 \8 D" X( o
}
Y7 G# H: W% x j7 c1 @ E6 G: a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 f* T3 p% W+ }+ O {+ v6 d& I4 h6 l4 b
m_nRemainGP = 118;- ~: L+ u: j9 j; Z( M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ _. J4 J" `. K% z1 b* i. \; ~8 }7 D m_nStr = m_nSta = m_nDex = m_nInt = 15;* T% L3 E- P2 A) c5 Z- Y9 m
}
9 X" f3 n$ o, F+ O5 g6 Z/ r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. U( G P; a4 e5 k7 Y0 z {
6 W* w: M5 q2 I, [# }% ] CItemElem itemelem;; N* B. ?* {7 _
itemelem.m_nItemNum = 1;" H0 h' H2 l& o0 H
itemelem.m_bCharged = TRUE;: W; j: T$ z, \
BYTE nID;8 S4 X: T( N3 @- i/ v( y) ]9 p& c: w
! v. H: a5 \1 K" V' H- G, r if( nJob == JOB_MENTALIST_HERO )8 P" x& J/ |! e6 M7 @, x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& ^% Y3 {2 ^3 J
if( nJob == JOB_FORCEMASTER_HERO )
4 F6 H* E+ ]. k( z" L: s& B$ Z+ P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 X& Z* X e% P F* T
2 J, \& o n( q7 b' P% i5 o
( ( CUser*)this)->CreateItem( &itemelem, &nID );" M1 g5 m2 N6 D) w( Y+ z6 J
}! s% w5 g! N; G! A x5 ?8 O6 g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) A: M5 p* D9 D1 p- t1 A! f6 e1 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! @3 e! q( L2 c- B# s1 `+ V& j+ ? Q& G2 T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( t8 x' Z+ L. t* r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 C. U; v' I5 a' w' Z
( (CUser*)this )->AddTaskBar();*/
- D% o! }( R* N! k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 B1 S9 I1 w5 H; l; Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ ]3 p4 Y7 D H! i) I ((CUser*)this)->CheckHonorStat();3 R, n8 a" O; I2 Y: g
((CUser*)this)->AddHonorListAck();, i3 z7 Z$ \$ r6 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& i B5 S0 B2 ~. I8 |#endif // __HONORABLE_TITLE // ′Tà?6 p2 u0 f% r9 u/ {7 l
}
) W0 \% |: B0 D* v2 f" m7 w#endif // __WORLDSERVER
3 d i/ s" W' S% J}
. Z8 A4 n4 C7 {* f
# X7 R2 N4 w5 k* L S& y: E0 v然后你进入functextcmd.cpp并添加以下
7 [! N, K' Q4 p) X: j/ i9 C
( z: L. `# w6 f t代码:5 Z4 S$ S) p4 N2 t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 s: g- m3 k, `5 g下面插入
, L1 ?# Y5 l/ Q) v2 ?ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 m: h( K9 f7 P) e! \4 F
0 Q8 }+ C6 S" Z! L+ p% A2 i然后你去
' j2 \% h; d0 W* e7 W s& W7 Q J3 I! G# V8 a& T) |
代码:
6 X: E' X6 Q2 Y+ }代码
) p8 @: @. K/ v7 m! O+ S. F+ dBOOL TextCmd_ClearPropose( CScanner & s )
7 Q! d2 G. ?! O; t* {& d6 @! {' v{
" e, d# M n( S& ^#ifdef __WORLDSERVER
1 J( X4 e9 N; y# N6 r" u$ u4 G CUser* pUser = (CUser*)s.dwValue;
4 d" f: Y$ o0 } g_dpDBClient.SendClearPropose();3 i' q `$ q9 A. C( \5 g x. ^
#endif // __WORLDSERVER; ]. k u P' n8 |
return TRUE;+ o7 v- e% \. O: o
}
% r- s& i* n% _" K5 ~7 ~; z下面插入
+ w8 B) X/ R" i4 ~0 {0 A* ~BOOL TextCmd_rebirth( CScanner& scanner )
: K; o% A; W+ C1 I{' a: y5 x. z: ^! o1 C5 a, W/ a
#ifdef __WORLDSERVER
+ f- b$ O& N7 r* Z* tCUser *pUser;" J v4 J8 z. z& h4 s7 K5 H
pUser = (CUser*)scanner.dwValue;# L5 P. e( ?+ r3 f k5 ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. R- X* s6 l! N/ r z, K# S/ DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 n9 B0 x( c4 Y2 @6 v7 ~else6 Q7 z7 H3 D6 N0 b
pUser->AddText("你还未达到重生条件!");4 F' }9 b" l- y8 F, C
#endif
/ Q1 Q+ ]2 Y4 @2 P3 X: M9 ]0 Mreturn TRUE;( g, E1 B% u/ x# ~
}
) k6 B8 Y! c" ^1 {, z1 I% {' q( m u2 y8 z3 d2 L7 W
/ K+ H9 }1 w& Q; k, Q+ Q) l( |# z" j! s6 x( K
3 W# T2 o4 ?+ V* F$ b
|
|