|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( ?& ` t& r1 |1 k' f8 H9 h0 ?
$ P: x& ?% j0 v, YMover.h
" `6 p. q8 O/ o5 N+ [代码:
" V8 l1 p$ l8 Y: s% \/ N1 ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ z! Y4 U2 ]1 O
8 f" K' y7 m' ?' e+ ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 J. R1 N* Y# w# p+ e
) }. @ h; A9 H然后你去mover.cpp添加# U! f0 o% K4 N& X4 I3 C9 u$ F
! p; G R3 E6 g0 E# ]) Z代码:
; l' ]1 C" ^6 Q2 S* q9 Z4 Z' @0 xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 r8 L5 t1 h! ]/ a" ]6 d+ U& p* s1 W- K{9 N8 F3 G% C3 ^; q
#ifdef __WORLDSERVER. U1 ?) O8 [8 b) x, C$ |& U# F* L) L
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% p. T5 j. I! s! x- a& _0 R MoverProp* pProp = GetProp();
/ n" |0 E) Z" A3 r8 M3 t if( pProp )
9 G) [" \ e* a- ^ {
" U9 l" _! Z; f4 A+ Z: i if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 c! ?) d! S3 \0 m {: G' y2 V6 L# Z" ]% n8 c2 W* S" u
AddChangeJob( nJob );: z' V/ D4 J# O- j
}else{3 a# G/ E( J+ R* x3 K1 z0 H: B$ H
return;
/ z5 b; u/ W- E/ I$ l$ E4 H2 j6 A }; y" p4 H* ]" E& }
int nPoint = 0;- f, }& ~7 _$ }0 D7 O# _" G8 s0 o
if( m_nJob == JOB_MERCENARY )- ?' r3 ]/ n& B# D% v1 K/ q
nPoint += 40;8 E4 ~. n/ l! M0 T, i' h2 n @
else if( m_nJob == JOB_ACROBAT )( o1 I" M) o( J. s
nPoint += 50;" I6 Z, H/ @, q" h. X/ d6 s- x( |$ s
else if( m_nJob == JOB_ASSIST )
& Y8 [( ]* u% [7 X! p nPoint += 60;$ x4 c* D0 V! h( v8 D* I9 e
else if( m_nJob == JOB_MAGICIAN )
3 [8 @, O7 d6 L1 [3 q- y. C nPoint += 90;1 b* w# t, K6 ^" z9 E: z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 V1 v+ b6 x) y5 }7 o9 P nPoint += 120;5 ^0 Z5 Y5 X+ Y: Q* w0 F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& l* Z6 U4 U1 m nPoint += 150;' a6 b; L# O6 @: ]6 Y7 Z
else if( m_nJob == JOB_RINGMASTER )- F$ \0 N2 I! B3 q
nPoint += 160;6 T: A. v2 ^# q4 r* O' U
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 X) h' g* V8 y: Q& |3 m" g
nPoint += 180;0 e: _. C6 o/ i- _9 z: P6 a* \
else if( m_nJob == JOB_ELEMENTOR )* O8 a& U$ c+ `
nPoint += 390;
8 t$ L7 Q, v9 \ Y6 S V4 a; Y3 S else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 d4 G4 a# s: O) W
nPoint += 120;- @' x, W/ K( t+ o& J! C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* [, [3 F7 U0 T9 Z4 } nPoint += 150;
3 C& ^& \2 {3 V) P# R- i4 x- r else if( nJob == JOB_FLORIST_HERO )) ]! }5 U# V- C& u
nPoint += 160;* t0 y l& h8 C* x- p8 m. B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' I4 j' f4 Y6 E5 n$ I3 P
nPoint += 180;
$ Q t# L. ?7 G* B, ` else if( nJob == JOB_ELEMENTORLORD_HERO ). @, X+ Z3 V* v1 J7 R$ r J8 r
nPoint += 390;
) ~' j' W. h+ p0 Q' x+ u8 g( P2 ?; {$ b' ^+ @: C) v1 u: ^
AddSkillPoint( nPoint );
& H8 X* Q' g) D2 |* |1 x m_nLevel = nLevel;
1 r# E4 T! K0 a2 ]3 |/ N& z( u
1 D! O, E: ~2 B; Q, D: e SetJobLevel( nLevel, nJob );
+ x5 q& m& @0 [" l m_nDeathLevel = nLevel;
/ G3 o1 P T3 Q3 C, X$ D#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" @. A1 z* M/ ~; |0 w: D* Y9 h if(IsMaster())' R% H5 I5 {2 [6 U
{" l& |: n* s, A; a0 m4 K% o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 H% L/ ]7 H! |* ^' c) B7 O if( nLevel > 59 && nLevel < 72 )+ p$ Y* ~+ y! A# f. ^- c
dwTmpSkLevel = 1;
7 h! s- h3 W( r6 } else if( nLevel > 71 && nLevel < 84 ): a+ B% A1 S/ T% |
dwTmpSkLevel = 2;' L/ ~, \+ ?1 Q
else if( nLevel > 83 && nLevel < 96 )) L0 [- I) M7 w0 S
dwTmpSkLevel = 3;
6 I5 ~8 _1 g0 X# D$ C- h* B; a else if( nLevel > 95 && nLevel < 108 )
0 A: w" p/ ?4 f `7 N! ~% G dwTmpSkLevel = 4;+ s7 l* `! ?# i# b
else if( nLevel > 107 && nLevel < 120 )
% A: Y$ H" x L% i* v dwTmpSkLevel = 5;; T$ \1 y9 T; b" W1 P1 {, X) [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, n h, x+ m3 \& t) ?) T$ x( _ s { & p# j- s' a1 O+ i2 ^1 f1 P2 {
LPSKILL lpSkill = &(m_aJobSkill);( k, m2 z7 C: `. L
if( lpSkill && lpSkill->dwSkill != NULL_ID ): b- k9 y; @( O( [% A
{
2 J! e9 V/ D/ ~0 G1 U: ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); y* `5 q! S- D
if( pSkillProp == NULL ); O, u9 r& a y3 n+ \/ j3 r
continue;
9 }# Y4 m) n0 o- G4 O4 q! N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& V3 b! T3 x3 H' J- P3 k; X continue;
5 [/ q z# E1 S+ V" ^ lpSkill->dwLevel = dwTmpSkLevel;. N& L; T1 a3 f: O4 J/ M- V- o$ m
}3 r" _0 i% l) i& b+ j5 |' W
}
3 h1 r; g8 j8 o5 a$ S; ~, W }
Q z& ^; c5 T+ U) U- q else if(IsHero())7 P9 n5 g/ p. [, w! Z: C* \! m
{7 [: z( \! j# ~5 R h* J& d+ H. O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- o U, a& c, Y S$ D {
, ^0 ]3 W, ~3 A8 t' ^# ^ LPSKILL lpSkill = &(m_aJobSkill);- p' {1 S# p' x6 o
if( lpSkill && lpSkill->dwSkill != NULL_ID ). G1 t" V( r/ A, ~1 }
{2 |/ P7 ~+ _$ `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; @. G# L0 J4 O if( pSkillProp == NULL )6 G! H( t; D! F! `' _
continue;
" ]0 I, S+ d6 {' o" Y$ y& a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 K% \ P% ?% z2 C- n1 ?( J. z/ c continue;
2 z8 |! B9 I# z4 f7 H H0 B) ?2 b lpSkill->dwLevel = 5;
6 W, g" i9 M5 S1 E }
( n: e6 ~7 [5 V }8 D4 u7 F" V! z" u0 ]
}1 b3 v* T5 ]# M' z5 z
else if(IsLegendHero())
+ p- _/ E8 ]9 k4 I# F {
& J" i7 O7 ~" v5 _! H% t7 H e* H for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 @; p+ E2 {7 }& c# X I- ] {
' t* o% O3 `2 Y) ` LPSKILL lpSkill = &(m_aJobSkill);4 M# i* g7 Z+ Z9 T7 s" O$ j
if( lpSkill && lpSkill->dwSkill != NULL_ID )* {4 W( ?# n+ F F8 b% L
{
6 ]" b0 ^. _- u4 S5 P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 j4 a3 ^6 C' g0 C2 R, i8 p if( pSkillProp == NULL )
, j# E: k! {- M continue;4 r) n1 x3 K3 J- }$ t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ B9 W) w4 E+ d& B! d
continue;; P, P' }) n* e7 o( j* s4 h6 D
lpSkill->dwLevel = 5;2 v2 g6 s |. k; j. t% i& `
}
. Q1 W/ e _( {9 T/ K }2 K- V* {" D- D! V0 L
}
3 J" i7 ]/ @1 ?6 S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 M* i4 R; w3 R9 X if( bGamma )
/ s" F M# `2 r9 a) \ {
/ h4 K6 T" y, _# D m_nExp1 = 0;
; f$ W+ t6 [7 N3 B, x$ _ }
' G$ U% K* o( u- i
6 B* L) ]" X, b4 ^/ Y+ P$ c ( (CUser*)this )->AddSetChangeJob( nJob );0 r- B( ?, E" Z" i8 b$ F% @+ d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ [/ ^$ {6 L3 S8 S5 x
5 P4 P4 t! f4 ^3 I* B3 M9 v
, _) F- ?, S" {
#if __VER >= 11 // __SYS_PLAYER_DATA( ]: Z& p) C/ M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 V' H+ j4 _$ H; y
#else // __SYS_PLAYER_DATA
9 ?. l- @4 _1 U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( i7 `& P* P- d$ V4 x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" a, v! q0 D- s# S if( m_idGuild != 0 )3 x0 d! V) ^9 l# g( G7 W6 [
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# d: R* ~! c/ q& e% ^. [) ~
#endif // __SYS_PLAYER_DATA X7 s0 Z5 ]* Q+ [ F6 o6 P# m H
SetHitPoint( GetMaxHitPoint() );
" X8 |+ Q& I1 l SetManaPoint( GetMaxManaPoint() );- K$ s1 ~" C5 a9 Z/ |- |
SetFatiguePoint( GetMaxFatiguePoint() );
( t$ P/ ?# s# O4 V7 P if( nJob >= 1 && nJob <= 4 )
7 N o/ q( K7 W$ k {. v( v, D% L% D N
m_nStr = m_nSta = m_nDex = m_nInt = 15;% b( h% V M! a& w' m
m_nRemainGP = 28;
9 J; b+ W6 q% Z7 p& { }. `; v' y4 I3 r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ x7 U7 {) g2 q. x. J6 Z { B" J) a. Z* @* U8 f: g- i/ V
m_nRemainGP = 118;
, W, ^, U+ w I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 o/ l0 M( I g2 A& n m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 w4 }6 f5 ?: x0 T( B; x) N }2 ^: w7 j2 t5 ~2 u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& @0 V9 Z d* |1 V& Y {
: b, D0 m' D `) i/ u% |: i9 r CItemElem itemelem;
! x& |% z' I1 e" c; m itemelem.m_nItemNum = 1;
8 J' l3 V4 I6 g/ {. \! O itemelem.m_bCharged = TRUE;2 x. w; W- P' a! \* Y5 h
BYTE nID;
6 F% d$ l/ }8 V' q9 v+ `
J; D& }% h$ t+ q* H: e; ` if( nJob == JOB_MENTALIST_HERO )
B/ x9 [3 a/ V! q3 r, b% `% L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; q& Q8 n0 h* e8 l
if( nJob == JOB_FORCEMASTER_HERO )
0 {. B' D3 Z0 G1 o itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* _2 ]9 d2 Z) o8 E6 X- f7 e1 I
0 g! G7 l5 H9 R5 A ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" b$ h5 h v2 c }7 P: v$ V, @2 `* D; l, w8 ~) v+ f: r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); Y: `, r0 G1 M# `: p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* v" `" N, Z2 B/ _6 P& c2 ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ I" N! a. p1 m5 Z; A3 q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 F! y* j; V. k% v7 T C
( (CUser*)this )->AddTaskBar();*/! _, T' x0 ^( T. Y9 e% ?4 o" ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 ~* ~' c, H( t1 p. Q# |+ N$ q" m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 F3 p6 s! W6 M8 X. I, a; A, [
((CUser*)this)->CheckHonorStat();- @. o! I [' ~+ r0 A' |. d9 s; k
((CUser*)this)->AddHonorListAck();
3 x& a- A6 q1 w Q8 C; P" H( G g_UserMng.AddHonorTitleChange( this, m_nHonor);2 E: {) F' J% }1 S7 y
#endif // __HONORABLE_TITLE // ′Tà?, ?, n4 u9 n6 `0 m5 X
}
* c% @0 ?$ E, c5 [+ K/ g" Y#endif // __WORLDSERVER! A+ U7 L5 O6 W9 G! t: N8 O5 u3 ?
} % f" P9 O' W% J5 T3 @
( H" U0 y( _6 q! O j然后你进入functextcmd.cpp并添加以下
1 ?3 @1 z$ `; z% t
0 Z3 {+ r5 t. u V- u: n c代码:
4 X _/ y0 {) a# L3 Y; Y. a* QON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 S2 b; K: c! i% V9 o, T
下面插入, S1 {5 Z/ N- f1 {" I# t- R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 s4 ~/ n$ e7 [ ~2 E
: Y7 ~$ E# ~8 O0 j% U
然后你去
/ M: F3 a: y& q. D2 Z- s6 z' y0 {5 e1 H e: u+ b% ^0 l7 i6 u
代码:
4 g" q) U. g% b0 H4 ^# v! B代码 f' I! G9 S# c$ d! I+ D) f# Q+ |3 g
BOOL TextCmd_ClearPropose( CScanner & s )0 J- G9 o4 q a7 ^6 w
{* g& ^) {; A2 r5 F5 a+ `6 E
#ifdef __WORLDSERVER# J! \% b2 E) s- ~$ {- {# Z
CUser* pUser = (CUser*)s.dwValue;) r( d+ v0 |1 v# [( T6 ]+ }
g_dpDBClient.SendClearPropose();7 \6 J n0 k* Q& \
#endif // __WORLDSERVER
# ?% s0 ~! s1 X" ` return TRUE;
. N" k5 S% _+ k Z$ k* P}+ H+ b! ]( c" H# i8 e1 S
下面插入; ~( y8 w% {9 ]! U( B2 J9 |' w4 ~
BOOL TextCmd_rebirth( CScanner& scanner )) j6 e" z( R, @) c* y8 k: x1 J5 }
{- D2 [( ~ ?/ Y
#ifdef __WORLDSERVER
1 b2 Y4 X2 K: d6 \, H+ W4 LCUser *pUser;
7 @$ _0 j2 F, R" mpUser = (CUser*)scanner.dwValue;
" M7 ?+ A d3 B5 v+ yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 T6 s& N w' G' ]( y+ A" KpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 J1 w1 T. o# `1 Celse
: L5 ^/ D) F# s' ?pUser->AddText("你还未达到重生条件!");
" _% |- Y. t4 h) L( k3 ~#endif4 D& t3 ~' w% {: Z2 [. C
return TRUE;
/ N7 d. r8 T" F}
# S$ a3 n# V3 a7 C' G! [4 l& T7 S& |' c
. `! E# e5 `* N2 @* V8 I! v
P: h0 p+ J8 k- @9 n$ e. z/ D7 o# c
|
|