|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 r+ v0 S/ X+ Z4 }6 E8 c# T/ e7 }( }# ~
7 ~4 W! g/ _$ D9 G T
Mover.h
^* V7 p- L; x0 A) }" J' i7 V |* m! X代码:
P" ^5 Y$ U# G- Z- M% Z0 Y/ ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 L" ?# M# c+ ]- w7 o( D X! J1 o G9 _4 [3 ]/ S/ o) L
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 L9 G2 n, z3 G. t2 J% r* p
+ X5 K8 n. |5 Q
然后你去mover.cpp添加2 X# V2 J5 d, ]3 w- w: k- R
1 Q% t4 u* p; s" T. s; W' B* p1 Z
代码:
/ a+ S0 \9 a) p F: E) Mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 [; ~; k6 b/ j
{4 A1 M" P1 w# I5 C
#ifdef __WORLDSERVER
1 `7 g+ ~) Q+ N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" X2 ~$ `+ G, z" e MoverProp* pProp = GetProp();" P5 m2 G! |. h7 E$ i' L
if( pProp )
2 H2 ~- n' ^6 B! Q6 f8 I+ k' C {# K: m" q) |5 w6 O
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 D: t9 F* _6 |: H4 S) U
{
0 ^& q" j+ t$ n& B" [ AddChangeJob( nJob );
( {# L; t! Q5 L2 |9 ^$ Z/ ?9 Q }else{
+ `9 _9 r7 O/ @6 K$ h return;, q0 w# U9 U' Q: m
}0 ~, b# K& x5 h }3 S1 F) @8 j
int nPoint = 0;
. _+ X* H5 @ f2 O9 Y3 X3 G/ ^8 B if( m_nJob == JOB_MERCENARY )
$ p8 N+ B0 e4 ]( ?1 k1 D# b/ I2 n" t1 P nPoint += 40;
( |+ |: v* O7 S9 b else if( m_nJob == JOB_ACROBAT )
: j4 k. a, L4 d% T nPoint += 50;: O! p1 Q2 _# _; z! O
else if( m_nJob == JOB_ASSIST ), I* h/ z0 y8 G# n4 N' |) G
nPoint += 60;
0 B8 ]/ m! Y9 {5 W" y6 M else if( m_nJob == JOB_MAGICIAN )
- u" ?) U. {" t1 | nPoint += 90;
* {# w; z1 ?9 [( M! p& Q8 v. V/ l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 f4 ^5 n, e) ^: v8 `3 W
nPoint += 120;
' ^1 F2 t/ M, Z; | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. Q" q( Z @! k6 j) T nPoint += 150;
% F3 w$ @: Y9 o# p+ Y' ? else if( m_nJob == JOB_RINGMASTER )7 A+ K* S/ F! K: [* @
nPoint += 160;% ?0 }' H3 r- U& A9 B4 X3 [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) L/ z( F$ {4 [6 }, g7 o
nPoint += 180;4 p+ h2 N# b! P5 W* |; ^
else if( m_nJob == JOB_ELEMENTOR )$ N# j8 r, K$ ?. x( L9 r
nPoint += 390;- V: x* q1 y7 K8 x7 T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) r1 s( e, r$ u- H5 A nPoint += 120;2 ] B/ h* V7 u% Y' } ]! X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 j8 H* K4 @& b
nPoint += 150;
0 r6 o; j/ X; \4 \, H f9 W2 i else if( nJob == JOB_FLORIST_HERO ): r+ v& Q: [$ ^( _& D
nPoint += 160;
3 y+ Z9 V5 k: K( `' S2 p else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 `7 Z, v2 c' c$ p2 C+ a
nPoint += 180;
# c; N0 ^$ B3 x4 A" _8 b else if( nJob == JOB_ELEMENTORLORD_HERO )* z% u1 k( V9 V& K: ~ O
nPoint += 390;
2 m. f0 ^3 d/ |* w# i% J) O
$ K( b2 d8 K5 } AddSkillPoint( nPoint );( d, n2 J. U$ K) {0 a+ B
m_nLevel = nLevel;/ G/ G9 j0 d& Y( y+ u. ?; A
( c5 M! N( K* ^7 x ^' [ SetJobLevel( nLevel, nJob );; O/ O' e: Y8 S6 N4 p
m_nDeathLevel = nLevel;
H- W* U) u! N2 P& P7 X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 b) A: ?0 v0 I( ~( h5 [. S if(IsMaster())
9 [! a9 h4 L/ P! t" n: T {
& x! W& s: p6 ~. o0 [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 |+ G' V3 Q# d$ z- I; b" | if( nLevel > 59 && nLevel < 72 )
8 ?% E& l- U' E dwTmpSkLevel = 1;
1 u! P6 z" a7 a" b5 F else if( nLevel > 71 && nLevel < 84 )$ |( Q3 M& h* _% ^* C( ?
dwTmpSkLevel = 2;/ K3 L: Z- B# o
else if( nLevel > 83 && nLevel < 96 ): F+ m, T: D# M* B
dwTmpSkLevel = 3;
' G6 A. p* `7 V' a( h! z9 T else if( nLevel > 95 && nLevel < 108 )
" s* j5 g) A( y, m* \+ A dwTmpSkLevel = 4;
3 H0 `9 n- V% w c' k else if( nLevel > 107 && nLevel < 120 )9 `* R g5 a6 M8 q/ }: V
dwTmpSkLevel = 5;
$ v, X& Y! }- {4 x for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ Y/ O+ f( B& a9 k1 _, Z {
# K; M0 f3 P* ?7 r5 A% |1 V9 T LPSKILL lpSkill = &(m_aJobSkill);% Y, l9 v) s1 J% D) Q4 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 r/ {4 D6 b1 n9 D# k( y {
2 R- X+ R. _! i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % Z5 H* s! Q: H
if( pSkillProp == NULL )
- W# V+ C/ H$ \% z8 U continue;$ v# M7 C2 h) W: i0 Z: n# g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ c7 Y. f( C% l: {5 P( R continue;/ V" N4 |! V+ h$ E* E' C
lpSkill->dwLevel = dwTmpSkLevel;
7 K% @4 ` T ^( u, b- w }
( V: ~' u+ P: R* { }. _- U: E+ T S2 u7 J
}2 A% z) u, z# G" h1 P
else if(IsHero())1 W/ I1 m# A; I4 Y+ k
{
, \7 ~6 T% @3 O7 [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
: J8 c' Q [4 a" m3 [ {
. a' [0 d0 v( F: \$ M0 y* l" W LPSKILL lpSkill = &(m_aJobSkill);
1 {8 n) {3 z7 u' l- i if( lpSkill && lpSkill->dwSkill != NULL_ID ) E# W7 z; _$ v: X4 `' Q
{ \1 ]5 }. y3 x& j9 B5 q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 L0 u9 @, R! c9 q# J- o if( pSkillProp == NULL )2 `6 ?+ b- A; n2 n
continue;
8 [, B$ N# A; L5 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 b/ N' O& _3 x) B7 b
continue;( D2 }) @9 d7 Z; \9 [, v
lpSkill->dwLevel = 5;
: R) m8 ]. ?& e+ n: a# R }
) z4 x# x+ [) |5 } }, e$ V9 l5 q8 Z3 I% G8 X8 i* `
}
& U- M; N1 G1 f else if(IsLegendHero())5 X7 z3 U6 J& U: G9 e
{2 n+ m" m4 R; F$ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, ~ d" A5 k, x4 Y0 X @" Q/ N% ]4 { {
) {) o' Y. v4 @& W1 o LPSKILL lpSkill = &(m_aJobSkill);) j- e% j. \( i; h* Z* J5 m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: }0 p/ Z; n) p- n2 [ {
- Z* ?; {; v8 _" ?, p: @0 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 {$ E8 e/ x2 |( P! Y
if( pSkillProp == NULL )
& l# P: j, }2 N( N$ ? continue;
, O9 V& X- Z2 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 J5 V9 u. W+ @5 O1 _ continue;
- c, {9 b: B& C+ G lpSkill->dwLevel = 5;
! m- v( s& b% ^. R8 ^ }
1 ]5 {1 p+ m$ \3 o+ m6 r }
; e- M7 N a9 u# } }
& T. o, _1 ]5 t: z O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 N/ f2 H. ]9 A( [3 t
if( bGamma )1 \1 [' G' T0 s2 g% I
{$ W, p; P$ J( ^0 S
m_nExp1 = 0;/ s1 x& N) n' x D
}
/ h) b Y g. T# G1 e
! ^5 C8 u* W s6 W- N! c t ( (CUser*)this )->AddSetChangeJob( nJob );" n& e/ t1 ?% |' i% Q9 g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ [2 j; ]$ N- N" B" ~
7 l; V0 O# r0 W5 m0 e7 ]" I
1 p0 W" j8 T3 L
#if __VER >= 11 // __SYS_PLAYER_DATA
@, P7 r' C+ B2 G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 R3 d! N2 @7 K) A$ O: ]6 y
#else // __SYS_PLAYER_DATA
9 o3 {' M/ E4 m, U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( t9 k' [. y' [' \5 j8 o2 c( f; P g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( e0 M; e3 c; t- k5 C' z$ W/ O6 c+ A if( m_idGuild != 0 )* h) X: M* q8 i! t0 f
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
M0 Q; I. O+ o J#endif // __SYS_PLAYER_DATA
0 F" H) s/ {1 f) I SetHitPoint( GetMaxHitPoint() );: E- p l+ v1 A( R
SetManaPoint( GetMaxManaPoint() );
9 H$ X u0 d; e SetFatiguePoint( GetMaxFatiguePoint() );- ], T1 y& d% s% X' ^
if( nJob >= 1 && nJob <= 4 )
7 E- C5 i3 K% M" I. J+ O {
5 y& v/ V3 J9 s3 y; l& I m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 _1 [( Y: I5 x! D: S1 s" |2 W2 z m_nRemainGP = 28;0 p3 J5 q& }. G' k, V% E" i
}( x$ g+ D( n1 z K4 }. k* X Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): a0 v0 A# H* |5 r
{
, E! K& i3 A% L( V* [: o4 n# g m_nRemainGP = 118;2 i( B! @. n' W1 M8 L7 }& d( l$ L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& c! ?4 T7 d( @' |% ~& \0 ? m_nStr = m_nSta = m_nDex = m_nInt = 15;. `( A. l4 ~8 f! f h+ }2 M ^
}0 Y% j+ _6 V: O; P) @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( @9 p* ]- M/ b/ L; R4 R. C
{
7 r9 S+ h0 |3 M, @1 j8 v8 M9 a; S! H CItemElem itemelem;7 Q/ T& ~. _+ R( |& @3 G$ g
itemelem.m_nItemNum = 1;* p' `$ Z. X, k6 z7 v
itemelem.m_bCharged = TRUE;5 S% _" C* E. }' F! a- A
BYTE nID;" B4 n6 ? N, V1 z0 v0 e t& H
% s( F) W) T" Z4 ~0 ] if( nJob == JOB_MENTALIST_HERO )1 E8 P5 @& G, Y4 }" T# C& M; V
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" M$ I7 i) ]9 U. f7 M if( nJob == JOB_FORCEMASTER_HERO )
' F9 i$ K7 T- l( e; |1 D+ B9 K+ M2 v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. v, l- _& K6 Q% V. e. l3 s+ b& E2 P, I. r( s+ V; D
( ( CUser*)this)->CreateItem( &itemelem, &nID );% u( m7 k- B- S, J0 @/ |/ N
}
( y" V7 G# Z; b3 l% |4 r4 R9 L g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# P( a$ w! l; j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" J; z8 z$ q) J( W2 |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 R/ I3 i0 `) S/ [$ t( c
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 r1 Q3 p7 a- F' M% @# M ( (CUser*)this )->AddTaskBar();*// t9 A& {' ]; G9 @, T
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 d4 P7 |: i# R: w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- [; _' T9 g- {- k
((CUser*)this)->CheckHonorStat();+ W, \9 a8 t; f. l6 c0 `, o2 p$ I6 g
((CUser*)this)->AddHonorListAck();
T- J- Y2 Q. e0 _! s g_UserMng.AddHonorTitleChange( this, m_nHonor);$ z$ u% ?# v( c0 t
#endif // __HONORABLE_TITLE // ′Tà?
5 W$ h! ]* M% e+ e m6 ^ }, D) Z1 K3 g* A8 N! X
#endif // __WORLDSERVER* ^, t, m. _% b9 k
}
' ]7 s! H9 G4 k4 m1 V& a# |0 N
0 X* D6 i8 P/ m. f然后你进入functextcmd.cpp并添加以下
- s& E0 U5 b: X8 g O; H8 b ?" k( z0 K6 C
代码:# D0 }# e. A; X/ i8 M3 s
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 K$ R/ m5 j& v9 `0 \( C
下面插入% o+ d& ^0 Q6 t/ d% O6 b/ Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) M8 q1 Y. ]4 p% m( q
2 D( D% D& V6 B; v
然后你去# f5 `: g& G, Y" [! F' W$ T. r
& D* P2 m3 _0 F
代码:
) @4 m( x4 z2 [: ]代码* @* j7 K. h4 d
BOOL TextCmd_ClearPropose( CScanner & s )
, X' q$ e) k1 ~4 r) S{" S2 N" q( k3 f" U) S' I: j* w
#ifdef __WORLDSERVER
5 ?( R! r" W \7 B* k9 z% l CUser* pUser = (CUser*)s.dwValue;# u1 L0 O6 E# S5 w/ b- l' Q- f
g_dpDBClient.SendClearPropose();
' @2 s5 W' M0 S* Y) K' R% J#endif // __WORLDSERVER
1 w( p* G8 z3 {1 g: C: \ return TRUE;
% J4 I" L- J% F# }# F, K( V& j) Y}8 ^0 F: N( ^4 H
下面插入* o" G4 |7 L! ]' M% V# z/ ]. O# U
BOOL TextCmd_rebirth( CScanner& scanner )
0 }5 e! B0 \7 N7 {& \7 J{: l0 T0 [7 `' y, \4 O
#ifdef __WORLDSERVER) y$ W8 g* |' N2 K: M x% {) ?4 {% l
CUser *pUser;
9 B# `! Z3 w6 P8 E2 \9 SpUser = (CUser*)scanner.dwValue;
; [* W9 r! m8 U$ @0 Fif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 C+ F4 G" O3 u) M0 Z5 b7 `* \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ |! L( h4 N: K# F7 H l& E& J6 Lelse4 A5 S4 f U6 u3 C& z/ ~
pUser->AddText("你还未达到重生条件!");6 T4 U \: ]5 B6 y/ b2 B
#endif$ F; Q) w$ C7 w: b( p
return TRUE;
$ J) j0 K/ v. [, G}
$ v/ g+ N6 F1 O9 x( s! ^4 L+ v; c7 ]% v$ v+ \1 d$ \0 V2 {
: ^9 C9 T( Y# \0 T0 s
) s, z) h3 p! L4 m
1 {$ q; O! f2 z4 z N |
|