|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel {! {% K; O' ]2 Z$ r
S# v+ s/ w/ e2 b2 }) g" k3 e. E
Mover.h, h/ C; ~; A& }; f0 y( ~
代码:, ^$ K; P0 M4 s4 I# u. u
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 n( f$ v+ ]3 Y/ d: P0 K4 V0 ~
! J# _+ q* k2 s8 c9 |# q5 I下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 f: j5 A; ^+ h" H7 R
- X+ G& |9 b2 O6 ]( k然后你去mover.cpp添加' x. @9 |! e( m- O6 A/ `# G- z, J& w
; d6 P; a. j( T& I
代码:- h. k8 R# _) |& h
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( g3 m% l% u. \# p, R& T1 R
{8 q f. K# t7 \4 _: g8 }; \
#ifdef __WORLDSERVER' o* m7 Q* `# \5 T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& ]. \& X- D) T( l8 u
MoverProp* pProp = GetProp();7 l8 S# z% k; b" o
if( pProp )
. ?: s! v$ |3 _. y {
- T$ O9 [7 F+ Z0 r' H if( nJob > 0 && nJob < MAX_LEGEND_HERO ); b5 G2 D, F! L8 I8 I# A y
{3 i6 Y; ], I/ ]3 m. F" v/ m$ ~; j
AddChangeJob( nJob );
) W4 M# S# c# I4 l/ w. }7 q' b( ? }else{- w/ ]+ r4 k' r$ J% T/ a* M9 o
return;
+ n* N5 _9 z" p5 [* h# T }
1 A# ~! N$ G+ ~' Z! R4 M# b8 v int nPoint = 0;3 Q- N" L6 K& b2 r% z# j
if( m_nJob == JOB_MERCENARY )3 S% h" |0 K9 G: m9 p8 z
nPoint += 40;1 P9 V, ]. @. P; b( i+ M, e7 J4 d* M% q m
else if( m_nJob == JOB_ACROBAT )
0 ?% ]8 U3 E- H* p nPoint += 50;
; z/ U5 s6 x! ?+ E; h# H: `9 S else if( m_nJob == JOB_ASSIST )4 ^+ z# R; W* |; Z: F8 {
nPoint += 60;3 D/ a% y$ o& o+ W8 l% ~8 ?
else if( m_nJob == JOB_MAGICIAN )
2 M* j {$ Q$ a5 K. I nPoint += 90;3 t. E& |4 F# T( a( e8 l/ {
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 Y; U% R* K; Q) g1 e" c nPoint += 120;
) M- @& u! s" n4 v) y" g: D/ l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 h4 Z& T s0 u
nPoint += 150;* e( V3 i, ^7 o# a) |8 K/ ?
else if( m_nJob == JOB_RINGMASTER )
7 c) m/ b5 ~+ g( N nPoint += 160;
2 w9 G l% q- A& P" q2 z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) { y0 y. D, e7 q1 G% s
nPoint += 180;
( C& Y0 y" B+ o0 Z else if( m_nJob == JOB_ELEMENTOR )/ K2 O) d' Q4 L* s' u y8 I
nPoint += 390;0 k2 h8 {" h3 }. _. G& X5 z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 j9 b9 j' r+ d E m, B1 ~$ x
nPoint += 120;
' U& P5 v7 g/ G. ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. S7 Z+ L# i/ Q8 B& ]2 B% |" m nPoint += 150;/ ?, m; b4 _" X$ h3 ]# w
else if( nJob == JOB_FLORIST_HERO ), ]) i, O# g1 C/ Y; s4 I$ u
nPoint += 160;! ~0 C; u/ L1 {9 ^# m! \ O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). ]1 b3 Y: c. i9 Y6 h
nPoint += 180;
+ Y# J* m9 T6 k/ t3 o8 ?1 y: _) U else if( nJob == JOB_ELEMENTORLORD_HERO )$ t5 A) N2 I4 w
nPoint += 390;
F' v i4 l" \& `6 C; L+ n1 [6 C0 j0 [2 J2 g! Y
AddSkillPoint( nPoint );! `$ f/ z" e+ s# c c/ k$ n5 N' u
m_nLevel = nLevel;
8 a; ~" W. x+ R7 T7 N0 N! V9 P, k. s. \: a9 T* i' j3 D
SetJobLevel( nLevel, nJob );
6 c* W/ U0 ]* w! s6 h, a; Y' B m_nDeathLevel = nLevel;+ C2 |6 O B1 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* L* z4 P; h2 H' K: K# @
if(IsMaster())
Q( D6 X8 {( ?7 Q* a9 o {, [+ o& X& H& n4 y# {- G. `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ U6 c, j/ P# [% T if( nLevel > 59 && nLevel < 72 )( [0 n8 f& ?% s, W1 E z+ x& c" a
dwTmpSkLevel = 1;
9 V$ p1 v& r# h6 r* T else if( nLevel > 71 && nLevel < 84 )
Z9 b$ Y A6 [8 H( M, d& C0 J dwTmpSkLevel = 2;
8 [& \4 q0 f4 ]2 z- q else if( nLevel > 83 && nLevel < 96 )
' K# b' `. W* X& q: w+ l dwTmpSkLevel = 3;
" R/ M) ^ @6 I* W else if( nLevel > 95 && nLevel < 108 )
( M2 i6 q. @9 G; S3 R7 [, S$ J dwTmpSkLevel = 4;, ^2 t) A7 L& J
else if( nLevel > 107 && nLevel < 120 )1 a# X, _5 S' i- h# `
dwTmpSkLevel = 5;: r+ v& E. G; b) s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ?. O4 `4 ]) U$ S
{
) P$ K2 L' J: i$ l K2 L LPSKILL lpSkill = &(m_aJobSkill);
6 S2 M6 R4 {$ u+ |1 V if( lpSkill && lpSkill->dwSkill != NULL_ID )$ H% e' R( p+ n d
{# p5 L; J& ?$ M' |# A* q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 S! E; F2 }$ U( P4 ]8 w7 V9 r if( pSkillProp == NULL )
+ B! k8 g' D/ q+ T6 ?) j2 K continue;& e# Q# C, ` P& ?5 c' {, O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' O5 \& J$ S+ p! C- ^) I/ s
continue;0 [' ^# a: K. U6 y
lpSkill->dwLevel = dwTmpSkLevel;* ^; w7 k; w8 v: |' ]: q/ L6 z
}
& H6 W) i0 ?9 L9 r }
/ A$ Q+ e, e3 k8 f& f2 t; | }
3 a @) i2 u& ~8 X! Q/ }- r else if(IsHero())
- L+ d" n" X7 T8 M {
0 M8 P8 Y- ?8 C: ^& j for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 Y$ u o+ V$ {0 F { 5 y. q" }, `6 ]! b) d% S0 n
LPSKILL lpSkill = &(m_aJobSkill);( _+ x' j, O5 b$ Z" P- B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 R/ O5 |5 l) { g+ C- j. o {
4 d+ s& m; ?. F, E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . l& w* w1 C. |4 G) A2 I
if( pSkillProp == NULL )# E0 y& b5 Y2 E+ k/ o7 V
continue;# B3 {+ M2 u0 O& ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 c1 h" P8 }2 t# _$ P- H# G continue;; z- H7 l* V/ z% a1 f* P
lpSkill->dwLevel = 5;7 m' m7 G1 b& i' _2 F9 G6 h) R
}) P* b f2 \) i3 }4 |( B
}! i! \, z# j, t" ~* Y, ]: B; W0 Y
}& p, n- ?. @! }/ U' ]' b* g( A
else if(IsLegendHero())
0 x; H" I/ g" G9 G& N+ d {
: n4 E, }! C4 n; i1 p for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 W% t E$ ~' c u+ \ {
. G. M6 [$ w& ?! h% D; F J! `3 c LPSKILL lpSkill = &(m_aJobSkill);
- K1 ~/ e7 ~, s% y$ t8 U% a/ J if( lpSkill && lpSkill->dwSkill != NULL_ID )
( Z0 s) q, Z( o) |, V% B3 {/ I, o {
7 G1 k) B! j8 b) P h0 N2 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ C' p0 ~4 i# _$ G" h8 h1 F) ]$ I
if( pSkillProp == NULL )1 e6 @6 W5 g0 }6 C/ j
continue;8 [3 e- K) D& j5 W4 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 ?6 ?2 l* `. D2 e i
continue;4 f/ C1 u# ^5 v
lpSkill->dwLevel = 5;3 X" X9 K/ ^: l4 m5 ]
}
6 L( G+ P1 e& t! E. @ } D8 A) }1 f: u
}
/ A9 o" y; M2 q6 E% @$ C) ?#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! F; G# s, v) E6 b3 Y
if( bGamma )! Z; z9 l2 P: k% X1 t# w8 h/ _
{
- k1 P: n! r& t4 ]! k m_nExp1 = 0;% ]+ Y* L2 M6 b& O, M
}& b: }7 `! D3 ?5 S+ L
2 q) U' Y2 W' k& S4 l5 ~2 _ ( (CUser*)this )->AddSetChangeJob( nJob );
6 b+ |# r* K) e g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ A) k/ k: M) p% J9 A! w# F9 [
) p3 Y) K$ o3 l. Y# N2 `! J$ n
# f6 w+ C3 N0 e+ U$ B#if __VER >= 11 // __SYS_PLAYER_DATA o; o- |6 k2 w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! T. h0 b2 H5 ]7 \8 _#else // __SYS_PLAYER_DATA! ^! u' q( r0 \2 o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ T3 q! d' k6 w& W5 C3 N g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* Q) [- F0 G9 y, @
if( m_idGuild != 0 )
! X& V( W+ n& K$ L+ X# D } g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- b/ j$ B! N6 I$ ^" t1 j3 C#endif // __SYS_PLAYER_DATA, H0 _1 ? o1 Y1 q @6 x
SetHitPoint( GetMaxHitPoint() );
* A4 e n8 S) X% ?# F SetManaPoint( GetMaxManaPoint() );: ^* u% ^, v% B+ W( _& S& C5 H' K
SetFatiguePoint( GetMaxFatiguePoint() );
) @4 F% k$ u8 C, p6 e5 |9 S1 S( S0 W if( nJob >= 1 && nJob <= 4 )) h8 A" A" ]7 A1 j4 w
{% x. R5 M& p0 K( c1 l7 Z
m_nStr = m_nSta = m_nDex = m_nInt = 15; E9 l9 q( I6 Z- S
m_nRemainGP = 28;
7 ?6 C) G# p; U$ |( B& Z2 G }9 d6 b5 y9 {% k4 A3 V6 L: G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# y; O( k3 f' h- O4 p% J
{2 R8 t2 V0 `9 r4 [
m_nRemainGP = 118;; i/ V5 A! [2 R9 B0 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
j9 V6 O: V, A$ D, S m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 O B9 {3 Y- a' ?! ~) Q% e }5 i: v# |/ H6 Q" \4 \* J7 r
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% G- _# l! p% c {: R. l7 U" Z7 U" }
CItemElem itemelem;4 k' V7 E8 q+ Z U$ k3 j+ Z2 {
itemelem.m_nItemNum = 1;
; y4 E) S7 E$ W7 `$ \ `4 B, F itemelem.m_bCharged = TRUE; ~/ x; w7 ?% r6 |8 T/ G
BYTE nID;1 l- c7 ]" B8 H6 |
7 @6 G' m# J7 K: @( F r, P if( nJob == JOB_MENTALIST_HERO ): C! a- w1 _: @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' {" ]7 l- D: ~7 Q- |6 } if( nJob == JOB_FORCEMASTER_HERO )
' \* t U6 y$ M# {4 P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; F: k$ L3 ^ Y; ?- Z! R: @1 d" }
E) o$ [" a2 x* D9 A- D' \2 C ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 B8 E3 I' d' v* d. q# ]
}4 j `- s. e e; I0 s1 u* o& v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" U; b" E9 A# H9 [+ w& ?$ G8 s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 m# w- k* T7 }* _0 T# |3 M6 T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! l: a. S* d. u /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* `% Z9 S P' k# U: G ( (CUser*)this )->AddTaskBar();*/3 ~$ m# I, U- a8 ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 Y# Q. \0 S( k! w" B1 L* h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 o- R: M7 U$ X0 i' I ((CUser*)this)->CheckHonorStat();) D" G1 A/ {5 r. v. [4 [" l
((CUser*)this)->AddHonorListAck();+ @7 [7 I/ x# Q( ^, h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 E6 |0 f) a+ H8 L; F#endif // __HONORABLE_TITLE // ′Tà?
% E8 t1 r0 l/ V }0 r4 @0 `$ G; l; r5 @5 O5 f
#endif // __WORLDSERVER
" r8 W- J Y5 y- O, p} 1 n. k4 i7 l1 @
+ i5 Q8 ?# g1 X7 m% O+ R
然后你进入functextcmd.cpp并添加以下
* F0 B( r9 ]) f% k
( d8 N& ^# i: h I2 B. c2 `6 R代码:
5 u5 @; D; |+ N \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, |0 r/ [. h e7 L. }8 A) |下面插入; w C6 @# z$ H! S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% w- k, f8 {& Z) C) K
" ~, t' E+ q+ T( }. C然后你去& F# ^) o/ a9 z" \2 |* A
+ T- `( t* _9 B6 M6 a# }. w代码:6 d9 h/ g- |6 r/ j6 g
代码' F9 b% O! O3 y7 Q9 o
BOOL TextCmd_ClearPropose( CScanner & s ), r9 |4 P" N3 ^8 W
{
) Y8 Y1 i) S9 ?1 j#ifdef __WORLDSERVER) s" Q' m, ?6 n
CUser* pUser = (CUser*)s.dwValue;& l: q$ `' X: h0 s. F- X
g_dpDBClient.SendClearPropose();
[+ k7 X# ?9 H, c, S#endif // __WORLDSERVER) T8 |$ h6 j) U8 a; G/ ~' x6 J/ t
return TRUE;& u) ]1 [9 S5 |0 e) d" Q, ~
}5 `# ~$ b( v+ O" F( y9 @ S2 |$ S
下面插入( k( O. U3 e X4 S/ Z' Q: P
BOOL TextCmd_rebirth( CScanner& scanner )
7 e8 ~$ z: y: f& B& S" ~{& c6 @# u2 v+ b
#ifdef __WORLDSERVER0 |; Q& v ~$ J6 A8 Z9 s3 O
CUser *pUser;$ `/ Z& L6 K) r8 e3 ?* r
pUser = (CUser*)scanner.dwValue;( S8 U7 f0 B2 T1 U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 L9 R! w$ w. P9 i5 u2 {$ jpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 i& \7 G: ]& K' C! w x5 t
else
* X g. v! r$ n5 D" d4 upUser->AddText("你还未达到重生条件!");' {7 m$ x! F5 }8 @& i0 S) g
#endif
" F! G) a8 V8 P; p0 s% Treturn TRUE;
; @2 p7 Z0 q; ^+ @} + e( i: n) T; o I1 y
' p; B1 Z. e* ]5 E1 q) s
& u1 A8 f r" D% k- i1 b4 P4 R# ^! M
) X6 f' f$ Q! v# e% f, G1 t7 ~
( K2 p4 @! ?' w* @ |
|