|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* q1 j9 Y: k+ \" Z7 a+ \ w
/ g: S* U: h1 Z
Mover.h
" T% Y! U' }/ J$ r6 B3 X4 [代码:: w5 i0 I% q8 i) t6 Z8 i" `2 O* {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü5 A6 M, {# R" N- V$ I
0 \1 x0 ?7 r( n$ ?1 U0 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' e* ?; @3 G) N& m; U9 y
, k! g" x4 B: x: V, I" `: D0 V
然后你去mover.cpp添加
# h* |& }5 ? W% q$ E; W
% G7 m4 G. a5 O2 c代码:
$ {- R3 V$ d0 b7 [' `, F( T% ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 h) z# n9 }: n" u{/ Q$ r2 |; R6 l) n8 e' M
#ifdef __WORLDSERVER7 g4 A3 d: E1 t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 V/ f3 ~2 x# S4 h* ]% t6 Z MoverProp* pProp = GetProp();, G* l! }+ {5 g: a# q7 c8 i) I6 _0 G( t
if( pProp ); f) Q: X4 t5 P% ~
{1 j& q5 ~( R" p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ ?, T& N8 x' A3 G. l) j {
* [8 x1 ]6 ~! X1 A: k0 I AddChangeJob( nJob );
: i; s1 Z0 h6 Q# X: v! ~! _, r }else{4 }5 r( L; o( D( ]3 l3 B
return;. Z! K; |8 p% z& o
}
$ a3 @! G! ~! D6 T( G, K8 m# p# G6 j int nPoint = 0;9 _2 |4 P; W7 B3 o. a1 U
if( m_nJob == JOB_MERCENARY )
; h; r0 p& Q Q) C9 f( u; T' ~- c nPoint += 40;
, ^3 a# \. T. O! ] else if( m_nJob == JOB_ACROBAT )
( n* g! F& B4 l# O/ ^ nPoint += 50;, x0 ?8 ]) \5 g* _
else if( m_nJob == JOB_ASSIST )
3 M7 ^. j" q& E& d' A6 Y# U nPoint += 60;' c& E+ i* O; H, W0 T( C* Y
else if( m_nJob == JOB_MAGICIAN )
3 y3 C/ x) q, D; c. T, } nPoint += 90;
# c b. P+ U) a5 {' V( }, o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 I8 S" ~" o2 ]; Q nPoint += 120;+ j, X. e# y R0 N8 X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' Y# U, }6 v" C2 B
nPoint += 150;4 N! Q+ ?4 Q. r; m
else if( m_nJob == JOB_RINGMASTER )( T, x- T8 K/ |9 F0 c6 \: K& V
nPoint += 160;
1 F/ ~. w6 o$ U# g& k" M- L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# E) S" |3 U& k0 P3 b+ I2 B' B nPoint += 180;& X+ H8 B: b+ D: b* i! o- M
else if( m_nJob == JOB_ELEMENTOR )8 | U6 ]% p# F f
nPoint += 390;
! B* C/ z3 n' S- b* ~* Z- a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); z6 ~ E* x- t* s
nPoint += 120;
4 A- d/ b9 m7 t1 R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- H4 M3 F$ K( G1 ^ nPoint += 150;; A4 O( l, r% B3 H B( s4 @
else if( nJob == JOB_FLORIST_HERO )6 X- c; ~7 _6 s% d( \
nPoint += 160;: Y6 ^$ ?% ]4 c9 d% G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 h- {% l2 o6 J6 R8 @; h
nPoint += 180;7 `. z8 P* M/ d6 h
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 r& d( c' o* h9 | nPoint += 390;6 T; R1 g; a: d
; x9 G" q# a; F) Z AddSkillPoint( nPoint );
" K4 s( r3 R) f1 | ]5 U m_nLevel = nLevel;2 c% H! a4 P+ W! ]- S6 u# e% I' P
0 {. T' v1 ~4 |7 Q# r
SetJobLevel( nLevel, nJob );
( }/ \# ?1 S, j# u8 C. @' ^! K m_nDeathLevel = nLevel;* i |1 @1 p0 p2 l6 @9 Y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" N1 i# |3 A$ P' Z7 F if(IsMaster())- S8 w* t# r, |9 t& y) v
{& z9 S% y% L4 Q# X; D X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% H: x' y! I. {
if( nLevel > 59 && nLevel < 72 ). |3 j" f T5 `( Z. @( N4 _
dwTmpSkLevel = 1;1 F( a7 t$ `' L8 U- v+ ~2 L
else if( nLevel > 71 && nLevel < 84 ). c0 B9 `. {+ }' U& _
dwTmpSkLevel = 2;
1 |( u& W/ o' C else if( nLevel > 83 && nLevel < 96 )
8 s6 }3 ~- O) g dwTmpSkLevel = 3;1 G3 q6 J$ {+ Y" {# W
else if( nLevel > 95 && nLevel < 108 )
( ~* t" ?* f. ?, U7 o dwTmpSkLevel = 4;
1 Y% @4 q( f4 ~! e else if( nLevel > 107 && nLevel < 120 )4 [& F* X7 {( A/ X0 L3 ?
dwTmpSkLevel = 5;
# _0 _1 [- _' b) `- A' M for( int i = 0; i < MAX_SKILL_JOB; i++ ) " s: |$ b8 Y7 W) l+ `
{
1 f! n! D$ i5 @5 n LPSKILL lpSkill = &(m_aJobSkill);8 x1 r L3 m' {- b# C) e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* _3 U9 R* ^: Y% r( ^+ o {) m. @" r& e/ F7 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 O( T v' ^% c
if( pSkillProp == NULL )( w# c7 j/ E5 T
continue;
8 u0 `' z. }) }& U, i5 t, i* L7 T if( pSkillProp->dwItemKind1 != JTYPE_MASTER); Q$ R9 O K1 S7 |: u
continue;
3 t+ R' S2 u1 N5 [: `& \$ s lpSkill->dwLevel = dwTmpSkLevel;/ B- o% X) Q) v5 |5 R @
}( r, o( g0 L8 v+ `5 Y7 ~" T1 x( h# R+ h
}% R; A% w9 e. c' i
}- G; B! X, z( L+ Q% v
else if(IsHero())
3 ~2 L4 S3 G: S. E# w! r, W9 n. @' i {
: g; n8 B) B8 B; k6 k for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 A9 o* [# L) e5 h/ i# T) U {
: g4 J8 p+ F' m+ ~* n4 }& ~& d7 f: E) j LPSKILL lpSkill = &(m_aJobSkill);
z2 d4 m, ` M! K if( lpSkill && lpSkill->dwSkill != NULL_ID )& h3 O$ G, @ b
{
$ S p) C" T, q/ X7 O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! {+ j" Z' D5 ^# w) H# D& ] if( pSkillProp == NULL )
0 a* O4 B8 V5 y* |' f5 d `/ t. i continue;% P* {0 I u9 l$ F2 s- \1 |( ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, h+ d% p2 J$ u9 r9 ]6 R8 B continue;
2 W3 l1 h$ u/ R- t- t lpSkill->dwLevel = 5;+ L, A" ?6 L9 f) ]
}
$ a8 d3 H! m0 h( R' n }. N5 J2 U; U% ~" G) ^+ O/ V$ ~2 f# F
}& J# L' j3 }3 G* w6 t
else if(IsLegendHero())
7 H, G- y$ \6 G {
) r8 Q7 X9 i5 r$ a7 @9 x for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 _7 C; ?) @$ u. ]) T3 j( r { " {4 F: |4 [4 h% s- P. D
LPSKILL lpSkill = &(m_aJobSkill);
1 B- B. e6 O- N) \. X if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ S* e+ X, @) s9 J- O( G" {6 F# L* M {8 V' p: h3 S; Q& g/ i$ g! u0 a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ^- a3 C. P; F0 m
if( pSkillProp == NULL )
+ @ w) s' F" U4 \4 s; v continue;' P( g& H* H3 R4 i _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 x9 u5 C3 o! K
continue;9 ]9 l( k* e; I7 x9 L; y$ `) g
lpSkill->dwLevel = 5;6 \5 z* D/ v* x1 ?! k, k
}- O# u! }) d' ?$ A1 G+ {
}
9 i/ i& X5 R K7 b& \) ]5 G }
1 T' X+ o, k+ N- b$ J: d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( x: o1 u$ u0 J% _
if( bGamma )% c- N5 p! r8 m: N8 `- Y* }: b
{7 I9 o8 @$ R8 I9 U
m_nExp1 = 0;
9 o5 L8 F/ k, v C }
$ m9 ^" n9 @7 s6 h9 V( T
' O$ a A5 G6 M6 ?7 Y1 l! D ( (CUser*)this )->AddSetChangeJob( nJob );+ d! D( B% c( S$ u: K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- h/ a; D" U4 A4 u+ O, P0 n
, ?* Q" m0 S; s$ @$ P% T, _6 N+ W9 g6 H" C
#if __VER >= 11 // __SYS_PLAYER_DATA
; l9 v- ]1 w5 ]5 s O& i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 w9 b1 c5 ], J, O; r7 H
#else // __SYS_PLAYER_DATA
; H: s. \2 Z' O" v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 D/ q4 r8 f b3 L D2 D4 @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( x. y: D0 R( ^/ |9 P, c
if( m_idGuild != 0 )" F0 C* q# Z8 ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" P3 |: g/ X% M8 ^3 A' w9 G#endif // __SYS_PLAYER_DATA# B# p3 ]6 d1 h g, u/ C
SetHitPoint( GetMaxHitPoint() );" Z% \' o0 j5 p3 X
SetManaPoint( GetMaxManaPoint() );$ I6 p+ e2 Q0 P8 v
SetFatiguePoint( GetMaxFatiguePoint() );
( @2 e/ O, d: e# x$ G& \1 F; g6 E* e if( nJob >= 1 && nJob <= 4 )
3 X9 _! p; G I W! G/ ~ {
- y! G# f4 a3 F0 z8 S. a0 x5 H m_nStr = m_nSta = m_nDex = m_nInt = 15;2 p( M4 h8 k6 n+ [( T
m_nRemainGP = 28;
; W1 R1 ]# q" N }& q. }$ x5 l' \7 X; ~& l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ z& Y' N! b8 g- Q
{
5 j4 H$ ~, \8 v4 n m_nRemainGP = 118;3 o& b4 W$ k0 z" C2 L$ x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 S1 E- h% T5 _8 ~1 l m_nStr = m_nSta = m_nDex = m_nInt = 15;
! V% m' P. c+ u- B5 R0 H# t }
1 x; e1 `# }& ?* a2 x4 ` if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( F- M! h% P/ G8 h6 w4 m {
5 L2 Z: h: C; O/ K2 | CItemElem itemelem;( B! r/ Z0 Q2 R! P1 U7 }4 M( U+ f
itemelem.m_nItemNum = 1;9 d( i/ P) b& H
itemelem.m_bCharged = TRUE;- Y* f! t$ `1 U% ]" X
BYTE nID;
* x3 F( _7 O% q, _- k+ z- X
: F( G7 C0 ^# a2 {1 Y7 R- {, S if( nJob == JOB_MENTALIST_HERO )
, j& B2 n$ d0 d2 x c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 M$ ^6 @* Y; N/ v/ o if( nJob == JOB_FORCEMASTER_HERO ). C3 ]* Z' d( |; w: F' {+ } K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ o: n+ J5 r$ U% y0 O+ {
8 U w& L8 \ V. H ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 |$ W! u5 b- p* K" y
}
2 B+ M8 E, s. h3 J6 ?7 m9 e: t) ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! ] H/ i$ L2 P6 c8 Z* L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) ], w6 Z4 B/ ^5 f8 _+ Q& m' W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 \- v& q* Z+ {- k# A5 G4 u. H% j /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ Z* D3 g- B5 x
( (CUser*)this )->AddTaskBar();*/
2 {$ `1 q7 Y6 o" \: d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) O4 `# G R- y+ B4 G0 H: Q4 Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; J5 @, h! g% z9 E& j! }: Z$ J/ m
((CUser*)this)->CheckHonorStat();
1 N3 i( k! g0 a" t( z ((CUser*)this)->AddHonorListAck();5 Y' ]! z. G& m8 s
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 l7 T& W8 y/ S. q2 ^ }* F: d
#endif // __HONORABLE_TITLE // ′Tà?1 y* |1 v% {( ?" \2 Y8 Z- n& R3 `
}
& s- V+ l3 E, D+ R#endif // __WORLDSERVER
7 x9 G) L# i- P d7 r: M}
( `1 i6 Z8 N8 g- y0 J1 z: c9 Q. W0 m$ B7 M0 L0 W
然后你进入functextcmd.cpp并添加以下/ i* t0 j2 q$ a5 j7 o9 Z' X
# v/ \4 D! b1 i! _
代码:, Z" o6 o V* l3 `
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, _1 y0 M6 N( f! z7 ~: f下面插入# b4 C9 j, k S0 K1 Z. Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! `. N( ^' b: N u5 h+ b
7 F# o" m& Y& B" X. ]6 T& `然后你去$ ]. N/ \2 D5 a4 ]7 Y
! P7 C' ^* x7 {7 W7 m) Q7 P
代码:) H3 \! H" [+ ~9 A# i# l! T- b: H
代码* j1 B) }! Q$ H `, \- \
BOOL TextCmd_ClearPropose( CScanner & s )
+ T2 @1 u& e( F/ [$ B* ?{
" @7 f* M" @/ M* ^3 L#ifdef __WORLDSERVER
6 B ?7 d, e6 U CUser* pUser = (CUser*)s.dwValue;8 ~ ]2 |1 I) m8 b
g_dpDBClient.SendClearPropose();7 U. F7 u: I+ k
#endif // __WORLDSERVER
: V) S8 d6 ?+ a. ?; v3 J1 G: P6 z' [ return TRUE;
: h9 u0 q Z/ D- ?) Y2 l6 \}) q2 o4 z* u3 m+ _& H- A0 D
下面插入3 R7 h6 I1 g$ C. y
BOOL TextCmd_rebirth( CScanner& scanner )6 Q! }1 {4 ^: E+ v
{
" c3 ?4 b: |3 ]( g" G* d2 n#ifdef __WORLDSERVER9 z% i/ e f$ L D5 ? ~* L! d/ c
CUser *pUser;' J( N: ]1 f* d! D. t% o& n
pUser = (CUser*)scanner.dwValue;
. \' o. @# ~* I/ M% m! Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! v: X5 p% a$ E! S9 w) DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" p. T2 s+ {2 l9 Q$ n* relse g! m# u; q: S: A2 b0 A
pUser->AddText("你还未达到重生条件!");7 B0 a3 p6 S( y: c/ D, f4 I7 ?
#endif
8 a. v1 Q2 ?! v9 I( J# l) Jreturn TRUE;
3 ~, R+ S: v# M+ Y, Z# A( _8 M} * K0 q! T8 }" M; u. a' X, ~; l
5 N- G$ [, J- `1 G& s0 ]* ^
; `7 ?7 D; c/ P2 i( f; m' t
4 E& q8 U; f, ^3 U% |, o. c& F% e' l! Z. H& h* e/ o0 n
|
|