|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 D# |0 c( l8 @' r2 Y6 w. g
2 c/ s* M/ F9 j3 a2 c: j) N' WMover.h% Q9 a) q* l6 W
代码:
) b9 Q' O9 r* ~; S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) I B) r, R d' r" Y
- _% Y3 T) i2 O& |- x下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 ]- J0 v4 Y3 h+ J- S! A( `& r- L5 s) L$ ]( E9 A' l' F1 c$ f8 T4 A( R
然后你去mover.cpp添加. ~; P+ u8 U( w* W! p
( S6 v- d( ^& c* }# s2 I5 b9 h代码: A' F; z! K9 F1 g% \0 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 d- a+ Q5 O9 W{
; X" M' L( F w) D- C#ifdef __WORLDSERVER
/ [6 r) F) E& L, v // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 v$ l- h6 |7 R& A* O- Z0 K
MoverProp* pProp = GetProp();
% e+ B# p; @! H& x o ] if( pProp )' [# Q/ ~& _; y z; X/ s8 H
{
* l3 z N4 e# I; D, P% a4 `- i if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 Q5 k% ?) }" W
{
0 M. W. N0 d/ u; t* F' \) [: A AddChangeJob( nJob );
6 A4 t3 z Q& J1 E+ c5 _7 e2 O$ P }else{, _+ N7 o r" V* p: V. F
return;
% g8 k/ i6 ], _& }- d }
8 c+ j: `, G! C. n int nPoint = 0;* |+ w2 V2 s* l. d5 G2 w
if( m_nJob == JOB_MERCENARY )' Y$ J' w' E, G5 U
nPoint += 40;
" V6 K2 g0 `' J- ` else if( m_nJob == JOB_ACROBAT )# E+ Y- p) a3 X( G( F! n7 h
nPoint += 50;
9 w) d( C! ^$ r, I+ e8 V else if( m_nJob == JOB_ASSIST )' L8 O( _0 M0 [$ U, k7 a. R
nPoint += 60;
0 z* J2 F! o5 T. I& b& F6 B else if( m_nJob == JOB_MAGICIAN )
1 ]' X1 s0 c5 y4 x6 J& S" o nPoint += 90;
- ?" _/ }* s& k9 C0 Z( q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ K, t4 ?' b" R nPoint += 120;
. Z. b2 m# a1 f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) P0 P- c( @; K i+ W% s/ ^
nPoint += 150;
6 H" |1 z4 E7 Z9 E else if( m_nJob == JOB_RINGMASTER )
! n: W9 ^- W2 P: q$ a nPoint += 160;$ Z$ _7 C; v- w) S* h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" S9 k* |1 b: j9 |( R; ? nPoint += 180;% S. `$ s- A9 c- |& K: c. ~7 J5 O3 h
else if( m_nJob == JOB_ELEMENTOR )
+ k; x( ^! i+ z' |) h nPoint += 390;1 _0 {, H6 M8 d# b: B, j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, s2 Z6 G5 N! C$ o2 k nPoint += 120;# o; B/ K+ o& H$ D+ Y" [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); R. [# ^4 ], v+ X
nPoint += 150;% o z9 I% O; w; o6 q$ ]$ I8 u9 J
else if( nJob == JOB_FLORIST_HERO )
% w3 s* S+ W6 k3 w( ~ nPoint += 160;% n; s* t: ?& x8 f7 C, L; k
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 z0 `& ^' Q$ m8 P. n h
nPoint += 180;
: u- X, m4 R0 @+ u$ V% c. C* V* a6 ] else if( nJob == JOB_ELEMENTORLORD_HERO )
" s5 B9 u+ h! | nPoint += 390;
" n4 @1 ]7 O1 f4 v/ u9 w. P/ }; W" i# a
AddSkillPoint( nPoint );5 T& y2 [4 E% q+ B
m_nLevel = nLevel;
( |3 F0 R6 d; O& n* c6 s: v0 A# v3 T6 s
SetJobLevel( nLevel, nJob );
0 V; c, V; S; }0 F) h+ Z0 w m_nDeathLevel = nLevel;
" \. ~ ~5 j9 Y: y3 d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ ^4 @( Y6 @1 i, V2 E; B
if(IsMaster())
& b1 ^1 e6 h O# D/ L3 z& p {- f+ ~5 M' u/ @9 r1 ?6 I2 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( u: J. w1 v. c0 n% t
if( nLevel > 59 && nLevel < 72 )$ U4 l0 u. D2 g" g, f8 A
dwTmpSkLevel = 1;
% I9 ^% j9 F, u F else if( nLevel > 71 && nLevel < 84 )
+ S+ B# E, D: Z) ~; B# B dwTmpSkLevel = 2;: V7 S& V# b x' e& P. W2 \4 ^
else if( nLevel > 83 && nLevel < 96 )* P3 ?5 E& V+ E
dwTmpSkLevel = 3;
5 L6 [4 r: X0 t' V' ]9 E. i else if( nLevel > 95 && nLevel < 108 ): l+ d R, I6 h7 s) r: R" x @
dwTmpSkLevel = 4;
0 G$ u/ o7 V: o1 ]3 n# u) M else if( nLevel > 107 && nLevel < 120 )5 S0 w( h2 l3 M9 C, G" z
dwTmpSkLevel = 5;4 o: Y3 ^$ T* k! Z7 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ X* I6 Q; V3 L, S1 ~* R2 X" ~ { " A/ X3 N7 P% W" \3 o
LPSKILL lpSkill = &(m_aJobSkill);- C6 ^- g4 Z# s( V5 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 l5 p( o/ q- M
{
6 q% v8 r" _, k! f5 a, R- F# N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ \& N5 q4 F% ]$ @+ S if( pSkillProp == NULL ); Z+ y" d, a) H
continue;* T& U4 B7 x; G+ A$ e# C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 B& N# t9 y$ D) X! L continue;* _7 r" t4 C) g s' t
lpSkill->dwLevel = dwTmpSkLevel;' R# m7 @2 I# F$ R; M8 n
}
K1 h8 T- `9 }5 V0 T- A }
6 t: P! i; F/ d7 i! B; a" ? }. j7 [3 X; c5 G: _% ~: V% E! J+ ~2 l
else if(IsHero()). L' ^2 j* a4 i" \' W$ F5 l
{
, s B( J, J( J2 i( ^3 u for( int i = 0; i < MAX_SKILL_JOB; i++ ) - X ]% }) p0 Z U) O- f3 X' g
{ / M: z) h ^/ t' Q* c3 j, I9 B
LPSKILL lpSkill = &(m_aJobSkill);
* R3 W: s; L9 K; r& F if( lpSkill && lpSkill->dwSkill != NULL_ID )+ Z. I1 U% e: ^% t5 C/ M
{
' i0 U9 j6 ?1 Y$ r; x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) Z% T4 \% h# E; p if( pSkillProp == NULL )
# {* P7 [8 f( u9 k) ^+ u! }$ @ continue;7 u3 ]" m3 M& `% P* s# ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
} _) s: i1 m, l& y3 U7 o continue;# y8 ~. z" O# ]$ z) G( t) W; W/ i
lpSkill->dwLevel = 5;
2 F! R! R* j0 U W C7 s3 G+ K }
8 w9 a* g2 g5 U* E0 O- y( w7 H7 ^ }$ @9 |1 [ X8 R! [! Z5 ?" @
}9 W& D; N( K! q3 ^2 x
else if(IsLegendHero()). q9 t) u$ l) E0 S
{
0 C6 g+ O4 C" A/ M: A [# ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) z& y6 K1 [! n: |% `
{ / A0 H4 C, ~* }4 p) |; F6 a
LPSKILL lpSkill = &(m_aJobSkill);
3 y1 J3 F# f# _0 H3 _5 S2 z if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 x0 k5 ~# B0 C' t {7 b. ?7 P* P4 B; y: x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # t4 V3 l% j7 n2 W
if( pSkillProp == NULL )
6 R) {) u7 n' T5 c C2 K continue;* v/ @: m& z7 I2 w2 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) d5 @2 ?$ V8 h' ` continue;1 f& d! J- m# [2 f
lpSkill->dwLevel = 5;
) b/ Y! U* N, J9 H8 m; k/ U }1 H! h" c+ U4 x) K" X- O
}
& y" ~3 X6 g) C* |5 F$ d2 ]7 } }5 K' [8 X6 ^0 U9 `: c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans c% H" b( C$ w/ z7 P* F' U, B* V
if( bGamma )
) b& Y6 M& N, u. | {3 t t6 o! V- O8 a! Y
m_nExp1 = 0;
, j& {) o, p; i" K* M8 | }+ N1 e6 q( M( H8 M3 n
4 O; z7 E6 V6 U4 ?) S
( (CUser*)this )->AddSetChangeJob( nJob );
# U) o- z7 V, g" w) L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! H" L; D7 o, v6 x A' T
, a# ~5 h4 q$ t0 X C; ^6 c" b6 l3 |7 \; N0 c) z7 p
#if __VER >= 11 // __SYS_PLAYER_DATA
8 Q) I& h( X( D, E, W; D4 H g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 P9 l% D9 b) t#else // __SYS_PLAYER_DATA i* [8 }/ N1 I( R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 Y9 o6 s. ~* W7 V$ @% F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 {2 M+ q* {# A. O
if( m_idGuild != 0 )$ x, Q* O% ~! n& B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, Z0 [# C2 @* B3 \
#endif // __SYS_PLAYER_DATA5 H" e* ~4 S4 j" j; G7 Z- L) `, w+ r
SetHitPoint( GetMaxHitPoint() );
1 K, l. d# {5 { SetManaPoint( GetMaxManaPoint() );, g1 \& D. Z! j9 ?
SetFatiguePoint( GetMaxFatiguePoint() );
: f U+ F* {$ w/ S" a2 V if( nJob >= 1 && nJob <= 4 )
) O9 j. t1 O: v* m3 @( Z) F- q- m { ~/ b6 E$ i' S; T; s0 j
m_nStr = m_nSta = m_nDex = m_nInt = 15;* S4 P- T$ v1 g' ]: G, Y) t$ ?- J
m_nRemainGP = 28;
R# S. ?% [# u# y# W- p }
9 j1 p& n- i. K2 [% [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), m+ l5 ?% D% O0 ~; V
{$ j7 a' S; Q% F
m_nRemainGP = 118;- y: _; i, j( v8 V0 g2 T8 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. l c0 ^ y8 n7 N* f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 c4 I4 U9 v8 O5 `/ V$ i+ r. c }
1 j+ v4 g j1 k5 Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 z6 L2 w/ v0 c( ^: v- f" @8 `
{/ V2 H" Y- w+ u3 T! b: ?: f
CItemElem itemelem;
- F8 k" L2 B: r( m% M( b itemelem.m_nItemNum = 1;
! V# w# B- r$ M' D7 ?2 z itemelem.m_bCharged = TRUE;6 B- R2 K1 c7 l- b# F# C3 o y
BYTE nID;; e; j4 ]3 C. Q' }) U% h
2 d* V- J) U3 a
if( nJob == JOB_MENTALIST_HERO )
, B7 M2 a" ~/ g" Z! p) @ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 x! R1 s( D; i8 h" R: E4 t+ q9 k" w
if( nJob == JOB_FORCEMASTER_HERO )" j2 D) z. i5 K$ ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 z# u# [) J/ z% C: B4 f. R" V9 A) Z
( ( CUser*)this)->CreateItem( &itemelem, &nID ); `0 w3 V, F! H! |" A* z
}) n3 t2 p3 S i% ?& q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 }0 I, Z0 M, x1 u+ j8 _) \$ ~$ l ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) e9 R0 N8 b- }; o* m- e0 } F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: S l G, m& z4 Z& k$ B, U$ t! ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );6 P' A+ @2 w2 p( e' S
( (CUser*)this )->AddTaskBar();*/, P/ y. h5 J9 ~5 w, u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 K& l% g5 X+ z& E#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) I [6 T# ~& R r8 j ((CUser*)this)->CheckHonorStat();
! p( n* J' l9 S* _$ n/ R ((CUser*)this)->AddHonorListAck();
7 Z9 g* D4 S |5 i$ @* k g_UserMng.AddHonorTitleChange( this, m_nHonor);+ ?. Y$ O5 G' F6 Z8 t' M e
#endif // __HONORABLE_TITLE // ′Tà?
9 Q- x# V: V$ k+ o6 e }" S/ Z+ Q" g9 q7 C- q
#endif // __WORLDSERVER
% @ T: V) U7 c* y3 t7 }} 5 m1 s" j L9 V+ T5 l( L' p7 Q. ?+ n
1 W0 s& F! u" ^3 k( y& ?4 E然后你进入functextcmd.cpp并添加以下
M) v* p9 w ]
2 U% C$ l/ a+ r, X: |' z/ M1 e代码:
' r; B3 w) d. |7 @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" \/ J; M+ `9 e+ ~ c! E下面插入
. r1 [ O, Z! z; B1 k8 GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 A7 T6 s. X, n
# b e! }4 B% O1 }然后你去2 ?0 [& U4 Z% m- j1 r( L, y: v. W
' H9 W: K! ~5 Z: |: D3 I- J$ y1 ?代码:. r# `1 L: J) c, ?& ^8 @
代码) S& V; j! n, n: k
BOOL TextCmd_ClearPropose( CScanner & s )
. p9 b9 B$ X6 E7 @; @& n{
. P6 e1 L# {) s( W" a#ifdef __WORLDSERVER
4 w9 y6 `8 q1 F) g3 k& L1 p CUser* pUser = (CUser*)s.dwValue;2 S9 X* @% J( w
g_dpDBClient.SendClearPropose();+ W, F e$ L- s+ N, R6 p, m/ _( j2 x
#endif // __WORLDSERVER
2 R& K" I1 @: {7 h* L return TRUE;1 e% F X7 I5 W* Y+ d+ H( Z& F1 r
}
/ ], b( j% Z/ N. g9 v' D: c; s# x8 ^0 V下面插入6 O) N. e) ~/ n+ Y# L" ^3 ]
BOOL TextCmd_rebirth( CScanner& scanner )' m! Z" x6 S! Z2 c6 G, \* ~
{+ E8 v0 S2 y* a+ ?9 h
#ifdef __WORLDSERVER
# e; }3 Z: {8 y5 ^; ?2 lCUser *pUser;1 k2 n& M! B: V0 @) C( ] N
pUser = (CUser*)scanner.dwValue;- }4 c/ j; b( i+ b/ `
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 v1 W" K/ K4 r) D# W2 T; [' WpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- f1 \9 }3 r9 yelse
g% ], D) d, t n+ \9 i9 e& npUser->AddText("你还未达到重生条件!");
# {1 J& M% g M7 H' W, ^; I#endif
1 L# y- ^7 z. U# J8 xreturn TRUE;) |0 u& |" e3 v+ q: ]
} 6 m( W$ i7 K) h U6 K- K1 }; Y
9 W! X; E& S$ a
$ H' S9 A* H0 a) {' K2 m4 d& g; N! D' ^* x4 U
' q, L; ? M# C8 X8 R6 F: \; E |
|