|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( ^ N& \ e2 X o5 e1 J
$ c# B0 A- X$ L* s. gMover.h5 L0 S* z$ P# l# _8 e
代码:
1 w% e8 t# R2 K" u K p9 c4 g找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( s. e6 o2 t; A1 ^8 h8 N
7 F/ p, B% { e3 i" E下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 L1 x( q0 y+ Q! q, n8 q n
8 b/ {0 j* _+ z; W, U }' i然后你去mover.cpp添加
! J8 S9 G; ^! ]1 w. B5 {* ?+ j9 V8 T/ j9 R& }/ F- X
代码:
/ W9 @ _2 p* D* L; [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 |# M$ Q8 Q, N; u! ]1 F0 S
{- \2 m: c7 l% [; `5 l1 O/ |* c
#ifdef __WORLDSERVER
2 X! T6 Z9 f. S N& i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 [* G" `; x' F* O' E
MoverProp* pProp = GetProp();
- l* O2 f. h3 f: n if( pProp )0 L9 l [4 E7 y1 T9 P3 [- v
{
( U; }3 F1 e2 |) n* _% y+ ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 ~: b- U( `7 ^5 i& T# r3 y+ ]" }
{
3 C1 k9 n. W# ^5 Q AddChangeJob( nJob );
% l, V _/ y. ~! q4 |+ b7 _ }else{6 k& N. M$ o% e" I- T
return;
" J0 Q' j7 H9 Z, Z }% P. s: g/ G& ^+ `
int nPoint = 0;$ q+ O& P! A5 E$ R
if( m_nJob == JOB_MERCENARY )
( v% X# c* m. q8 w/ a nPoint += 40;
- b9 M2 }, S$ }4 y2 Q else if( m_nJob == JOB_ACROBAT )
^& G- v6 |- J9 V nPoint += 50;
- e6 j+ O* s2 H' P/ d8 @( m" p else if( m_nJob == JOB_ASSIST )' a2 l6 A5 k3 E' s) Q: B
nPoint += 60;
/ Q# K! ]1 ]9 ?: f \) f else if( m_nJob == JOB_MAGICIAN )
+ Y1 U% T" w8 L! L3 N1 k nPoint += 90;* n" p% q7 T( L5 R7 k0 r
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 M. c8 ~; A9 E nPoint += 120;
6 z( T, D' p: E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ r" B' O3 Z0 D0 b nPoint += 150;3 C" C' T2 g4 t8 q+ |+ R- C
else if( m_nJob == JOB_RINGMASTER ). L: K5 A, M4 @( v* K. O" Z
nPoint += 160;- }/ E0 D: s" r5 Z; k# _
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) }+ [7 t' Y. I1 `
nPoint += 180;( k2 u3 S# F2 w3 K: k
else if( m_nJob == JOB_ELEMENTOR )
8 Q/ t6 b. ~6 z2 p6 p& L nPoint += 390;
6 J* w- _* V# k/ \2 t) _% ^" t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& b: m' t8 X7 |0 q nPoint += 120;
# H8 C# c" h; j0 l3 t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 h6 A4 V: U% Y @1 B# z nPoint += 150;
+ Z4 W' w4 Z/ j# s else if( nJob == JOB_FLORIST_HERO )) ~0 ?/ s8 y; ]
nPoint += 160;
2 l. V; N0 E% h2 H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 l) |$ ^% E" P+ U nPoint += 180;6 ^ B$ d! }. U$ h9 `! N6 L
else if( nJob == JOB_ELEMENTORLORD_HERO )8 C+ e) G( F6 l' M/ F6 j+ r
nPoint += 390;
7 P3 f3 E' e# {( |& D4 |- H! n+ i. Z% m( R x
AddSkillPoint( nPoint );. y1 @/ D, V6 b
m_nLevel = nLevel;# x& o/ h9 v7 j' y
/ g3 }& `! [5 v+ s6 c SetJobLevel( nLevel, nJob );
: E& Q9 ^: S0 h m_nDeathLevel = nLevel; A. |$ Q3 Q) Q+ ?; r% W" f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' j- P6 s7 t4 B; u
if(IsMaster())
; S; b% K: a$ ~1 n0 l {7 V! z3 L8 t& U2 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 {) \( i2 u3 W+ E: Y% r6 @+ p' _. T
if( nLevel > 59 && nLevel < 72 )
" }8 U2 r/ q- A: n/ i J- S$ u dwTmpSkLevel = 1;& h6 V. O* N+ l& |
else if( nLevel > 71 && nLevel < 84 )3 {7 n; p% F/ b
dwTmpSkLevel = 2;" i9 Q$ v! w9 w5 R/ D! e! O
else if( nLevel > 83 && nLevel < 96 )
; U; X6 d7 v+ c* X8 F dwTmpSkLevel = 3;
, O Z3 J1 C0 E else if( nLevel > 95 && nLevel < 108 )' q/ N) Q. t/ b. j7 b
dwTmpSkLevel = 4;
- e- K2 p& v( P2 g9 H else if( nLevel > 107 && nLevel < 120 )0 S# I+ U' G( L. f6 i7 u. ]9 ^6 D
dwTmpSkLevel = 5;
8 m1 n# J( m8 ], m* l for( int i = 0; i < MAX_SKILL_JOB; i++ )
e+ X! z f4 X1 l( s: Z { * `& h% v2 y, U) h, }2 `. E
LPSKILL lpSkill = &(m_aJobSkill);3 [5 B4 ^, b7 O% m6 V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ u4 K+ e: }) I8 V% d H5 q$ V {
9 A; |0 z3 L1 a5 }- }$ S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
f6 _ u- K1 I% ^# m: ?9 C if( pSkillProp == NULL )
: m/ @# q7 D+ K+ L) l continue;. t M: G1 O) @- Y6 X2 ]1 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 p' ^% x! i; Y$ {1 ?9 G0 ^# Z' { continue;
1 ?9 a" p' o2 t lpSkill->dwLevel = dwTmpSkLevel;
6 W! M( T6 d, l }
/ C. `. Y3 }* y& q0 Q o. w8 ?# E }# c. d7 D# _% C' [; P2 d
}
; k2 F+ I2 a7 x else if(IsHero())
. n! M+ L8 t9 e$ G( B" j* W {& s. B! ^- c# ?9 J( R$ D+ Q- g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 d; j) t" e3 Y8 ]5 l
{ , M- o. A5 U; }' o" P
LPSKILL lpSkill = &(m_aJobSkill);6 S" {2 W9 T9 F: P( `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 d! ~1 y- U8 X5 Q5 p' t( Q5 j( X {
1 ?4 W3 O% H8 G4 X( v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 L2 r' w, r9 m4 u. d3 p9 o# y
if( pSkillProp == NULL )6 z0 [+ Z# u9 r* U% K! @7 J7 O
continue;
( \% n h% V) @( j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 ?' z0 N2 i* ^. F
continue;. ^% A' i* n% d: }% Q4 v
lpSkill->dwLevel = 5;! ^& j: s- T9 ^& i4 }
}
# G( i* N3 e0 O6 H& A* W o6 R }
3 b8 N/ k. `/ R# p4 h2 w }' y/ u& r) d0 L, [6 Z# X
else if(IsLegendHero())
3 _6 {4 w! ]. K/ m8 r9 R! n {) u8 H) M3 E4 r# X: ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: E, m% `8 w+ }9 j I( S/ _3 G {
5 k& x2 I" t I& r LPSKILL lpSkill = &(m_aJobSkill);
3 S# c' T" B) K if( lpSkill && lpSkill->dwSkill != NULL_ID )9 v$ k5 D7 ]* P* N
{/ h/ ?* i5 j @$ b) k" r0 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 \0 p1 x. Q; z4 t if( pSkillProp == NULL )
/ d' ~+ P3 v" |! E5 g continue;7 E7 w, a8 ?5 R q! n6 W% A1 l* g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# I9 p0 h2 l( N+ ]
continue; R* L x( M/ `3 \8 H- `2 w: e
lpSkill->dwLevel = 5; g( f" k7 V+ [' J) s+ n- X
}
$ B* s0 ~* T- a/ F8 R" h6 G7 H& S }
$ ]; _' R( d/ C" Q }
* r% l; _, T( r/ O# y" W* X+ v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! c/ j! _. |; H% F5 {4 n if( bGamma )
+ d: E1 Y* F, {" ~6 {/ G3 O {
7 e* `; J, I$ B% _, @2 Y m_nExp1 = 0;
! _1 i5 ?$ ^: ]$ A+ f/ [3 j, X }
, @5 O; ^. T# @5 { u
, V" R- t% a# |0 [; y8 [. p: H, P ( (CUser*)this )->AddSetChangeJob( nJob );* a, |, K$ r' i# }1 t( N8 B5 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( e' E L) W; D; T2 J2 c
/ P, Y" F4 ^7 H" w& ?- Z' w4 j6 T& H& a8 R% [+ P3 G
#if __VER >= 11 // __SYS_PLAYER_DATA& L' L" V- O6 @- X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ ~1 C. m$ D1 f7 _% L- L/ r8 y ?
#else // __SYS_PLAYER_DATA2 B2 b1 [+ l0 P- P1 @( X) B6 o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 `. H3 h- P' i3 Z+ @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 r% m5 F3 U! N( k1 R# x. s1 @
if( m_idGuild != 0 )
M& C9 S- H8 v9 I+ e g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 ~# X8 I; K0 D2 P$ a) u
#endif // __SYS_PLAYER_DATA
( s0 y# E* q8 L- A9 K0 Y( [. v- i SetHitPoint( GetMaxHitPoint() );, A! I3 H* U& E7 Q# |
SetManaPoint( GetMaxManaPoint() );' D' B, o8 @3 \ K- k
SetFatiguePoint( GetMaxFatiguePoint() );
. P- d( s7 K/ x" ` u( B9 p if( nJob >= 1 && nJob <= 4 )
, X$ |& i! W3 b) F8 A/ f& D {
+ q8 ?! b6 M; x. C' Z/ e# S% a m_nStr = m_nSta = m_nDex = m_nInt = 15;/ _* X# I& D7 N7 A- U
m_nRemainGP = 28;+ ]5 A2 ]4 m! D( C6 L( O
}
, Y, v* v2 N, N. M4 S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), {" q* ?& g2 V: X9 r* t: g
{
- h( x1 P( ]8 t% ?8 ? m_nRemainGP = 118;
( m: O0 ]+ s2 _ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 |& e- @. ]0 Z6 m# C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 Z! x2 ]+ H. u8 |; g0 U" I" Q }& }2 {( `$ N6 ?: M6 A
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 s. u: d- T$ G. ?: ` {1 \/ e% O3 X5 f* w- A6 L
CItemElem itemelem;3 G8 ~* O0 k6 a6 U6 R4 h1 Q: |
itemelem.m_nItemNum = 1;
B4 A0 D, A# R itemelem.m_bCharged = TRUE;
. p0 e0 B" \( X$ t/ P BYTE nID;/ [; ~+ ]5 K- P6 a
; X9 J3 {4 G W4 h( T+ { if( nJob == JOB_MENTALIST_HERO )7 C9 A% c8 d* Y2 v6 U+ Z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. E8 s; H% ?. S, } if( nJob == JOB_FORCEMASTER_HERO ); L' {0 j4 i- Q! x5 G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% Y3 R7 O L: I, I
4 r4 F+ a w8 P5 c ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- f5 n5 j# \9 u0 a }
: X' W4 E9 d' {* R. } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! K" V/ o9 X! n6 q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 _' S% n5 @9 I( r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 `# M) v! Q0 A% T, G6 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, ] O2 V- d# ]1 o. o F1 n
( (CUser*)this )->AddTaskBar();*/" A+ H0 l3 o9 e5 O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 k/ P: l$ ~9 S7 }1 b( w6 F+ p% f* w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 K" {6 Y6 I2 D' X
((CUser*)this)->CheckHonorStat();
# O9 v1 B( A% u' G ((CUser*)this)->AddHonorListAck();
4 s4 w b7 M, {4 x. d4 k4 t1 M, w- U g_UserMng.AddHonorTitleChange( this, m_nHonor);0 q. D( i4 m2 l* W! x. k
#endif // __HONORABLE_TITLE // ′Tà?% p% I: I; T: z: t" J
}
$ x! y {' n% A% t, Y1 k1 b7 r& W' i#endif // __WORLDSERVER
3 m* ^1 p0 G) z0 h8 b& }} P% B) K* E7 I+ L! `; k7 a5 s
# o, Y/ ?( {3 U- J5 O9 Y
然后你进入functextcmd.cpp并添加以下
, M, ~6 O$ I" H% l. R T0 r
" S4 }" L' k, Z" X6 R代码:0 l3 i# _0 E: M- B l7 R; n. v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- F' l8 L7 x# N5 e7 Z
下面插入
; D3 d0 Z* a+ M) a% _/ k6 \! w% Y8 J# DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) f' }" S) \- B
; s% I Z/ D/ m. u& z5 m {4 n然后你去
% [+ k4 _8 l1 B3 V, y# [" f5 M) v0 C4 [$ ~$ Q1 @3 ^$ Z
代码:
L f; Y9 z$ i; g, A. {代码2 @/ y5 B6 z7 T9 k* H
BOOL TextCmd_ClearPropose( CScanner & s )
- U4 K: P& g: |, {8 T{+ D8 s4 A9 Z2 I% @' i! k! Y
#ifdef __WORLDSERVER
0 p# q" Q( u% Y9 K T CUser* pUser = (CUser*)s.dwValue;6 \# M& v* U$ f8 W/ U0 q' F9 ]
g_dpDBClient.SendClearPropose();7 m% r: C+ m& |2 s/ D% C
#endif // __WORLDSERVER: h+ |: n9 k7 h9 S4 P& R! D. b. \
return TRUE;3 X6 L% L1 M% D7 q, r" p4 x4 n) m
}- c: a+ I" ?: B
下面插入' i1 X, O! i4 b- w$ a
BOOL TextCmd_rebirth( CScanner& scanner )* m9 ^ u/ p. k5 M# L8 g( K4 D+ l
{. f, d: S8 M" K& {
#ifdef __WORLDSERVER2 e+ W: c' k# X- q
CUser *pUser;/ H, m3 i z; Z
pUser = (CUser*)scanner.dwValue;
S6 \# F, @2 {. j: X3 m- sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) A% a% K: W7 F! ?+ |8 \# X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: i+ a* V6 u# Lelse
3 o0 ^ V) j, X+ l/ A3 F2 G+ ppUser->AddText("你还未达到重生条件!");6 K! q9 b1 R9 L. |( C
#endif1 z3 J) F3 m% [# G) e
return TRUE;# T1 {& c& {1 J
}
0 H4 X) }2 K1 \
& n* K1 Q0 F7 R5 a. G( [2 D9 {2 |( t: G
5 O. G1 _ l* R0 f! ]7 X
. k% T; F2 `4 ], u |
|