|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% n* N- k0 ]2 i6 ^
) q1 @* J" m. u' ^9 fMover.h
2 ?& D }# ^8 E2 P+ w代码:1 C/ V7 Q# r3 d: f+ z; E) L3 ?5 x
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% Z" E" ^. |4 _* _, I6 h
1 o5 C6 E' M; u& G6 k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! `! n t. j9 g! x- Y+ e
' C3 m0 B) T5 N$ X9 G6 r然后你去mover.cpp添加; z, f L) D. k) v' @7 t
8 U/ X3 h4 \4 J! @+ c4 Z: C
代码:
( i% g9 N7 x( j% E9 @7 wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 r- f# X, j/ v1 Z{
, s; J! B5 k3 V! c1 b# ~#ifdef __WORLDSERVER
6 E& V- ?, S5 S( Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 V Z% o A* ~
MoverProp* pProp = GetProp();
: H7 d6 s5 t- e/ }7 T3 P if( pProp )
- g0 }8 A5 i5 \% C9 W; a {
5 t+ e) |3 G5 n2 A4 J* { if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ L1 [2 q: ?- }8 u% I( {7 T: B, Z {
% m: O7 I4 M" E8 B x% { AddChangeJob( nJob );8 k9 N5 B" n- w1 n
}else{0 M$ F* ?* J$ T/ b* u' G4 \
return;
* V, k, P: }, D/ H4 I- N }$ l% |+ u6 i$ v7 X. l l1 |
int nPoint = 0;
, J; v$ M- x- d5 P1 P% z if( m_nJob == JOB_MERCENARY )
( Q, \+ y8 E1 |' ~( f' M' \ nPoint += 40;
: y1 |$ o( }3 m6 h k; M% J: I2 w else if( m_nJob == JOB_ACROBAT )* e( k t# r0 n' a- P
nPoint += 50;4 j4 q5 ]6 `+ M$ o2 k9 ]( {5 [
else if( m_nJob == JOB_ASSIST )
) \+ w) k/ r+ V# c# C7 y2 _- A7 | nPoint += 60;
/ Q8 ^3 G" u% }; u8 [( [9 ? else if( m_nJob == JOB_MAGICIAN ), n8 c5 ]! k+ k* T# t; C! e& G
nPoint += 90;
5 v" y1 |! w9 ^! Y+ @1 e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% u1 ~' s& c8 h& x8 q
nPoint += 120;- t* y& P c& d$ e0 G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) b( I+ z* W8 L/ D9 ~* f/ j U& w7 F; n# S
nPoint += 150;
4 a* K" T/ U M else if( m_nJob == JOB_RINGMASTER )
( \0 g7 K8 u7 K3 G: s nPoint += 160;
C/ h) w3 ]! H- t4 p0 g5 o- \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 r G: R8 b; _, H nPoint += 180;- S% v* t1 U+ h
else if( m_nJob == JOB_ELEMENTOR )
( Y7 w) B y H7 `" O" T nPoint += 390;/ R# t% E* {( K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' H5 W" g3 y. o# }
nPoint += 120;
3 ?. d( u6 s9 ?& ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! s7 [1 Z5 k$ y# ]$ f2 y nPoint += 150;
+ L, _( j4 H3 \- q' z2 n else if( nJob == JOB_FLORIST_HERO ); i5 T8 j& r$ N: {$ P
nPoint += 160;4 `* \7 B0 V1 F9 m: |7 e# `8 K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 V/ j) z5 F" e" M6 v2 J# w nPoint += 180;
+ v; |) T; J. P else if( nJob == JOB_ELEMENTORLORD_HERO ), i9 E( r9 {& f; f# I
nPoint += 390;2 f8 h: r; n* F
, Q9 U4 c3 ~2 o! y( D0 j9 Z AddSkillPoint( nPoint );, E$ T* f U7 L# \' k# T7 g M
m_nLevel = nLevel;) ^7 f Q% b8 n: R% n1 o$ m
# ]$ S N- l1 f- K
SetJobLevel( nLevel, nJob );( h0 _! g, s4 H
m_nDeathLevel = nLevel;
A3 n6 D; l% e9 |6 Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 @$ a2 [% b5 w' ? if(IsMaster())
2 N3 w: X. q2 t( k, v: x4 ] {! Q3 A9 x/ I6 @/ c, ~& V" i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 \1 i7 ]3 g# I$ w: q6 e
if( nLevel > 59 && nLevel < 72 )
: O7 k6 U0 Z6 _# _) p dwTmpSkLevel = 1;
( q3 q, Q; D" p z0 o* J( X) a else if( nLevel > 71 && nLevel < 84 ). s; [% L7 e7 J5 n
dwTmpSkLevel = 2; J6 K1 \9 Z) _: |& ]* [
else if( nLevel > 83 && nLevel < 96 )
( `9 y, r) S- z! Z/ `* S5 K B% r dwTmpSkLevel = 3;/ ?+ g& [# p* U2 f% P! J9 L
else if( nLevel > 95 && nLevel < 108 )
# c4 f% t: e8 I* T9 A dwTmpSkLevel = 4;: a' t& B' A! L' B/ h& {7 w
else if( nLevel > 107 && nLevel < 120 )
+ P, f, f7 |- M/ u8 h dwTmpSkLevel = 5;: g) N! r' e& \7 y o" }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ M0 P1 c/ D8 w: t! [! W+ Z/ } {
' R! X7 J. t0 B h: I4 ` LPSKILL lpSkill = &(m_aJobSkill);: ~! ]/ o+ c% z0 I3 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ X+ Q$ t$ @6 n7 j2 C: W
{
1 S( D' [% u$ n7 H( i0 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& n5 i5 a2 Z: o3 | if( pSkillProp == NULL )
; N' N Z$ O# @" e6 i, Z: F, D continue;
- d" R. ^/ }- ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( [3 s" ^) m/ F1 w2 O) p7 l/ V! I: N
continue;
1 l7 V( G$ J4 r/ F lpSkill->dwLevel = dwTmpSkLevel;. y# {+ h: b1 i P; i- i! e
}$ \9 I# m X: B; q
}6 ^$ M+ i. `0 h( ?
}, B r1 |5 X$ M6 q9 f) w
else if(IsHero())" x5 W, |- B# A) P; c& |2 h
{; ]8 l1 S, E& r! Q) d1 N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 @2 T. o3 }' K7 d4 z% ]: \2 L5 k { 4 K# a( o# ]4 G
LPSKILL lpSkill = &(m_aJobSkill);
; O( U @3 Z5 C3 ]% G if( lpSkill && lpSkill->dwSkill != NULL_ID )% z; ^, I' m) B" q5 Y1 H8 q
{
" {/ C; [0 |4 k8 o v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; Q( m7 f1 d% v3 Y2 |$ }% W
if( pSkillProp == NULL )5 K& r3 v8 S( {' n
continue;
! M# x. U# O) t, e* F* l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) y% `- z" k. `5 ^' z6 T continue;& x; Z- z& [( O9 d
lpSkill->dwLevel = 5;3 l( Q3 o* b5 w6 P2 h
}
! t3 e/ c/ ^- x9 T4 N' ] }: H& k; r) T5 _3 u+ ?5 H3 b8 L3 X
}8 p z9 f% G b2 }- n
else if(IsLegendHero())
5 {& e/ J! m1 K4 A& r6 g8 m' Z {$ {) U( g* _" ^7 G/ _' O. S1 R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 I$ n) }% {: O& x _ { 6 v, _- h# E# [7 n+ c) D3 F5 i8 J
LPSKILL lpSkill = &(m_aJobSkill);4 W9 z8 ?2 R0 Y% x9 R) Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* @7 H8 K: N' W {) A0 P& ]# r$ t4 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% X3 `5 }( Q& b) ?. ]2 ] if( pSkillProp == NULL ): }: v& U/ q, S' V( r# {0 [' R
continue;, O! Z( ~# `: s9 U9 \6 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) v& P$ y- g8 b/ ~! h' d! Y
continue;
' V$ |# H5 ~$ k lpSkill->dwLevel = 5;
" ^* m+ B A3 p% o' [ }6 e( N8 s5 U g2 O7 [5 s7 e" _4 C& T8 M
}) r$ ]5 [+ r6 {, R$ O7 L
}
! B5 g1 I7 |2 z* k& p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
^, f' C: ]8 {. \& f( J+ C9 S if( bGamma )
5 _* x. z8 [. `6 v, G% H0 p {& y# V- C: ~* p/ S$ ?( H
m_nExp1 = 0;, Y% K& R5 g3 Q5 m9 f2 E5 l
}* c/ r9 S- F8 y7 ]6 c& @
' X& v( h9 `: @8 h) `* C- K2 c
( (CUser*)this )->AddSetChangeJob( nJob );
1 D- w* `0 N9 n$ r' @# H' @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 @- @8 o; ?2 X
: H" Q2 Q: {. ?% e
2 q1 N9 @6 \$ Z8 ~0 h; j
#if __VER >= 11 // __SYS_PLAYER_DATA
% U! e$ u; H8 {& Y8 t4 k9 @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! T- [ ^* }% R# I1 j6 L#else // __SYS_PLAYER_DATA
7 f- T' T f1 x6 J! F8 J- q% s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- E' o' D' A( F! H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 ~2 M9 O% {# y6 B7 d
if( m_idGuild != 0 )
* X" h2 z5 a* }" |- k* z) F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
z E0 Z4 d+ k* Q#endif // __SYS_PLAYER_DATA
: R$ k) `. k+ r1 U( _* C. l* ] SetHitPoint( GetMaxHitPoint() );; h+ H1 V$ N O2 ?9 r/ V
SetManaPoint( GetMaxManaPoint() );
* s" G, h! g0 Z SetFatiguePoint( GetMaxFatiguePoint() );, u! _' |- E# t- S8 i# U! S
if( nJob >= 1 && nJob <= 4 )
. z* C' M: m% H9 H! Q5 V {
) Z) Q* U b3 g1 N& e4 C m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 F, z( ^ f/ G: {/ o+ u m_nRemainGP = 28;" @$ k* }+ A; F
}
% ?3 f3 e0 v, p- h0 h2 { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 v& C: M7 f; N7 S" s0 Y
{
0 c+ x8 z; S6 u( C m_nRemainGP = 118;+ ], T0 a! D8 p' ]4 d/ [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& Z; W- s* \7 m* f% P$ Y: `
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ I* d+ R* i1 u: ^) S }
9 Z F; X% M& @: C1 S: h3 y: c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' m; g8 Y* P( }7 Z6 G9 [! o {
7 D8 U9 Y( X) w) } CItemElem itemelem;
' ]! C- i+ U/ J& s itemelem.m_nItemNum = 1;
: \& ?$ A" g3 \2 s itemelem.m_bCharged = TRUE;& Q* g) C7 ~. O9 u
BYTE nID;% y7 T5 e2 J3 o
; ?8 N7 q6 n! G# `7 s- Z/ r if( nJob == JOB_MENTALIST_HERO )
& A( k: q2 O, N1 S) T8 h9 o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ F' y' \, M4 a( _9 \$ ] q, ~- B7 D
if( nJob == JOB_FORCEMASTER_HERO )
+ J( S; T6 E) B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; R D& | ^. A, X! g. W
1 z! D9 h' F- D/ q ( ( CUser*)this)->CreateItem( &itemelem, &nID );
; x3 G; h: f/ r5 p X! z3 O }
& ?) }1 W! |0 k8 R6 Q: t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( U1 B L' a# Z2 _! R0 e! @ I. b0 [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 _' v! o5 M" c2 J5 I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" }% k1 \( |" i( |$ s# D9 D& { /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' _# z* `# e( M ( (CUser*)this )->AddTaskBar();*/
9 R2 v9 p* |# f+ f* V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! h+ N8 n% l" Y! f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! m+ S* n2 f+ n
((CUser*)this)->CheckHonorStat();: a7 j7 f# W: z4 O
((CUser*)this)->AddHonorListAck();% R4 q! i% y. T+ V/ F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 I- p+ U& E7 Q4 ^, z#endif // __HONORABLE_TITLE // ′Tà?
: D1 v* _2 b& W; P }* f/ Z$ |' Q+ b `5 i" J1 w
#endif // __WORLDSERVER
+ _6 ] }9 I. V4 q: `}
" m; u8 |& A8 v6 w2 w9 C; x
' V+ o3 p$ |2 M; N2 p然后你进入functextcmd.cpp并添加以下* V4 F5 H6 w4 x0 n0 ~, H' l
' F% D, ?% {3 _, D
代码:
! v5 p7 ^* _; AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& H& [6 X# Y; F# a下面插入+ m' [8 |5 M; i1 R, G# q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' G0 u2 e; z; i, u& z8 o3 k
+ F R1 _1 r: E4 b; {然后你去
: w1 t6 M6 }2 e: L" x3 [ t; W& a( Y0 K& H# H6 e4 B& U' V
代码:
3 C' f& w; B" {9 u代码
- r) b% z1 ~6 d+ }: {- s! ?BOOL TextCmd_ClearPropose( CScanner & s )
% g! o( }6 Q9 K1 o! g{
z% g, u* ]6 v& _# i( p+ g& e& C( i#ifdef __WORLDSERVER
8 Z+ y# ]) d% [ t& ? CUser* pUser = (CUser*)s.dwValue;
. p% B: Y: [7 S& @" @ g_dpDBClient.SendClearPropose();
+ r6 V" g1 c+ t( h3 _ L#endif // __WORLDSERVER" X: _$ z1 n- H) n0 c. D2 q
return TRUE;/ L2 h% g% _2 S0 V' m
}
+ K+ R$ R5 ?; f下面插入" z# x: O) x: G m
BOOL TextCmd_rebirth( CScanner& scanner )( K3 v. l8 z3 I5 b9 X' H1 T1 G
{, D$ e/ B: }( m# I7 t- k* s. e
#ifdef __WORLDSERVER
/ p' r2 h1 {$ Q J6 CCUser *pUser;) K0 J9 V/ ^" C+ |$ c4 o
pUser = (CUser*)scanner.dwValue;
- C" ?& g1 v0 {# wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" C! f7 Q+ |( O8 n- t n, kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; @3 X- w( [( \% Q B1 {2 s
else% U2 O+ a' l6 K X
pUser->AddText("你还未达到重生条件!");; P8 \/ `/ b* h1 `
#endif5 l- I! _& p3 @5 R, Z: `6 R
return TRUE;8 I6 L2 q7 G4 |1 {1 |; ^" R
} 2 ~8 _# E) n: n' @- Y7 Z* A
. s( H e1 ]0 m! U! j
/ w e* @) l% ] e! S9 z/ D G ~0 Z7 A+ |* ?
9 Y) M' x& a+ d# } |
|