|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 s* Z9 r0 L, U
0 o# Q7 \/ D; Y6 z/ HMover.h n$ ?# X0 O- d" y4 E8 M- q; y' c
代码:) ?1 Q! G$ O/ H; A' b1 y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 T. d3 n3 {: g" \
7 S" L. a9 y0 E9 V2 x: v2 |+ K7 h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' z' X& Y3 w; Z
1 |9 K% q4 M( x8 l# ?/ W! O然后你去mover.cpp添加, r' h5 I% m# e4 c! n: F
4 }5 V$ D- C0 k1 \' K" \代码:+ Y; \) j5 e/ E# G! l. P2 h, z5 I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! w7 b# h" ]' ?9 l! H2 ~- W8 u" c3 \
{
' Z8 n, s$ w, P2 m6 {- M0 g#ifdef __WORLDSERVER2 |' h7 L @, I4 `! c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 E% Y$ [7 x S4 I0 M) G MoverProp* pProp = GetProp();' s, X! |2 H* N: P8 y% J4 I( L
if( pProp )
" W5 s+ o8 ?* M; Q" | Q {
) `2 q/ f; v. J! A& R if( nJob > 0 && nJob < MAX_LEGEND_HERO )' u& @ Z5 z. t8 x* g
{
$ R4 e8 E% s' W7 p2 _8 g AddChangeJob( nJob );4 L1 p' }* I2 q$ @; M" e& ^7 a8 _
}else{
) k4 X2 L: t. o- P$ n2 J% a return;, t% @. {2 K4 n' K1 g, k! U3 Z; G; C
}1 }0 F" ~+ U" W9 Y ?; p% N
int nPoint = 0;) ~) f% y2 y# M+ p( E; a3 S
if( m_nJob == JOB_MERCENARY ) P9 R' P+ O0 F& P8 b) R4 n
nPoint += 40;' q% P+ j% y+ l) `6 |
else if( m_nJob == JOB_ACROBAT )
/ P! H% l9 j" K# v: }3 Z% i9 g nPoint += 50;
7 J& Y1 Z4 `# I' d. ]- Z/ ~ else if( m_nJob == JOB_ASSIST )& y S: G+ j' N0 h- v
nPoint += 60;
* S$ o5 W5 T+ q else if( m_nJob == JOB_MAGICIAN )" }2 q }7 h" M0 N( H) T
nPoint += 90;
1 }7 X* c1 h2 T6 m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( v* L& @& a, u: B+ l) { nPoint += 120;8 k) f2 w- ?. ^+ \ E( w6 w! X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 q6 N9 z/ y3 M `2 ^) G7 A! G
nPoint += 150;
5 g, `2 `: [4 g" O else if( m_nJob == JOB_RINGMASTER )
( S" a# u# A9 R- T) V! i) [* G nPoint += 160;5 h8 |8 {; }* }7 `( o. {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 R# V3 v# x* a2 f
nPoint += 180;
2 ~* N4 p) d+ m( K3 B else if( m_nJob == JOB_ELEMENTOR )2 Z6 ^ O! c, b5 h& S
nPoint += 390;2 c! p! [ u$ p# D3 y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* b. `/ B( b* h1 ~ I# M! S5 z, Z- f
nPoint += 120;
; T6 H$ W6 O8 J4 t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! O0 |5 E8 C( f nPoint += 150;' U) ^, M5 j/ n. m: o ~1 a7 i
else if( nJob == JOB_FLORIST_HERO )8 E. o3 V3 P+ G
nPoint += 160;
! N' J R9 [, w8 B( w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): Z$ b. _( o2 y% H. V5 M" \3 X
nPoint += 180;& B5 {3 }* l: K6 R ?% D
else if( nJob == JOB_ELEMENTORLORD_HERO )
% G/ c' u- y9 K$ q1 K; ]* S" r nPoint += 390;
7 z' o3 ^' R# I7 h% ]5 ~
9 [1 R7 d5 s6 S$ p( d AddSkillPoint( nPoint );
' P$ V8 k) J9 c. {5 E$ Y m_nLevel = nLevel;
/ n) ?0 r( U8 u5 Y" J, y
; r0 C8 D1 j! _ W4 x# w8 z7 F SetJobLevel( nLevel, nJob );
% H% {. J; U$ B, f$ M- f3 h m_nDeathLevel = nLevel;6 g% I& d$ V4 |( v
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' c, w/ K- A5 x0 C, O# o& a if(IsMaster())/ B4 r" v# i0 i) p5 J" P9 V! P
{6 x7 Y3 M! P( t' t; i$ P' a6 M# ~/ _, M3 V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ F; c( o% U7 d. W
if( nLevel > 59 && nLevel < 72 )
' F- P6 B! \! B' t/ K/ m1 O dwTmpSkLevel = 1;
4 g) S! c5 R+ o6 V" h1 O* z else if( nLevel > 71 && nLevel < 84 ); H/ Q) y3 _+ k! a
dwTmpSkLevel = 2;
% H( ~/ [) R! h2 h else if( nLevel > 83 && nLevel < 96 )
5 l F0 ?' S& Q dwTmpSkLevel = 3;" V+ L. n8 T2 r; E! G
else if( nLevel > 95 && nLevel < 108 ) Q, O4 P; @0 U( R2 f
dwTmpSkLevel = 4;
4 b/ y4 w' x3 [+ m; l else if( nLevel > 107 && nLevel < 120 )- Q. j& s1 c: L2 X& G
dwTmpSkLevel = 5;0 x- V. z. @& Z- B! m# w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 E E2 V9 M" B3 z+ k
{
: i/ x5 l7 V$ b! m0 C; | LPSKILL lpSkill = &(m_aJobSkill);
8 p2 l0 m @# g \5 W) r4 A* U r if( lpSkill && lpSkill->dwSkill != NULL_ID )
, c/ ?1 f o$ t; m, ^% ~3 f, _6 ?( ~ {- \8 l9 V( J9 `& t% V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# W% s5 \ U/ V' K V if( pSkillProp == NULL )
4 M# e" N" }* m* Q) l; B continue;
: Q$ l7 }! H3 ~ Y1 s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ v3 `, i9 R$ X8 B2 C* `9 B continue;
/ h! X' H! z" u0 m+ H lpSkill->dwLevel = dwTmpSkLevel; O2 b+ q2 P( K' L
}
. t+ w7 y' t k" R2 K# S } B1 i) r5 c: B4 `7 `6 v3 O
}
! T( G T3 q) g else if(IsHero()); \, m- S ~# l$ q d4 p% V. ^
{5 A4 |( g9 i8 ~+ V# L4 l1 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) Z, t' a1 M, @+ r6 U
{
8 @& H }' E7 G+ w' X LPSKILL lpSkill = &(m_aJobSkill);
5 V+ U1 ~8 N( [2 k2 J if( lpSkill && lpSkill->dwSkill != NULL_ID ); h" V# {* M( |$ S9 G( C, W2 @5 p
{
8 }; I- R+ v; m9 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ~1 Y5 g1 k. [" Y( M4 t+ S: ~/ X
if( pSkillProp == NULL )
2 o- ~* J5 l4 Y) F( X: s continue;' a i8 t- o+ I- ]8 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, O; k/ d, |) ^: @9 ? continue;+ p+ M2 b7 [2 ] n; g
lpSkill->dwLevel = 5;
: s* |/ [1 E8 @! d# @ }$ y- Q0 b8 H' U; d: ~+ d
}2 m- Z% z& f1 x3 F: \9 Q: f
}" z1 m, R$ m& p5 E3 O& @
else if(IsLegendHero())- Z; M0 @( i* j/ h' s
{
5 U Y' Z' _( t for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) H& J4 ? t! Y! R3 D, j% U3 M; g! _
{ : d( U# o/ L$ _* _3 t. o
LPSKILL lpSkill = &(m_aJobSkill);
3 p* c r' G6 L0 h: Q) a# I$ x l% G if( lpSkill && lpSkill->dwSkill != NULL_ID ); g/ q. A" k' a- {6 H: C
{* x3 S5 S/ u' v% a6 Y. c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & E0 R9 ?3 O ?2 D
if( pSkillProp == NULL )
% @7 o( e* ^3 w* l* { continue;
8 B- y- ~* [8 f3 ?& L$ q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ W V4 l+ r- g4 J& J* H
continue;
* s" H* u. ]: l2 H/ M lpSkill->dwLevel = 5;/ E* \$ l' y. _: w7 E2 M, \
}
+ B& I+ j% R. f1 @! R }+ E4 R; j" e; ^1 x! n
}
7 D" T' A, O. L' D4 X9 n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& b8 D9 _$ n( f4 [0 U
if( bGamma )
! x2 W- m* _9 O9 a% Z( y6 b& S. I {
q! G# m" l, F1 D+ q% m m_nExp1 = 0;
0 i u1 Q( R7 j9 m; ?" [& {5 c. \3 d9 L }
! e& f1 o |) S: }$ x2 J% s* ^+ ^
% y8 |* q4 m1 F/ ? ( (CUser*)this )->AddSetChangeJob( nJob );
U% _3 v/ ~4 m5 U' S- Z, i0 y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: ^7 n! a+ D' d
) _) ?, K6 \8 C* @; d1 k
9 g1 P0 H- |# D2 K. T [" Z% D1 }#if __VER >= 11 // __SYS_PLAYER_DATA
4 q! j7 J" s% P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; U1 V. t. a5 t7 O. d
#else // __SYS_PLAYER_DATA* J8 l4 H* U$ ?% U" l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# K# c- M. l* j9 M# N5 j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( b3 Q$ ?+ W1 X/ b. K' s if( m_idGuild != 0 )
) e. T; S% m1 n* w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) T. F$ `" q( A- j#endif // __SYS_PLAYER_DATA+ \: H$ `! L0 g7 S, K
SetHitPoint( GetMaxHitPoint() );& w; Z3 v" _$ t8 ?8 Y
SetManaPoint( GetMaxManaPoint() );
1 k& Q$ w% ?( [ SetFatiguePoint( GetMaxFatiguePoint() );
: }' q$ d7 ~% n" S1 B! h if( nJob >= 1 && nJob <= 4 )
0 j( K4 h$ M9 X$ `& \9 w6 U8 d {; d) s. x/ A6 b8 e6 X& d h: v( C) W8 Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;. |* q A! U1 c- s. |
m_nRemainGP = 28;
3 a# ~- \, K; ~: f, L }0 h" v/ b3 m( J3 S" o+ l/ r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. _+ g5 B* f3 U* s {
" |& J4 O/ x3 P4 `- v m_nRemainGP = 118;8 i6 [3 j" ~* n! m- b! N* }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 r' X: N A. N, A8 [3 H; A9 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
N: r6 t) X* w H }
( Z$ \) ^# e) E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& W0 S" U* h, }# ]4 _% } {
% X/ z' a3 ?# C- l) T [0 f: o" z CItemElem itemelem;
1 ~& I$ S4 Q* K* @4 ^- R3 W itemelem.m_nItemNum = 1;
. R8 n& ?' ^- K& i$ k4 B itemelem.m_bCharged = TRUE;% D$ Y* k% k1 l1 _7 H5 m; f9 S" R$ G0 G
BYTE nID;: H# a6 O& r- }; C* a( Y8 P
& p+ A' u4 I* f' ^- R6 r" u if( nJob == JOB_MENTALIST_HERO )7 w1 v8 }: ]6 E2 ^: @% z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 |- u. g' s- S! ~ if( nJob == JOB_FORCEMASTER_HERO )
6 k% a) ]; }" w" k: V+ L itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 {/ S2 a& R% v& `9 r, F
4 A. x5 T. I8 D ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 K n# Q d) r$ W9 z6 U5 J/ ^4 w }
* N4 l) ^! |' J8 Z) h+ w @: k1 i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( @) y' F6 y7 y* o. g& _; Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' A9 z0 e3 l t- o/ c ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 Y% i) q0 u1 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
K2 T; Z% X n5 u ( (CUser*)this )->AddTaskBar();*/
/ x) s: S5 k0 V5 w. T: k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 F( d+ ~9 D# J" A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. q. x. b* a: L- t9 e( ?# n
((CUser*)this)->CheckHonorStat();
1 W" B) ~0 g* J# N4 _& s3 O# S: A ((CUser*)this)->AddHonorListAck();& N. i" s [. {- s1 {* b9 _
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 S" S2 G/ B2 K1 H3 l2 v# y# H#endif // __HONORABLE_TITLE // ′Tà?6 o5 Z# ?1 {" e/ q" n$ @! z
}( p' `8 e+ y9 y! ^* K3 ]* d6 P
#endif // __WORLDSERVER. w% n2 s( z2 G v9 g3 c) @4 q
} / u8 \; [6 j8 I8 p
4 ?! |+ ]. L9 p2 Y( N6 h然后你进入functextcmd.cpp并添加以下7 H) ~, R7 Y6 K
8 k+ d0 E/ s* f6 c0 E
代码: R* G' @$ o! L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 _2 d. w! w% ], A- \下面插入
8 ]: ~! c) m$ v5 \3 G: pON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ w( {7 t4 _& g j8 a7 @; ?0 M
# \, I; U" n$ f$ d; }4 J) t. h! Q然后你去) A* S3 x) t! J/ Q4 e
7 ]/ C( J" E3 `5 Q& Y代码:( @6 a" S$ F5 E
代码4 e& U' ~% c, O$ h1 |3 F; G
BOOL TextCmd_ClearPropose( CScanner & s )
- z2 h4 j" k; i+ n% ]+ K{ V% d9 t: _: s" F: V* P# I/ N6 ~5 _
#ifdef __WORLDSERVER7 o$ H/ y5 Z& p2 Z3 o
CUser* pUser = (CUser*)s.dwValue;& ~1 S L. ? Y) D4 |
g_dpDBClient.SendClearPropose();# Y; U* ]2 x# E k% i0 o+ I2 c( u
#endif // __WORLDSERVER2 ?$ Q. i/ B7 P, A q a! I
return TRUE;2 A( P& G' O) y/ }' l. k0 s5 N
}
9 p( B2 h' L. b) g: J9 Q下面插入4 N9 h# e. P4 h! k# s
BOOL TextCmd_rebirth( CScanner& scanner )7 v/ X# k( K o% r$ ^' [/ g0 t
{
! _ A. e2 A0 b$ e5 g' A. G#ifdef __WORLDSERVER
+ f& \4 g% \( W- tCUser *pUser;' w( o% T3 g7 Z9 @
pUser = (CUser*)scanner.dwValue;
( v5 T8 w- B8 M8 N7 sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* A2 S8 Z8 N; _: hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 O0 o! T- T |* pelse
& M. ~/ L4 C3 m5 {% B( WpUser->AddText("你还未达到重生条件!");
' n! L/ G# v" d( t+ w) E#endif8 u, m/ W8 [& S, G
return TRUE;$ \/ ]$ F$ h7 _4 j) y- ]8 S
}
! I8 W- K/ j; [# b
' i. B1 \* q# t8 _6 G2 z" w4 E* s. G* j) f) X" O
7 d: ~. x8 Q& o! ^: v5 z
+ g: o; V% e# r8 y7 Y ]
|
|