|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
{' ?4 f$ O8 M2 q! J, B
1 `: J/ i$ \& H# C4 W* F' }Mover.h3 y5 o# b4 a; @+ @
代码:; ?* \* v; x' X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- R8 ]# S5 j0 o. W) L, z
; h i# s" R* m/ N1 o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 `$ {9 d4 x s4 @& R, S5 }
$ n3 c5 n N/ J& N+ E( |
然后你去mover.cpp添加, F3 s6 `7 a& c O7 m
! Q r4 F, d5 f# ^/ f6 N
代码:) K. q9 M# _4 S0 _- ]
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ X5 q& n- ^) ~$ V. m/ \# u
{
. a' v4 \3 i2 N2 P4 r#ifdef __WORLDSERVER* U8 _5 \& t6 G) A
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' g; X0 M: \. J7 t* N* l MoverProp* pProp = GetProp();
# Y* b% s4 e' K3 \* M3 W if( pProp )) z. ]8 N, S" l) I6 N+ X
{, V$ {- Q' V) p* y- `5 m; D3 I3 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* M" K V/ ]) a7 ~8 A; g; G
{* `; u e, g, X( @; f
AddChangeJob( nJob );4 ^9 n: V5 G/ `9 h; Z. D# Q
}else{- b' D( [; Y/ F" Y$ Q" Y) Q/ h W. F
return;- O. l) B4 N9 c Q% M3 G$ @
}. x2 i$ [4 o- _0 j
int nPoint = 0;( \7 H+ P0 i" Y
if( m_nJob == JOB_MERCENARY )
, D8 y: B! X6 M" ]8 a3 t' G nPoint += 40;
' e' W6 b4 _! F; C" L% v else if( m_nJob == JOB_ACROBAT ), G5 ^. w$ m) m: B+ g& i
nPoint += 50;& f, |( `+ }( f) t% E7 {! h
else if( m_nJob == JOB_ASSIST )
: U1 i( r6 j0 ]; B! M8 C# h nPoint += 60;% b. B- b( m2 [1 Q
else if( m_nJob == JOB_MAGICIAN )" ]- u* P5 G* ]& _: Y& O- ^
nPoint += 90;( u* T |- G2 @5 P1 c' d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# u3 S, O y( o$ W- ?$ @ nPoint += 120;
4 C6 m3 I Y5 S* Z9 h0 C; z* u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ B7 D" a# y/ ? nPoint += 150;
8 s# t- b% T# M0 y0 J else if( m_nJob == JOB_RINGMASTER )5 y+ |8 B. y( b7 Z$ ]4 ^
nPoint += 160;
7 m; O# ]' O8 R ?& K5 F" Z6 u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): C* t9 n4 Q9 \2 ?- h
nPoint += 180;
- y6 l0 |6 n! u" k* m; ` else if( m_nJob == JOB_ELEMENTOR ). h& l* R3 j+ w" i7 U: \
nPoint += 390;
+ V. B: _" T) d; l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" \, L7 S; w9 W2 K0 [" N' X6 J
nPoint += 120;
0 _4 M# ]4 n, d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): L v) B; T: I" A6 t" Z
nPoint += 150;& A; \0 S8 i& T/ I- w
else if( nJob == JOB_FLORIST_HERO )
! E' R5 i8 h/ o% d# ^ {4 V8 f6 M nPoint += 160;+ Q: y# C# M. j7 B' x# u" U* H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 |- D4 g5 t$ R. x( i q( l/ K
nPoint += 180;
/ n3 h6 p0 A7 L$ z6 i( l else if( nJob == JOB_ELEMENTORLORD_HERO )( j! _$ F7 J/ O% C* u% a5 | |
nPoint += 390;; t6 f9 }- `' ]8 a- P
5 Y# g) N; E1 _, ~
AddSkillPoint( nPoint );+ H3 u) Z+ z( Y. G- K0 s& Y
m_nLevel = nLevel;
% t9 l" { ` [ P* P6 J6 N- y# T+ |! O
SetJobLevel( nLevel, nJob );
# b# w* _$ d$ s$ A* \" _% x m_nDeathLevel = nLevel;1 w2 w& J* Y$ j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( d( ]6 X8 P# U; C8 X0 ^ if(IsMaster())9 y/ G) A8 {& N5 Z2 A: ^
{
( z& t9 S0 E* E3 g0 N int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& N# v4 B. V/ M H
if( nLevel > 59 && nLevel < 72 )0 T9 v7 x5 X, K; {. \
dwTmpSkLevel = 1;
( S6 D4 O5 X) c6 H3 _5 w! T else if( nLevel > 71 && nLevel < 84 )
0 f7 L; @* @3 b0 w dwTmpSkLevel = 2;
* H& q8 ^3 x- t& Q else if( nLevel > 83 && nLevel < 96 )
; J7 X- P0 o% W' { dwTmpSkLevel = 3;
! Y. r8 r1 g G/ l% M7 _7 t. L* H+ d else if( nLevel > 95 && nLevel < 108 )
9 z) s) s* \9 {+ a0 \ dwTmpSkLevel = 4;/ y0 W+ G" r4 j$ L" C
else if( nLevel > 107 && nLevel < 120 )
4 L* O5 z$ x% w3 z& T dwTmpSkLevel = 5;! x4 b1 T7 N5 E0 H( ] P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 G) W, C) Y% N" i$ P
{ 7 u% y# F1 e3 `( k9 C3 G
LPSKILL lpSkill = &(m_aJobSkill);
8 f7 o6 {* J; ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
: S( X% A& N1 y {. Y: U ?! z, `0 _. l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % G3 Y1 Y- ~( z) B2 g7 I
if( pSkillProp == NULL )# r0 m! V& B& {( ~& E
continue;1 h0 }6 w9 T# r% k, h: |; G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# C5 @5 J- t/ Q2 } continue;! v4 i6 n# I/ l! t( Y v4 q3 O
lpSkill->dwLevel = dwTmpSkLevel;/ g$ S* J# t5 w$ \5 H- u
}2 s, {. e3 Y8 N/ W
}
( ]4 n$ E* m G* W) P }
S! p2 V5 [- e- w! b% w3 V! M else if(IsHero())' L% y0 ]7 E# D
{
9 b5 y+ q5 u o6 Q8 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 U* P# p9 x: j" y2 s" ?1 G { 7 B7 K. G: ^$ f) H! A
LPSKILL lpSkill = &(m_aJobSkill);6 {( v, w- T+ j9 U# n5 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, I$ n, J& x2 ?) X/ m6 k {0 a0 v8 R4 [$ w: R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " u( }+ } [* ^0 i& Z1 Z1 [/ D& a
if( pSkillProp == NULL )
9 H( k5 X5 e. l( b: B continue;
4 F9 s& }! Q! X3 X3 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ m( ]: A# @" Z6 K! R$ h* D6 R) p
continue;
% s5 r/ C9 f6 f) Y2 w lpSkill->dwLevel = 5;
) n3 D, {! s W5 e2 i }
) Q6 e) y& @& q& H* x }" B T& g. C( J
}7 ~: y, o6 _4 G/ V
else if(IsLegendHero())$ P' L6 e+ c" k
{
$ [2 v& R' ` }- I* S5 x for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 v$ g- e: K _6 |. ?; c { 7 k9 c- I) H; A- Z7 E4 z3 a# B; n! l3 n
LPSKILL lpSkill = &(m_aJobSkill);
3 j( Q* B4 C- E } V if( lpSkill && lpSkill->dwSkill != NULL_ID )
* F1 ?4 P2 L( a1 w. F- q1 Z {
0 X: J3 v8 |- W1 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " y( f9 }- I; j* P- T; Q2 F$ u
if( pSkillProp == NULL )5 p4 P1 i q0 W0 v- Q
continue;8 t0 S, a# F7 e& \6 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% t% n7 [% Z* P- N$ O! l8 O continue;
. H, z/ u' p( w lpSkill->dwLevel = 5;' \9 q' |7 [% m; f$ F5 X" z
}
. {9 G$ Q. }8 j/ c- Y }
) r: {. `3 `8 y* Y, V- x }+ a5 d T0 \8 }3 w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 s, x) S. l$ k5 p" t" f8 H
if( bGamma )
7 e5 a0 N1 D) `5 Y* l {" a, E/ z/ i) h( A# h& a' m
m_nExp1 = 0;6 a+ Q9 F( d- _5 D3 o
}$ a. o0 P+ n/ q& P/ W6 J9 p6 \
9 [% C- E( P# C5 q4 o4 S1 g7 @ ( (CUser*)this )->AddSetChangeJob( nJob );
4 }# M7 H# P; B) b7 |: T7 C1 R; O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 `9 F& r* e+ C' d6 b
$ O1 U6 t. U/ Q5 _- C. S
) Q3 s- z6 _% _#if __VER >= 11 // __SYS_PLAYER_DATA X" v" W! ]' R/ D6 t; R( p5 k
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) t0 \ t) o M4 l; h9 i8 X% J+ A
#else // __SYS_PLAYER_DATA
% K" [& |( T0 g `/ I r+ o" F! W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 `$ J5 A9 [6 t0 i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# @( u9 ]6 N* N R! C
if( m_idGuild != 0 )
) g8 t* R& m K5 \6 ?) y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; P4 R5 B: {' ?8 a* L#endif // __SYS_PLAYER_DATA
: ~, K/ y3 u" }% A' l SetHitPoint( GetMaxHitPoint() );
6 h0 o8 H4 M6 n1 B; K4 J SetManaPoint( GetMaxManaPoint() );0 m* c& J( y7 h( E, q) Y
SetFatiguePoint( GetMaxFatiguePoint() );0 C2 x6 [: r% A7 c
if( nJob >= 1 && nJob <= 4 )! z; ~: L6 L7 P8 b z; j" a
{- M/ e; T" D1 M7 ?9 n) V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, a& R" F' o. u a3 n+ ~5 ` m_nRemainGP = 28;1 f& R* M. g' k1 ~% @6 {- A5 r
}
. l5 y S6 U' S# | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 V/ `( ^* [! } |4 V) _8 Y( I {7 k4 {. @6 i5 B' }# A5 J- [; r" P0 K
m_nRemainGP = 118; o! J5 b, X: Z& S4 A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" F) G, i: y! P* S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' Z9 S* C6 N8 K" H8 a }
! t: A6 ^; S/ T5 U" _5 s9 W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 |. p7 b3 L( Q' K
{( q3 Q5 {$ c* U! ^9 O: }) Y! R6 U) n
CItemElem itemelem; G7 }- \4 O2 _$ i% y u- }5 ~2 _
itemelem.m_nItemNum = 1;8 C+ j: [2 K0 g5 f' ?
itemelem.m_bCharged = TRUE;( _* j/ s: U+ Z
BYTE nID;
$ ?) _* P4 |- H& X. T% v! [
1 B' n7 I9 N3 f+ n' U w0 _ if( nJob == JOB_MENTALIST_HERO )3 m- r% i* H3 k, d) T9 @5 K3 I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, K0 M& R* `0 t; c) P
if( nJob == JOB_FORCEMASTER_HERO )& X/ ?' e% A+ ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; |# f; {; V3 S8 Y: R- J
4 E# j# v; o/ ~ X ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 o1 O/ B4 F+ h! Z# f1 T- c
}
: i4 i$ k# p/ B& i. ^ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 R4 {% w0 A4 ^ X2 r! N3 a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: G) {( B! o, Z4 q& v; p3 g; @) s9 @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ [8 W% Y- H9 N, k" ^- y' N) ?+ r# D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 o2 E8 [; I) l1 z7 |- A
( (CUser*)this )->AddTaskBar();*/! t' f, W4 V- i- Y% H3 G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ \+ u6 i$ X3 R- T9 I#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 z5 j4 c3 l$ d2 w" y
((CUser*)this)->CheckHonorStat();
6 ~% @1 Z, ]4 G+ N* R& P8 ^ ((CUser*)this)->AddHonorListAck();
2 K4 E& V5 M) t. i g_UserMng.AddHonorTitleChange( this, m_nHonor);
. ^- h$ c. W' b- E3 }4 @$ ^#endif // __HONORABLE_TITLE // ′Tà?
, r2 Q0 t# { c' x0 |4 ` }
$ Y4 Q9 R J9 G E) w A9 q% l/ H. l#endif // __WORLDSERVER
: l Z4 h$ b: k, u0 K1 E} * p3 X% L( H) d' V. J; B9 H4 g
1 O$ q# F0 ~. w1 {' r& M W然后你进入functextcmd.cpp并添加以下" `) I9 x7 |8 L! K, H
- u# m7 |$ B# [- A1 W& U V4 U4 q代码:
* W5 _+ h, f7 d% y" }3 |6 g% fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. D! P0 a9 D# j' I下面插入* i* t$ ?& K& A% a6 G
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : F# f% n. ~3 s4 e9 \2 E5 _& U9 g
k8 |9 p- C6 F7 ]) }9 \) ^然后你去
& U2 }* r L u: k/ A) O
. o' R! I! l7 x6 `# R% f3 Y7 |代码:6 n, u$ D8 V& z/ [- i, t
代码$ N' M8 g- E; {6 u
BOOL TextCmd_ClearPropose( CScanner & s )3 o) `) m- ]4 j) w$ B- h; _4 Z
{/ E8 H0 s$ b7 O3 q- b5 a4 ~4 b) t
#ifdef __WORLDSERVER
8 [8 \. m( x' M CUser* pUser = (CUser*)s.dwValue;" _% |. ?; l1 r7 |5 q Z% @
g_dpDBClient.SendClearPropose();
' q7 O8 K: H# q#endif // __WORLDSERVER# r `$ f/ V& l
return TRUE;" P q+ G$ K0 l9 y
}
4 |0 t9 n& b5 h1 x8 C下面插入
( H- m5 Y: A2 Z) j' oBOOL TextCmd_rebirth( CScanner& scanner )1 B: ^- a$ D% l
{
+ j9 Y j) q; m9 b#ifdef __WORLDSERVER
0 U9 J7 j8 k( x0 s1 g2 _/ U; l1 jCUser *pUser;9 Q Q. Y; D3 T* u% L# p
pUser = (CUser*)scanner.dwValue;
) p) g" s4 w' Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 ? P- b; o) d- g1 y3 DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 {4 o8 N3 o2 {, N5 yelse
: T$ I, z( L, j4 \( @ E' SpUser->AddText("你还未达到重生条件!");
! F+ v7 n/ U5 f& Q; k#endif- P% o: D1 K+ n4 }/ q* x
return TRUE;
4 `/ F! i$ l3 M9 h$ R% z- J}
4 @$ V6 p' i6 p- b$ W; N% ?
; d1 i4 ?& w" \- \' y7 a/ j1 P t! q: j9 @, l
' M. v8 e. d1 `7 v* l
, n; w8 k# d/ K$ [8 Q* t9 h |
|