|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 h- K" f' Q4 d @: _0 |1 r. _0 J
2 \3 f% q: Z2 E; l; s6 ]Mover.h
, h( _) }0 P8 X0 o! v代码:6 X& Y7 P2 N( _% B. Z0 _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' V* b3 n8 O0 K0 K; f3 N0 H% z
5 a: w1 u9 U- N: j0 `, N下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! ?3 O, U. e s8 D9 x% e
) P& w; x- [" ~4 K! A, E! Z5 R然后你去mover.cpp添加$ y2 I& ~9 S6 b+ o- b
) L( V8 \- E$ d5 e# J代码:( H+ D$ Y# @4 a- ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 q7 @: U: f9 J# L{& w g1 V/ X: l2 V1 P$ f6 z
#ifdef __WORLDSERVER
; n5 [$ M8 Y7 x. d" i/ t8 C. { // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 k r* o+ L7 Y7 I8 e
MoverProp* pProp = GetProp();
) d v/ o6 U4 [1 E if( pProp )
( ]2 C) w4 o3 W, U: `+ ~0 z {
1 @2 ?+ t! e9 O( y- ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ f. |2 Q( U5 h' D% v
{
( _0 M$ T5 w1 v7 S! H/ Y q5 t AddChangeJob( nJob );. v7 o7 U2 f, E* S
}else{1 z/ w4 I' c3 d2 e
return;1 Q5 G+ l1 X: W7 ]7 [$ }5 L
}% p" Q' | b) Z: t' c
int nPoint = 0; X/ o1 H2 Q" Y! a0 T8 K, ]
if( m_nJob == JOB_MERCENARY )
9 @) O& L4 L, S' r2 a5 `! [4 F nPoint += 40;$ J' }* ~$ m( C/ o' V: C
else if( m_nJob == JOB_ACROBAT )
1 a% P9 @8 e- b- r nPoint += 50;' {! R; a( Y( R9 [1 [
else if( m_nJob == JOB_ASSIST )0 v' a- _2 \% c4 I. y+ H2 k
nPoint += 60;: M& @1 K* q* Y+ a
else if( m_nJob == JOB_MAGICIAN )
0 X8 K! Q* `1 m/ s2 F& ?& A nPoint += 90;% @) ]* y+ M6 n0 W/ v {2 J' |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& P5 a: p" ~$ `7 V0 y8 x. E nPoint += 120;; V( b! z4 Y% G: d; \4 W0 ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 ]% x5 D8 n! T K' Q j% u nPoint += 150;9 t/ f, P) D. {. b5 K
else if( m_nJob == JOB_RINGMASTER )
- W2 w9 j. A& j6 a3 s2 a nPoint += 160;+ S) O& t4 l5 |0 o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ V( s0 o( ^- b6 J: g! k* J$ C. m
nPoint += 180;) N) W& s' v; U1 f9 z, {3 o
else if( m_nJob == JOB_ELEMENTOR )
9 _. L0 p% [4 m" H8 I9 j J nPoint += 390;. R0 _: b, F, t: y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 j# L- [ B, O! h2 w6 q nPoint += 120;* O- \ V4 c: u) M" g8 {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), B7 ]; m* j2 B. l B+ @' D2 U0 B
nPoint += 150;
+ e" l0 }9 A* w! j1 C$ a& S else if( nJob == JOB_FLORIST_HERO )) d/ r, n8 A; w8 I
nPoint += 160;
3 F; C/ k. `! ]& { else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 F; O( \0 p; }: J# j+ c! Y& u p nPoint += 180;2 h* o p' b3 W2 q F! v: R4 ]& U
else if( nJob == JOB_ELEMENTORLORD_HERO )
& k! a4 v; y! X2 u! e% d7 p Y7 o nPoint += 390;# e( e; Z- l1 u
9 w! _2 p2 t7 \" j4 ?" q
AddSkillPoint( nPoint );
$ l/ }( U; i6 @' O7 t m_nLevel = nLevel;
/ W; n2 b% _, v+ p( e c
3 `) O v# h ~; `) E SetJobLevel( nLevel, nJob );% i3 l$ o% j* R3 x& d2 }
m_nDeathLevel = nLevel;! u: C* d+ k# |7 a. Z5 l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 w' {+ J4 H3 e+ m# w. }
if(IsMaster())& L: h6 E1 [# h
{: \. D# ?9 T( o( m! H3 |' h6 ~+ r1 b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 f$ |+ J1 Z' b3 J5 q% X n' z
if( nLevel > 59 && nLevel < 72 ), F p$ L$ @4 B, u" p
dwTmpSkLevel = 1;
9 N/ y+ H: z0 y else if( nLevel > 71 && nLevel < 84 )
$ ]& ^4 U9 l8 G2 e+ J" s dwTmpSkLevel = 2;9 {0 G) k- o+ `. M" L6 D0 D. z
else if( nLevel > 83 && nLevel < 96 )6 ?9 S9 R/ n' L, ^" J& a( [
dwTmpSkLevel = 3;
X# Q9 n7 J& }* b else if( nLevel > 95 && nLevel < 108 )3 v# O t4 t0 v9 u" C L
dwTmpSkLevel = 4;
% k4 f9 a: v2 s5 p- l0 Z else if( nLevel > 107 && nLevel < 120 )1 l% W6 O; e! ]& e7 ?
dwTmpSkLevel = 5;
. H: r$ O6 L' p* ~ ~7 G) I! ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) % i% P* l) M/ d- w, p, A
{
. Y! o# r' f1 J) }6 Z2 V3 g$ [ LPSKILL lpSkill = &(m_aJobSkill);) ]7 q R0 s- k( N
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ B2 S8 ~' P: ~
{( f! [( j ^7 B9 O. X- m# j& x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: R4 L8 \% R% @ G8 r# G5 S, z if( pSkillProp == NULL )
! l0 F9 ~, A j0 P continue;
/ I8 y" z; \& ~# a. c! @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 u+ O1 H( @ `) T! P
continue;0 [- q1 @0 S, `% R
lpSkill->dwLevel = dwTmpSkLevel;
5 K6 x k+ R6 w# U7 ^6 z }# T4 @" q) f. q4 P' c
}" N. u! r; q7 J% T' |* p6 k
}2 ?3 {$ D6 s- }" `7 o; l4 }" u
else if(IsHero())
' Q: v. q; f P' C" u# R {
# l4 Z% u# g" n$ K$ q" ~9 g for( int i = 0; i < MAX_SKILL_JOB; i++ ) + A8 C v7 ~6 I( s+ C, j# K
{ 7 g: K- z6 N7 X1 [* Y
LPSKILL lpSkill = &(m_aJobSkill);: N, `! q1 Y2 n9 w% @
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 L4 y6 R- Q- E; N: N
{6 D. _2 N7 ?( N) C: ]4 J$ a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 J: b& z) v' L2 V3 r- D
if( pSkillProp == NULL )
: J, K- i' s" z$ f2 U continue;9 h) J+ z3 k% _7 N( J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 N1 _# N$ R% g8 g
continue;2 `# r! v, x8 Q4 `5 O3 ?
lpSkill->dwLevel = 5;
4 k( _$ L' y- V6 X4 d7 X4 n }
4 Z& ~5 W9 P3 g5 t# U2 S! F! [0 q }
, o, } C$ y- W1 r4 X: @4 J+ r }
: ~: n9 w, X$ a! l else if(IsLegendHero())
7 O: P2 ~$ B. Y. b$ x: I {6 a1 P* Q' C9 I" S! w6 h6 x5 ~; i5 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) a) v+ \% M: O$ Q
{ 4 r% a! b4 y W0 m
LPSKILL lpSkill = &(m_aJobSkill);3 O* z+ o! i! E, w0 l L/ \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( n) L6 V( Y% _5 |/ e% Z ~5 [ {' [9 h9 @ z4 j; e9 X, f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % c9 s4 m, Z+ a
if( pSkillProp == NULL )( W7 B3 S: W& u& ^5 y/ V
continue;
) I v0 ` K2 G+ Q0 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) o% u9 P O, B. {, ~
continue;
+ }7 N- l5 E$ U. Q8 {1 d( m lpSkill->dwLevel = 5;+ u% o+ V I ^: K) }! Z3 M, Y
}* J \, b$ Q1 F1 k) |" S
}
/ _. v7 A& Q [& p9 Z7 b2 a }
2 ]2 n4 x6 c, F8 V; j% U0 n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 S7 M& K! h1 k# Q, Q
if( bGamma )+ p* q p [# }2 p! A: |) X: f) M8 k
{
0 @; f2 l8 C4 _, K0 W: x# [# W m_nExp1 = 0;
2 D+ {# ?! G, O }$ r* `" o- d' o
( g. A' S' F& \
( (CUser*)this )->AddSetChangeJob( nJob );
, k/ n& W" E+ t g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. L3 i, v: ~$ f9 g) u; |5 ~3 j7 q. A
( r! r; P5 ?9 H3 l- M" c8 H, S
#if __VER >= 11 // __SYS_PLAYER_DATA& J0 o1 @8 Q Z) p0 ^7 y" M+ W" G
g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); @1 v: C$ p; {3 g$ S
#else // __SYS_PLAYER_DATA K: z# t# q3 J) k1 X4 l* a/ ~# O7 ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; P4 v; q- S" B8 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
B7 x6 Q$ e' ]3 s. ~ if( m_idGuild != 0 )# I2 O, y" i. j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ v1 U: \1 K( V2 e8 m#endif // __SYS_PLAYER_DATA& v8 K! |: R. k+ w' H1 e
SetHitPoint( GetMaxHitPoint() );) B# k3 J, R. D0 B
SetManaPoint( GetMaxManaPoint() );
% o3 m Y i1 Y+ e. y SetFatiguePoint( GetMaxFatiguePoint() );
6 @& H( s7 n1 J& \ if( nJob >= 1 && nJob <= 4 )
' B+ ?' [" {4 v1 T3 \3 s2 H8 D. ^ {3 G. B# U& U2 m! ?. F& P+ ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;( p- F9 `$ s5 H( @6 t8 W2 r
m_nRemainGP = 28;
, B& D1 c* C% h% j$ J: Y4 ]' x }
0 c& C: r B6 x" g if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) k, z1 Y+ P. Y9 x {# ~4 q9 r% \: W- r! i) V
m_nRemainGP = 118;
8 g+ e- U, o( q( C //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 V+ G+ m' T$ Z m_nStr = m_nSta = m_nDex = m_nInt = 15;/ J* v: y3 t) W" n- g/ o q
}
% v. C7 @4 I x4 Q' [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 X) I; X6 ]2 `1 S
{
+ J" w" k1 s& a8 H2 d CItemElem itemelem;! t% R; k8 W3 M3 |0 N3 Z: I
itemelem.m_nItemNum = 1;& m" U# ]4 L0 J+ L+ d0 p
itemelem.m_bCharged = TRUE;
0 H0 _ \6 f+ T& r6 C BYTE nID;; q9 i9 a5 l8 C' u
7 a9 {# h1 T9 e2 c1 T; K& x
if( nJob == JOB_MENTALIST_HERO )/ S5 Z4 |7 Q* i5 v: r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" l! I; V3 Y* g7 J' ~9 a
if( nJob == JOB_FORCEMASTER_HERO )0 Q- q1 V8 s# A' n
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ f# E/ s; l- r. D9 E4 n
* D. U- y; V5 t1 q" V% G, t ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 H( X* w1 e% d2 A }
0 d0 h: z# m. P! k, F2 c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* C1 b+ m) y( p O+ H3 q9 U y9 E3 o ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 i- _5 A9 \6 S* E0 Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. M" u; x5 k7 [: f" T5 H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 f& b# p# k2 h: R6 q4 o
( (CUser*)this )->AddTaskBar();*/0 y. q/ f7 i! [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 u, J5 ~# Z A9 `" @+ |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ w% F0 |. Y" z% n S9 i ((CUser*)this)->CheckHonorStat();
4 R8 ~8 }4 t% s/ f; U% Q' \& T ((CUser*)this)->AddHonorListAck();
3 t: |0 q; W, D4 ]- ` g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ R' q+ r8 v4 q9 z) Y- w2 ? n: u#endif // __HONORABLE_TITLE // ′Tà?
# x- N l$ g( K, _ }. k' |% S) a! Q: r, r5 Y! R
#endif // __WORLDSERVER: ]- G: i: X- I1 R3 c8 _
} 0 @5 e" x' W, p4 |/ S6 ?+ Z
7 p1 V8 @# u; `, L
然后你进入functextcmd.cpp并添加以下1 J j+ w+ e: Q) F: w& p0 ^9 t
\( X1 d( `8 v" x7 Y0 Z) R8 H4 x
代码:, x& Y' a2 ?2 }9 R/ ^8 u1 p. ]; ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' a+ L8 ?. z. k( U下面插入
$ Y% \% T% {, V1 dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! s8 K3 C3 l( H w" C7 m$ f7 w
8 o3 \) u2 H# W2 F2 w# j/ N然后你去; d" j' K, C) h. z' H& U
& ]% p! |6 K$ F
代码:4 Q9 n1 g) X# h0 u
代码9 ]! ]7 q8 N4 E6 C6 C; R3 W: ^
BOOL TextCmd_ClearPropose( CScanner & s )
" V6 u# ?: \: Z4 s, N; z. r{
+ o! S6 i+ S+ z( M7 k#ifdef __WORLDSERVER
* k; _! l6 v$ f; S, \- G: T" c CUser* pUser = (CUser*)s.dwValue;
* p6 Y; Q; h) G0 N. a g_dpDBClient.SendClearPropose();
: E6 k% N2 g" x* _#endif // __WORLDSERVER, w0 ?3 Q% f$ o9 g1 D
return TRUE;
- G) p! ~! `/ x. w6 ?- R. x9 r# \}
$ N: `, f% d9 j" N2 U9 G, @7 u) f, V下面插入' v- P2 r5 i# C; `% h% n
BOOL TextCmd_rebirth( CScanner& scanner )
0 B% i/ e5 _$ }# S9 m* n{
' N6 j$ W) U0 l4 E! _, ?#ifdef __WORLDSERVER4 p; D+ Y: Q8 O3 a9 N4 C7 }/ v6 v. o
CUser *pUser;! `) n ]' C# S( @- \
pUser = (CUser*)scanner.dwValue;
5 m% i. }: e/ oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 \4 m6 |" G5 v' u( U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 F/ M, [ X$ N+ uelse$ v9 ]% _' Y; f( O1 ]- e
pUser->AddText("你还未达到重生条件!");4 W9 S- w ]' _& d y+ T" \
#endif7 [/ J* F1 P& R; K5 L, c
return TRUE;+ V& \/ d1 C; ]$ K$ u# L
}
& m/ O8 b7 ~. U( g$ V: ]7 t+ V+ Y& I
8 |+ P" a- q6 _* r- @
6 o+ T/ d, d, n& W8 \
+ Y! e/ m, S- j9 E/ E. S |
|