|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 c' V7 i/ A! R) G& ^' ]3 N# R2 ?2 W% i0 G8 n
Mover.h
3 S; T/ |' u0 ^' k& s. d代码:
) L, A5 c2 U3 @) T* d7 F6 ~2 e4 p找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü a3 u4 Y! u# R7 t4 X* [ e
5 @' Q0 w' y1 }+ l$ X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) S% o/ ]2 T+ e
) Z5 Y( ]( I- o9 ^
然后你去mover.cpp添加) C, W9 O$ M3 N! Z3 o7 I7 {
: u8 I) W8 T# R! a5 E代码:
% W3 u1 Z) D3 e3 Z0 c! bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) j' l; @0 ?4 h1 z* e/ d% Q
{
) `: t! Y. R$ p& f' g#ifdef __WORLDSERVER
, f; t, _, Y$ L) t // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ G" L: W% s. M! h
MoverProp* pProp = GetProp();7 R; V+ M k$ R2 b& l$ C; I% r( P( _
if( pProp )
' I' E/ L4 D* K7 y3 k {8 V+ i4 P0 x1 g4 ^+ J- ]! j3 I
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 t( A. a& v, z0 u, O8 ^/ V
{7 F7 U9 h6 F7 a; y0 |: l2 z3 l
AddChangeJob( nJob );* D. `+ k6 O6 E9 T0 x3 J0 }2 p& X
}else{
) f$ o$ ~& U: n! m( ]4 P4 Z return;
4 ]6 [) A5 C4 h }9 T) q: g4 N- E& A
int nPoint = 0;3 H1 b$ a( U' W# j' L/ P8 V
if( m_nJob == JOB_MERCENARY )! O4 T1 G4 M u; ~6 O) C; u% _
nPoint += 40;0 L% b$ ~. P. K' h3 ~- k. K
else if( m_nJob == JOB_ACROBAT )
/ T/ u, e& y! D# |; u5 c* C nPoint += 50;: {. b$ f% V' S4 l! J- o
else if( m_nJob == JOB_ASSIST )" N# K' I; q0 R; t3 V" @) [
nPoint += 60;
1 U+ ^2 L E- J; b. L4 F" K! E3 K else if( m_nJob == JOB_MAGICIAN )
; }- C, M9 C: C0 v/ b nPoint += 90;; L: x' o9 c( \- | `8 V/ \/ }6 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- n/ z6 Y5 @) ~ \% f8 j4 v$ b) P# k
nPoint += 120;
! Y8 r- x! H( P1 j' E7 _ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# n9 B5 F5 M; E* t' y
nPoint += 150;& P3 _/ Z& x1 ^2 f6 I
else if( m_nJob == JOB_RINGMASTER )
( Q5 N2 X! z! F$ f: N6 J3 f nPoint += 160;% t* e; @. v; M8 B* o- K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 T! j( _+ ~& C4 ?4 Q6 g
nPoint += 180;3 r7 ^/ B3 l8 I: M+ e
else if( m_nJob == JOB_ELEMENTOR )
& U/ g& R9 t: s' K! W nPoint += 390;# C6 P( {/ p2 V3 |0 |0 i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) a& N" M M1 q8 h nPoint += 120;/ q+ t% O6 k: `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ B2 }2 C: _4 {% r3 G( ^
nPoint += 150;4 m1 l' G1 O$ W: ^5 q9 f/ }
else if( nJob == JOB_FLORIST_HERO )) ^ b4 U0 T, X9 E& K8 ?
nPoint += 160;
7 [7 X' X# l9 D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) _9 A) Q4 f0 d% m+ S
nPoint += 180;0 j& t( E4 Y) x; A
else if( nJob == JOB_ELEMENTORLORD_HERO )
( W- ^% h3 z* d1 i, P8 @6 K) i nPoint += 390;$ V, w2 e+ x3 B; ^
5 t" E; ]5 m: w* L! V4 A
AddSkillPoint( nPoint );
+ H, h1 c5 X' N( E m_nLevel = nLevel;% S! [: q) i* N4 O( W& Q# F
h- s/ j, F; Z$ j
SetJobLevel( nLevel, nJob );) u4 ^& R. i* O# a7 Q
m_nDeathLevel = nLevel;! I4 }0 P+ d4 u* z5 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans z" {( M2 m) J2 a1 [
if(IsMaster())
1 A) w$ q/ M, _& o" ^7 b {1 ?2 }( [ z8 p" r! C7 D6 d, x
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& p* i$ i6 ]: e8 W2 S$ ? if( nLevel > 59 && nLevel < 72 )4 T4 V& \+ ]8 r1 W& o) f
dwTmpSkLevel = 1;4 U" u- n: |0 h# ~) f
else if( nLevel > 71 && nLevel < 84 )7 y9 o' b% S" ?% R
dwTmpSkLevel = 2;" Y% V8 q+ x+ [( ?7 l$ `: Y
else if( nLevel > 83 && nLevel < 96 )
& R5 I' ]7 v/ D dwTmpSkLevel = 3;" m, \7 O4 y$ b. D& K
else if( nLevel > 95 && nLevel < 108 )( T& W& W8 l0 w" n
dwTmpSkLevel = 4;
6 r" y8 @" J7 K9 w7 c else if( nLevel > 107 && nLevel < 120 )
|% Y* I% {* r" @' s dwTmpSkLevel = 5;# z! K+ l( j' T" z) r ~) K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' z8 f& U( V& K
{ 1 d1 e" \3 W6 j: v! B' R! q ?9 t
LPSKILL lpSkill = &(m_aJobSkill);
! X, ~$ a4 C1 p if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 y$ B; g' K/ f# ?# X: Q0 I I$ K {. P6 b3 C t, x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" F2 [9 q7 u0 l6 R if( pSkillProp == NULL ): B3 v4 }2 m; E7 m$ o/ z8 T" ]
continue;; z8 `5 J4 J+ h) L* g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 \7 a, D4 k& C o continue;
- @- @$ T% I A0 n- `' } lpSkill->dwLevel = dwTmpSkLevel;
7 k# c0 J- I: [0 n }
! a, d# ?$ a8 E$ h! U }
' n9 u' `9 y. f$ M }
3 ^: W+ r- _( O6 _ else if(IsHero())
* c$ |! p9 t/ S6 K5 i {0 P6 @3 j4 `/ W1 X5 ]" T* a: @( j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' _. h7 J* }! B( P8 C
{ , M/ c4 M+ P; s4 D9 G' g) K; E, ]
LPSKILL lpSkill = &(m_aJobSkill);7 Z* N2 M4 D5 @8 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 F1 Z b' h3 F) n6 @+ g {% q& N& I; k8 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + y% u& N; a; g4 S; z" H9 H
if( pSkillProp == NULL )
2 n7 z* u! n8 Y$ v continue;
9 j& a% ^" h$ o8 D5 e9 X/ J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 ^2 m( F N E' \) b continue;
# d& U) U1 a2 O% U: o5 z% U4 q4 ^ lpSkill->dwLevel = 5;
& }+ @ A6 r9 P+ H$ L& e! g }
* b8 D$ W' e Y* I }$ g8 a$ D. J* o0 ?
}* r1 c3 E8 L" i" v- o, P$ d6 @) r
else if(IsLegendHero())7 g: p0 w3 Z, d4 e# e
{2 e7 o1 R% s& q# e' V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, s- u1 j0 q. n+ e( u9 I+ S: a+ B {
& q, F5 f" a; p2 r1 C5 E LPSKILL lpSkill = &(m_aJobSkill);- X3 |; b) ]4 O. X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ q# ?+ C, X7 q( K) o! S7 b- K {
) L: N2 O$ m6 y' u: j# i( j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 g" n, K5 C% {8 b if( pSkillProp == NULL )
: @9 z% u l9 @$ _$ X continue;$ Z9 @( w) p" X$ @2 X' k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" O/ y0 Z+ G( S5 M8 i& H% Q continue;5 |4 b- v# s- G: [
lpSkill->dwLevel = 5;9 [: ^2 ~$ ~4 M/ m
}
1 j7 C, h; m! ^6 x9 t: i }5 w1 C ?* j1 p0 w* @7 J
}
4 c5 I0 r9 l2 Y# b, _: d; ?#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 G$ C6 ?: i i$ Q2 D9 N% H
if( bGamma )
. X% R$ y; m3 I% l' k7 q! }+ i: h {
. s# U [0 m8 e1 X* ] m_nExp1 = 0;
$ P" B: Z5 l* |1 I1 H }
& w: ~7 D' w3 x& ~! Z( D7 N5 c1 m7 ~) l8 Z( P( _6 Y
( (CUser*)this )->AddSetChangeJob( nJob );
# M! K/ p3 D. T. b+ _2 O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 T1 q* v9 h" }
6 `% K9 ~7 O1 Y' c. T$ }
/ X5 y5 p4 ]' j4 u4 L
#if __VER >= 11 // __SYS_PLAYER_DATA( h3 h% ]& I8 A' n2 I. w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# A9 a: @+ T: D: l% i" j#else // __SYS_PLAYER_DATA
y0 \0 z0 z. \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) l2 Q2 b/ h& Q. S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 |9 y1 D: ?+ T p% E9 ^( d if( m_idGuild != 0 )6 L1 w! ?# ]% I, U
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; V- u3 G; z% h#endif // __SYS_PLAYER_DATA
" u4 ~* v4 g" Z% I: x* ]4 Z SetHitPoint( GetMaxHitPoint() );
: o7 e" `( x, u* G2 O/ ~1 e SetManaPoint( GetMaxManaPoint() );4 B0 K+ j8 D4 u% ]
SetFatiguePoint( GetMaxFatiguePoint() );
& c; |' c- k* l* c- h: w+ Z- D: ~ if( nJob >= 1 && nJob <= 4 )- T$ S' y. Q: X
{. h; X9 |- u( M3 E- x
m_nStr = m_nSta = m_nDex = m_nInt = 15;% }7 ~- V$ d* A6 f( Y6 u
m_nRemainGP = 28;
7 j' u# l" {, h3 F* { }% a5 K3 S$ l3 o5 O7 Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 \6 W$ c9 @, G& B {
0 c& C* w8 [$ c2 s M1 }7 N0 g m_nRemainGP = 118;" H' b& c+ F9 \( b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) | I1 f7 }0 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 {- y" a9 z7 f1 O
}
2 w. |4 P0 _% V4 ]6 k3 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- o' f! O4 L5 s9 E/ O. X5 c* B
{
0 K4 g) N5 m# ?7 r; S6 f4 W CItemElem itemelem;
" }: y3 \* b. n$ w g, k7 W itemelem.m_nItemNum = 1;5 |# R: z8 x9 z, p
itemelem.m_bCharged = TRUE;8 A3 d7 q! \. @/ d7 \, P
BYTE nID;
; C1 }$ s0 A' b1 H% q" f: y j" X1 G) J
if( nJob == JOB_MENTALIST_HERO )) ]& A( z, ^2 r; M$ s/ j/ t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, B' T$ c) U9 k1 ~- q; P( G- n8 W if( nJob == JOB_FORCEMASTER_HERO )
6 M7 n2 M7 n- ?. b# O/ z7 d itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 Q0 I4 R1 E' A7 c2 Z3 F% ~, o) v
e# V0 N u! A7 t* G ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* \3 d* @* R8 b8 d }" ~0 a9 }" j. T* N9 h+ i G* S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 T+ p& ?6 T, f9 q7 ?* y0 L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( @. A, S( o) G; Y. J9 A; T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 n v$ f7 ]2 Y& i* o E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( Q, I# ], L6 w0 G4 y ( (CUser*)this )->AddTaskBar();*/
7 F0 L8 L3 [/ O6 b- X3 ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- u6 A0 A7 Q2 A9 r* j; e#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 A7 u& f6 d: I A+ x2 J8 Q
((CUser*)this)->CheckHonorStat();. w! ^% {. p6 l. ^
((CUser*)this)->AddHonorListAck();! V, i+ q' ?3 [' j
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 V2 k, m/ U+ U" i- U! t
#endif // __HONORABLE_TITLE // ′Tà?
% u2 }0 O* A! X7 e m }: R9 _# A9 A- |5 L3 q/ o
#endif // __WORLDSERVER& y3 Z$ j( v- @
} 9 Z7 x7 l+ Y( Z5 u/ Q( M
4 m. K ]( x/ _ u# J
然后你进入functextcmd.cpp并添加以下
. Y- C7 u! E4 i. u% ?. j2 A: z) _( c" ?- X* u
代码:
: i. I) Y: n/ M- E$ o- e( R2 r! BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ r7 B; l, [2 ?1 I' q$ n; Z# t5 @下面插入1 ~5 z" ]/ U& @' t$ r9 d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 g2 p5 G3 o# n+ t/ |5 k
X3 O4 m, w( {, t/ F然后你去
9 l" B+ h* O6 P
: e, c# ]4 s- J# J代码:
( `8 Z/ [% d5 p9 W2 t1 r, s% r代码( y2 @( `3 _/ A" O
BOOL TextCmd_ClearPropose( CScanner & s )
! N; k7 s6 I- K{: l9 M G$ z" }5 a+ c
#ifdef __WORLDSERVER: ], [7 v% i$ I. Z; i1 m- V |* _
CUser* pUser = (CUser*)s.dwValue;
! M* C# h- Q, M: e% T$ ~1 M" E g_dpDBClient.SendClearPropose();$ u: Q' W3 a" I, g3 s
#endif // __WORLDSERVER
# t: }2 Z3 @ h2 p5 M9 ^, W c- G$ v return TRUE; i1 g5 k; X- h- } i* m4 P
}2 T9 R1 ?# {& J: B: x! o; ?3 y
下面插入4 X* h. M5 o* B6 K) `
BOOL TextCmd_rebirth( CScanner& scanner )
2 j$ s5 W" @& s3 ^8 t6 U{
# D6 o7 d7 r( M" K6 Z#ifdef __WORLDSERVER8 M H1 }+ q) F6 V; ^' F
CUser *pUser;
' C2 V3 X6 ]" q8 l6 FpUser = (CUser*)scanner.dwValue;
' f& z' n- e- T+ m9 X, [. Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 Q( N) `: O8 f0 m& Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* r) p l* D. O
else+ d- Z9 @ {; U5 H/ {
pUser->AddText("你还未达到重生条件!");
4 \, X" C9 J+ w: @+ Z# R#endif3 V/ u |2 E# u( k1 j
return TRUE;1 ~; p* q* G+ o, I5 _. j, @2 R
}
7 n* e0 P5 y+ L3 Z: H6 B( P
2 {% R- K5 D0 d j' D+ @' U3 p1 `3 B) v" e/ O, P5 c% v
; ]+ u- [0 E5 Y2 V! r9 {5 ]
1 ] Z: o$ f7 d5 ^9 Q
|
|