|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! ]% Q7 j. I9 G# {9 P& t" p0 L# u, t' }) x; I7 u+ d
Mover.h
' }& `0 b* ?5 v+ s0 q4 n代码:
. z+ i# N9 r! D/ p* J# L2 E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ H! s# W% Q. Q% D5 T" H
1 I! `( X+ ?. [. s4 h. {; t3 b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - H$ e5 U3 N) W4 S
2 o; ^" N/ z. Z' ?$ N
然后你去mover.cpp添加" E1 E1 F! X m D, S) f' P8 u9 R
8 ^/ [' N" Z* L( s+ L' W! c H* {+ [
代码:
2 v/ L9 S% l B% W# @5 w( r mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% l; A% j9 O K. {6 ]% s
{
" L' n3 ]1 p$ M H3 W* B% K#ifdef __WORLDSERVER
& K4 V& X7 k! s6 } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' x2 |! M* `5 Z* \, n
MoverProp* pProp = GetProp();
+ x( ^% w6 C, x+ {- s) L- F if( pProp )
: ]5 D. W) O& P {
$ G3 q! x& _% Z7 g0 m if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 m- x0 F: c! f% ]
{
" @' j! d/ X0 ^2 y" l3 j AddChangeJob( nJob );
/ r5 q% c( v$ [" ]8 L- O4 ^ }else{9 _, E0 O. @5 f" y2 T7 ^
return;/ o8 y2 M R- a0 h/ m/ c' a8 e* M
}. c k4 x3 h3 \, A! P% H3 ^5 R
int nPoint = 0;( v$ \9 `. ?1 R( ]) m
if( m_nJob == JOB_MERCENARY )# P* B: z4 Q& L& z. j8 K4 n& K
nPoint += 40;
; p9 f, Z. g; G- D' z+ K else if( m_nJob == JOB_ACROBAT ); e7 N$ E; P" e
nPoint += 50;% R" r, x! h. _/ B r
else if( m_nJob == JOB_ASSIST )
+ K `0 N7 u m* e, S$ o8 H nPoint += 60;
5 `5 M) w; _: M4 E4 r& N else if( m_nJob == JOB_MAGICIAN )4 ^4 |$ f, k3 U- v2 |: A( C
nPoint += 90;
1 z( A5 ~! w; i, v$ f4 P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; M# @, C; O6 z+ E( S% E nPoint += 120;6 i2 u% I' T8 t+ t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" {, W* \8 O& D# a: {) o' p+ Z- c
nPoint += 150;* c$ S- }" ]- Z0 x! k3 `
else if( m_nJob == JOB_RINGMASTER )( W4 g- H/ A- E/ Z
nPoint += 160;
! {% H; ?2 y. E, b$ T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: \8 V7 A- N' {. L( L nPoint += 180;- A3 p3 \$ S* q. R" J& d5 H
else if( m_nJob == JOB_ELEMENTOR )9 }: |+ q( `, B9 K6 f4 s t
nPoint += 390;
* R# c" ^% c" m; q% F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
s. B+ a" R1 I nPoint += 120;0 H+ C' v' f0 p( c3 v- }' G; ]9 r' {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 q+ \9 L, E) H! B
nPoint += 150;
$ I9 i* j' G7 S1 e9 H i$ U! ?9 ]' J else if( nJob == JOB_FLORIST_HERO )- O8 p8 c. x; V( x* U1 k- r
nPoint += 160;
' I" Q% W4 V# \" ~. `1 `4 \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! g& f# a9 U. g% q* i nPoint += 180;8 t1 [) O1 r5 B- _5 m) W* i; r
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 ?+ s6 @3 j* z9 Q+ C$ I, e* E nPoint += 390;
. W! c4 `( ~8 e; Q, O! L( g0 W0 f/ v
7 s$ |5 X5 P/ j6 U1 u" s AddSkillPoint( nPoint );
1 c: J1 ?% A. e/ Z( E m_nLevel = nLevel;( X7 J+ d. X3 c, w6 E% D
/ \: x b$ ^5 l) F+ T( [/ W SetJobLevel( nLevel, nJob );" ]3 i3 b& O. i) p4 p0 A$ P* x7 ?
m_nDeathLevel = nLevel;
2 D* ]8 x# M! q6 X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ O3 G$ F; F B
if(IsMaster())
" B9 p1 ~/ f$ N* [# _ {1 j6 T6 b9 x' z& K' O5 U3 }* @
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" B2 I' `% c( D$ ~$ a2 H if( nLevel > 59 && nLevel < 72 )8 t3 e% @' |% [* q! ` g* V
dwTmpSkLevel = 1;. F: b! w! v* _) B. s
else if( nLevel > 71 && nLevel < 84 ): y* n. P* x( R/ x* `3 j" V8 X8 H
dwTmpSkLevel = 2;/ p6 }5 _ o- P
else if( nLevel > 83 && nLevel < 96 )+ i- |$ T# A) [1 k7 y% o
dwTmpSkLevel = 3;
$ G- P! X+ u) }. w+ I else if( nLevel > 95 && nLevel < 108 )
% e1 w/ E4 I% ?, E3 z dwTmpSkLevel = 4;% d& [4 B! {0 S' a4 n- e4 k
else if( nLevel > 107 && nLevel < 120 )
6 r- [5 K, |4 {8 D1 L: \0 o8 f dwTmpSkLevel = 5;: }* I$ R. J9 z3 `3 v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 q6 v U% Y3 v7 H1 o4 J+ t1 r
{
0 ?) Y. _5 }4 ^ LPSKILL lpSkill = &(m_aJobSkill);
& Y$ B! {/ A! \ if( lpSkill && lpSkill->dwSkill != NULL_ID ); L( v" y& P2 L, ^
{
) O3 K7 I, }# B% D; |, g' T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 U4 _! Y7 l% |1 p# s4 \ if( pSkillProp == NULL )
& c i5 a+ I, @' W* F' ~ continue;
6 h" e2 d" f. q$ g+ H; T! j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 ^! p3 J# F, }2 e
continue;
d+ I6 F& a5 C5 g7 v$ C4 L lpSkill->dwLevel = dwTmpSkLevel;7 Q9 i; G4 v' T/ D
}
8 X0 _* g2 y& T+ U% w }# I' C# z6 s S, R0 _
} @4 }/ n' z% m7 ?( ~: @. U
else if(IsHero())
2 N( {" v% v4 Y! { {
5 t$ f) X! ]& N0 `0 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 J: B9 Z8 h+ h# D
{
8 \1 T8 {0 t- D LPSKILL lpSkill = &(m_aJobSkill);) q6 ~* e( z' S% _$ `$ k% |
if( lpSkill && lpSkill->dwSkill != NULL_ID )" r! Y# ~' b! L# ]" u1 a
{1 C( ~* {. Z* Y( C: W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ?8 m: x/ A* x; R; w0 L- {
if( pSkillProp == NULL )
5 X0 f# L- R. H# o* u; X2 Y* E continue;1 f' N8 |- H6 Z. X" T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ^" b# O" |! H. k: Q
continue;
Q/ N$ n* i! V- i lpSkill->dwLevel = 5;
( k6 E5 \; l$ F9 c }
5 a* ^' _$ O" [$ O* {8 w }
# N! P9 K/ ?9 [" h$ a! e2 W7 b }: T# ~, _! k" U' W+ V6 h
else if(IsLegendHero())
7 I+ P4 g( @$ U) R {
+ u2 A! U6 J1 ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 G5 q0 y+ J$ [4 f
{
1 e9 `) `- _* ] c4 R LPSKILL lpSkill = &(m_aJobSkill);
' y, g! v3 h% y" m$ ^ if( lpSkill && lpSkill->dwSkill != NULL_ID ) A/ S; s8 ]: j- `! j
{$ L! P1 J- h6 E) u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' T/ k" K; `$ V6 p9 N
if( pSkillProp == NULL )( i j/ B4 k$ F$ U% |7 C
continue;
2 x- g0 z' [9 P: ] M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( n0 J9 @, G! F( [. U
continue;% v& n6 Y' H4 p# s: S# ?: d, R0 X4 \; h
lpSkill->dwLevel = 5;6 L8 l: K7 v% o/ h- k7 o0 _
}4 P* Q0 S; j7 A& }- ]2 S$ y; t
}9 U8 J8 [" Y( w
}1 X+ p) V q! u+ [0 N- i6 F9 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ o0 P- p* ]* v. y if( bGamma )
$ o% d/ ~7 A/ \' V {6 s7 y9 g9 g7 C
m_nExp1 = 0;
1 q; Q+ R& H" { }
# G* ?* j" F; W: v5 F5 R- U/ Q8 v9 ~( U' k1 G+ S2 o
( (CUser*)this )->AddSetChangeJob( nJob );
: E/ k9 I/ C! x. |) O# \. Z) x7 u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' n8 T, {, a7 j k/ d
* m" C; h; R7 I. j2 |
: w: [8 \3 @& X* `' Y2 b#if __VER >= 11 // __SYS_PLAYER_DATA
' A$ B, @9 m& X, K g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 v- o+ P2 R( u w* t* a7 k, `#else // __SYS_PLAYER_DATA( d7 c+ [; u& v2 Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
`+ Y8 i( i5 @ t2 E9 s2 @( U8 J# } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, V/ Q0 M; X7 ]9 t6 R
if( m_idGuild != 0 ) X3 ^- n n! f2 \% G- s# ^8 T
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, o4 h( b7 _1 [ p( }1 [#endif // __SYS_PLAYER_DATA
) h D- W6 v3 [: g: ?$ ~! V3 ]9 H1 ? SetHitPoint( GetMaxHitPoint() );" Y) b+ k2 H( x- J! X# X- C
SetManaPoint( GetMaxManaPoint() ); \% }& U: S6 V& h2 e
SetFatiguePoint( GetMaxFatiguePoint() );
. B7 C% v" K* m/ ]$ Y. N6 ~ if( nJob >= 1 && nJob <= 4 )- j f/ `1 T: `
{( Q! f6 {: N+ U' y) ?! D1 k0 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 {' z4 O. c. N: H0 K& u, x) A m_nRemainGP = 28;
0 Z# M3 d- J/ d* Q9 d }
8 H) r( J- E% v% Q$ A; q( @. t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* X' w6 j/ \ J# g c {
- A/ u0 a0 P0 |" f- ?5 c6 g m_nRemainGP = 118;
5 L+ P& N) y Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 d$ y8 F* x% B( Q% {, ]9 t m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ Z8 l- L0 L5 b/ q }8 Y2 B3 M5 \) t$ y, f8 A# G9 W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* ?* ]8 \* M& g7 M* `4 E. Q4 ?5 Z1 f
{
4 ?6 `( v( z& H0 R6 R CItemElem itemelem;
+ [; ] W0 `' o7 v+ @- @2 U; U itemelem.m_nItemNum = 1;+ J# _6 i* t3 V% _( E6 H& k. i
itemelem.m_bCharged = TRUE;
6 D/ h4 ^' P4 ]- a, D& X6 Q BYTE nID;5 O/ o4 S1 o7 B9 i2 A" l4 i
5 F2 u+ T/ P$ x' q if( nJob == JOB_MENTALIST_HERO )' k/ |, }% I4 Y( p: H. o
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 t! i" \. k b7 p/ P if( nJob == JOB_FORCEMASTER_HERO )4 {, B$ y' j0 o2 |1 @
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( S& b2 B7 k! b E. l* Y
X n. o4 r. o% E& R/ ?3 \7 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );( o* j; o; ^% R# P: A
}$ \7 @( ?( _4 h/ P0 i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, S. C7 \* C, O7 u ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 @& O' z# n) J6 S+ V5 I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) U, U( h$ L- Z5 G/ I8 ?) u' o /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
E& s$ [; I3 b4 @ ( (CUser*)this )->AddTaskBar();*/0 |: U- e4 V A: t& x& _/ a
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# u% P4 ~9 I3 J2 [0 n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 R" v3 H3 G* w
((CUser*)this)->CheckHonorStat();
- h5 k. R: _9 l, X/ n6 Y ((CUser*)this)->AddHonorListAck();
6 @2 J+ C! o! \1 ]! d g_UserMng.AddHonorTitleChange( this, m_nHonor);% \' r( ^5 k% h/ k5 ?, n& d& c! i
#endif // __HONORABLE_TITLE // ′Tà? I3 m8 ~, X/ l
}
- l& Y9 J5 S9 Z6 a: R8 G#endif // __WORLDSERVER
0 _) f, v3 s. ~, Q9 L}
6 B1 ]0 Y, L& a% W2 y- c+ Z$ C# h- p
然后你进入functextcmd.cpp并添加以下
( j5 h: v7 H6 z7 {! m$ s7 M) d, D+ x: u! n! J, R5 r3 e9 c
代码:. r, }: N- u+ f5 L a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): v1 ~* O b0 D/ n
下面插入
% z9 l% ^/ A K) S% ], RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. m2 P) R- T; K0 K2 ^, ^
4 g2 L3 v- q1 q1 ~: P* j然后你去- W. c: b2 u# v: R
7 |3 D! R: u0 l& W
代码:9 t+ \! v4 z5 F& h$ I1 m4 z
代码9 w" c$ F6 A$ y% A& @
BOOL TextCmd_ClearPropose( CScanner & s )8 V% J& ^/ H$ n: E" ]/ F& _
{
1 K3 p, c/ X$ N6 r1 |- A9 r#ifdef __WORLDSERVER6 r8 q0 l5 Z* Z1 m
CUser* pUser = (CUser*)s.dwValue;+ `% H2 `5 `1 ^5 g4 _3 Y6 v
g_dpDBClient.SendClearPropose();
* B W$ I3 W- t: z! k7 E, A% J#endif // __WORLDSERVER! l( _' B7 N# i M: p5 M( j8 M
return TRUE;
3 `2 s* e& l2 C; |1 y. V/ b* |* Y}1 c- q! g5 ?" S: `5 b
下面插入4 P _: g% v! Z: x; r
BOOL TextCmd_rebirth( CScanner& scanner )
2 n* Z. q# T$ H( y' n1 R" E8 ]{
: P: z' H; Z4 h#ifdef __WORLDSERVER( i/ O% J% w! \1 T- o
CUser *pUser;# p2 P" c* y0 u6 `3 N7 a, T a$ W
pUser = (CUser*)scanner.dwValue;
; ^; I W) w3 Y% V4 Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), a" Q+ C7 @( K- I2 z+ U& L# y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 P% ^2 A: C; K
else/ G4 p6 t3 d- j
pUser->AddText("你还未达到重生条件!");7 T" c- P6 a- q$ ^; B( U9 ~
#endif
4 ?/ c1 Z- M9 G8 {return TRUE;" [/ M6 p- L7 {
}
9 a3 [' U% |* H |
* g8 x% ^& r2 K" A% _0 a/ r. Z9 {- L. [; \
! T* y; g# d& z9 c8 W
" f/ J4 k- z& @( z- ~
|
|