|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; J% E' E) A6 ?1 p4 a/ Q5 s0 ~" M; w* N$ N4 P$ w, g
Mover.h( G' G7 g. I+ N. Q. O* T1 R# F1 F
代码:' D" y" |( U* ~& a% q% M9 y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' q! Z# I* B; P6 p ~1 R
4 A) p7 l: D0 F) W2 v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& ]8 j0 I8 J' }# a6 v
+ e; o3 C" H/ m! c$ B3 y然后你去mover.cpp添加3 W4 C! ^9 Y: V5 O6 ^- H) `) X
8 O4 Q. @( r+ h3 R
代码:
|" @! T' n! mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# K$ j( ?: ~7 R: A6 F{: a4 X3 n5 h" \5 ?, h, j/ l$ y$ Z# W
#ifdef __WORLDSERVER- Q8 U. K# p" l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 u1 u( r4 ^1 s7 K+ @% i8 L MoverProp* pProp = GetProp();
' t7 S+ |# C* D1 u if( pProp )
" d! X! C% x, p' y8 j {
0 {: I& c# B8 d5 ]) S* k/ ~ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; x: j) q5 H3 R, d/ D# V; d {$ \' M x% \) z6 c0 ?) d1 N$ o( r* m
AddChangeJob( nJob );8 {, w( X D5 T U0 s
}else{/ \: P* D( p; P( z6 w
return;) I8 V- F! i) {4 p: q1 F
}
; E/ e4 d2 i' z8 v1 Q. L- }& `- B2 x# O int nPoint = 0;
& ~2 p. f @+ c' f( S1 C! G5 K if( m_nJob == JOB_MERCENARY )1 X9 b5 a- p6 f) D- q+ Q! r
nPoint += 40;
7 a7 x @3 U0 v \. j else if( m_nJob == JOB_ACROBAT ). U: ]8 G) U0 ]2 h4 `+ W
nPoint += 50;
9 i; k# t0 M, g else if( m_nJob == JOB_ASSIST )7 r) q% W8 d: d4 M
nPoint += 60; p$ r* A- W% o" c/ Q1 e- J4 {
else if( m_nJob == JOB_MAGICIAN )' f9 \4 C* h* m5 u' _% K! U5 @
nPoint += 90;3 {' a+ F" ]8 f0 p, ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' X2 P+ q x6 m9 i7 g4 c) R+ A nPoint += 120;( A( S3 h+ m; o9 A2 O9 k# l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" x1 R4 S3 u! c6 x3 J' D nPoint += 150;
5 e4 F/ r. L: o( m/ |, Z1 _ else if( m_nJob == JOB_RINGMASTER )( r0 R7 e7 C& @) p# y0 ^
nPoint += 160;% p7 U* W/ |8 E" K8 ? O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): [0 L% q. M L8 N
nPoint += 180;6 f( z1 R' U: k, c q4 L& y [
else if( m_nJob == JOB_ELEMENTOR )1 y7 G5 {0 S: |
nPoint += 390;
2 K& W8 G& i& @% s& ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ C6 U4 |5 O7 L2 [ \+ j; i nPoint += 120;8 E4 s( F" b7 R3 s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ I" }' |* {: M2 |1 R. s H0 O
nPoint += 150;
) m5 D: _: a' O0 ] else if( nJob == JOB_FLORIST_HERO )% h3 c A. v& c( l
nPoint += 160;( z% q( M+ X: y& K# k. F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 L# ~) c, s5 V0 w( Y% u
nPoint += 180;. m0 D2 W- i1 l0 f- t
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ x J4 y7 i. F7 d/ [ nPoint += 390;
5 u: X% ?! q0 E, D
( ]- h7 o6 N5 a N' g# C AddSkillPoint( nPoint );# H k' v* U- ~7 {& ^
m_nLevel = nLevel;
- V5 c8 ]9 L" l0 }% f b- z1 |3 }7 h
% a- c6 i7 J5 N/ Z SetJobLevel( nLevel, nJob );
# m( S, F9 y) {, j& F m_nDeathLevel = nLevel;1 E2 t) `. l% t( x8 @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; p, E9 Y& t2 w( v* Q$ `: M
if(IsMaster())) {% V7 j! t/ o3 \" `
{
4 S1 i( R% B; g6 b' F+ v. } int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 p9 q% Z r8 G, U
if( nLevel > 59 && nLevel < 72 )3 L1 ?" H4 ]5 O& B! r! m# K
dwTmpSkLevel = 1;
: V* h. D& P m else if( nLevel > 71 && nLevel < 84 )
; W0 s- b4 p' b9 G& k dwTmpSkLevel = 2;2 b! _" a, ^! [/ Z' F* Q9 V: @' F
else if( nLevel > 83 && nLevel < 96 )5 a7 g% B$ E7 k" i
dwTmpSkLevel = 3;% ^) `' Z# H3 I: x- R# S. Q
else if( nLevel > 95 && nLevel < 108 ) O; q% |+ s$ M* x! l( R" b
dwTmpSkLevel = 4;2 v3 U& J' i* s& j7 I [' R
else if( nLevel > 107 && nLevel < 120 )
) W- s5 C! R" Q5 F) b0 M' M9 H+ g dwTmpSkLevel = 5;$ q; G2 U9 L9 S- v! @; r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. i6 k6 V5 Y4 B. H2 ?9 R {
4 s2 i- n; Y8 V: P& P, T* h" P" b LPSKILL lpSkill = &(m_aJobSkill);
& B& o5 P0 f& [ if( lpSkill && lpSkill->dwSkill != NULL_ID ) H/ |( e P% J
{ s. M1 |9 x6 k2 R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 o3 k6 A" p3 w1 E4 I# T# q5 ` if( pSkillProp == NULL )) p6 @& `3 x. l% F& s, M
continue;
0 u# [4 T3 w& z8 c9 L7 S2 v1 Y9 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 C1 Z, E- X3 U5 u! `! r continue;* d3 Q1 h3 Z D
lpSkill->dwLevel = dwTmpSkLevel;/ D" {3 A2 V* s$ G. A
}
% _) a! Z! r, Q }% ^" A7 i9 C$ i3 ?
}
3 ?* ]6 N( S! I- [ else if(IsHero())8 D# f% ~+ O9 ^6 [6 y* I. W
{4 f6 o7 X9 M) g$ Q a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; V3 v- x' G/ ]- { { 1 _6 o' y; V: T9 L' m. @) E/ |
LPSKILL lpSkill = &(m_aJobSkill);2 m5 R4 @/ ?+ H j4 m% w
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 @% z- H0 F- C8 y$ L5 ~
{
- K) B! v; }6 f& N+ Z% L; A0 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, s( a$ B& j* g% ~! [* |- g if( pSkillProp == NULL ): L# F8 S4 Q, t3 J
continue;
: I2 C+ m* B( L* V6 W* m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 X3 A2 F% ], O I
continue;
J% |/ r5 ]8 R! s3 k' m lpSkill->dwLevel = 5;: E0 M+ a9 M6 n4 Q q
}8 s) R- t- v% O/ o9 a8 h
}" l4 D9 g0 J+ f5 q) |" J
}+ b5 _& f# V/ v
else if(IsLegendHero()), w) g9 Q( k8 |5 x# c) C( l
{
! T5 I: L9 I! }' H0 I% W for( int i = 0; i < MAX_SKILL_JOB; i++ )
# d5 m2 o6 g) c0 p. ]0 ] {
# j- b$ c5 }( ^/ p& N# H9 o LPSKILL lpSkill = &(m_aJobSkill);# C" d- Q4 E8 v8 l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: e1 Z) ]; N' `, n" V. S' | {$ S) K2 ^/ _# U+ u8 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: S- N4 v t6 ~3 b2 A if( pSkillProp == NULL )
5 `" |8 v$ M5 y2 J continue;
$ ?3 j; g, `. I; c4 J# T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, M* o; k6 [- k0 r" u6 g. Z continue;
& M! n* k5 i7 V& `6 x lpSkill->dwLevel = 5;
- X u$ R# |; D+ |) \# A$ Z! O }
2 O3 o/ [6 V+ u }
7 j% X$ P4 s. R% H5 L }& @! m, w- u, v0 B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ q$ g% Z5 o- B) e9 c$ _3 g if( bGamma )) S [6 G8 ^7 g3 K5 y/ ^ J
{ J" C, e6 c& J5 h1 r" x
m_nExp1 = 0;4 H5 [& F( Q4 a6 f
}
' m" l8 d& P$ P( b- M( g; j1 s' X8 T& B" k- D8 ?/ N* x
( (CUser*)this )->AddSetChangeJob( nJob );
' G) M3 h( e+ P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( p1 m6 I* y8 ~( z; `; u. R1 [
7 q5 d) u7 g0 I' k% Y: q: q: y* e; g. _# T' ?# ^7 h$ g, @
#if __VER >= 11 // __SYS_PLAYER_DATA+ `" U2 Z! V) e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 F& j9 P% `% k) _4 Q- Q#else // __SYS_PLAYER_DATA. h \2 l3 L& d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" F/ X# ~2 `# ^9 g* f# ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 _) c }6 o" L5 d. }9 F if( m_idGuild != 0 )
2 C4 [: t6 q+ ^5 t& V% D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! M4 P. `0 b- h& F) r' g#endif // __SYS_PLAYER_DATA
8 b/ w) R9 R6 b5 m7 k: b SetHitPoint( GetMaxHitPoint() );
: I& ^$ i( V: `$ x% U! L7 |0 _ SetManaPoint( GetMaxManaPoint() );! a7 Z( x: e% R4 C
SetFatiguePoint( GetMaxFatiguePoint() );
4 E8 Z* w6 Y6 U' h- V if( nJob >= 1 && nJob <= 4 )+ _+ S/ [; L0 T Q. [2 y, @% T9 V
{7 D0 [3 Y( q( Q, I" j% H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% m1 p9 N7 q/ m: k m_nRemainGP = 28;3 F- ]+ O, G7 ~) _; q
}
* a0 P( a" Z, q8 A2 H J6 @) T" ~6 { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# g T! o) s% m
{
- a. w" O; a- a9 i6 Q7 v m_nRemainGP = 118;
# z+ D! t8 [& _9 m8 \ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* z. J$ y, h8 ~& q
m_nStr = m_nSta = m_nDex = m_nInt = 15;; V2 K3 O+ N. E% Y
}
6 F% ?/ q0 [8 w4 I/ d if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ m- r' q m" o) m: H {8 W4 X% ^2 Z, ^8 I7 u
CItemElem itemelem;: C3 }' v$ ?; w! R6 ?: E
itemelem.m_nItemNum = 1;0 {- A; ?* Y8 ?4 r0 `- v
itemelem.m_bCharged = TRUE;
. J- P+ @! s' T BYTE nID;
9 z: r: W9 v5 p; G$ i4 Y4 i: O) {& ]1 s( o
if( nJob == JOB_MENTALIST_HERO )
9 A7 t7 J/ E" L" S! T0 c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 S7 F( z* M" E' q# m6 V if( nJob == JOB_FORCEMASTER_HERO )5 E/ N0 e# L. A5 M# l( s# R e$ w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 f9 C& d2 F) @* z* W
6 W! u6 G) i) A! E' T
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ w( @1 M, B( f; V( m7 }) S* M
}
! b1 w1 f, ]5 o! f6 U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, F: J5 l: P: n5 n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# [3 y0 W8 _6 Z; _( ]( a ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 G8 Q0 n6 x2 C$ e/ C" z7 ? /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) {, J6 ^. P$ M1 u" l
( (CUser*)this )->AddTaskBar();*/
2 `% {; H u) W+ | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# ~$ p6 G: B/ D% f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' |6 o1 h' ~+ p2 X
((CUser*)this)->CheckHonorStat();
7 E' M: I# u" A1 A! ` ((CUser*)this)->AddHonorListAck();
s4 s9 }; ]: X5 F W g_UserMng.AddHonorTitleChange( this, m_nHonor);& V0 H V* w' n% f) n
#endif // __HONORABLE_TITLE // ′Tà?) d! ?5 R+ s* F- j
}
4 \9 M6 T' e8 O6 s! q#endif // __WORLDSERVER
9 V1 R1 n2 K. g/ k}
* {# i; s: ?1 k5 A, x0 z7 j ?. b- l; M7 r; ~# X3 P
然后你进入functextcmd.cpp并添加以下% U( F. p0 f% I; O
8 s7 u7 p- V. ^
代码:; i, f, Q6 U; _3 x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): L# t9 A2 ]1 m, A* M
下面插入$ Z& `8 S) [$ g4 \( R c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: ~: ]0 F* J y3 F# `3 Q
' Q* ^* H9 f; x' R$ c" ^4 s然后你去
4 T: c+ j8 }8 T1 y. j
- n" i9 j8 w; J* Z: o- H代码:
/ ^/ b' r- Q) W6 ]! L' ^代码8 E; a6 I, V/ a' n$ W8 x! e
BOOL TextCmd_ClearPropose( CScanner & s )
, D k$ v! q/ s$ o$ E- v{- z' N7 T6 H2 n4 Z
#ifdef __WORLDSERVER+ N+ c) @9 G& H% S X
CUser* pUser = (CUser*)s.dwValue;) y4 R. ^, ? p/ [0 d f
g_dpDBClient.SendClearPropose();* {( f* z: a" f
#endif // __WORLDSERVER6 p: n e y/ D5 R1 n# ~) E
return TRUE;" y' Y4 B$ t: E( m. Y0 I- u0 S
}: Y Y' E' w( ^1 [0 ^2 F
下面插入
" g% G4 \# n) X: m2 S/ ^BOOL TextCmd_rebirth( CScanner& scanner )% R: k4 O0 o8 T0 `2 P- g
{( _0 w' I; y: a O2 y
#ifdef __WORLDSERVER* g% ^6 M1 G; c# s* U' N$ F. S8 o* i
CUser *pUser;
1 Y5 _: i4 `# C L8 d6 W2 u3 MpUser = (CUser*)scanner.dwValue;
4 p, q9 Z; a1 S& Y7 m% f2 Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" M$ h- y, U; O5 F( f, MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& ^3 |3 {# y9 V U4 Y. Jelse
: m7 q4 {2 @) Y4 \6 B8 ?pUser->AddText("你还未达到重生条件!");
9 E+ b1 V8 f7 L- b#endif* \7 q8 v! D' I8 |
return TRUE;1 a5 B1 c2 q8 a7 b) V: I' P
} $ S& n3 s$ [- q( M2 T9 t
+ i' @3 j' `" K( W* |5 y, |: V ~# V4 ~ e! m- M5 B
7 r- a$ J/ R+ ]
, B( B+ V9 ^ \
|
|