|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# U6 y: ^) @" ]' B: z' m# H0 J. k3 s
]- R. h6 x1 e3 ]Mover.h R+ S9 I* L0 H
代码:% ?5 H+ S6 D; _# q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 o5 ]/ Q: y/ } J
( N% `; i$ O( j3 e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. _; _! |5 B9 X4 n! j
6 b5 k$ [* p2 R, b0 f3 N然后你去mover.cpp添加! Y# w9 K- w( ^' K6 I( X$ [
( B& _5 {1 ?7 I% M5 ~- P' @. {代码:
' j' ^1 n Z) i0 R1 vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) L1 N- r. O; n2 j{
1 K2 u" h! `* j1 K#ifdef __WORLDSERVER3 W( O5 ?% ~* o( s7 s4 Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, _3 B. h0 \; d3 A K% | MoverProp* pProp = GetProp();
' e7 T2 S, P( {; r if( pProp )$ W' a) Y" M$ f+ t r0 M
{
/ k# S. B8 |, c# [+ R) h7 R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* r0 d, c. C, J' ?) ~ {
8 C) `* p3 \% x AddChangeJob( nJob );- p# T9 {% p6 b3 ^# V7 w- x
}else{7 e: ?$ i4 T3 b2 Q
return;! ]/ x0 ~% [. n7 k4 B: \0 z
}
( ^4 ?( K5 I" X2 e int nPoint = 0;
6 y- v9 P- E) A2 B. @ G0 T if( m_nJob == JOB_MERCENARY )+ t3 u" R# ?9 w% A. s+ U# L% A
nPoint += 40;
5 W/ f1 o! D& i" i: E" `, M else if( m_nJob == JOB_ACROBAT )
$ T+ @# [- {/ k6 x& s( _ nPoint += 50; H# v/ k4 ~) d) h# l) A+ G `
else if( m_nJob == JOB_ASSIST )* ^8 c; s" ~0 X
nPoint += 60;, M0 u/ P" M. F0 F
else if( m_nJob == JOB_MAGICIAN ), w1 @% p- P l* A5 |# }2 q8 \# }
nPoint += 90;+ t0 D( |/ |0 T! `2 u, {8 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' m/ |6 N6 s7 [
nPoint += 120;
' N8 C# r5 u3 v- a else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 n$ K$ _+ `5 V. ]" n4 M! B
nPoint += 150;
# [, s! ?9 I H& G. Z) R else if( m_nJob == JOB_RINGMASTER ): }! `, O$ o: M6 S J
nPoint += 160;4 L# {) Y& Q) z+ M+ C/ f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ f! m: v. N( r) R' K2 D0 r nPoint += 180;
, @. o6 t* M* A else if( m_nJob == JOB_ELEMENTOR )$ y$ @9 t# t7 A
nPoint += 390;
+ f, w2 f) ~% e, G- [. K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 J+ |* | z B# H nPoint += 120;
8 F9 k& v( s# a9 q0 Y) {& g2 p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; v: c3 t- F. \4 m3 i nPoint += 150;
3 h; P/ O! B M a, A+ K2 M else if( nJob == JOB_FLORIST_HERO )( O3 R/ C, r. h3 I9 ~4 i
nPoint += 160;
; t& N$ x5 L. }; O9 o8 i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 Q9 k) E9 T9 N3 q7 L nPoint += 180;+ J5 i5 S: \$ _" w3 ^! J( |6 ?0 ]
else if( nJob == JOB_ELEMENTORLORD_HERO )! z: b$ r: P8 m* \- g- O7 S
nPoint += 390;
! ?/ Z- c) N6 b/ I
& x" C8 Z2 K/ y: X4 u. P AddSkillPoint( nPoint );" a! s v* v( {. O1 t6 w
m_nLevel = nLevel;
4 O& u3 ?+ G2 R" i o( l: k- X" }. y1 K8 n/ o, o) K P
SetJobLevel( nLevel, nJob );
9 {9 O& Q$ R2 y9 h( l, B$ o m_nDeathLevel = nLevel;- A* O3 f: a; }8 J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" g; w1 m0 X5 n& x/ X Q, S
if(IsMaster())
- M0 j+ v; h X% E+ q2 B; Y( q {
+ i4 D- v' q, V% L- ~: H( x7 Z1 c1 c int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 T; Q1 n3 O/ R* c9 K4 R
if( nLevel > 59 && nLevel < 72 )/ r* Y- ]. E! X
dwTmpSkLevel = 1;% N ?* y( r) N
else if( nLevel > 71 && nLevel < 84 )
: J) K6 i4 d- I dwTmpSkLevel = 2;9 J+ G! O: J( Z H% ^& e# k3 I# y
else if( nLevel > 83 && nLevel < 96 )
: L9 v: w. m4 S2 F5 I4 N dwTmpSkLevel = 3;
. ~* j; t# s6 A+ L! q else if( nLevel > 95 && nLevel < 108 )/ J' k# ^1 R( C
dwTmpSkLevel = 4;5 x- Y( M" b! }. _
else if( nLevel > 107 && nLevel < 120 )
1 r: o: j( {7 S4 B dwTmpSkLevel = 5;4 y5 g/ i0 e# Y# k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . p0 k; @" C: P- ]
{
! s1 W/ r! d- U/ j8 V LPSKILL lpSkill = &(m_aJobSkill);
5 t: W1 g4 w9 ]+ Y: J; \1 I' A' G. h6 @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
! j5 o1 B" f9 {/ | {$ J( [4 c; e [- E+ c- O3 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ Z; V M4 Q5 [7 G if( pSkillProp == NULL )
1 q5 @; O# W8 ~ U continue;
4 `5 }: \0 C* ^; X5 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( T5 y6 }! J! [7 {
continue;2 }) E* v. Q* z+ L
lpSkill->dwLevel = dwTmpSkLevel;
* m3 n7 {8 A& ?6 K }" S" P1 Z2 @* H
}
* \: U, u9 L+ V4 s$ I, T/ \. W4 G }
& c9 s5 J |1 C& {! ~ else if(IsHero())
$ h8 _- u2 [8 ?, y" M {
# ^% l' u# N W/ z# V7 X for( int i = 0; i < MAX_SKILL_JOB; i++ ) * T& I4 j+ D. y$ ^' Z" ~8 K' Y: @& H
{ 2 L0 p( }# H; R. ~0 Z
LPSKILL lpSkill = &(m_aJobSkill);; V& z& {7 _# I# l7 P4 ` u6 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: { h! I* k" j+ \5 S {
0 J8 Y. ]0 D' H+ O3 b8 Q& F9 ~1 |& |/ t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 t2 u$ P8 J; B& M
if( pSkillProp == NULL )
. `) X% ^/ n4 u+ { continue;7 o; |$ D' F a0 Q0 X1 ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& ~1 O q% p" [% X2 ?! N
continue;
& L" m9 q/ O( O: U" ~. X lpSkill->dwLevel = 5;
& y: t* B: C+ I6 I) q$ G; V }
" Q, G8 \1 R2 ^ }5 H& {3 g* b( W1 b- X
}( W: k7 H g" k* m
else if(IsLegendHero())/ o+ d/ J/ a' v- W$ q: ]/ U a
{
5 O- p; l5 { M; T- {: t for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ d- S2 \: ^+ Q1 A# O {
3 U& A. @# w' L LPSKILL lpSkill = &(m_aJobSkill);
$ ~4 ~" ^9 Z& g4 H1 C if( lpSkill && lpSkill->dwSkill != NULL_ID ). v* e, Y# x: [) t& Y8 U
{8 n! m) N: m$ {1 Z& K" _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 g m) j5 h% w# t4 f8 B1 n, z if( pSkillProp == NULL )0 ]/ `% D% |& H& D' x2 n' k! O
continue;
" {" B0 l7 f; Y6 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ B( H- L) s/ e& C- ^ continue;; [0 L9 [: O9 j: G. n
lpSkill->dwLevel = 5;
2 g4 I% K5 Q5 f! s2 _ }) |8 N5 R0 v% F8 D2 ?8 c3 R
}+ g8 k1 G' P! m& W2 a4 n8 ]
}
4 |. B, E) t8 G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, ]6 s6 _4 k# q if( bGamma )
& O0 A# ]- A4 i: v, [$ X- ? {
5 c4 Y# y- z: ^ m_nExp1 = 0;
) a+ [3 @! y1 ? j }
' w- x) ?1 |- V' D" K# E; ?* Y/ T/ o/ x3 ~& V
( (CUser*)this )->AddSetChangeJob( nJob );' \1 G9 g8 j4 u- w1 b( D) V
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ b; P( T! T" Y( B8 Z+ H$ y% p: E/ a: f( T( {% h8 j- j: t8 q0 i, `7 L3 O
6 l; U9 J7 e# i
#if __VER >= 11 // __SYS_PLAYER_DATA
# D( k# X6 X# D6 b3 I4 i( S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ k M( x# B: R% C
#else // __SYS_PLAYER_DATA
7 p* k' K- {# I; @& J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ b P' J0 g. d g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; }: v2 h6 S7 M7 @+ V$ z. `2 m if( m_idGuild != 0 )4 D/ i! `- ]9 v* J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 s7 B2 F, F2 i
#endif // __SYS_PLAYER_DATA- }- i8 D4 w9 {% D+ J" R9 K
SetHitPoint( GetMaxHitPoint() ); T3 E' k. K ~$ h$ H! i* R
SetManaPoint( GetMaxManaPoint() );
5 _- k, k4 I& d; @5 ^" u( j% z SetFatiguePoint( GetMaxFatiguePoint() );
4 G) c2 A0 B1 A4 _ if( nJob >= 1 && nJob <= 4 )' R8 e# [8 L6 N3 @( l
{6 h1 {( Z- [' k* {% x3 o
m_nStr = m_nSta = m_nDex = m_nInt = 15;- @( `' C: g2 R9 z* k
m_nRemainGP = 28;9 Z" Y" |: w! p {
}$ m6 t. b: s( Y4 \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' d- G: ?" y/ n* f2 X& a
{7 Z$ H6 B H$ ~- V1 a
m_nRemainGP = 118;$ x1 E* ?' J( E% J' F
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 E! Y3 d& f& {3 g. b9 z
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 P1 y0 a r+ o/ Y) `
}, a* |6 n% D9 y. d7 W5 R
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 l! i4 C' x+ m) ^8 T
{
% ?% @: k- h. |' m3 |8 U% K CItemElem itemelem;/ Y. X" t. V: t6 U
itemelem.m_nItemNum = 1;
* \' I S* R+ T7 [ itemelem.m_bCharged = TRUE;
+ W, W2 A U) s; P5 d BYTE nID;& V" A; x; _+ h! S* c# t
; K/ \% z; F* }1 q9 X
if( nJob == JOB_MENTALIST_HERO )
/ Z8 Q o* j o: x% E& @& d1 j& C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 E9 X4 S) \( G if( nJob == JOB_FORCEMASTER_HERO )& L: `. L/ y, X( C0 s' c& d8 w/ E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 X* F% |* C9 N- a/ W
G9 T4 U3 B* v. z2 h ( ( CUser*)this)->CreateItem( &itemelem, &nID );( }: H* m! e( V3 m( v% D$ d5 W Y, B) [
}! P1 l7 p6 _" p, m7 ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 G$ o0 k B0 ]7 b& a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( Q# k) N2 p! w$ K' u* f9 ~! C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 `3 u$ n. A6 d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" l% `: l/ |! `+ H
( (CUser*)this )->AddTaskBar();*/4 n' p# W V3 A4 _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 j4 t1 h8 X6 |0 h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: H$ K( g8 R) L% a8 Z C ((CUser*)this)->CheckHonorStat();
& T% K' s1 E& z+ M5 s1 R+ Z/ Y5 w ((CUser*)this)->AddHonorListAck();* ^& @0 f# o6 v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# H. {+ h( O7 c+ A5 V- G3 Z0 r#endif // __HONORABLE_TITLE // ′Tà?. V, ^' B3 C& W: `" K8 @! @9 H
}
! G% r" u! ] H, N0 C#endif // __WORLDSERVER; Z- Y) [4 z0 L: ]* @* O
} & p7 c0 B8 Y& t
9 Z/ K5 P7 b3 s# M4 S
然后你进入functextcmd.cpp并添加以下/ m' x! _ O+ V
* ]1 G O6 @( H0 \$ j9 h% N代码:9 Z4 S7 x# l' \3 M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& A5 F0 X7 H# U3 D下面插入- Z7 i- p* v2 S$ l6 H/ X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' X& K$ H) n/ \7 O
t- N7 P7 S" j6 S+ I4 x$ s然后你去+ R5 X( G) l* ]' @5 o" b% l# k
" l2 a7 [; x8 x$ g) z代码:7 X, u& d0 n) @8 f# K2 l8 ^
代码# ?# G5 N; s, W, {4 U
BOOL TextCmd_ClearPropose( CScanner & s )
& M' v5 j) a+ q! E{/ w. o ?2 A" \/ Q5 H
#ifdef __WORLDSERVER
# }0 t8 t& W) M% Q( u2 Y CUser* pUser = (CUser*)s.dwValue;, @2 ~* h6 ~5 i$ U
g_dpDBClient.SendClearPropose();0 f+ |9 ~4 J( f P
#endif // __WORLDSERVER$ l' t. D$ L& A2 o4 b- L
return TRUE;. {8 f" M2 ]6 b* [0 y: V
}$ w+ y! L, Q. x5 H) }
下面插入
3 o% ^5 E; ?8 GBOOL TextCmd_rebirth( CScanner& scanner )$ L/ K! {7 v" t" } }+ a) z
{
) a2 B4 B7 F- |/ e2 N( d5 o#ifdef __WORLDSERVER
% N$ B& Q, ]6 V' @3 _CUser *pUser;& @& C: u" J, Q, Z8 a% S3 v; b
pUser = (CUser*)scanner.dwValue;' I5 V9 R- a& y; h% l. a N& H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* Y8 u4 z" y( O0 ]5 l8 Y) IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; R7 f& t$ Y6 L
else+ J3 E& f9 |7 g- ]' ]
pUser->AddText("你还未达到重生条件!");
, W7 i) a3 d& @& C# ?- u5 d#endif
4 U" |) c. G- A0 \' [6 lreturn TRUE;, U' x8 P0 h9 p: X$ _& W
} # f1 J( p& c2 m& x$ q9 L
p( x% c1 _+ C( [8 f) Z0 }) L- w& V6 j E% e+ p
7 Z! E* z0 J1 S' x( Y' T% d O% J! s7 d) q
|
|