|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 i! T- j. q# ?; [7 c0 T" ~8 ]2 {6 r! H x" o" t$ [* N m* }) x
Mover.h
7 Z: A' V2 n7 D7 g3 N( z& a" {代码:4 u7 V/ [; S% j$ I+ E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 ]5 C1 h. v6 h5 D; j
+ g4 `8 D' ]% i/ u; I) r P l4 l+ }0 r7 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 {% `" L7 D7 j3 E1 z3 E
- l& `$ T% K6 [2 A4 ^
然后你去mover.cpp添加
9 o% M, K) W9 w+ B) M& x$ X3 B8 M& [4 j% \7 ]* R
代码:# ?% @, }- t/ t" H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 k; t& d0 `( W
{2 w: U+ |# k0 t$ E6 a
#ifdef __WORLDSERVER
1 V3 H4 ]$ r/ `: s& I; B, F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- W2 T3 j9 E# { MoverProp* pProp = GetProp();
! Y6 m0 S4 c- |: I+ C9 F. J/ | if( pProp )+ `# C9 R% m1 Q" i6 g- c
{
' `4 P- }! J' k+ ]/ c) s) D2 C if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* w9 I$ x/ ]1 {( i: k {
9 H: a8 K5 c+ ?2 P% _$ S AddChangeJob( nJob );0 a: f5 A0 b C% i1 t
}else{
* k- y- c, g/ I' a% |( W% b return;
1 _! i# y3 }+ {+ t! g2 i5 r |1 S s }
9 v- {) O. r( ? int nPoint = 0;* w1 s" j/ I: O: [; }
if( m_nJob == JOB_MERCENARY )
2 \2 `8 q8 l) I* `2 @( R1 E nPoint += 40;
0 ^( K# m q+ H8 R9 x else if( m_nJob == JOB_ACROBAT )- E; l7 b# D6 n6 l) j5 C5 Y
nPoint += 50;
4 X& I Z0 Z. W. W else if( m_nJob == JOB_ASSIST )9 C& Z( E6 p; P1 ^2 g
nPoint += 60;
# Y, v- c0 L& m0 I6 W else if( m_nJob == JOB_MAGICIAN ), f2 L+ u, L1 Q& R
nPoint += 90;, x+ `9 s4 m- p2 t7 K( p0 q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' N4 M% s3 t* G nPoint += 120;
O5 A. D4 S6 j# k2 R9 Y: i2 x" h& b else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! ]6 A8 [0 K) ^ nPoint += 150;
0 m4 M' U! k6 _& ~& M! ] else if( m_nJob == JOB_RINGMASTER )
! X- `6 {8 E( X; f7 n nPoint += 160;+ n: X9 D4 s. k4 h# Z0 d" R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" U# v: T+ {+ A; E0 y3 D9 {. h2 z nPoint += 180;6 {& c1 x# E% p
else if( m_nJob == JOB_ELEMENTOR )2 ` D" w/ l! a4 U' u/ Z: e" _
nPoint += 390;
3 b0 }0 E6 A" \) w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 ?( O# N4 H% R nPoint += 120;
; q4 e! i; G) g% e& p" @$ A* h else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* M) [1 N# R" d nPoint += 150;
: [& c7 Z& E# u' `! R, s4 N else if( nJob == JOB_FLORIST_HERO )1 D- m$ `6 c3 t1 v V) N
nPoint += 160;5 \! T* S* P) a% V4 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); n9 P8 z% y- k8 o: i
nPoint += 180;. ^1 v* y( I4 w; ^
else if( nJob == JOB_ELEMENTORLORD_HERO )7 K) n0 d8 j& p
nPoint += 390;; T' g7 J0 |( ~4 N
; k% M- @+ h- n* G AddSkillPoint( nPoint );
4 y# M; S1 L( A) Y m_nLevel = nLevel;6 E4 g% L: \* u0 a& t, ?* B
& w1 D6 P: X N
SetJobLevel( nLevel, nJob );
9 u4 r& y% w% L; C6 j# u( L m_nDeathLevel = nLevel;) _5 x; E b7 v4 O! u |6 b' R7 P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 Z- a' u- A& U, G! `. G8 e; g1 s1 h' S
if(IsMaster())
, S* X0 [) M, r4 L- C {
6 O8 x% Y1 j6 v' ~! V0 x, Y; s( h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# m* J. C, B% j1 q1 j if( nLevel > 59 && nLevel < 72 ) q1 Y1 j9 ]5 Z* X7 A
dwTmpSkLevel = 1;% t$ K( p2 c* |/ e
else if( nLevel > 71 && nLevel < 84 )( }5 k4 [/ C) C) ]. V
dwTmpSkLevel = 2;1 f' k- c6 Q) p# x. |
else if( nLevel > 83 && nLevel < 96 )' _7 ~% M) `0 Y5 @& U; }5 i
dwTmpSkLevel = 3;
9 ]- F: T* g- |" G5 n0 D6 f else if( nLevel > 95 && nLevel < 108 )
7 l5 [4 F7 q! [( \3 V0 d; z# u dwTmpSkLevel = 4;4 Z5 b& i* \7 l. Q
else if( nLevel > 107 && nLevel < 120 )
+ |8 a3 {2 H/ v* k% l dwTmpSkLevel = 5;
6 f, r; y# T2 B- O+ t+ D for( int i = 0; i < MAX_SKILL_JOB; i++ )
* j* k, p: Y1 J; E& v+ d# N E { 2 Z' [% X. w: L. [) g7 ^0 \2 B
LPSKILL lpSkill = &(m_aJobSkill);
0 g9 A% j" s9 Z- y( ~+ s5 P) | if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 u% Q/ X9 a% w# q& ~. p {: ]/ t7 P+ z! S. z+ A8 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; g' K% `* m' a% H if( pSkillProp == NULL ): e) U: o$ p- L! F6 {/ {
continue;( b o! U3 A& a! j' B* m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ u2 c8 J6 R% {' [, T" }1 ] continue;
7 l2 E4 [: ?. k7 u& H lpSkill->dwLevel = dwTmpSkLevel;" G; L9 G( g: P; x4 }' f( V5 u
}
]# w2 S( Q8 j# d% _ }5 O8 b7 _* w# r( m: i/ p# d: a% W
}
4 V: }9 s8 \& d) ~2 U0 {! y else if(IsHero())+ I5 ^) k+ |/ D6 W1 ~9 h
{
. M2 \8 @' x) {% o9 w9 [6 a for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 D6 M' j a% H% m; u
{ # O2 v Q8 { J. Y5 c+ A7 N" }1 x+ r
LPSKILL lpSkill = &(m_aJobSkill);
* w) d8 _) V1 P if( lpSkill && lpSkill->dwSkill != NULL_ID )9 Z3 W" z9 `; M/ o% Q$ A
{
" l$ `* T+ F' ]; O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 K& [1 U! O- r q
if( pSkillProp == NULL )
$ @1 l9 |: I) n( v2 J continue;
4 Z) ~2 P0 M- |# Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 q: L+ {% x) Z. c j# Q0 s9 W& h# d continue; S- } C/ E( p1 |
lpSkill->dwLevel = 5;
1 D3 q# k0 n: }9 ^ }2 a3 }/ i1 C: T. @6 X! Q
}& V% `- u- G1 f$ M* g
}
2 C2 y3 ~' ]; E2 }% p0 B k6 t else if(IsLegendHero()), v }( \: v5 I; J' V& |8 X+ T
{
6 H' L; r! @% } i) i+ h for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ e/ a1 W! N) G( ?" h" @* U {
9 A C9 R% Y! f! R( ^ LPSKILL lpSkill = &(m_aJobSkill);6 ~3 ?4 `% C9 B9 q" g. z
if( lpSkill && lpSkill->dwSkill != NULL_ID ). q; ?7 _$ x H
{- } q) S* ?; \1 C- ~" L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ?' h# ~% `9 N" y8 I$ H
if( pSkillProp == NULL )
% g9 r$ G5 k6 \ continue;
) i. T0 U0 I# M+ C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 `: e' {/ t9 B2 x* c. r& m- _ continue;
/ n6 C0 @4 p, D' Y, u) q' h, w z* e lpSkill->dwLevel = 5;5 |& ~9 n# {0 j4 x! R9 d
}
, T" a1 q" ~4 p, B4 v }4 C" g9 o3 V" h; s
}, f0 [$ `. Y4 }9 ^4 D: `7 ], I+ T9 T/ D
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 P: _6 U. L6 E; C2 Q" T8 r% `; s if( bGamma )- E) \2 \- q( o5 L4 D2 }
{' B8 D* m- G& q! \2 R
m_nExp1 = 0;% R6 A# y2 u8 _- }! F" d
}" n4 Q& I8 X, x% j8 U
$ J8 d0 k* i) c; F( t Z( m
( (CUser*)this )->AddSetChangeJob( nJob );
# Y) G- R* v( T, Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 X! Q \. T- V, Z+ c' n% `6 _
1 _5 q1 N1 Z7 I5 r5 g5 D
" A& D! B( O( [0 K% y' A' ~
#if __VER >= 11 // __SYS_PLAYER_DATA
a. J" m& G" w4 ?8 i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 J5 ?9 a% A( n4 `#else // __SYS_PLAYER_DATA
- V# i% Q0 U; E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' s S8 g, b) k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ f' P- ?% c. m g( d3 b4 N7 A if( m_idGuild != 0 )- q: i, g% M2 c. l$ Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' R; [+ [- A' {#endif // __SYS_PLAYER_DATA
9 d( v' h* b4 f \- |- j9 X* L3 } SetHitPoint( GetMaxHitPoint() );' L" I% b- Q+ e: J
SetManaPoint( GetMaxManaPoint() );
4 ?0 ], \# z! d0 z1 S# g: W SetFatiguePoint( GetMaxFatiguePoint() );3 ~( K+ Z! Y. a! x
if( nJob >= 1 && nJob <= 4 )
8 R0 f: K' \2 Z5 { {
# p. x" \3 c, Z1 J" k m_nStr = m_nSta = m_nDex = m_nInt = 15;9 R: `' C/ l; i d6 T3 k: `
m_nRemainGP = 28;
7 V) _5 \) j. T4 O }/ C2 T* y' _4 u
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" R, U* Y5 c4 T4 Z! w) H/ u {
3 l7 Q* ^2 K3 ]- S' K m_nRemainGP = 118;
n5 K" s, F* Z. Z/ f: `3 J5 j q. A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, U' \- j7 Y2 ^1 ]. E+ I6 Z. L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- E( y1 T4 [$ {8 h/ z% Q. h2 W }
. ` ?4 J/ @$ S& B8 F8 |- s& L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 F) v& i2 V0 {: j1 Q
{
- m* u/ }* C2 {8 f CItemElem itemelem;, g% h0 E3 G9 T4 j1 }4 Y) D9 d
itemelem.m_nItemNum = 1;
! T; I* y$ Y: `2 A itemelem.m_bCharged = TRUE; {$ E8 k' M0 {% v
BYTE nID;( h4 i& l1 [4 G, a8 r
y! l ^" O8 h. `4 ]7 B if( nJob == JOB_MENTALIST_HERO )
; W4 l$ j/ f% }$ W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 S [- p. y0 s* d8 S! d* ^5 u; R
if( nJob == JOB_FORCEMASTER_HERO )
: G2 ~$ S$ ]) }8 _: V) y9 | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 X9 A/ p1 \2 s
0 i& b. g% `# B/ ~1 t% h
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 Z5 k8 {+ C' O2 ?2 ]1 O* z }* _2 W1 f4 W2 O: k! n! `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 F9 R6 B6 a# n4 _3 A1 }; |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& J$ B* |! q3 a" r+ D8 e0 U3 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ S* w5 p% Z9 l: W: @* R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* w4 e! a5 b$ }. L9 l9 t, `
( (CUser*)this )->AddTaskBar();*/
1 s2 k# Q3 @: x6 v2 ^' E% q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! S+ h: [; S7 L) o0 T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 [* [% B- e7 {( N+ X ((CUser*)this)->CheckHonorStat();
, _" u6 P: }5 N' W2 k ((CUser*)this)->AddHonorListAck();
: ?8 A( w! O% \/ m$ ~0 k g_UserMng.AddHonorTitleChange( this, m_nHonor);# l) V; t7 _$ {" @; R
#endif // __HONORABLE_TITLE // ′Tà?1 w! m8 f( e) G L# _ X/ |
}
) \0 M' v/ Z& b& ?* v#endif // __WORLDSERVER
( i( v7 q2 @" \$ p8 C: r}
# {9 |) D) A) Q% q) {" m" @6 l( [, r% W' n8 I) B2 B* B7 x
然后你进入functextcmd.cpp并添加以下5 _ Y# p, k+ g" _+ s
7 D9 V; \3 V* [ p0 w+ V代码:' m) e/ \7 ~# T. H
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 v$ Z# u2 z5 `$ \- @下面插入
* r L. x+ Y% `% \% M8 D0 ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & B/ J h- Q. ~
6 p$ |2 R9 t" s( f
然后你去9 [9 r# E4 F% n! X' v9 X7 W
1 c/ j3 T( F# ^( J8 k+ _6 v0 ?
代码:
5 m1 j1 ?5 }0 a4 [5 Q代码' w5 i/ s- J, u$ M. G5 g7 q
BOOL TextCmd_ClearPropose( CScanner & s )3 H, W0 w& H8 m6 J! A5 Z: }0 J
{
0 a% @% c. Y1 S#ifdef __WORLDSERVER) W6 X0 `1 i: P5 }
CUser* pUser = (CUser*)s.dwValue;
( U7 }8 g, V7 p0 m9 N# P7 s6 N g_dpDBClient.SendClearPropose();
# G2 M. L- v3 | b5 H) X2 P4 d#endif // __WORLDSERVER& s9 s8 W: p R4 z- d& P
return TRUE;+ B7 K" _$ _! ?
}8 H+ f8 B- R: G" `9 v. X. T/ C
下面插入! \8 s: X/ @8 Y, ~* Y4 ]
BOOL TextCmd_rebirth( CScanner& scanner )5 b2 M7 _7 e. d, \/ n$ n
{
8 O$ [+ Z5 B0 {$ t' @$ e9 l#ifdef __WORLDSERVER0 }- I# q' z7 f" N" X
CUser *pUser;
0 G7 b2 o/ I4 x: p+ B m, ?. }( R3 fpUser = (CUser*)scanner.dwValue;/ g( \+ u$ f; \- Q% |2 b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 a7 P5 p* I+ F8 K1 ]/ K: R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" q. t: j7 {$ M _, Q
else
$ ~3 K- N8 n. L6 MpUser->AddText("你还未达到重生条件!");
: Q/ I& B* w# O#endif, W8 [& s7 x# b( q
return TRUE;
' X4 E) K2 ?/ ^( Z0 ]} # Z' ?( O) e4 V0 N4 p4 M; u
8 a% Z+ V- E0 i# `4 e* ]& o# b q2 v" Z: i
+ D. Q, R# k; f
% t+ b/ m! @, R& ]* e |
|