|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# s! |/ E0 B# t' \: @% C
- }3 x- {, A+ \. n9 o0 pMover.h
2 P( ~! J9 B' z代码:+ c% w$ O3 Z, ~) N
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" h6 |2 h2 j% L2 V& z
x2 D; E) S' [# Q: B" G- g# k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - \( N7 a; v3 _ x, Y, @
4 S2 ?) D4 a' Y! ]* j然后你去mover.cpp添加2 ?9 u* i; H& K. M; d2 F3 y
4 ]/ g A0 R8 Y
代码:6 m0 \- F. h! w* T' Q0 p# G. S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ W; ^0 }$ S/ j; m" G$ z( b{, j1 q. O+ R6 @7 t
#ifdef __WORLDSERVER
5 u0 M4 S4 C4 |) [8 x M2 T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 N4 ^/ g u: r7 Q. {+ [; _
MoverProp* pProp = GetProp();
/ `* H. G( e8 r6 z1 T( Q# H if( pProp )
* u! I5 O1 B# o. ] {
1 y( g4 b* E2 i, Y0 I. O" _: c* ` if( nJob > 0 && nJob < MAX_LEGEND_HERO ), i; G3 k3 \ i) t
{
/ X* o' K6 v7 h& X/ u0 E; r AddChangeJob( nJob );2 J' X! g3 r' q8 _9 ^$ }1 X& i
}else{! b, \0 o/ D* A7 u
return;& u5 S- d2 V1 t
}
0 W+ r2 {7 J7 C0 s: L% X int nPoint = 0;
0 R/ l, z6 f2 e% d, L6 P if( m_nJob == JOB_MERCENARY )
* f/ w# P. j8 N% t nPoint += 40;, D1 U- U! |; x3 S { e
else if( m_nJob == JOB_ACROBAT )4 E! L% P/ R% I f, v
nPoint += 50;
, | K" M' Q9 f+ k8 J2 z% ^ else if( m_nJob == JOB_ASSIST )- I* V% o2 e. E; G/ f" k
nPoint += 60;
. k$ L% A$ @3 C% k/ a* a" k' C7 G M else if( m_nJob == JOB_MAGICIAN )5 ]8 F0 m5 F, A4 P
nPoint += 90;
8 ^2 l. ?% E5 K% ~2 A else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) J% t. ^7 C G: [' I( e nPoint += 120;8 \* G: x5 t. z+ d. v2 Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 b% `) x4 p4 z7 ~ nPoint += 150;) O) @; R$ y" Y
else if( m_nJob == JOB_RINGMASTER )$ t7 h; @. T0 J9 {8 b9 e( A, ~# ~
nPoint += 160;0 D U( Z; R: n+ o; `4 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* u+ U' M% B* U- |
nPoint += 180;' C7 x2 [3 L9 E- S, n
else if( m_nJob == JOB_ELEMENTOR )
9 ~! t+ R7 g5 d$ P nPoint += 390;" S; D7 ?; b" ?0 ?+ d2 A' W
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* ?( i/ ~4 g5 J0 e- w. W, L6 X nPoint += 120;
3 S+ @. _2 I0 S" q; e% z+ h else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). V5 y" c0 ~: v5 a
nPoint += 150;7 Z4 D# }% @; `7 ^- ~
else if( nJob == JOB_FLORIST_HERO )
0 k1 C0 w) ~: _% R( p, B# ? nPoint += 160;* R* j4 _8 j) D9 I* Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ F- l1 }6 u5 w/ \! w6 a/ x3 t# J3 h
nPoint += 180;7 O* b) K9 b5 h( N0 d5 g! C$ B% Q
else if( nJob == JOB_ELEMENTORLORD_HERO )
# j$ ?& P7 g* i; R1 T nPoint += 390;+ ], g, r8 Z1 X8 m
- ~' }8 }! F h8 ]' _/ \& z% N
AddSkillPoint( nPoint );5 V1 Q! W1 k" O4 B0 O
m_nLevel = nLevel;
o g3 a8 J5 k. i% _
& W8 U2 D" I1 I* d* c SetJobLevel( nLevel, nJob );$ B5 P: r7 Y0 Y5 s; c$ `" |7 S# x( n* f# q
m_nDeathLevel = nLevel;
1 b0 m4 I5 J2 r2 B4 g. v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, z3 n' U! h& p* O# v1 T' z' o
if(IsMaster())
& \1 @( S: B) ^" | {
! x$ `' I0 n( D( E3 [$ ^* A int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) _; S; ]$ l+ }$ I( }2 S
if( nLevel > 59 && nLevel < 72 )9 P4 Z5 k3 \& | f$ \
dwTmpSkLevel = 1;
# A) i6 d6 N. e5 E7 _# `1 T else if( nLevel > 71 && nLevel < 84 )
9 E# o% a9 ~1 m. ~2 B5 r; Q dwTmpSkLevel = 2; k' t: R+ R6 [% I- s6 w, I
else if( nLevel > 83 && nLevel < 96 ). s8 o* p0 t# ~5 x' }# K" }* _
dwTmpSkLevel = 3;
" h: f+ S! N* D' y( `0 a* U3 B else if( nLevel > 95 && nLevel < 108 )& R* f4 F5 J' h" I6 y
dwTmpSkLevel = 4;3 u0 _7 D& i8 I) X$ i% ~ _- a# W9 o! D
else if( nLevel > 107 && nLevel < 120 )* Z/ J5 a+ b1 Z X" {, Y8 ]5 d
dwTmpSkLevel = 5;
6 U+ i" N7 T2 \9 p: d for( int i = 0; i < MAX_SKILL_JOB; i++ )
( f6 h" a$ g1 z* {( s0 U" z* X" _ {
3 q# j' E% ~) e$ I# k; l! N LPSKILL lpSkill = &(m_aJobSkill);
. _- y* _7 _1 d# \- B9 } if( lpSkill && lpSkill->dwSkill != NULL_ID )
! }% z! {# i' \ {
4 A+ b8 \" o( B. b/ U6 y% q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% k) e# h: U W; D. K4 |5 x- c) [ if( pSkillProp == NULL )9 Z5 p; G% c7 a6 n8 w K+ n3 h6 S+ s
continue;9 u8 d: C! @/ i7 N: l1 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 p, ?( y) Q1 P
continue;7 L2 F$ P" `' Z# N
lpSkill->dwLevel = dwTmpSkLevel;
v' T" s% q9 Z& F4 M$ V }
9 u3 E5 ~0 \ j% {( ?% O: ? }. `. s: y7 @6 U* |* F# @1 ?) ~
}
3 [' A$ {5 Q/ t8 F+ c4 l else if(IsHero())2 ~$ X0 X3 @( Z8 d# e
{
3 K1 @ m2 l0 A0 y1 }* R% o+ i9 f X for( int i = 0; i < MAX_SKILL_JOB; i++ )
- u$ J5 [! y5 m5 ~8 ` {
m& c, h5 b j. o" K LPSKILL lpSkill = &(m_aJobSkill);
/ b9 O4 B% F$ y if( lpSkill && lpSkill->dwSkill != NULL_ID )! U8 n! N1 J4 A O; A1 s
{, @# H5 }2 m! i, f' D x, ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 M1 D$ V' w7 e( I4 v" R
if( pSkillProp == NULL )( w& s1 W: i+ _6 n( g4 v
continue;
0 ^" ~/ L5 G& E& X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# P7 h- M1 E! ^4 v$ v- M; } continue;
$ S: j: o" ?' N& \1 p! x" y4 o lpSkill->dwLevel = 5;5 Q2 [) t* i# E7 i. {
}
( }0 |% ?4 _& i" [: ^' D# D }
- w6 M# ~. O3 ~4 M/ y9 B4 Q3 ~ }
: D) O1 K5 B3 X$ O3 C1 U: V. b+ l else if(IsLegendHero())/ }4 g" j" N0 W$ ^, r0 F/ \! q
{
: z7 h: V. u; q3 p6 E: A" b! G: v for( int i = 0; i < MAX_SKILL_JOB; i++ )
; y1 q! b) c$ X$ t6 | { ' ]) j) D7 V. G- O3 Y% W( u+ }
LPSKILL lpSkill = &(m_aJobSkill);
0 i2 c1 N2 v% X if( lpSkill && lpSkill->dwSkill != NULL_ID )4 c+ f: v7 k- [% J
{
5 O! a5 S. }& [- ]; |3 ^2 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ B+ W0 C9 T4 Q! }2 U+ c" @1 O0 p# f if( pSkillProp == NULL )
" d, g% k/ V+ F- Z8 ^3 ] continue;1 i$ T* c6 v: h8 s9 A6 @, A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 U2 u. s* c9 M* F7 }' A3 q+ S, ^
continue;# f8 B' m( B+ X# E* \4 k5 l
lpSkill->dwLevel = 5;5 q; G) z% Y4 }# F
}% Y' U9 }+ x) ?) y2 R
}3 h' D, c* L$ w* \
}
% [% \& U9 h! C* |/ f% G) r G; S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 T! m1 Q9 ^% } [" r, o
if( bGamma )# H9 M1 @. E% S; ]$ \2 O. _0 a
{
( \+ j3 s7 \# Z m_nExp1 = 0;
/ D. s1 W5 e; K9 a( N }
U4 k! s, a4 O- X
3 L5 V% u5 w+ U- S ( (CUser*)this )->AddSetChangeJob( nJob );7 G6 h$ i" [" c( {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 J6 H% Z9 K( w$ n3 ]& B1 _
+ {. i5 v6 w; O6 h% f
9 @1 r$ y2 X- T+ E#if __VER >= 11 // __SYS_PLAYER_DATA9 g8 z; x9 @5 f1 P6 \# x. h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 F4 e3 `6 f1 }#else // __SYS_PLAYER_DATA- d1 b4 ?4 w* t7 I6 H; j7 s2 s! u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- V! }$ O# i# Q& R+ W# U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, E# B4 r2 x5 R if( m_idGuild != 0 )" N3 B4 X' F: S& _/ D- H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ o3 B4 S2 o _9 @4 ^) R0 G#endif // __SYS_PLAYER_DATA7 D8 k0 |. Z( A' H. N( r% o. _
SetHitPoint( GetMaxHitPoint() );7 |% F4 S7 [: ]1 y- r7 F
SetManaPoint( GetMaxManaPoint() );
/ y# q* {" S0 t SetFatiguePoint( GetMaxFatiguePoint() );; Z: F8 i$ x/ ]+ ^: n7 }! V* F( U5 ]
if( nJob >= 1 && nJob <= 4 )
1 T, ?6 k" x% y+ ]7 F# B. ? I) }* ] {
& x; y L4 J4 B- \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
! P" A: \% o1 Q9 j+ o m_nRemainGP = 28;
2 m0 C R" h I5 l9 u6 w }& X: @% q W) C' x* `5 `! }- O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 v0 N7 H' g* C {% g3 d9 S, T5 W
m_nRemainGP = 118; e1 {0 f! H/ D3 c$ Y( P( w6 h$ f/ P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ d! M9 q1 F' @# T% E1 t m_nStr = m_nSta = m_nDex = m_nInt = 15;, @# E# m8 n% W
}! r8 N: {! S9 ]* K' |% o7 C
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 n& {2 ^4 Y' m4 q7 Y) P
{& {. m( K: i. D' B
CItemElem itemelem;
/ F3 D* s V0 F itemelem.m_nItemNum = 1;8 G& x6 b0 b1 B
itemelem.m_bCharged = TRUE;2 P* M3 Y/ U' W' o5 e; a- j1 x
BYTE nID;
' k9 b- g" T/ m
' \$ t6 j5 _* U4 {0 y/ b, o% O! c if( nJob == JOB_MENTALIST_HERO )6 C# f" g) G6 L$ y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; o' h, B" I, X& Q, q
if( nJob == JOB_FORCEMASTER_HERO )) n" N2 N6 Z1 a* O a" }
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 `" S. z, z+ Z
7 f `2 e1 F3 @9 \ ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ C4 Z" \0 Y" h+ ?7 D# T
}
9 y! F4 f7 S# B" K2 ?/ c2 ^9 l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. ^& i9 i# O3 z0 B$ @$ c: n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) E" C3 f9 y( x/ A' O& a ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& h% w# f% V& i& @$ B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 G" A8 ?. I4 ?& K
( (CUser*)this )->AddTaskBar();*/
; c0 u! _+ \2 d; `) ?$ t& [ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ h; G- U; i3 V; H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: Q8 \; ^5 h7 y D) h- Y ((CUser*)this)->CheckHonorStat();+ ~! A, J; d: P9 k2 ^
((CUser*)this)->AddHonorListAck();" V5 `* A8 V: }# K% `/ D
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 I0 S7 o& B) x# A( K4 H* ?#endif // __HONORABLE_TITLE // ′Tà?
% h! I! G6 o$ B# ~+ } }
% ^. x+ f# q6 L2 B#endif // __WORLDSERVER
; I' g! m/ X7 b5 e* F; @, {} 9 b. h7 m3 z( ~5 _* ^7 W5 V
m% E9 N T' w6 t/ k) J
然后你进入functextcmd.cpp并添加以下2 S7 C% }8 H7 M, F2 Y$ b. L
3 R# ~. m8 _3 |$ k" g R$ {代码:$ E8 w- C6 n! o; n8 a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). T$ E% _& A5 h/ K
下面插入
4 ~' s( v/ Z/ @ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 B* q! r/ E& |
2 ?9 R( G! w* c. y然后你去
9 r# Y4 }% R! T. n* M- h3 a3 ]
% c9 Z& {" \) [代码:; Y# D& H$ D& y L. g% {& z
代码
$ V- T4 l+ H+ i4 {7 u- @; w/ [BOOL TextCmd_ClearPropose( CScanner & s )
' |" }" Z6 v% h$ w1 R+ {. j4 x, d" p{
* ]6 j$ i+ ?% b2 f#ifdef __WORLDSERVER
7 B! q" u- A# s' N# }+ ^4 H! J( S' | CUser* pUser = (CUser*)s.dwValue;4 h4 Q, M8 G2 M/ s
g_dpDBClient.SendClearPropose();8 Q# n& ? `4 J' H, \
#endif // __WORLDSERVER
8 h3 c5 F7 x8 V! e4 X return TRUE;2 g5 i: @& N5 {, T. U
}4 _, l4 n1 p7 {8 J W5 G: `
下面插入' @, W( C% N3 i
BOOL TextCmd_rebirth( CScanner& scanner )3 h3 l, D9 t1 Z$ F
{
/ l& L9 r1 `' Q4 S5 V L#ifdef __WORLDSERVER
5 p) v; U% f" p& [: V% tCUser *pUser;
, n# M) s; o h6 r& \pUser = (CUser*)scanner.dwValue;
) x# C2 L3 P8 I) F* F, u: {6 ?if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& Q2 f( ~! t$ G; g$ f! Z1 L8 Y; QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. t5 G" q. `. g. m8 T* N) L4 H1 G& o
else! S: {# S4 v2 } q/ {; Z
pUser->AddText("你还未达到重生条件!");' e% l) t. A$ M. E2 e8 I
#endif/ w3 F, C4 `' E/ Q7 f
return TRUE;
+ O* U) B5 o, G. @}
W0 d0 y( S, e5 _5 M8 O% k% p9 q# T1 {
: D1 S, I7 M5 S: Q
4 M) @6 Z6 H3 Z6 A
% m! {. v, F$ d9 _( O7 ~. h! Q |
|