|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
e$ y6 d! b9 v3 k/ `8 ~7 x1 G( S$ m {% B n2 b8 z
Mover.h
+ s9 Q+ M w# {% t$ b, W代码:
/ J; a$ s$ ?0 a2 |( Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ Y: T" O: U9 ^) l3 D( h) N2 b! i9 d- p4 E
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ ]& N9 N3 a7 K2 l" S
6 c, U: x( o' P c然后你去mover.cpp添加
5 }5 j$ x' j. P) `( n z( W
( a7 ^3 [; u: k8 c1 O$ z代码:9 P8 ~: P% W4 ?; ?1 N- ]8 I) t$ b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( f4 l) a+ M+ N! ?{
: q6 C6 s1 a. @5 u; Y; y6 y, n#ifdef __WORLDSERVER8 E4 P2 t! j# d, S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* ^& i6 {; J3 q# O' w
MoverProp* pProp = GetProp();
- C' `; y g& w, f if( pProp )/ |) y' F9 }. |9 ]; f5 n9 V0 Z
{
' q% } p" Y9 w7 _5 }: Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ u9 x' C, j; x$ G) u {
: `/ F2 V. e) ~9 D4 Y7 }. G AddChangeJob( nJob );
: y9 O0 f/ H, S$ j' P+ G+ E }else{
1 s" S' a6 T- |5 W return;* W) w7 P% `; l! o5 _( F
}
# R1 h* V/ k( f4 U: y# ] int nPoint = 0;
9 n4 k& h" X' @* {1 z; \* k if( m_nJob == JOB_MERCENARY )' i: b, K/ F7 I' _; {
nPoint += 40;. H9 |: p5 E0 Z$ u1 k2 [* Y
else if( m_nJob == JOB_ACROBAT )) g2 P8 y% N& u! c9 g( V6 z
nPoint += 50;
, \& J: F5 u& o4 H2 Q% M: Q! W else if( m_nJob == JOB_ASSIST )
; G) l" B$ ^9 I, _- { nPoint += 60;
4 d& x+ n: I; t4 u# Z! X else if( m_nJob == JOB_MAGICIAN )/ r- \ g# q b2 o$ i
nPoint += 90;
; |/ E3 b! d- c, I9 Y& ` else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# d6 n) V) C5 ]* r( H nPoint += 120;& Z2 G* w1 ]4 n. `# F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 _) N5 C# {$ l2 x nPoint += 150;
9 c+ Q. [+ _0 O else if( m_nJob == JOB_RINGMASTER )
, F5 N z1 C& [3 b0 V. |7 j nPoint += 160;
, x/ Y5 J& W+ ^ x; E( b5 F* [ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 y/ n4 Y& k1 p% N" E
nPoint += 180;
8 X; k2 K% r' W: Z else if( m_nJob == JOB_ELEMENTOR )
* Y* m7 L& Z+ S1 z nPoint += 390;6 F& j4 q9 i3 n/ q$ q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* l) W0 ^, T" }/ s' R
nPoint += 120;
# v- _; r2 `) Z: N) R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ `4 J& g9 t; E. p/ C( p
nPoint += 150;1 G# b4 c* ^' d! W; f5 X
else if( nJob == JOB_FLORIST_HERO )/ A E8 L7 t2 o* x" s3 o
nPoint += 160;) S9 D' t# A& e$ n: O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 ^' L% J5 N9 x5 _3 ] nPoint += 180;
* S/ O1 e" A) L" n" a else if( nJob == JOB_ELEMENTORLORD_HERO )/ f! A& h. x, A% j- h9 D* T
nPoint += 390;3 T: B% p1 j: U; ?
2 T6 v5 \8 W- f' g1 h' z" i1 i
AddSkillPoint( nPoint );
0 U, l* r" e2 f& q7 ?+ F m_nLevel = nLevel;
' Q& ^+ k% G. {, j# D$ P9 ?- L. a& g" b1 E) J
SetJobLevel( nLevel, nJob );4 o2 k: f( z$ V' \ E; O- T& k& v
m_nDeathLevel = nLevel;: q. s# R6 W4 ~* O$ |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 V/ U* p1 ~# K9 m k if(IsMaster()). K3 ]7 l c* [+ [- N
{
& Z2 e+ `. R8 V: W/ I3 X. G int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! W6 x% z. [2 R% M, c" y
if( nLevel > 59 && nLevel < 72 ); T- `2 g) D# m4 `+ [- C
dwTmpSkLevel = 1;) x5 [- M) R4 ]- @5 J+ `
else if( nLevel > 71 && nLevel < 84 )
+ i# a# x! [ @7 D! N dwTmpSkLevel = 2;
) n4 R9 ?; |8 \ s4 A else if( nLevel > 83 && nLevel < 96 )- m6 f* @+ F* J9 c& A; T
dwTmpSkLevel = 3;) Z$ b9 F& N. `& r$ ^# J J
else if( nLevel > 95 && nLevel < 108 )
" n3 o! ?$ u% } dwTmpSkLevel = 4;8 X' c) t0 t' X: P# i9 ]0 _+ n5 C' [, h
else if( nLevel > 107 && nLevel < 120 )
0 u! L" A% m ~( \- C& K& r dwTmpSkLevel = 5;% I: `+ v1 `9 `3 `4 T9 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 u+ q8 }3 F; C9 o' w$ @# p# l& y5 ?
{
. T( D+ X) G! A7 o- b* v* W. O* y LPSKILL lpSkill = &(m_aJobSkill);
1 v% ^5 @) Y, @! U7 q) X) I5 U if( lpSkill && lpSkill->dwSkill != NULL_ID )7 o2 Y9 r; {7 ?
{% F$ Z! V7 B6 v$ f: X- h! f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' n# t, d" k" d3 l# Q if( pSkillProp == NULL )1 P- t+ m+ }* n9 R4 x, w
continue;
, ?* ~1 D) Y- F! |7 H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 W2 M( ]9 \& E% L/ i% ^( L
continue;
2 C9 L0 k, Y4 ^( P8 x" [ lpSkill->dwLevel = dwTmpSkLevel;
+ E2 g0 {5 }% {: A: \; { Q. v# C8 j; v }
9 u8 m" A3 {1 C+ M* J% d+ R }9 I5 E; [* V ~2 S
}
4 ]( `2 [9 C. t9 J6 D else if(IsHero())$ S# j- t& K" h2 S) r( s$ u0 a
{
5 O* I* b0 U3 u' c0 I. C1 e for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 z8 v l8 S" v5 I8 |4 F {
2 H4 W9 }( w4 t' c" K( n; Q1 L LPSKILL lpSkill = &(m_aJobSkill);1 k; r; Z3 T; E$ @2 W$ @; ?5 k3 M7 l: ?
if( lpSkill && lpSkill->dwSkill != NULL_ID ). N* q, D6 I% U- Z# J0 b% x
{& w I: p: n; m: x8 A' x+ i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: s* u5 N8 F9 B9 j! @4 x if( pSkillProp == NULL ): }0 a% B2 Z0 T( f! I
continue;* p8 x4 i# F) {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* D! {' U1 `! A/ F5 T
continue;
1 ^4 l9 S- X8 `% \2 g: ~: w5 c! i lpSkill->dwLevel = 5;" l) S( m! [0 o" M2 I3 @! C
}$ t8 ~( t9 e+ X+ L$ U7 G/ I2 m
}$ J2 a h) Y% M Q
}
) E2 X2 i& m$ M. P: D; Y. q else if(IsLegendHero())
7 C0 c$ i0 E0 F4 R: ` {4 e7 g) ]# a. t) f K5 y& N0 O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 x0 Y I- W9 n) ?6 c; w
{
5 c9 R+ S$ \, J) N2 I' s LPSKILL lpSkill = &(m_aJobSkill);# B; [, P+ n2 [3 x7 F! m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! c/ M0 V9 J4 @ {; ~( f! {! c8 ]) e; X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 P* ~9 v; f1 X9 x& p w$ x
if( pSkillProp == NULL )
) I. r, E! p7 `: | continue;
; z8 I2 E! W+ s$ z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! Y* h4 S: n# ?: t
continue;
/ R/ p& |% K* G; B& T) A* m lpSkill->dwLevel = 5;3 l2 t& ]5 L% x( y9 u. }/ l
}
5 D6 c0 n# o) q$ X7 ^8 @2 i }. O" N. y% ` h5 {9 w+ D
}& h& z2 T9 o2 W# h( {, W4 Q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 Q7 `( r0 ~$ g: P
if( bGamma )
' S9 z9 j1 L( ~! |7 V# g {6 ?+ |% h0 q* Z7 p7 N1 b
m_nExp1 = 0;
6 ] z$ N" ~' g& F }
1 d! F' f/ {) O2 Q6 b4 B5 A9 Y- a8 r5 G, y' h/ R3 x
( (CUser*)this )->AddSetChangeJob( nJob );/ v2 h( N" \# _9 a' j
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# U( Z8 |( \. {: \7 p
4 |: O. J" K: B4 B8 k; ]
, x ]- z3 i5 ]# _- k* c
#if __VER >= 11 // __SYS_PLAYER_DATA
0 o5 L7 C8 J5 ~4 b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( W# T$ B& C9 ^" }#else // __SYS_PLAYER_DATA
( i/ ^- ^! D8 g" l5 A g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); N; [, W1 G: {- _& o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* Z( y/ \5 Q0 u ?+ \9 U
if( m_idGuild != 0 )
! B, u+ g* [& J5 N+ [ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ F0 t X" D9 z#endif // __SYS_PLAYER_DATA ]8 ?6 J8 g) \5 m5 ]8 d: c6 R
SetHitPoint( GetMaxHitPoint() );
6 u- ^$ I( F* |& u5 S( E: w SetManaPoint( GetMaxManaPoint() );6 e; H' h7 E0 y% y: r* f$ P
SetFatiguePoint( GetMaxFatiguePoint() );9 k: x( O/ `' e- }. B
if( nJob >= 1 && nJob <= 4 )5 b) m/ y" D3 [# f7 c: G
{
, Q+ h8 d3 k2 g7 |3 X7 B2 U m_nStr = m_nSta = m_nDex = m_nInt = 15;/ l4 D# v7 F' B& f a6 L1 u
m_nRemainGP = 28;" D; W' R8 h: y
}
/ `1 Y6 l$ F5 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 G$ [8 l a9 ^. \ {
& B8 W. Z# B: ?( i m_nRemainGP = 118;
( f5 Z4 P! v( m0 A, r+ Z6 w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 N3 U9 i$ u! n" h3 X# _8 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;( e9 q8 W. K }+ ?
}
& Q6 n, J* A* C6 t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, w9 X- \) W8 B" A. p1 V {! l% }6 b0 |8 t9 i; @: D
CItemElem itemelem;
0 l- b8 f7 ? K5 Q* P9 p4 J itemelem.m_nItemNum = 1;& j! E. ?' m$ |: H: A% |4 l9 z
itemelem.m_bCharged = TRUE;$ \. W- Q) A; Q
BYTE nID;
% _7 x! K; M. @7 @7 H0 c
9 P/ l6 q9 }+ [4 ^' L if( nJob == JOB_MENTALIST_HERO )' a0 [ \5 F9 N1 l4 f9 h- Q {; a
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! n$ c4 c5 f3 q V1 p6 Y* `0 K( o$ ~
if( nJob == JOB_FORCEMASTER_HERO )6 p6 \4 S! k/ N( a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 h, ?8 z6 k0 ^8 Y( |2 _/ T3 W5 `" ?
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 X0 X- U2 z! U' S% o
}
! y; Y: Y- j8 j1 { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. f- [/ i9 p5 q6 M
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! F' w# y# V: z: p J% v ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; |$ y+ o& T! z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ S1 Y% W$ F7 o5 L& Q
( (CUser*)this )->AddTaskBar();*/
3 G' y& j4 C* d. v l: u2 H5 ~ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 _3 c T* F& ?' u* D5 e+ P' B: n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 h* P Z) F* i0 L3 w9 e2 k ((CUser*)this)->CheckHonorStat();2 P( @+ y" g, ^9 ]7 Q
((CUser*)this)->AddHonorListAck();. a- A- `$ A0 Q( f! X* R& Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. `3 Z& h9 z" A# s3 { z#endif // __HONORABLE_TITLE // ′Tà?8 | L( P+ k& E( Y- K
}
) X% q3 n. C5 z- g& f! R3 l( {#endif // __WORLDSERVER/ Y5 s6 D3 P8 P0 |3 X; O: X7 }
} : ^% B g; K3 w0 K/ |$ e
. b" E+ h7 g% q
然后你进入functextcmd.cpp并添加以下
, V0 Z1 F# b0 L7 N5 V! n9 P5 q& y# [( P0 S F( R C- s+ g7 H
代码:
1 y& e# O* x4 x6 D b! {- B2 \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 Y8 L }% {4 D( h1 e下面插入
" p, X* X8 \' F( vON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; \9 K9 r8 [3 S9 W/ L! S
( F1 F+ D, M% H+ b7 s* `0 v然后你去
5 j6 i& m/ Z5 \! S
# p! n* C- V) x1 V. O+ y3 m3 n代码:
3 z+ P/ j/ W- p% M: V, s代码
+ W( Z& T1 i \: M1 ABOOL TextCmd_ClearPropose( CScanner & s )2 f q8 P+ Z! u
{
* Y O [$ C, r# N#ifdef __WORLDSERVER2 C1 _$ `3 m* Z9 K3 |. ^4 e% I
CUser* pUser = (CUser*)s.dwValue;
/ |3 W2 Y$ `" m# z* S# C g_dpDBClient.SendClearPropose();
' c& ?1 P. K, f5 t#endif // __WORLDSERVER
& i& e0 L) j+ I return TRUE;; S. q! p4 J& e B" b7 B
}8 L, Q8 X# ?6 ], A( y' X
下面插入2 Q, `5 F2 d* \6 A0 {2 U
BOOL TextCmd_rebirth( CScanner& scanner )9 L1 q: P. c9 r
{
1 }+ D- c3 e( T#ifdef __WORLDSERVER
6 B0 {. ?* D5 F$ t5 lCUser *pUser;& c, y1 r3 ?6 }9 }7 W
pUser = (CUser*)scanner.dwValue;0 T6 S4 ^0 e, {& L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 ]: h. f5 g) x. ]0 q! dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ h+ Q4 i% f: x1 r$ i& }& ?. Aelse
& V: [. M1 t$ f* h* e+ ~pUser->AddText("你还未达到重生条件!");! e5 B0 x3 z$ W: o. b* g3 C
#endif' P0 N8 Q! u/ y& ^
return TRUE;3 K. A5 n! a7 G. E
} 1 P- J$ S5 L5 e& M2 L
7 z& p7 `" e0 M1 J, c7 p1 J5 W/ b
0 W& S5 P1 K$ Z! N5 y
6 c0 y) N* _3 i! c" g |
|