|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& A' `% f4 _) d1 E
- H: e; w) k# r/ G+ VMover.h
2 b' W5 B9 L0 |+ T代码:
$ [+ u1 P' a( }- O( x# b+ a" J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( I5 I3 T3 V- f0 u7 i! B* J# u8 Z6 G z" q7 l" t7 b* d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 q& B8 t2 z3 \- M. r* W/ M$ }4 F) z2 E8 `. U% F3 P- ]3 |
然后你去mover.cpp添加# ~( R: O b2 S
- n4 k8 x( k4 q: r
代码:
) q" t/ G t6 h5 yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; a" ]: d, L" i1 K u7 n j{
. Y- ]* n% J" V5 t#ifdef __WORLDSERVER
5 ~( m: Q# |& } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. H' s' u6 ~& X; X! |
MoverProp* pProp = GetProp(); L3 I! n8 g* @/ m" Z3 h4 m
if( pProp )' i9 D* R! E; A
{4 J; c6 O5 B+ X( V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 ~8 `% M. a4 B3 ]
{
$ k% Q* p5 t3 T+ j) v8 L7 C* ~ AddChangeJob( nJob );: p3 R0 o2 m( M# \8 |8 O7 E W
}else{
2 B$ U/ Y6 a9 s# k& r return;
8 a/ l! \* K* \ }! p8 W/ |$ V: O3 w3 E
int nPoint = 0;
' K, o9 [* n4 n% d: `1 G) q if( m_nJob == JOB_MERCENARY )
! p- q& T& L, f3 H* z& u* L nPoint += 40;; f9 u2 \9 K# ?! Y
else if( m_nJob == JOB_ACROBAT )
) {8 E1 ~! m6 x nPoint += 50;
$ i8 q$ T4 t+ f3 ^' ]) G else if( m_nJob == JOB_ASSIST )
) Q. `: \% m3 T5 A nPoint += 60;) |' j: _: _( u1 T0 x
else if( m_nJob == JOB_MAGICIAN )$ j9 E8 J' V% A. Z% } v# q
nPoint += 90;# {7 s2 V5 X# F4 z% ~4 S- T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 o- D1 W' u" s6 c! D9 w1 n) C nPoint += 120;* d( ^# M6 Y: G$ I f m' ~! i* \/ M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) J i2 e4 ?" r1 X- r nPoint += 150;
# b! m2 P7 Z* F; q" D$ q else if( m_nJob == JOB_RINGMASTER )
! ?9 \; g+ g" D) V' H/ D nPoint += 160;5 O. x1 j4 n' K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- E& k: ?0 u8 }$ i
nPoint += 180;
+ X% r8 S! i5 m2 K- b else if( m_nJob == JOB_ELEMENTOR )
: ^4 g+ X* a7 W: D nPoint += 390;/ T; e3 ]: C. l
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
x) g6 `0 W- G nPoint += 120;* M, ]7 d- r- B' ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 i, e/ n2 \, h' j! \; b nPoint += 150;
% ^( [6 ]5 _1 D9 w else if( nJob == JOB_FLORIST_HERO )% W$ ~( `# y; H
nPoint += 160;
; ]% C( Z( Q- {& J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 c' D+ O8 @3 b5 }8 c: w
nPoint += 180;
" Q1 b' n; X- T; ~. h* N6 } else if( nJob == JOB_ELEMENTORLORD_HERO ): ^$ Y. V% {5 M. p; T/ @& t
nPoint += 390;7 V) _8 |, l7 n# J
* _4 d( B) d3 ]* S9 e, g. p* t AddSkillPoint( nPoint );
. |' s. c% r4 V+ f( j7 a+ D O m_nLevel = nLevel;
8 X; j9 `+ c6 Q( D7 ?8 T; `. |" h$ P. L b$ O6 r
SetJobLevel( nLevel, nJob );( g" I$ [( F2 q S( H7 J
m_nDeathLevel = nLevel;
. q# G2 m1 T/ z$ o. s! f6 z, t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- l* l' X! o7 u! X; Z
if(IsMaster())
( K5 V. C# o$ X6 v. ~ f# G: L. { {
3 k0 @) V+ S' z! {8 |! R+ Q0 { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- \5 P; ?% |7 w3 h! q5 O( A if( nLevel > 59 && nLevel < 72 )
) u$ i7 S/ y2 ~7 V- z$ Y" Y dwTmpSkLevel = 1;$ `3 k9 B5 C7 J' N/ t
else if( nLevel > 71 && nLevel < 84 )
+ O# g# m, u. x; _- z' ^9 z3 A dwTmpSkLevel = 2;
J: z5 u4 e, S# n* E else if( nLevel > 83 && nLevel < 96 )' @) |2 t8 c1 |* z# t. Y
dwTmpSkLevel = 3;
& o( U5 L5 g" ]- j8 H, v- T* y else if( nLevel > 95 && nLevel < 108 )- E, u* g$ `0 |' l3 @* |4 l0 [
dwTmpSkLevel = 4;* o( {' v0 f0 g9 C$ [5 p$ ^
else if( nLevel > 107 && nLevel < 120 )- Z! x8 p! g3 j* b! y! z
dwTmpSkLevel = 5;& a0 {0 a" J# m! Y+ F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" v: v0 y& X! P& C& H$ S7 W { 7 V5 x% f- l) I* H E$ c
LPSKILL lpSkill = &(m_aJobSkill);
" w+ L. c3 q. {* M8 M4 s if( lpSkill && lpSkill->dwSkill != NULL_ID )( b- t }* l6 |% S1 m
{
" x, |; b3 u8 e: {2 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 q9 {+ V8 ^$ N [9 x* H l if( pSkillProp == NULL )9 U0 r! @5 d& \$ R; u- M5 y; o; N7 P
continue;
$ X+ U; x9 w/ h' D# O2 A/ H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ y( L6 l5 U) F) Q$ Y7 x5 T
continue;
$ K; |* M; X+ G" l& T2 z lpSkill->dwLevel = dwTmpSkLevel;: Q- ^& }" j$ V* \2 @+ R. S$ {" C6 A
}7 a5 F+ ]$ ~% S) r& @3 L
}; L8 X$ j+ l" q2 H. S
}
# Y o- `( L% X* n1 v) a& n else if(IsHero())% J" L1 g) }* T; u
{
& }7 i: N3 `! S/ J. i, O7 D, m for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 z% B+ k9 K" x, n& v
{ + N: d; z% d T/ r$ ]
LPSKILL lpSkill = &(m_aJobSkill);9 d/ U F& f6 _+ R0 H9 {/ d, L3 L1 q+ A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# j/ ] P: y3 A: v, V {) Z2 x8 l" ] v7 K5 K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * @8 r- a7 P) C- }! h- B
if( pSkillProp == NULL )+ X8 e0 a6 ^& x6 `0 o [
continue;# F- @" x+ h! |* X" ^% f, u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& [/ \$ A( j1 F6 T: {8 v: X continue;
; A' E$ K/ r- Y7 i1 H lpSkill->dwLevel = 5;
" O: I9 E, x5 A7 Q/ _0 a: q }
. q ?$ n) p8 r7 _9 F }: B( }; @ U4 m! E& ?: ?: r- M
}' Y7 D9 z- h! j( a; l( N7 d" f
else if(IsLegendHero())# `" n) F2 F* Q7 G
{9 u. Z* b$ D+ |# P% E, K* P" {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; }" b5 o: W* W { 1 ?* c. j1 ^. C- b+ U A b
LPSKILL lpSkill = &(m_aJobSkill);
) {! v1 C+ j6 l8 Z) b! m if( lpSkill && lpSkill->dwSkill != NULL_ID )
) q1 D$ E$ X0 q( C {$ e8 j- {1 n* n u: v: U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 L4 J2 M6 {4 n# C, t0 _
if( pSkillProp == NULL )
% k; y; `9 `6 R7 x; F' k continue;" A2 ?" S$ I/ s* X( K& x0 x/ P, S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% F& R8 J! H, h' O
continue;, B6 Q8 Y' F1 v9 X; n, m/ m
lpSkill->dwLevel = 5;
: |0 a2 {, A) Z, j' Q }
7 T& V* W6 W! Y8 v C( ]; W* n }
- `' u1 L- i1 `9 ^4 C }
" H5 L4 l* g. `#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 |" F0 X- `/ C: l4 s- W" V if( bGamma )
$ T2 F( x6 H# }) o2 i D7 i# A) a {
2 C4 K/ O2 Y+ M" c A m_nExp1 = 0;! a9 R1 Y/ ]9 S7 A1 n5 s
}7 j3 V' A- {" l' B6 y6 J8 \
' \/ E/ Q9 [0 U4 O
( (CUser*)this )->AddSetChangeJob( nJob );
' D4 _7 T# \9 Y4 f: A g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ w7 M. ^3 ?' s* \8 z5 }
4 R* B- W$ W8 C$ X6 n4 o
) z& Z$ L2 J! [" b. n) W( ?#if __VER >= 11 // __SYS_PLAYER_DATA
! Q8 R7 L! \% X; ~/ c0 w( |( Z4 F2 ` g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 J1 A2 n$ w1 B: a8 d#else // __SYS_PLAYER_DATA
4 L7 U' N/ o4 q) z' k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 u: y9 L/ W- }) G) t6 Z! N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 b, L+ `' [1 P1 l% _
if( m_idGuild != 0 )
6 S. }) l% C, d0 }6 |9 {0 t# ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ M! x' s; h/ d#endif // __SYS_PLAYER_DATA( {% a5 v4 v& I
SetHitPoint( GetMaxHitPoint() );& G; I- |" t" Y9 M9 B
SetManaPoint( GetMaxManaPoint() );
3 M. J1 O. q- t( j0 n& t a. W8 d SetFatiguePoint( GetMaxFatiguePoint() ); O, l7 S& v3 I: ?5 g0 ]% Y
if( nJob >= 1 && nJob <= 4 )
4 d; J4 s/ t; L/ c) a8 q {
7 p# N6 ]& R- W* k$ n4 C5 b m_nStr = m_nSta = m_nDex = m_nInt = 15;- T4 f# b; ~; b2 p0 T8 O
m_nRemainGP = 28;6 P! y& H* a+ R9 ~: m, r
}: w6 ~$ O/ m. d) a2 T! D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% u5 Z4 B9 ]$ _3 n {+ D$ W* s8 j5 m0 B3 I
m_nRemainGP = 118;
( w/ W* a5 v: g9 P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. E, \3 I& E! }& \" y. a! U' t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( d r- N$ G/ K# I1 A' v" ] }
1 m- y1 \2 R) I" l4 ~5 f2 g if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* I! O4 } N D {
( m$ O9 @! \2 R% W" k% C p CItemElem itemelem;- R0 k0 P1 A! E3 l8 G
itemelem.m_nItemNum = 1;8 ?. I( |, D# o
itemelem.m_bCharged = TRUE;
; E9 I6 a3 W! \6 W- r9 { BYTE nID;$ ^, r* \6 L0 p9 E
6 ^7 r) y# `& a2 C* _
if( nJob == JOB_MENTALIST_HERO )
# m' w7 R$ F; L7 p" Y8 k$ j; B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 \. G7 L) d3 a if( nJob == JOB_FORCEMASTER_HERO )
3 U5 Y: [% P+ G7 X6 {9 [ ] e% x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ D$ a0 u+ C6 v3 w
/ K- T/ D7 Q1 I. s, {# g
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 o* y0 \) l1 S' @4 C }
- w: U" _8 ~" I2 V( y; X( T' L g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* ~9 q9 K- _1 w4 a# y& w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); S4 M1 E( A$ u/ Z8 `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 a4 I' M7 G- K# Q+ ~- B# d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' T& x. I; S) D
( (CUser*)this )->AddTaskBar();*/
# S$ i5 [& S5 J, \* ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ S8 x$ m1 N. t; v# t/ r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( q! b) ]* r- ~1 k( ?! M- T+ X
((CUser*)this)->CheckHonorStat();
; A% p4 T7 j4 ]* _& u8 H" |. @. o ((CUser*)this)->AddHonorListAck();
, X, T/ W. f+ |2 P g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 Y% {3 V( v" w& p* }! b8 N#endif // __HONORABLE_TITLE // ′Tà?0 j5 Y8 i, ] R9 Z" N# j" }
}
% a1 k+ ^! H1 U3 j) S#endif // __WORLDSERVER' i. ]5 F; c# m2 ^! Z# ?
}
* i3 q$ s2 Z7 _) q0 J! q1 r3 y" i+ Z( L/ I* T! ?$ U8 |
然后你进入functextcmd.cpp并添加以下
0 m& a4 Y) b1 o( p% \0 _6 x4 g; k. e/ U# f8 V; q1 t* |$ @& O8 }
代码:
' o* Q7 [: R5 k: @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 V4 V. L' ]8 S- G* e, U/ ~下面插入
& r" }' y; J$ t5 [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ U8 s; e6 e: d8 o* q2 }
5 i6 ]* _' [2 B8 F: B5 s5 q, x然后你去9 }' F: b! q W s5 K5 u! n5 y9 [. k
% Y4 A4 G7 f* \2 r/ z
代码:* `* U+ r! ~ m6 b
代码, L; r) f3 B; i' K1 S. c" O$ \
BOOL TextCmd_ClearPropose( CScanner & s )0 t2 o9 W% K2 K
{
! S- @& G) b: E) h" O; m; ^#ifdef __WORLDSERVER
" T( h' e' B/ K! t. X2 z6 G y CUser* pUser = (CUser*)s.dwValue;
) v& f: V0 U: G9 k; T0 y g_dpDBClient.SendClearPropose();
! v9 p! ?, D2 @+ f; P#endif // __WORLDSERVER
0 }2 c8 @2 e* v* x# n return TRUE;
- u v. l, w( H$ ?5 u}
1 J4 X, _4 r* \0 ~下面插入
8 Y0 L3 |0 B- u, c1 M+ W" i. H0 YBOOL TextCmd_rebirth( CScanner& scanner )/ E3 G4 k* U6 ~5 S1 F& X
{6 i$ X: a& z x6 M/ [
#ifdef __WORLDSERVER
- e% C9 Q" L4 S: [2 i8 P6 j$ GCUser *pUser;8 e9 I; E! B' P
pUser = (CUser*)scanner.dwValue;. F/ s0 t5 K$ V. X( N. g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& ^" p0 K( o- Y( `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; j6 ^; H8 p' f3 \else
' _& u0 r! D$ _. W5 A/ dpUser->AddText("你还未达到重生条件!");1 l% f! O! p8 U n% j. [' h, J
#endif- y" S. U/ ?( f/ J4 @4 Z
return TRUE;
- z6 {( ~/ q% w% J! s% ^}
: j4 X* v* G3 O* X" `# a+ Q5 R- t4 V2 ?1 F+ i: e" Z4 n
, O; a, j3 t: a" d
2 T; ~0 g/ Q! k" W* }
: h7 S% K% c! _! k |
|