|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 w: [5 V* @8 b6 N S+ x1 `
" G3 O( v* t. v7 V5 i! h$ R
Mover.h( O/ j2 C9 a* Q* P% K3 F& y
代码:: o4 G8 l7 J6 ?& L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 w7 Z" A7 o" \. z4 s5 t, N8 |6 ]4 [3 M( s5 R9 |1 D" l4 X: N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # s* Q* S: h5 m- G: S
" X5 l! b1 i- T/ `然后你去mover.cpp添加3 a+ n. T4 R& I0 w: T5 h4 K, V
F. n5 d, N4 _" d2 P
代码:( }4 z+ u+ |' g- P, F' d' b7 @' i, x
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 ~4 Z7 W, s+ P{1 F$ Q1 c2 x" m( E8 q& A5 [
#ifdef __WORLDSERVER
% }* i1 s: j$ u) T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# o: ^1 U* N- a5 G MoverProp* pProp = GetProp();
2 @, h* z8 a# m, Q/ i if( pProp )
1 F6 I5 \) b0 K; Y/ t$ \0 X& W. F {9 f& V& g8 X. k/ R. U8 ^5 ~3 e
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); y6 Q6 t3 ^- v, O
{
5 p' E F' |; L, G6 C: W( r, n) c AddChangeJob( nJob );- x9 `+ j d$ e P+ N# C3 L
}else{: |- N4 }! Q5 N3 x* V
return;
8 e) Y' v% \3 w( v5 H- M }& _6 G, P& @( W& L2 R8 H
int nPoint = 0;+ k+ f, _" ~4 K/ u5 f( n! O6 t
if( m_nJob == JOB_MERCENARY )2 e/ p6 q& |) i4 P: L) c
nPoint += 40;
, m1 U; ~+ I! R: O- C else if( m_nJob == JOB_ACROBAT )' j+ L0 Y. V/ ] Z
nPoint += 50;8 M4 f$ S+ E' I( N
else if( m_nJob == JOB_ASSIST )
1 V$ E. W$ z, U6 F4 O R nPoint += 60;8 d+ d7 O9 |$ j4 Z% t3 c- ?
else if( m_nJob == JOB_MAGICIAN )
& }% N# A: R8 D# Y: I2 q nPoint += 90;
) J. V, m# y( r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 H: @/ U* Q* L O nPoint += 120;1 W- X- ~) Q8 m: A- O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; c$ M" L5 _5 [1 C nPoint += 150;+ S* B3 R2 @" r! M" }0 M
else if( m_nJob == JOB_RINGMASTER )3 D5 M1 X% {3 m
nPoint += 160;
! d) A/ O. c' U& h; D/ t, o5 i9 k else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ H4 z4 @: |$ D- ]
nPoint += 180;
. T( t. D+ Y9 ?' u4 ?/ h2 O% U else if( m_nJob == JOB_ELEMENTOR )3 S; O* O' k! v0 h, u$ g9 {: j5 _
nPoint += 390;
3 \( R& F& V$ a% G% N else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 R8 {; q& O6 a0 {2 t
nPoint += 120;3 R- I2 B8 n P6 Q% y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; T3 ^. q! ]3 m0 K8 { nPoint += 150;4 O0 u) {& v2 C% c
else if( nJob == JOB_FLORIST_HERO )
% b% t# j1 k& X% ~4 ]% Z7 B2 c nPoint += 160;+ n% a h7 M5 T
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 y) t; f+ _1 D, Q7 J
nPoint += 180; s2 \) K/ A% C" N
else if( nJob == JOB_ELEMENTORLORD_HERO )* l' T+ T- v9 N. e, E
nPoint += 390;5 X; ? _% [& `, \9 C0 a* V9 o$ D
# r+ i# u( x$ m" I W AddSkillPoint( nPoint );+ p9 b( j2 |/ p; v! @( x* t2 P; T
m_nLevel = nLevel;' z& j9 B9 `4 Z% N5 [' S" ]/ ~
: l$ T {0 M# q j8 G8 r; P1 P SetJobLevel( nLevel, nJob );1 d/ {1 E& o/ F0 {/ H
m_nDeathLevel = nLevel;
( l, p j/ }" \ t4 X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& r. @" l4 E( V9 [' c8 L, m
if(IsMaster())
7 t$ v1 ]( n- d: l { {/ g$ X ]2 h' t. G$ X. q! a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 S4 H L/ ]2 \ h if( nLevel > 59 && nLevel < 72 )
: B7 n' Y* p- ]- z- W I dwTmpSkLevel = 1;
& W8 r8 |* v) n7 `8 \* U7 \ else if( nLevel > 71 && nLevel < 84 )9 s% p% b$ ^6 E0 ]! G( J; D" m
dwTmpSkLevel = 2;% M% M8 C/ }5 {( T, e
else if( nLevel > 83 && nLevel < 96 )# f" k& u1 e' F- f6 [
dwTmpSkLevel = 3;, K) s6 @! @- x3 Y8 m9 d+ Y
else if( nLevel > 95 && nLevel < 108 )& j5 Z# c+ C" n, a3 F. x& I
dwTmpSkLevel = 4;9 q. [9 i" ?( q4 e2 R
else if( nLevel > 107 && nLevel < 120 )
2 p9 j9 w M: ^ U dwTmpSkLevel = 5;1 b9 R( k- B" d8 L) s. y% P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ~7 ^0 Q# ]+ T! N8 v {
! v, |: V3 r q LPSKILL lpSkill = &(m_aJobSkill);9 G$ P/ Z2 c9 Q7 u6 a+ T2 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ D$ ~* l) S" G6 c {
$ I# O/ I& }9 r: S6 }6 } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ J; C" p1 F1 b( c" } if( pSkillProp == NULL )
$ I ?+ k4 ^% z4 O9 i6 S( X* n continue;
8 a9 V% Q$ F" ]3 c8 T if( pSkillProp->dwItemKind1 != JTYPE_MASTER) W. F2 a! @0 `0 {8 x
continue;
2 e. {( s, w: n lpSkill->dwLevel = dwTmpSkLevel;2 i& z( K D: _. H8 `0 m
} r: s. C5 g! x
}
3 v- u4 X7 e+ T: n }- _; a0 ~1 u! C$ ~4 n, L; w
else if(IsHero())
/ D! T: j$ `+ Y {
' f9 @1 Z+ x: i" T1 z% K, R for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 m+ k* Q6 r, {5 y H2 ^8 z5 v
{
" _, P! O" O* V LPSKILL lpSkill = &(m_aJobSkill);9 D* T2 D$ Q& ~9 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )( n. B2 S+ K$ j6 e# G: s
{6 B& P! z# |/ T4 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" G) I9 x$ P# W$ V' d" q0 { if( pSkillProp == NULL )
6 v/ I8 H* A6 g V5 F T continue;- ^ R% p! H5 `' u( U2 M+ ^; w# n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 V9 X" _2 W% N( H4 E
continue;
! u8 s$ [0 N( J z, L% J6 Q lpSkill->dwLevel = 5;
( Z3 V9 J/ e4 m1 k8 m1 [( n2 S }1 b/ K3 \' Z) A) r6 c
}
) @$ _- \. G( x }. [9 E" h! f; p" N/ {
else if(IsLegendHero())8 n) K! c* `6 F& E& ]3 ?$ `! w
{
+ o, V* N# o3 g/ [/ _6 d for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ c5 b! B% C9 W! D/ |1 v { 6 X ~( H% S" M; ?7 D+ a6 n
LPSKILL lpSkill = &(m_aJobSkill);
' x, h6 b6 b+ w* j7 z if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ t: q- H7 W% y' @; `! g% } {
) m2 N0 e' r# v5 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # [; ]: D% X9 d6 ^1 e
if( pSkillProp == NULL )
1 h; m3 N" S$ |* Y$ ?7 ? continue;2 ^! t: q1 s/ z7 m/ ~# B' ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
E( o6 Y/ j m" P continue;- R1 S& A B; _1 p& K
lpSkill->dwLevel = 5;
0 `8 B: s3 D- D# V" z2 G# S }
& o, q4 b" h; p }* }4 a$ O' Y3 P8 A4 d
}/ c* \! R4 K& g4 ~: g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 s/ }; J, ~* t0 Z' A if( bGamma )
) T, i2 t* S& }. @4 C- K! i& n {
& R/ B- h" m7 d5 R: B m_nExp1 = 0;
. ? f7 ]: e$ ^ }
7 M( S3 o+ ~7 r
2 w$ `8 ?1 Z/ G% W% `" ^ ( (CUser*)this )->AddSetChangeJob( nJob );# P/ I# d$ t' q; d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 `4 [0 [1 {( X* d j& K7 B
5 D5 S0 ?9 U6 J! R8 b7 S
( b" J# X% P" P" V# K#if __VER >= 11 // __SYS_PLAYER_DATA3 }' P: L. s0 {! Z. y9 f# [, t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, O0 k1 K$ b( Q+ k" @5 H4 \, {4 Z
#else // __SYS_PLAYER_DATA
7 |: E$ O& X- I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ P% z; r, L2 [ _% ]+ x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. q" }' ]( M% [) C0 x
if( m_idGuild != 0 )
/ }- _- i% _2 T9 |/ D8 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 J* y$ @2 ` z8 M3 V2 {# B#endif // __SYS_PLAYER_DATA9 w4 u& }5 l, P; T
SetHitPoint( GetMaxHitPoint() );
" u+ F; {, ~6 E2 w5 A0 W SetManaPoint( GetMaxManaPoint() );
5 { J- c* B9 w) a5 P1 q SetFatiguePoint( GetMaxFatiguePoint() );- L- c' ^8 H3 T: p6 k
if( nJob >= 1 && nJob <= 4 )7 j$ X6 J5 K1 Z. h4 @
{) e. \4 j) Q& N0 m4 J( x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) I' K7 v8 {" q1 F# I! k m_nRemainGP = 28;# t0 o/ A2 w! x! ~- v8 u( r
}6 t* R' ^- U ]# P+ Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), Q$ o8 C! @8 q' s7 l
{" J) ?3 x' s9 D' p& W f! g
m_nRemainGP = 118;
7 |( [; b0 I2 b: c. u( } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( l9 }" w" {. V r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* C+ e: a, A% C- k8 s: h }1 _2 x0 y- M) I& T3 g/ ]* y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 S: C3 X9 \: u# w( H {8 Z$ [1 f5 E% }# ]" e
CItemElem itemelem;8 t1 x" }7 T3 p/ {6 h
itemelem.m_nItemNum = 1;3 p6 q1 M$ ^$ ^8 G
itemelem.m_bCharged = TRUE;
6 x6 d& N) C$ Z V. ] BYTE nID;
8 l+ b) X% n* x$ h8 _: d- ]6 n- M0 {+ n: w' j( r
if( nJob == JOB_MENTALIST_HERO )0 R' L6 ^8 I* v5 S: W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
f- i9 q1 A7 [8 N% v# G% Q if( nJob == JOB_FORCEMASTER_HERO )
! o) {" d3 f' t) ?# J4 Y, w; F; A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. N8 s* G- T5 H' v d
; A& i5 ]$ }; r1 S5 t. F* G ( ( CUser*)this)->CreateItem( &itemelem, &nID );. X. c/ Y7 A# [9 Z$ Y& A- ?0 b
}
* Q$ C# ^6 g/ O) D6 b g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 w4 Y1 s5 }! G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 \( X- o3 w$ K4 r j/ g ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 X6 e/ H. V( G# E- e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 ~; Q4 K x2 I/ A0 A9 |5 B; D ( (CUser*)this )->AddTaskBar();*/
: L! u( q9 m) G3 Y7 ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; m9 l' z2 _/ z) P1 O1 I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 C( G% d* x( B% z0 P: d
((CUser*)this)->CheckHonorStat();
; n* o- K' v' ]7 P# b% m; `- o ((CUser*)this)->AddHonorListAck();
: C# f% G) G* B6 ?) z g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ o" P( F, _: S* K#endif // __HONORABLE_TITLE // ′Tà?
2 \8 R+ @$ D2 D4 x" a# O }
x5 S A8 B% b#endif // __WORLDSERVER3 _3 v6 U4 [6 n O. S& i
}
9 t) V' { K4 i( F1 T9 u; L& y3 f. [% ?: j
然后你进入functextcmd.cpp并添加以下
" m; j! ]3 { X
& M. g6 f/ Q$ {" u1 d i代码:
* I2 C, N! o0 S D+ F hON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ _% T; a) d- o下面插入, d* k; t0 E& c- O& b, M1 i- l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) u6 J/ t0 \7 U) v o
2 Q! q6 u1 x; N0 X6 d7 \然后你去7 b5 m& ~) U; w* C
/ N& e' i7 y; T3 e& Y" O% s
代码:9 }1 j. A: L6 ] g$ Q: w
代码
$ y X$ U( E7 ] {+ ?/ {: cBOOL TextCmd_ClearPropose( CScanner & s )# Z; ~" i% q A$ P2 t0 w: h- ~
{0 O* P: F& \/ w8 T7 k0 t
#ifdef __WORLDSERVER
; l2 q2 _0 Y& J1 a' A4 w3 A4 _ CUser* pUser = (CUser*)s.dwValue;
4 j0 @) _+ b0 ]1 t. A g_dpDBClient.SendClearPropose();& a; G6 v* O5 X
#endif // __WORLDSERVER
& X6 z3 ?! m& s6 D. o return TRUE;1 \" D* k- p m }: F: @" v5 ^: \* ?$ a/ I
}
1 p, `' \5 B6 v* L# j下面插入4 j# w# ], o7 r( Q9 J
BOOL TextCmd_rebirth( CScanner& scanner )+ o1 c$ H& w; Q5 O1 J k
{' e3 c/ |* Z: Y( O# q' c
#ifdef __WORLDSERVER6 I% ?* l! L. m/ e( o" G4 a
CUser *pUser;
1 w9 N8 K! B V3 J/ D1 |' WpUser = (CUser*)scanner.dwValue;
$ H- [+ A0 A$ v `) f& yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 C# e- S7 b1 t! j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ Z# u" w- n3 @& O4 W f* celse
- _! r5 g- p; D0 J4 ?# g& A0 s, PpUser->AddText("你还未达到重生条件!");
; u* _ s9 j: W; w3 z; K- ~#endif+ T5 }- P8 z1 P* ~$ u. W) M
return TRUE;9 t+ l6 P2 k: b& h# @* M0 }
} / v& s- n% J) l: b1 j8 U% ~7 h) \9 q* w
+ `( U% M$ S" o: L2 b+ c, e; O3 C y0 F, E4 v' f+ Z5 T% g3 U& x
2 m; R$ k# e z& X1 I1 T* P6 m8 a% o# M/ ?* v
|
|