|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% x& l. F" i! N+ W) m, r% y* }% M6 }
6 _3 h% f! u9 _3 [Mover.h
) |$ J* V# x5 h+ m0 R( C代码:( c1 G) q) \: w) q& H1 e5 H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" \4 z8 r# v* o+ e; \
/ `, d/ N( g/ P& X/ w% l3 x4 a% s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 B( o% I! }* V: h/ w4 z% D+ G' u2 e& s/ \- ?( c+ W" ~
然后你去mover.cpp添加
; R+ ^% y$ E$ Y1 ]1 B
* _% q3 x. q- k' ^/ Z代码:
" Y9 ^, g1 j* }, o: {, c# f( lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 j: f! p5 u6 U' t/ [
{
% [ f; T+ l7 z1 {" u: a#ifdef __WORLDSERVER
: {6 g+ T5 _$ ~* N* G: u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 h. P" M- D$ K% [' U' h+ x0 }3 S MoverProp* pProp = GetProp();
- x$ j! Z6 U) V+ X2 L6 B if( pProp )
( M4 S3 \9 k1 k) C5 g {
- ^( D: G/ E) n7 W if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 y0 j6 ?2 I" L4 U {
/ P5 L. O1 p/ W+ A) V" K% @6 Z AddChangeJob( nJob );
. h! @0 g1 _) n }else{0 N% w; Y" `' w" y# @. I6 l+ d( i
return;4 ]! J% X6 T! l% W) q
}
' {8 C% ]) A6 \: O int nPoint = 0;3 x, v- |' b E* L ^" E+ w
if( m_nJob == JOB_MERCENARY )
# @$ K k# @1 n& d+ [4 x9 \ nPoint += 40;
3 z' H1 i" D$ q) n$ k else if( m_nJob == JOB_ACROBAT )
4 k1 m/ [ Q, U3 { nPoint += 50; g$ X3 G) K& V% Y4 c, s
else if( m_nJob == JOB_ASSIST )
" V3 V p. O- \. K% O nPoint += 60;
; u. k0 `" D' g1 l; p$ d else if( m_nJob == JOB_MAGICIAN )
4 ]7 t/ s5 `1 [$ `9 m# m" r8 [ nPoint += 90;4 a# k9 K* ?- l! ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ N9 G4 P, y i nPoint += 120;3 _+ Z' h6 M- z1 Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. Y; @. M$ {3 w: Z nPoint += 150;& D1 q% R2 Z( ^ t: t* V
else if( m_nJob == JOB_RINGMASTER )
. w; K. B0 h1 u7 a1 Y nPoint += 160;
# j! j7 j5 r( I* k" U% A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 l. {2 `. S6 Q7 G% s8 _- n3 m1 m nPoint += 180;
1 E# B& Z% Z: W) \2 I else if( m_nJob == JOB_ELEMENTOR )
. ]! F2 D. T; n% r7 V nPoint += 390;
4 K7 C0 U5 h" m, D2 B/ P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 M, }. F# C; E
nPoint += 120;
) ?) ~% N7 i) E2 o$ L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: ?7 I9 F+ A8 } d# D+ g' E2 S nPoint += 150;
1 p, B8 U/ Z- G: E8 w5 A# S v else if( nJob == JOB_FLORIST_HERO )
0 @0 L! `4 M* O8 T% \$ c" Z4 h) V. c nPoint += 160;
* C; r/ I( c& k' z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 A% N0 j5 R" U5 E( a. } nPoint += 180;- A6 J* l3 e" l
else if( nJob == JOB_ELEMENTORLORD_HERO )/ d( C. {$ c* r/ D& I E
nPoint += 390;7 S0 v/ R9 s" k) u9 [
9 A B! J; \: h$ G AddSkillPoint( nPoint );
4 }$ s5 I& v1 {) D" _' x m_nLevel = nLevel;/ [: n3 D, D5 ~- F: T5 p/ O" m
+ a; \" A% V( d% k* R- S* a SetJobLevel( nLevel, nJob );
( ]/ X. _2 G/ o m_nDeathLevel = nLevel;
3 H) J; F4 L p7 c0 o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 `/ E2 n9 d$ y# M. q0 b if(IsMaster()): p- Q* F$ U$ V; d
{' K9 J' j7 Y: j. S+ {& m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" V/ |5 \' E/ V' N$ I6 f
if( nLevel > 59 && nLevel < 72 )
$ h2 m# u( x! e. c& u7 o9 c dwTmpSkLevel = 1;4 i$ T: I; ^- c4 o- F, W) _: v
else if( nLevel > 71 && nLevel < 84 )
% ^; Q. x2 e* G$ O" U" F X dwTmpSkLevel = 2;& D h$ X: u4 |
else if( nLevel > 83 && nLevel < 96 )
5 ]+ ^, L) C% b, p+ ~ dwTmpSkLevel = 3;
- X- o$ |! E: Q3 D else if( nLevel > 95 && nLevel < 108 )! ~. E3 X+ B2 g+ m1 N0 ]
dwTmpSkLevel = 4;) l. a8 @) w) {% g( m) M" C$ A( B
else if( nLevel > 107 && nLevel < 120 )
^& U5 m, k7 }' a! L' Q+ s6 Y! _' l dwTmpSkLevel = 5;6 P) x! r/ e, w; b1 [; U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( q% X; S, A" j7 f6 n {
6 i6 a7 E* ^( d. H. p LPSKILL lpSkill = &(m_aJobSkill);2 R0 t1 ~( u* M7 P+ C$ B# |: N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' A- d/ o' ~* `+ G9 U7 y9 | {
: E% O! W% J' }/ A3 }; |7 @- R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 R6 Q( ~$ a3 i: T x if( pSkillProp == NULL )
4 b! T# y, {5 Y S! _ continue;
' g. t- |7 }% W% A: W3 S5 f5 X4 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& ]: n2 D% o& `5 h' b" F continue;, {/ t7 v# }) p1 e) J# V
lpSkill->dwLevel = dwTmpSkLevel;
) z4 N( q: S- n; L5 p& B1 B }( W7 l& A4 D1 ]# j
}6 L5 I6 d$ O" [; S4 Q) C! V+ a
}
k T& w! e3 e# a. W+ F else if(IsHero())
/ S) G6 @* i" G1 T {5 K' e h+ G. V% l5 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* e" H4 J f/ z { " v# H, n. B* s0 U0 ]' D
LPSKILL lpSkill = &(m_aJobSkill);
2 X" p( S! G+ {% }. S4 D8 b: ] h if( lpSkill && lpSkill->dwSkill != NULL_ID )
. u5 ^9 U' Y g2 p* Q3 o {
' d8 y/ V( W/ H! D* w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 u* ^+ A& V3 G6 x/ O if( pSkillProp == NULL )* D4 D* J4 r6 t5 [, F- a2 I: G
continue;- v1 H- h/ C" W' D: b1 w5 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 ~) F1 t+ M. Z; r: _4 f continue;
. V W4 [5 T4 K0 ] lpSkill->dwLevel = 5;: A9 W' M9 G/ j8 N M+ m
}
, ?2 f# {1 p8 I O }
6 [3 B$ U9 Y8 T2 O) A2 q) ^. U }
/ }: r8 H; a% j$ J. h3 h else if(IsLegendHero())
[: u0 x* y/ \- v/ G# z5 `# a {
9 y- Y9 ~- ?( a7 L8 W$ @# s1 m( [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 a0 [# D8 @( K# j8 T/ C: W! j# j; R! V
{
" B9 U! M& ]8 G LPSKILL lpSkill = &(m_aJobSkill);
6 D0 @; {% v5 ]+ S6 t* H% x if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 j* n+ P' I& r* }; q6 ^ Y { H/ D- z+ A% y0 U0 v, x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! j) a! ^; y$ r! j' j
if( pSkillProp == NULL )
+ T$ p% `6 \ B, F& S0 ?+ m4 f continue;: d1 u) w% V. ?( c: X6 N# M K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' c$ q! {4 y2 ^1 g$ d8 V continue; e# P9 e5 ~- l5 ]7 R
lpSkill->dwLevel = 5;4 ~; T- i# J+ _. l6 G
}
( z3 ^% j) Z0 P4 | }
7 s( z" Y0 M4 i# ~) U }
* M, L& x9 b7 `) D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- Y* [- G3 ?2 `$ x- h
if( bGamma )
u6 |) a. ?0 \ f5 N$ f6 w {! W7 H, R8 G9 Q
m_nExp1 = 0;
) P+ p* d. ^1 [5 ^ }
+ V l8 ^9 [. P& N
6 v- s: j4 x. o! R6 z ( (CUser*)this )->AddSetChangeJob( nJob );
9 W' H2 b9 ~& q0 ~/ O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 V) C1 ^/ ^/ p" b* c) @8 z
6 Z5 J# V7 M4 F6 S2 p6 D2 b; g
#if __VER >= 11 // __SYS_PLAYER_DATA, J" u, Y2 A8 R B, S h9 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( p7 G/ t0 E' |- T! H- g#else // __SYS_PLAYER_DATA" {* j; {9 X" ?, @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 h _; y* A; `5 `/ a* L/ |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) Q$ J, H% ]. p! f! m if( m_idGuild != 0 )
0 ?% w$ X9 J v3 h- R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 m" ~& j1 u- c4 ]" L1 L#endif // __SYS_PLAYER_DATA
' Q$ Y! }' ^( }6 R' b SetHitPoint( GetMaxHitPoint() );3 F3 Q( H$ x [5 ]' B, F1 Y2 ~
SetManaPoint( GetMaxManaPoint() );8 Y( _; l* r8 A z" [
SetFatiguePoint( GetMaxFatiguePoint() );
2 F9 G& {! d& G/ r if( nJob >= 1 && nJob <= 4 )
+ ]7 b7 A2 t. G5 |) _ {
" f# i) g: n3 z, q m_nStr = m_nSta = m_nDex = m_nInt = 15;" O+ i+ {+ m8 w7 m! L6 N* n3 r
m_nRemainGP = 28;# `$ B" d. J! H) D) z% H+ }. y
}
1 C( [* o& _' C j) F; L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 Q {3 v6 B# E- J+ u8 E {
$ `2 O/ B4 A% ]3 b' E/ m m_nRemainGP = 118;
4 }" D* _1 \/ ]% f- m6 c. _* e //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( w2 N6 _) P6 o$ _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
- {- W/ y& W1 T/ G8 R/ V }+ @8 D) l: m9 O! S2 t& K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ Q2 |, ~ Y+ ]3 B+ x1 |. q. O' `, e8 @( P {
4 O$ r4 [; F; i# o CItemElem itemelem;( X+ `; y9 b3 l. Y: u4 m" b
itemelem.m_nItemNum = 1;% P" w% g6 C# j; J, w6 H" I# F
itemelem.m_bCharged = TRUE;
- s8 i G( A5 ^, ]* A BYTE nID;$ \) h% j$ v+ \" W9 u7 a+ a
) J5 f8 C# i, c* K
if( nJob == JOB_MENTALIST_HERO )% B! G# M9 _/ q; W" v0 }! @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 `% R I$ p& Z" x- S
if( nJob == JOB_FORCEMASTER_HERO )6 y; [& M$ c! v5 x, L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. }% C& A8 m. _8 \0 z
# C# n4 o" q$ k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 i6 a: W; P2 o+ ? L: Y* ? }
4 \9 B- N, r3 }- \2 H# i+ v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 |$ S/ a+ M2 E* M/ t ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 t* p& {& n" K1 `7 J
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ B* M1 U( L4 n% Q. n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! `! |% d% C+ {9 Y& q3 w
( (CUser*)this )->AddTaskBar();*/
5 I7 P2 T& w: r' g ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' d6 e0 l/ ?: @1 s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- j# B/ t) }) J& p+ E' h6 o ((CUser*)this)->CheckHonorStat();$ O9 e' O" m+ o2 C! Y
((CUser*)this)->AddHonorListAck();
8 ?0 \. m+ u, L/ p g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ r& Q! V2 z; X6 `) t#endif // __HONORABLE_TITLE // ′Tà?2 d# ]/ p7 v! E& K" n1 _$ e
}
! M2 m' L# D' H% G/ ^#endif // __WORLDSERVER: F/ V9 x2 ]4 ~4 ~# Q' A8 \
} 9 G7 h9 U! H d. \
- t, O0 j8 i( v4 w/ `' s. P& c
然后你进入functextcmd.cpp并添加以下, G2 s" L" m/ u9 i
, x. m$ f# O2 Z代码:
: G4 Z( F+ m/ T1 d; H" Z9 XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 t6 c3 W% y* w8 k下面插入. k0 y0 }: E0 i; v7 U( O- c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
E" b% p7 j, T& D1 C( l& M
) x8 l5 J: C" b* }) g; l ?$ [然后你去
0 D$ N4 c8 P* |. q1 o$ ]
6 b* z" V. k" E' N+ ?# g6 a. [代码:
; ?4 H1 \/ _& w, t4 `7 t代码
) J. p0 A x3 YBOOL TextCmd_ClearPropose( CScanner & s )& N4 ]+ q# m) V& y" C1 m+ Y
{5 s" {; K; `+ H
#ifdef __WORLDSERVER
: {- ~: Z+ M3 _" p, z+ m CUser* pUser = (CUser*)s.dwValue;
* a" O7 y# G' G) C) L g_dpDBClient.SendClearPropose();
j+ D' R2 Z) u! L0 Q#endif // __WORLDSERVER; ]# q- S" K' j7 u H) o
return TRUE;$ K* T) W d$ t$ F6 {( S
}
$ R; i# v( @" b2 O, Y; _下面插入: z7 |3 C, L# v5 n+ Z
BOOL TextCmd_rebirth( CScanner& scanner )( Y8 O; {" j3 Z# _
{
$ Z G+ z3 O% \# d#ifdef __WORLDSERVER, }) l8 `: o: g+ y3 A
CUser *pUser;
; F% H% @4 a3 H; n3 L" x, @/ \# CpUser = (CUser*)scanner.dwValue;
5 Z" E% ^/ g; N2 }# Q# G6 A( J( `if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' u0 M8 J: X3 A. } opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# h+ \; F3 H8 I c( y0 w7 N5 x8 q
else9 @8 d" r* h4 G
pUser->AddText("你还未达到重生条件!");" [! F) @* e% W% H+ u0 Z. R3 y" o: G* P% y
#endif
' H9 z% h4 R9 g4 X( ?4 l8 _3 r2 A% g$ ^* ireturn TRUE;% `& t, b! [2 b4 M; r
} * Y' Z- X |1 Z6 v1 Q" }
' ]* @/ ?) N' A% r, L7 {1 N
" P( t0 q, ~9 c% d8 c k( W5 H/ D1 `+ q ~/ Z# B" s7 i& z
; U! J' b, t% Q, G1 V+ s6 k |
|