|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 m, p- g( m( b c2 i
; ]; @7 m9 u8 K( o/ j, ?Mover.h
- W. n3 f: i% h- f+ y! V代码:
; c) h" a% t4 d找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- l+ W/ E& O0 K( f2 T) d& M5 C6 w! Z. [/ U; |
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 V) b6 P& X+ {" n8 D: U( f" w1 M
* c& V3 T. r/ C* U3 m$ x然后你去mover.cpp添加
' C0 L9 T# `1 A# I' V! g( ]
" C& Z( l) ~' P. A0 p4 [0 x代码:
( q- L6 v6 W+ {9 r+ j& ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 n! {1 J/ G$ a8 x# S
{
4 a9 p. j# r% A% |4 I, }; e#ifdef __WORLDSERVER
7 k# J0 y D# r. E$ e/ \- b& I // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 q2 M. c6 U% d( l1 c( ^/ X
MoverProp* pProp = GetProp(); A$ r, Q2 {" J# @, k
if( pProp )0 f( [# N& z) p: y# f
{
) ~2 J( o, T$ j8 F- @( w- Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )& A7 m: H7 d& N
{* l1 Z" f" Y3 d7 |5 y
AddChangeJob( nJob );/ x1 y9 D% Q, G* A
}else{
! r8 y) t2 p' b- K return;( D7 f' m! q# [: W
}
/ u0 x$ }0 ^! B r# l1 p int nPoint = 0;* H' |0 y! P% F0 z4 H8 }) [
if( m_nJob == JOB_MERCENARY )9 F* {5 x& D% l& L
nPoint += 40;0 I [& }: k, i3 }. s( r, I) d7 b
else if( m_nJob == JOB_ACROBAT )
1 @1 v% O0 n* b, ~( g1 ~" b nPoint += 50;
" G. M6 p2 R7 G& D4 g else if( m_nJob == JOB_ASSIST )2 ] V* X2 y. k2 D
nPoint += 60;0 h$ z! E$ {* j8 h
else if( m_nJob == JOB_MAGICIAN )
. w0 H0 N* [! d8 {. o( M. m5 v nPoint += 90;
& E, P$ h8 Z) f. h* m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) M/ N6 T& J& k4 h$ J- s- \ nPoint += 120;; ?6 m4 q% O3 C( G! |" F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ q* K+ t, l* D4 m nPoint += 150;
+ w) q2 ^- Z8 y1 v8 \) g& w* a else if( m_nJob == JOB_RINGMASTER )) @6 \, L N6 _5 S7 u
nPoint += 160;
, K$ G. ~: h2 T3 }' s' n( B X$ ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( e1 l8 U2 N0 e* _5 q% T( w
nPoint += 180;
. A5 c% c+ x: f$ |5 t( c, @ else if( m_nJob == JOB_ELEMENTOR )
0 ?% N+ K V4 w1 @: V nPoint += 390;% |: O# i% G; t" g8 X$ w3 b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# K% t) q$ B4 C8 n3 q# o& q nPoint += 120;
! q: U' s7 t: k else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 D0 |! U1 C& R( a. Z nPoint += 150;* M" D& T6 T, s* O4 d+ V
else if( nJob == JOB_FLORIST_HERO )
' \% [1 h5 W2 k# Q$ e; v nPoint += 160;+ H6 r+ |- v" o: B9 G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- a: L# R* o# O/ f1 e6 O7 X* U nPoint += 180;6 v0 U( F% ^$ N5 G9 d) M- ]
else if( nJob == JOB_ELEMENTORLORD_HERO )6 y: S. u0 h: Y' Y$ ?1 N: T) A
nPoint += 390;* z3 C) h& e8 r q" p% }2 _1 l
# q: P1 u8 G/ M+ F% ?1 T AddSkillPoint( nPoint );& |/ y2 ~4 T/ o
m_nLevel = nLevel;
9 @) E. E' ?" ], @2 Z7 g8 g" t4 |3 X0 _1 e
SetJobLevel( nLevel, nJob );
- R" O8 n: f9 {, m m_nDeathLevel = nLevel;" T' D2 [& m$ N7 A2 J" A
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 A9 T1 k/ {, Z, U; d2 Q. Y
if(IsMaster())
" t6 ~% B. D2 t {. ^6 s; z6 _" W( G9 j1 N5 P5 m: o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 ^, C1 X7 k2 T: Y
if( nLevel > 59 && nLevel < 72 )3 u( }# P3 p1 t/ v( \
dwTmpSkLevel = 1;
0 c9 @0 r: n5 ]8 q else if( nLevel > 71 && nLevel < 84 )& |0 S' C# w6 ~* n3 E
dwTmpSkLevel = 2;% [1 Q2 v) e$ f* J3 f0 v! _
else if( nLevel > 83 && nLevel < 96 )
$ U% U- H( [. A. g dwTmpSkLevel = 3;
( f0 k! p' b+ f! _8 u else if( nLevel > 95 && nLevel < 108 )
3 ~$ W$ {$ ~3 T( g/ C" Q0 m- y dwTmpSkLevel = 4;$ }% n3 t$ d/ s X9 A5 w3 J7 [
else if( nLevel > 107 && nLevel < 120 )! s# |; r5 F* W8 a3 i! f
dwTmpSkLevel = 5;
& m( q, c- p1 ^; |( s K; d( U$ ^( w for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 W$ K9 x7 W; h/ J
{
' z" O+ o( R& G, i LPSKILL lpSkill = &(m_aJobSkill);9 c. o5 b4 r2 j: a k
if( lpSkill && lpSkill->dwSkill != NULL_ID ); B" S6 d% v+ p8 t2 L! Y
{; t4 F m2 w/ G* \) S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' k+ j0 [" F& F if( pSkillProp == NULL ); f$ B; V7 J, Z- S( w8 b6 i
continue;
4 ~4 m/ a7 r# D. h! w% B/ z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; |8 M, Z& g; w) Q( W8 f/ b/ i continue;
- w5 a" a$ C6 f8 d& J6 ~ A1 a lpSkill->dwLevel = dwTmpSkLevel;
" b# l4 Z7 T$ H) v }
, s; ]5 E% C' T0 K }
Z, k$ }) t3 d. P3 d) r3 g' c* a* h# U }
8 M6 L+ F, C% B: z! j* \4 \ else if(IsHero())
# ]3 k7 |3 R$ s8 F3 a% F8 M0 R C {, [+ Q3 M& h, r$ f+ @. x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 K9 c) u+ k) w1 B1 { {
* w6 ?* G% q- I- ` LPSKILL lpSkill = &(m_aJobSkill);
( }1 l8 x9 U; V( _: z if( lpSkill && lpSkill->dwSkill != NULL_ID )
( T; B- U4 K6 t* Z/ g& \ {# m5 @3 L; W& p* }; o, X& f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% s* g8 I9 o9 k/ U0 K( S' c if( pSkillProp == NULL )& I p, D! A) Y& d* H( G( \
continue;
# L! d2 g% Z1 R( {/ }+ Q4 k b4 B: [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER): A1 F' ^4 V- D$ x( k
continue;
6 n& F( c; E4 Z, ^ lpSkill->dwLevel = 5;
0 a( J6 C6 ]2 r, k! J1 j }; G, R5 ]9 R8 v/ e0 Q3 z
}0 R1 z5 w* H% r" R) U! q
}
! y L! \# M8 h! v else if(IsLegendHero())( k7 Z8 ]2 P( c; G/ o6 X9 l" p/ A
{
- g6 b$ r. I' e* V, G! |8 R T for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 g& m& z- u* |2 N! t6 v { 5 D7 @6 ^- a) p- T. Y! \6 o
LPSKILL lpSkill = &(m_aJobSkill);# [" R) T( B- _0 O- D
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ O. n: d) ~! D' u7 N) X
{$ O: o+ N7 z3 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) @0 b: h4 o! _7 b* R if( pSkillProp == NULL )% m4 U0 V$ V* A% a0 A5 Z: o
continue;! L, l* P6 H, q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* w& {. K3 X$ t continue;
# l8 Q4 N* Z* h* h3 H( X lpSkill->dwLevel = 5;, R0 I) A; i' ~$ e9 G0 V( |8 z
} n. p1 Q" S6 C' B* G% Q
}
8 ^- M8 o, ]. q8 I% M( @) i9 F- J }) H/ `0 }6 a3 f) K+ Q# `8 M8 W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( E3 | m; u; G) \/ F* w: T" y
if( bGamma )4 u& k0 h# v% `
{4 C0 J, Z! n4 _4 S: A( Q
m_nExp1 = 0;
- \% A! G0 U2 Y0 w, \& Q }
1 l6 m4 C& U7 a9 V5 ?0 |
' D5 @3 w _4 ~4 \1 T m! [ ( (CUser*)this )->AddSetChangeJob( nJob );
0 p6 g& C, ^# J# g5 o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! g4 w, E% F$ m! r: {- y5 g. X: n; Z' [7 Q
& e1 U( R) C6 h2 j& K( z# w3 T#if __VER >= 11 // __SYS_PLAYER_DATA
8 \7 g& a, A7 Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ X6 r( [: u0 s#else // __SYS_PLAYER_DATA0 E- W( Y9 d0 B& w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ U& o8 L. O, w) V. g9 r" |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) q; H8 ~6 O V% a& X if( m_idGuild != 0 )
, Z! U1 }1 A# k6 H3 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 t6 k2 p$ e: D3 ~- g6 g#endif // __SYS_PLAYER_DATA; y: \3 B( g* f e
SetHitPoint( GetMaxHitPoint() );6 M6 S$ G. }" p. ^' m, Q3 V
SetManaPoint( GetMaxManaPoint() );
" W! c; w% T7 K SetFatiguePoint( GetMaxFatiguePoint() );
% p$ z q& [0 G: z( c if( nJob >= 1 && nJob <= 4 )
~& j- n- H2 U3 u$ ?: c6 Q% o) u* ` {
; d" H- U" T2 i! M m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 m" W* C4 E; W v) q m_nRemainGP = 28;
; ]( y9 r! H) o3 X& g% t2 K, P }) G( z) c9 l, U' b( _1 ^+ Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- r/ f9 p/ r. Q" v" }. n
{4 O+ g" J: T8 ?+ \. G0 M
m_nRemainGP = 118;
5 a% x( P) V: z4 Q+ w2 D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# R. t h. g: Q8 `+ w* i! ^. U/ p5 X
m_nStr = m_nSta = m_nDex = m_nInt = 15; u4 N- `. i5 v9 K$ }: D& Q
}
P$ B& z* K# F" u3 j( E/ [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* \; a Z" t5 Q* O% ^: g; {
{$ i5 a- K6 Q+ l: ^7 g( C& V9 c) A
CItemElem itemelem;
1 u1 K, k0 M" ?8 T' P8 \+ n, [ itemelem.m_nItemNum = 1;
3 s/ S; q( Y: f3 _+ w2 _/ B9 d* U itemelem.m_bCharged = TRUE;6 k. a( ?% K/ {. S/ }
BYTE nID;
& V& N9 B5 {. P! f" ?9 I
% d+ e. s3 P! B7 t- A if( nJob == JOB_MENTALIST_HERO ); _) w+ {2 y! H8 w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: t1 @. o! C# s) w k0 K if( nJob == JOB_FORCEMASTER_HERO )
+ M$ A1 Y/ h: l( R. y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) ?7 N4 m) ]1 a' T2 Z& n3 B
$ \3 B1 d, J& h9 M) O8 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );* i- J4 X* n$ o4 s3 T1 S
}) @: C# a$ Q8 a( i Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ X$ Z3 @, c& U7 u I" [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
H/ _8 a8 b B* y; H ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" P1 {$ I6 H; q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& L* s- h* X1 y6 F% f ( (CUser*)this )->AddTaskBar();*/
+ U) ]% |$ j9 Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- x" x. d3 m% l2 u6 m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& b/ `. G( g$ ~1 k. r0 i ((CUser*)this)->CheckHonorStat();& t5 I: y+ W! J" {! y0 z
((CUser*)this)->AddHonorListAck();. G; S: F! g( S, P8 ] e
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 N; |1 C/ |! [
#endif // __HONORABLE_TITLE // ′Tà?* j8 T6 R; F8 M( i- V
}
* x# I% v' B3 _: R$ {#endif // __WORLDSERVER
+ T% y& I3 H. P) p3 U6 |$ f7 d} ; r' O5 t; [+ n
& A. W% s- A/ E+ o+ q. Y2 l, B6 H然后你进入functextcmd.cpp并添加以下+ X Y- Y0 s) x# s5 G1 s( A
8 R3 l* h5 J9 Q8 ?' ?: {代码:+ y! z# Y$ V" |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- u% w% s+ |, O. O! t# W* }$ d; n下面插入 ]+ V* Q4 t( ^; k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 Z7 X/ S* r3 f8 j. a- l0 |2 C* Z! T
然后你去
: \6 h) Q7 P* \$ C4 |* a( c% B9 r! z9 j! U+ E$ C$ A" Z
代码:
; R3 H) X' }( c. v& G, J代码( H2 a9 N: j& q ~+ @
BOOL TextCmd_ClearPropose( CScanner & s )
+ F/ g( M# v$ \/ P) B{
3 L: N% n$ \& z( r" ?#ifdef __WORLDSERVER
/ A! d# Q& k" C7 k0 T CUser* pUser = (CUser*)s.dwValue;
7 J1 u6 b3 s2 F g_dpDBClient.SendClearPropose();
; }8 K5 B3 f; y#endif // __WORLDSERVER) r% j0 t6 _# y1 i: E, U
return TRUE;
6 s* L( O! ] I; v+ m1 U" g0 Y$ S}' C* n4 M* U. b
下面插入
1 D+ _0 }8 I3 Q0 Q6 vBOOL TextCmd_rebirth( CScanner& scanner )5 t7 f; h5 P0 m& N. Q
{
* u# u2 }* X5 e# o! B* B& M#ifdef __WORLDSERVER
8 T# o9 r" M# BCUser *pUser;
% `0 s. M& L7 {) s' E5 C# SpUser = (CUser*)scanner.dwValue;
6 N5 K1 a$ Y- I! \ iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); ?* k) y2 T5 L- j6 ]; M1 Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 |7 V' j/ n, Y# q% |; T( y
else5 g' |6 S" o- ~/ T1 b
pUser->AddText("你还未达到重生条件!");5 Q2 f# i G2 {- ?7 v( H4 h; e
#endif9 d4 D% \: N+ q! L+ [ B% t
return TRUE;- _5 h( j8 }- }
}
; F. w% z; C$ G& S; S
; J, k1 Z Q* T6 g+ \5 y" p% b, L( l1 s" \; Z/ K9 Y* G
5 e8 m& B1 n0 ]7 {) K# ]. e9 C
# _: u# q2 L" j( h |
|