|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 J8 Z" q4 C+ z$ V, F7 m7 {; C2 C
% R$ n- L4 A1 Q2 E nMover.h
0 Y4 v* r" j9 s! s, v, W3 D代码:
/ F9 M" F& l" a3 a8 |0 D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- i& J8 Y8 B/ J+ Q6 F, r8 S8 E. {7 k( |, k! c) c% I: i; n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" A4 U* i5 h9 q2 [! x. {5 b* ^% Y8 K: ^1 x L
然后你去mover.cpp添加
/ H/ n4 c' H: `! Z" ~; J! e! D; g$ q
代码:
* G" l/ n$ O+ gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% Y2 } n3 K: `% |5 g: P. _{6 t6 L1 W5 L- I6 y4 y' D0 a. H4 T
#ifdef __WORLDSERVER
; I- y6 A% q0 C# y/ k ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' L9 i- ?" U9 v: [- v3 O% a2 c
MoverProp* pProp = GetProp();+ Q% v$ ^2 T0 Q0 o2 @
if( pProp )
' t( }( c# K b( L7 d {
! a1 k4 E) _; @/ ]" X& Y7 @6 f7 \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )* M9 n' {5 f" y% x; G$ B/ o
{
+ S) W% B( F; g" S$ |- X' v# c AddChangeJob( nJob );5 j$ K* Y; @5 R* F7 z* ~
}else{! G9 x! _5 t- {; q5 l7 ]# @
return;
2 t3 t E2 I9 K; |4 d }& F) N( ^2 J I+ C
int nPoint = 0;* u/ R% N6 i# q4 t
if( m_nJob == JOB_MERCENARY ), x$ K; r/ o9 O2 U2 V7 ^
nPoint += 40;2 r$ L7 @2 ^" w$ q7 Y
else if( m_nJob == JOB_ACROBAT )
9 B9 }% ]3 ]/ V8 x9 v9 ^ nPoint += 50;3 V3 H/ N6 k, f. C
else if( m_nJob == JOB_ASSIST )
9 M2 s! I% N5 z% _ nPoint += 60;, P7 |# Z6 a1 s2 _( l3 R. {/ W
else if( m_nJob == JOB_MAGICIAN )
5 t7 Q5 K& J4 F4 p( K- I nPoint += 90;' @! M, k$ P) s" z" L2 N) J0 s6 A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) S( P' c$ L9 S: s
nPoint += 120;( ]7 w5 F+ Q" R: G v1 E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). d" m* @6 u" i. L4 T& s( \
nPoint += 150;1 A" k7 @' e( i' F$ U
else if( m_nJob == JOB_RINGMASTER )
6 J! p) {& t1 f, ?7 `* l7 n3 R0 a nPoint += 160;$ F. F4 a" [8 D0 @, Z0 q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" p& ~" q/ A2 Z) X" d
nPoint += 180;' A/ O- `2 d8 F9 p+ s* S
else if( m_nJob == JOB_ELEMENTOR )
% K! `& D0 r W$ W$ i2 _ nPoint += 390;3 i3 A8 J( j" [* t& f, V. {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 {/ u" U1 D3 m# F, _+ ^: M nPoint += 120;
# ?7 d4 C4 @* Q) P2 b else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 |2 h5 K0 I n8 T
nPoint += 150;
; y; T" E' l3 `' G4 n5 c" k) ^3 \ else if( nJob == JOB_FLORIST_HERO )5 K' F6 c: e9 ^/ Q9 L( H& x" e$ w
nPoint += 160;
8 R& U: D/ _- ? else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# ^4 @5 U6 C7 R! `3 s/ A nPoint += 180;! _# N$ J" J% X/ b6 e9 v
else if( nJob == JOB_ELEMENTORLORD_HERO ) w8 k6 \+ E- p; Z" F
nPoint += 390;. [& i5 b% k* n+ }& q' E: \
( T0 O- C5 @. {+ G+ V. W/ ~
AddSkillPoint( nPoint );9 Q1 g9 e, s9 o6 [1 m0 v2 U8 {
m_nLevel = nLevel;
9 q4 x+ P$ z9 k, R% O! x; F7 J- A
' n* u* w# o% g8 c SetJobLevel( nLevel, nJob );+ O8 M9 ?# R5 H
m_nDeathLevel = nLevel;
4 s1 P6 U/ J( V1 x, y" |' G#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) B# S3 A8 r( r5 n
if(IsMaster())9 ]0 ]( I- e; I
{% y+ p1 i$ D" E! e5 K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 b! Y# d8 Z, x7 ?2 X if( nLevel > 59 && nLevel < 72 )
) c0 q9 x( \/ K+ ] dwTmpSkLevel = 1;
- T+ ~& m2 C9 h% w. V2 ?! k else if( nLevel > 71 && nLevel < 84 )6 U6 { g' H. G1 J( s) Y
dwTmpSkLevel = 2;2 }9 c- s9 W/ x) [ a4 p8 R& Q4 `
else if( nLevel > 83 && nLevel < 96 )1 W2 M! g. f3 K- b% R3 |
dwTmpSkLevel = 3;6 J" E) v* e+ C' Z3 k
else if( nLevel > 95 && nLevel < 108 )$ t4 j6 B4 G. x( s2 t
dwTmpSkLevel = 4;" E" N, t5 c/ r3 a1 k
else if( nLevel > 107 && nLevel < 120 )
. C$ v* p* x7 t. R6 c- m dwTmpSkLevel = 5;
# z. j' s% g* N% n for( int i = 0; i < MAX_SKILL_JOB; i++ )
; l" o/ |2 L* ]5 U( [ {
/ d/ M& o% _; n) w" e w* j LPSKILL lpSkill = &(m_aJobSkill);
^+ C1 F* c, z( o( E if( lpSkill && lpSkill->dwSkill != NULL_ID )) `; j$ r% t$ x" m2 H( g2 x
{
4 D# a% ?7 j7 ^% K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 w# B- {/ ?; [& U
if( pSkillProp == NULL )
) R! d+ x7 b/ q% N- w# X2 g( F continue;
6 _* L8 E5 M1 Y( s) c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- q/ H0 d, [; s. Q5 C; ?
continue;
0 ^( K9 V$ D: T: o" L% m lpSkill->dwLevel = dwTmpSkLevel; n- }% e4 ]& {$ P$ i
}
# w i+ x8 Z/ ^. o* R& \" S }% Y/ M3 h# T- z" V( H T) m
}
4 Q9 f* O/ _5 c$ Z. u, x& [ else if(IsHero())9 B8 |2 H- X* l* A) M
{' c* Q5 i: ~9 y0 j; [1 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 }/ ~, ?. D; T% K/ E1 \ { 0 ?' D) [4 @1 e
LPSKILL lpSkill = &(m_aJobSkill);
7 G% R8 a, Z6 G: I4 c0 r# M if( lpSkill && lpSkill->dwSkill != NULL_ID )
; i$ d3 w' f5 {: f+ k {
) m! {% I" c: t+ w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . h9 {# v5 B4 Y* {) ~% G$ j
if( pSkillProp == NULL ); O6 ~7 i( n0 r/ g
continue;- b! d ]" o; B& w9 `2 c" N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 b4 Y2 R/ M+ B; e5 l e+ }
continue;
D3 T* H0 m) t0 Q. ^, o lpSkill->dwLevel = 5;& P. l- X6 r! B& v- m7 m2 C [: k
}7 K1 K2 D+ r3 u3 j; K
}. Q# ~+ y" S% D. {; K
}4 g5 Y( D; H% G: R
else if(IsLegendHero())
- r) t$ `# s9 O3 `2 M/ D {
; Z3 P9 H" b$ ]8 H8 D8 l for( int i = 0; i < MAX_SKILL_JOB; i++ )
* k; J# S4 ?) o( q, U { 1 L" ]( w8 o; ^) a
LPSKILL lpSkill = &(m_aJobSkill);
1 Z1 T5 z0 m0 M t if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 l+ U. g2 w; i" k9 c {/ v; s+ R+ P* A. t% m2 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - P- C/ a" p1 ^: e+ o4 n6 N
if( pSkillProp == NULL )
: I( k$ k. P! c% V, v A9 e, f continue;3 ?0 b. H8 q$ j& H9 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
D6 ^: Z) n- `3 C( }6 D, S( j continue;, ?; ^" w% y) l5 n ~& I; r, [
lpSkill->dwLevel = 5;
' l9 b; e8 d2 |$ ~1 Y1 ? }
9 c# b5 g5 [& r2 N }% b, f$ D# |. W, I3 B3 W; \+ r
}
3 y5 H, t$ `8 v r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. t6 W/ |+ `" Y9 d1 ` G
if( bGamma )
% R) ?0 B; v# a) M {
4 p% T1 m. d/ a/ r @2 r m_nExp1 = 0;2 e9 C) ^; o8 U7 z- V4 v! i2 r2 X! b
}! e, s- `9 V$ z: u5 h
N3 E8 R8 P7 ?) N/ K. z, X# n
( (CUser*)this )->AddSetChangeJob( nJob );7 t( p, C3 d& B6 t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* w- e' Z: q, L) K2 ?, m
2 U3 t3 H$ @0 w! k* w
$ d" P/ ~. T6 {! {! }, A#if __VER >= 11 // __SYS_PLAYER_DATA
2 C' h7 h6 K% p& C5 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' n+ w/ J! w/ N) J" N* l#else // __SYS_PLAYER_DATA
$ N, N+ M$ O% e4 q9 l" k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: {& y( ^4 t2 H' _$ X9 q g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); R* f/ I% }- V) R
if( m_idGuild != 0 )+ y- ^1 O' l' R: [1 {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; S+ R4 ~; u2 p2 x; w
#endif // __SYS_PLAYER_DATA
# K1 o1 T {6 B" P SetHitPoint( GetMaxHitPoint() );1 f! O% ^3 C# s. Q( f T/ |
SetManaPoint( GetMaxManaPoint() );
9 [+ F! C! K, b! {. y3 V* n8 } SetFatiguePoint( GetMaxFatiguePoint() );; f' A# Q) ]- m( @% T7 G4 `5 s
if( nJob >= 1 && nJob <= 4 )
6 D. L1 I& _/ X/ o; ~ {
/ i) Y6 n# }) Q1 O* I2 C: V m_nStr = m_nSta = m_nDex = m_nInt = 15;
% m) B; v0 \( z- G. \: E+ z# A+ k m_nRemainGP = 28;
0 Y9 s: P9 A; [1 H/ e" E* q }
" v# I0 M% L2 K& P# f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) L6 q/ f* Z1 O. N+ ~0 e$ U {
" D+ D2 P, S4 R6 A; M m_nRemainGP = 118;! v! a* }" S% J+ Z. P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% L' M {8 X3 _% i m_nStr = m_nSta = m_nDex = m_nInt = 15;0 X& D- Q! e0 [- u/ f+ t/ n k
}4 m: {6 H' j/ \2 |( w
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 s* v: w" M' W3 s f" {2 o
{ I6 A+ A$ B/ Y, j. j
CItemElem itemelem;4 @ X! K$ U8 s, x0 A. S0 s
itemelem.m_nItemNum = 1;
% b2 B: A5 i3 ~8 u+ K! K itemelem.m_bCharged = TRUE;) X) w+ A& [ {! ?8 L8 X
BYTE nID;* T1 a/ P, s _" E3 d; u7 h0 s
) J3 x+ }2 r, G
if( nJob == JOB_MENTALIST_HERO )- {9 e+ F/ T- C
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 C5 g$ a q, B* d# C( i if( nJob == JOB_FORCEMASTER_HERO )$ k0 d/ I/ n* b, `# r& [+ j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; ?" l& O5 ]+ Z5 O/ ]" u% G, N, d' L$ B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 W1 {6 j7 I6 c9 V+ O* \9 L$ p( V }: Z3 H* ]4 Z- k, _9 D8 O: g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 i- o$ _/ Q% r( Z/ `
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 C ^# r7 N. ?1 z/ C, k' F( @5 E6 } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. [5 t9 @7 n8 `5 v/ w Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% V% @* n4 P$ |* ]) t0 E$ Q+ { ( (CUser*)this )->AddTaskBar();*/# _& d8 p) q1 q, L! T* ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! K; |0 s4 }* F" Q! f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 h( ~) r# q$ n$ O4 V ((CUser*)this)->CheckHonorStat();
1 p" z; J+ S: w/ m) L ((CUser*)this)->AddHonorListAck();
, n x/ T& L: |/ F, y6 S g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 d) o: O6 W6 L9 S* [4 k2 v; i3 Q#endif // __HONORABLE_TITLE // ′Tà?
" T+ w+ h+ t, O# B8 @ }
0 t) N) ^1 G: q! g+ s#endif // __WORLDSERVER
1 U+ J. X1 h. Z} : ]: q% O9 e0 y' p
( `, j7 H: T8 M6 N3 v! C然后你进入functextcmd.cpp并添加以下/ I5 g2 S4 b9 k2 V: s
. K: F5 E+ {3 Q% B$ d$ `9 q代码:
! ?8 c' w, n9 e XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( c. ?3 e: \) W8 F下面插入4 y! D1 Y4 k4 T8 n, x3 P
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 V+ Q$ N6 i% }& X8 m
- E8 a/ V) Q+ h' l# m; U- J! t& w! U然后你去1 A, r( W9 ^3 l$ M! t
( S- f. [ l: `* G
代码:$ h4 a/ v# e4 g4 H
代码3 r0 X, S; G& y9 ?2 a
BOOL TextCmd_ClearPropose( CScanner & s )
3 v) B2 n& L5 T+ Z{
4 ]' k0 p0 C9 K7 k$ M- T* e, l#ifdef __WORLDSERVER1 S3 _9 ~* a% } P0 i
CUser* pUser = (CUser*)s.dwValue;2 F B% [4 A! m6 S& F# t: F; R: V
g_dpDBClient.SendClearPropose();
. \- U- @5 b& R' r V1 A#endif // __WORLDSERVER5 P* g# Q! g Q2 h
return TRUE;
" g9 |- d+ R) {" Q+ |; B; _1 |}9 F, B# ^' j' L8 Q& A
下面插入
/ B ^9 ]4 Z9 mBOOL TextCmd_rebirth( CScanner& scanner )
1 ~0 k! j6 O' G @1 k3 T{
$ h1 {: w' H7 K Z, U4 J# J#ifdef __WORLDSERVER
6 H4 h7 X' k+ dCUser *pUser;
: a$ q, y0 \# U; `pUser = (CUser*)scanner.dwValue;: y$ j0 P( z: t/ I8 ^, O' c, {8 K/ ?
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" @: z3 {8 I. W2 k
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- ~5 S1 a% s% ?6 ^0 [9 I0 L: \, Q# xelse' y! ~: T9 w+ h; {$ G3 i I6 B' p
pUser->AddText("你还未达到重生条件!");8 |! a& C1 _: I
#endif" W% m; r% Q+ }8 o6 k
return TRUE;
! z1 A9 c2 [6 M) ^9 h& v! c, O2 c}
2 T, u- O% T9 Z2 b/ D/ a2 @9 b6 x) X2 m5 D
- [% m. X/ w! T- i3 K5 b/ \6 T$ T4 T* Z: g2 S
5 `8 C% x& N6 ]: H {( E |
|