|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! `; Q( t' E9 \
0 r1 ], _7 |2 p$ uMover.h
8 h# y" m; _4 [6 H代码:
- f% }, [! I# y3 P/ E) I找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 h; v7 d* @, c' M0 N5 F9 X* c
/ X Q4 K$ |* r4 N5 Y, X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 l1 `7 Y t0 w9 w+ P
. C- i8 U" I! B6 J$ y然后你去mover.cpp添加3 w+ H& B$ ]' ^" ~ Y9 n8 R: ?
- a! L2 J2 y0 }5 ]* G- ?: ^
代码:2 w; b4 u" ] M5 T I- b8 N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 C# {8 d" A( m6 Q3 O8 P{
& q0 u/ ?/ M$ [9 Z" r#ifdef __WORLDSERVER
* Q/ {, k. N# C9 Y! P4 A4 w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó B$ T0 q: Z' Z7 Q: ?7 t! ~
MoverProp* pProp = GetProp();
- j- p& ~8 N+ y. F1 a( j) e8 y if( pProp )
( t: ]4 Y& ?. K6 C {( V1 _9 t- T' m' U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* o- o) ]: H4 `6 I/ T0 Q
{( v6 n7 y9 V/ u: T5 c
AddChangeJob( nJob );. ^( J# O" \) e: x. o4 _6 B/ L- {( b
}else{
3 r$ V t2 h% k! A5 Q return;% o/ {4 V) [1 b) g8 r4 ]
}
7 E# c# A9 \ N int nPoint = 0;. G2 ?" o# A1 O+ V
if( m_nJob == JOB_MERCENARY )3 I. v- `% y$ N( u) ]9 @8 ~
nPoint += 40;
: _) `5 @" n0 T7 Q! C; ?& F$ X) R1 k else if( m_nJob == JOB_ACROBAT )
6 H3 v9 {9 U6 W7 T1 h8 b! A nPoint += 50;& ?! l% Y' g0 u9 v- H3 V# C/ P
else if( m_nJob == JOB_ASSIST )
g( w. ^. ]& Y nPoint += 60;3 _, ~0 c6 C3 Y7 J9 y1 n
else if( m_nJob == JOB_MAGICIAN )
. n" U1 f! ^8 |+ l nPoint += 90;
2 J1 @5 e! L3 @0 n9 x" } else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* E( W& y r4 V' u# Y
nPoint += 120;
# x& w- L' ]4 N/ K$ }! T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" O9 L. R u9 ?' @, P4 g) r
nPoint += 150;
1 y6 D2 E9 z. m1 J$ r: B" f* { else if( m_nJob == JOB_RINGMASTER )
) O! r8 H- ~0 e$ S# K nPoint += 160;! x+ s& \& a0 _$ r/ V a% F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 i: |8 u3 Y8 L! C nPoint += 180;
! s9 I0 w: \ ?; L m7 q! Y else if( m_nJob == JOB_ELEMENTOR )
3 }0 T$ d- _/ D nPoint += 390;4 O' E* B4 y, p, H- I
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# I; D4 r$ I$ X
nPoint += 120;9 }, J6 e6 ^3 d2 `2 q* C5 V
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 J0 \8 s& A% h$ T9 ~ nPoint += 150;
' w4 w% K, R2 X2 U else if( nJob == JOB_FLORIST_HERO ); ?* D2 b6 Q, U9 J
nPoint += 160;
9 O( P7 o' T! |$ N. M" e/ T& p- H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) \9 Y* D0 L' W# J$ q. l
nPoint += 180;
) P1 r. n% y) j3 Q6 s, A) { else if( nJob == JOB_ELEMENTORLORD_HERO )
/ M1 O( l2 |+ k# V8 y6 h0 a nPoint += 390;
# e- |0 @! V$ V+ x6 n+ A* ~- J6 P5 v0 d% P
AddSkillPoint( nPoint );
g8 O, R9 z$ W3 V% ~% h# y! ~ m_nLevel = nLevel;
) s" l7 d0 }$ k- ^' B2 H# H: [+ w" H0 N! y% |
SetJobLevel( nLevel, nJob );
: \+ E6 o0 e& }3 L m_nDeathLevel = nLevel;
( m! x4 {! s6 M. O7 Z/ O#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ k) T" ]" E$ q+ G/ S
if(IsMaster())) a2 O2 Z1 j5 u& C ]
{( b: p4 r# F; r2 d$ P. H/ q9 O; }/ t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% Y, K, m4 o; M8 A1 ]/ i: _ if( nLevel > 59 && nLevel < 72 )
* O8 F. _; _. A! T2 v dwTmpSkLevel = 1;; r( [4 _% ]9 V; f9 j( i$ R" b5 T
else if( nLevel > 71 && nLevel < 84 )
0 k" a- N& ?& q4 W dwTmpSkLevel = 2;
! T$ S5 R" | ~! F6 V7 N else if( nLevel > 83 && nLevel < 96 )2 J8 g+ T( A K7 B4 Q8 C: e
dwTmpSkLevel = 3;9 y3 L1 Z0 b, T+ o' S1 p9 ]
else if( nLevel > 95 && nLevel < 108 )% b4 R7 W2 f6 ^4 d6 p. q: i/ U" m
dwTmpSkLevel = 4;
e6 _, X7 J. R* H, ]( e& M else if( nLevel > 107 && nLevel < 120 )" ?) o+ T) P7 @# p% N
dwTmpSkLevel = 5;
. J/ {; n7 c9 i9 s1 h, J' T for( int i = 0; i < MAX_SKILL_JOB; i++ ) k- G7 `& c7 ^8 A
{ : u. B9 \( d% b0 C( m0 G8 s
LPSKILL lpSkill = &(m_aJobSkill);
+ X- z% r; B# Y: s if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 k( o4 S$ R _# A# G! l {, G) I: N0 a5 i" e R0 s2 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " A+ l( w( j1 N, m' H& ]
if( pSkillProp == NULL )
5 M: U0 e' n* b& r( J4 y5 j3 S/ Z continue;; y- f# s/ B3 T3 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 r* t% ~. d# n% j5 M continue;# g: G$ K- b9 R: Z/ E: Z
lpSkill->dwLevel = dwTmpSkLevel;
& ~+ M, E1 N6 W' @! u6 k }$ D, \; `1 A6 z0 x1 E9 `
}" {. E/ U0 c4 {+ P+ N6 ^# l
}3 L1 s0 @# i( K6 C3 S4 W
else if(IsHero())
7 G- j# x9 q3 Z8 ^! Z) Y f {
+ r3 X% t7 _8 @4 i! H for( int i = 0; i < MAX_SKILL_JOB; i++ ) / _* V8 }! w6 }) U
{
* W, |7 x; H- [ LPSKILL lpSkill = &(m_aJobSkill);- A4 Z l7 q" W& Z4 ?" N4 C# t3 A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 E( \+ n" l. F) C' [& M( i {
$ N- C8 S4 F5 Z( y- L k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & Q7 U7 Y' U6 b
if( pSkillProp == NULL )
& [9 l4 T" P+ ?4 _) S continue;
) L/ c2 V' N& \5 q7 h# n$ V! c3 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER); J4 i9 Q5 Z1 L$ j1 S2 R; e
continue;
- Y; K: \% ]8 I! \$ z4 p1 \ lpSkill->dwLevel = 5;
6 k) L* G9 j5 j, L$ P5 t6 l }
! M Z: f3 S$ `- a6 B2 y }$ {$ {4 b E4 a% l( z' j
}* `3 A! L! }8 }6 Z- | S
else if(IsLegendHero())
! O$ l, L/ F' Z+ z* D {
0 I' i% x. }$ g for( int i = 0; i < MAX_SKILL_JOB; i++ ) & f% v& i5 }3 @) ~$ ^% @% k
{
2 |4 l/ G( K% t) e& S3 w- H LPSKILL lpSkill = &(m_aJobSkill);
, E7 q( q; s: P: J- u: l9 k2 |3 w if( lpSkill && lpSkill->dwSkill != NULL_ID )) h. B* _3 C8 H# B, N% V
{
7 r2 m& j, `1 J$ |0 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 A0 P( ^( k" E' W) {& v if( pSkillProp == NULL )3 ? b, K: ?7 ?* p+ c9 M/ {
continue;
+ a; r, |4 q0 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 O- B/ I* Z! T* G
continue;
* X4 g3 V, ]; p B& { lpSkill->dwLevel = 5;
1 Z- J- E$ e2 @0 x" K# c }
5 b- A& ?. E2 f/ H7 U* h }
5 V8 i6 k4 r& e5 @" q }
0 ?, |* M, n7 l$ w1 Z6 l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 a& N. e9 D7 P# l
if( bGamma )" I3 d& \$ I5 l( A2 ]6 [' r
{$ L1 _7 R0 \: Z. o5 e* a
m_nExp1 = 0;
- K% K0 `% ^" G }
9 d& L( i4 j2 O! N# o. h5 t# w' v5 M8 y
( (CUser*)this )->AddSetChangeJob( nJob );+ g! }4 A5 f( |. y# M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 _! x* w4 e0 K* D+ K
, p$ b, _: O& w5 ` a$ n: j s- S" S# f+ e, l
#if __VER >= 11 // __SYS_PLAYER_DATA: X- y0 B2 }) Z- h# X; l! r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- w& N8 O1 G8 ~( m1 b/ i( k# n
#else // __SYS_PLAYER_DATA1 c' O W( w3 v3 N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 v7 h/ Q, b- m) I2 Y! R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' R' b4 U, p6 |6 i) H m% I0 _ if( m_idGuild != 0 ), z; Y1 M. P0 ]$ b, \
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; t" }; ~1 y( }% R
#endif // __SYS_PLAYER_DATA- J/ p* Y, T' F+ ^# B* g/ u6 o L( P
SetHitPoint( GetMaxHitPoint() );$ W# |8 m, X; k5 z, e
SetManaPoint( GetMaxManaPoint() );
, h8 ]* U2 B4 X SetFatiguePoint( GetMaxFatiguePoint() );4 c9 i, D1 [6 J5 l& }
if( nJob >= 1 && nJob <= 4 ). `9 V* y$ X3 R1 i c& C
{: M0 b, g) d* q; j5 K. `5 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 u3 j8 I, }, f. u8 M
m_nRemainGP = 28;3 K1 G# \8 ]# z3 q7 ~! u5 H8 G5 e
}5 t6 u; G! \3 v( p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- X! B! ?' H7 p" x1 B8 C6 I {3 f* P/ l" ?& S$ p
m_nRemainGP = 118;
" A, v% Z6 k6 \, z* h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. y1 Y6 ]) L. k, Q- w# s: U
m_nStr = m_nSta = m_nDex = m_nInt = 15;, C5 t k. Z2 j' q2 v% g' u
}
6 A9 N1 ?6 y+ P+ C( p/ q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 _1 n1 m6 a* @+ K# i% p$ }4 { {$ f9 Q! _0 n; Q1 f
CItemElem itemelem;
2 F" X' }5 l. T' Y' E! ^0 } itemelem.m_nItemNum = 1;# X# z% Q3 j- m
itemelem.m_bCharged = TRUE;7 W6 {( p4 h% a& O
BYTE nID;/ V0 }; D8 S$ }' w
( w; Y" s6 ]: X" v& t
if( nJob == JOB_MENTALIST_HERO )0 l1 l7 B, {$ B" t/ ~
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 o& x& _1 J3 y
if( nJob == JOB_FORCEMASTER_HERO ). M- J6 E9 A/ {. e' \( v& w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 p+ e/ s& S3 P' ~; t) [
* u# K& ~$ h8 v. k ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 n( j% ^0 f) p2 ~7 I7 H4 ? }! W% d! U& X5 g; y9 w$ t
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" n& a$ ?: `" _8 T# [" I, S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( c9 T9 v; }7 E. t) i; |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- H' _6 Z- O) U; n( V9 U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- p2 d, o8 o3 ~1 @( G5 n% I
( (CUser*)this )->AddTaskBar();*/8 }; e* L' Q- ^( M) |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 ^8 X8 s0 i; G/ j4 u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
i; n/ w( k9 c" K: g. G% M ((CUser*)this)->CheckHonorStat();1 o( Q; q. K1 H9 L8 e
((CUser*)this)->AddHonorListAck();$ X' ?7 N) f& `0 l, ?
g_UserMng.AddHonorTitleChange( this, m_nHonor); H( N9 h1 R- T3 d3 y& b
#endif // __HONORABLE_TITLE // ′Tà?
9 o7 z9 l3 \7 b* J& I }
& [: f( Q- l2 g+ b3 }" A: G#endif // __WORLDSERVER+ U. E q' A. D) d; y5 _/ M
}
2 Q! v: }' E' l; |+ \$ Q8 _1 ?) T$ g- K
然后你进入functextcmd.cpp并添加以下6 X; ]# U1 s+ B) Q% w4 V
' M0 L" J: Z$ O6 w, y& f/ p. @代码:
' Q9 \' \9 z! V* |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): S! a2 ~2 k X. H; A$ \1 w w
下面插入 B1 t) I+ I) l! |: O( G
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ {! B3 |' I( D1 I* ?) N& k7 e4 `: L j8 {' E
然后你去
- z" I* X0 z" h+ r: R0 C1 u6 i2 q+ A: G
代码:
& \# c) x/ M; w# g代码2 g5 h: b4 o; t( Q2 v
BOOL TextCmd_ClearPropose( CScanner & s )9 u7 {% X+ M5 B% Y2 \' A, w
{
; T; _( m4 B9 f' l2 y/ R, A$ M7 [#ifdef __WORLDSERVER
8 W4 E) i' X5 s- u CUser* pUser = (CUser*)s.dwValue;( X/ F, o( U2 I& O' U% F1 N, `# B9 T
g_dpDBClient.SendClearPropose();
* |6 ^0 h- S. I# ]) j; g& \% F#endif // __WORLDSERVER2 |) `. w/ U8 Y: ?3 \! D
return TRUE;9 ?* c, A! w+ w+ Z$ J) K
}
/ f; E4 e' h7 z3 a0 j. v下面插入
+ T3 G% n, P% e& W) v* yBOOL TextCmd_rebirth( CScanner& scanner )1 H5 u+ b3 H; t% V- R8 j' ^' [
{
- O; m3 P' w# l. k5 n#ifdef __WORLDSERVER& R- F1 {+ C0 s: v
CUser *pUser;
) |9 e. R/ `" Y' q7 x! ApUser = (CUser*)scanner.dwValue;
( t* s' ?7 N6 @0 }8 T/ Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 D4 C! l# ]/ C8 `0 s. TpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: i- [$ U* J! }1 N% E: q* D; T
else/ k. b) p: y# e v. M/ U
pUser->AddText("你还未达到重生条件!");7 M+ g, A" u7 b9 X2 V( C' o5 l
#endif
5 ?7 y! A) J! L9 p1 ]- J6 Creturn TRUE;
! W" `- Y) ]3 o- l3 m}
- n! O" L* q9 H) l: ]0 l- Z( o" j0 Z$ [% y
! E, P* m2 s2 ?! `" r9 H- @. y! F
$ H9 ~+ \8 |% g6 c3 {
! z- K. {: C V. F8 v |
|