|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; b6 B8 J2 p7 Q% ]
5 T! q+ i t2 c$ IMover.h1 V4 `5 o) k# k$ U2 c
代码:$ K) h7 M# R f2 H1 P3 U' n2 l" h& `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" K8 e! o0 Y! @2 N; ]( e
1 J2 Q' R7 t# j8 y2 v, h l. i% `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 k, Y8 u+ v1 {) M8 c
& x0 M W) B' B6 R* C
然后你去mover.cpp添加( N. a8 z! c- t/ ]
& o3 J3 K( `% _* c% N代码:
* l( t' r' L- Z1 |) \/ |void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 D2 m8 X* u p. |9 N' f4 o0 \9 @{( C: G/ g f/ W) K
#ifdef __WORLDSERVER# _$ O4 A0 T& O3 Z* M7 i4 ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; q' ?) N4 I+ a- j MoverProp* pProp = GetProp();
6 g1 D4 ]1 }* l) {6 C+ J* c5 X if( pProp )
8 Q$ Q5 J3 z. y" R2 j) s2 T {
2 Y3 V3 D: p n b K! ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 R* y) l! n6 T9 v. r1 ~
{
) r6 ]" X. X; l9 n AddChangeJob( nJob );
. A4 J* K5 z# Q, e }else{
/ Q! E( u: ^8 o2 {' z3 k return;; q5 o% z6 l/ Q. U2 F
}
+ ]: o# b/ P3 }+ V int nPoint = 0;
( s" K6 e; ~2 d" G$ y$ |# n* F( D$ p if( m_nJob == JOB_MERCENARY )
/ @6 p: r$ \% t- f nPoint += 40;
5 W2 y* L, e) S* V- J- Y* i7 r# K, O else if( m_nJob == JOB_ACROBAT )- \6 }* C4 V! E
nPoint += 50;3 b% y" Q4 m' z# |( r% \
else if( m_nJob == JOB_ASSIST )- ?- M2 e5 ~. O3 M
nPoint += 60;7 t( e$ D0 J5 E, ]3 t
else if( m_nJob == JOB_MAGICIAN )/ y# m8 ^; v8 M. {
nPoint += 90;( c1 O' F: j# |1 p5 z$ ~. g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- y% U6 g. Z* [: m) s; d nPoint += 120;0 M( f; Y2 e5 {5 K" {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ U5 B9 s5 S4 W) ?# j
nPoint += 150;, |0 }# h w) M3 Y o: e" R: B( D
else if( m_nJob == JOB_RINGMASTER )
p% }6 v) C. k: G* x; A nPoint += 160;0 D( q1 T' Y! ~' a5 I7 x& j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ j- N' r9 `7 g2 d2 H+ N U. H6 u$ q nPoint += 180;
% x! I6 t* D- }. K3 m! b7 S else if( m_nJob == JOB_ELEMENTOR )
; E+ h2 m- G3 `. ? nPoint += 390;6 ]( t' E1 h# e( P+ a6 @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 |" o6 X$ ^6 h+ z nPoint += 120;
) i: l+ T; R; r o. q" a& t+ U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 |, C, v, Z) i( t7 P# V
nPoint += 150;* H/ L9 d# o4 { _" g" Z
else if( nJob == JOB_FLORIST_HERO )
8 w. _3 X. U+ k1 j6 X6 ?2 B nPoint += 160;
2 r! p/ Z: }. M! ? else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ X/ S7 f# P: _* o
nPoint += 180;4 h. O- ~1 R; b; e0 ~
else if( nJob == JOB_ELEMENTORLORD_HERO )# J, B" D3 G* F) C3 [, _5 U5 m
nPoint += 390;
5 n) n8 B, A3 }, i. M8 l
4 P' i ]/ f# D; F5 h AddSkillPoint( nPoint );
4 a% M+ @5 ]/ }: g) U& N# @4 u; o2 W& U' ` m_nLevel = nLevel;
2 @ m* `+ h' O
* s1 [" ]# I( e SetJobLevel( nLevel, nJob );
% }8 ]# V9 j. l' i m_nDeathLevel = nLevel;' @ K: p8 N Y3 a
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: a% q Q' f3 R, [6 _* s( c
if(IsMaster())
. V3 t; s, _+ ]4 ?( e% d+ T {# b5 V, [/ q1 F {7 A6 B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! @* G0 Q% ~3 S: c: P
if( nLevel > 59 && nLevel < 72 )6 w4 I) s7 x8 u0 I) |* f
dwTmpSkLevel = 1;7 `# z7 q+ v# Y" w
else if( nLevel > 71 && nLevel < 84 )
2 }0 z( F# k' O/ j+ B4 x4 ~8 e dwTmpSkLevel = 2;9 }. F- E/ L6 k2 {
else if( nLevel > 83 && nLevel < 96 )
3 D9 W# {2 H3 j7 c! L dwTmpSkLevel = 3;
9 X. [: |7 F+ d* ~& Y else if( nLevel > 95 && nLevel < 108 )6 k( S' m" O( ~0 h8 V- ~
dwTmpSkLevel = 4;
] m% D4 T+ c else if( nLevel > 107 && nLevel < 120 )
2 r/ |0 R4 ]9 { dwTmpSkLevel = 5;( X4 m0 f# p6 Q& R/ e7 Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! W s& d9 g! _ { ( [. {- ~6 ]+ z0 u
LPSKILL lpSkill = &(m_aJobSkill);2 M9 e; g& l& k% n* Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) U! ^4 i& H2 t- d$ M/ F {1 v/ d* Q, f! {$ c- \0 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
l$ x: Q! C1 W3 ]+ e if( pSkillProp == NULL )
" d! K# y2 Q( z6 _; M* Q8 C5 l continue;
: l9 e. g' z2 u8 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER); G- I0 Q/ b( _2 q6 o- {- p: @$ v
continue;
9 w4 a3 v1 h0 H lpSkill->dwLevel = dwTmpSkLevel;6 F1 J+ Z' y" ^8 H0 E* {
}/ T5 d: D3 [- o- Y. Q+ `4 O
}! F/ D! @9 r" m$ ~& v; M
}
8 `1 L# R! ]0 x2 P% z else if(IsHero())
B w6 H, N1 ?& J {8 O5 Z# B* v2 X3 H2 @7 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ x6 d B+ |4 q0 z& Z
{
) b @4 S' \7 S" [( T LPSKILL lpSkill = &(m_aJobSkill);- n8 U5 O8 ~( G) Y9 q; j( k
if( lpSkill && lpSkill->dwSkill != NULL_ID )& ]) K" G9 u( f7 f s9 v1 B3 q
{
/ H2 T9 [7 \, y& V- L# o3 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& F& N3 ]: b5 p0 D" G if( pSkillProp == NULL )
5 ]' d. t) c M# V% o5 L continue;
& V) j5 }0 z5 d; ^) I2 ^& s/ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 D; u* v4 v3 o. L+ @1 E
continue;
6 x4 q k% X1 W7 W8 X* H lpSkill->dwLevel = 5;
% H9 A o, V- i( P+ w7 [ }; @& `2 H5 G( e$ V5 e1 ~
}" B3 V* z# q# V; g: x5 \
}
c6 O A7 K7 k- @! J else if(IsLegendHero())" ~, i7 A/ l7 q( ^
{
. v+ R$ a$ M* H, P! j for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 X- V5 ]6 R$ { { 8 m8 g/ b& S7 c
LPSKILL lpSkill = &(m_aJobSkill);/ {/ |: d% |+ u; w) U+ I" _
if( lpSkill && lpSkill->dwSkill != NULL_ID )! G, W- H3 O _! }+ h6 A% `1 R
{' L) r5 S% E# z. m4 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 C; q+ R# E" \5 X" b
if( pSkillProp == NULL )7 f6 j: @* Z: y5 _+ K
continue;% v) {5 ]5 H+ J& S$ ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* r9 Q; C4 w; E- K. Z- {( M! b7 | continue;% u1 G9 a# ~1 M
lpSkill->dwLevel = 5;
: E K: X" x4 h0 u9 O. e }. t( j4 r+ s: E" ]/ ^
}( C0 e+ r$ M! F: |3 H9 \
}7 u I! B7 P9 i+ T1 R
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 C' t# K6 e" y. I3 [ if( bGamma )( U/ w) J+ }/ D5 r! X. t
{$ ]+ {5 O/ I& \9 X, W
m_nExp1 = 0;
o. F" l5 t/ a& q- n$ Y }
+ c3 Z& u" W# `, p5 | N% ^# t: l2 J0 { s) b
( (CUser*)this )->AddSetChangeJob( nJob );. q. M+ b* p, ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& j& E! B: p8 T8 J* C8 K- [2 b% `# j' d7 P" M& n
; ]+ ^6 O" x% Y: b: V( X& E! U: B
#if __VER >= 11 // __SYS_PLAYER_DATA M! B- V7 ]% {1 c5 d2 j! w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 n7 i- I1 X% R" A* ^1 @' {#else // __SYS_PLAYER_DATA% k; R' m ^9 P/ }$ b: D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 |8 F- Q5 o, C2 H% x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 C8 o6 t8 y4 Y( g! ~ if( m_idGuild != 0 )
1 M9 |8 P* n( I7 n5 a8 w+ R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 o8 F1 {' [4 o) N5 ^, D! z c#endif // __SYS_PLAYER_DATA6 ]/ n1 l7 K# Z' w- Z; b5 ?) g/ Q
SetHitPoint( GetMaxHitPoint() );
0 W0 j) F- F; u6 h1 O j, n; N SetManaPoint( GetMaxManaPoint() );! Z. c( }! f. C0 f+ }
SetFatiguePoint( GetMaxFatiguePoint() );
0 I. r, s: w$ `2 Z3 Z9 X( W% i5 u if( nJob >= 1 && nJob <= 4 )3 b/ ~6 N% g9 ?& t
{- ]$ e8 c# T+ B, D/ n
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 O" e2 O: U) f6 X% c
m_nRemainGP = 28;/ N: C2 ?$ N3 h4 y8 ~1 P
}
% h& f1 D5 Z- P0 N9 X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 Z9 [" P4 C: E! v$ Z- O, ~
{
F% l& a5 s6 K; Z m_nRemainGP = 118;
+ F% H, E! D b0 E: Y# X+ G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 G; K" {( q+ g3 H3 ]6 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;; P4 @% w j$ ^6 L1 t
}5 ^$ t& U5 B \, i+ o3 B+ H' Z* J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) x2 [# E" v4 g0 q v {9 {9 w' `7 @, Q1 D0 M: N
CItemElem itemelem;; G% F! B. ?0 m% r
itemelem.m_nItemNum = 1;
' A7 L" s# K9 a/ F, ?# a# ? itemelem.m_bCharged = TRUE;3 B# b6 L" \3 U5 j7 P& K
BYTE nID;: P; c8 ?3 v' P$ j
! o4 g4 N$ M+ P s8 n
if( nJob == JOB_MENTALIST_HERO )4 e. Y3 Q# G+ h! k; E- y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: W3 x3 @6 F* [7 ~3 f
if( nJob == JOB_FORCEMASTER_HERO )
5 X+ T' i. Y3 s) n6 e/ y! P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% Q; v" H. ^2 Z" Y- a
m. Q( u( R, {* m ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 C2 U k3 G8 ~3 s9 e1 V' n
}
: a6 b, C& X+ O& X+ s' R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% u$ ~! c7 W+ s; d ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- V2 f' E0 g6 e. u4 q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 Y' T! \$ q0 Z! E8 M: F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' M- X n3 i0 |0 c' p/ Q ( (CUser*)this )->AddTaskBar();*/
& i' z6 M' ~) o6 P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 O8 `4 F8 O A0 X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ y1 I. ~, i/ j6 F% { ((CUser*)this)->CheckHonorStat();, \, s$ S% q) G, @9 c4 v; a: ^. Z
((CUser*)this)->AddHonorListAck();
2 h8 _0 [( P" c' q2 J g_UserMng.AddHonorTitleChange( this, m_nHonor);
R+ [# M" k9 V: r7 Z% Y1 j1 u#endif // __HONORABLE_TITLE // ′Tà?
" T n( M0 j5 K8 K3 ? }! N- C }& k( r- ]5 h- j- M
#endif // __WORLDSERVER
$ f$ z: g7 l8 \; R5 y% m$ q& x0 T}
/ }( _+ c( L2 v2 D4 r) B1 d5 I( k9 Y/ ^) c" u. w3 ]6 B, O/ r
然后你进入functextcmd.cpp并添加以下/ m* h- @* C: n l2 b/ Y- o$ v ?
3 B/ \5 `- K. `: Z. _) l' G4 i
代码:
6 \8 s* U! T, N9 j xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" [. h( U2 f3 {8 Y: F
下面插入) o7 ~* i H; H" c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * q( p. \3 ^8 g
0 e* v% d6 I5 ?# K1 r9 J
然后你去
3 _. F4 U' f1 m! k6 a4 m
# N# U6 i3 ~/ I代码:
- Q) P) V3 t3 e" Q代码
( o6 p5 d) Y/ u2 |- j% r- q4 KBOOL TextCmd_ClearPropose( CScanner & s )2 A2 v: Q% k& G1 q7 {4 H: a6 v
{
) l% E; a1 B4 B8 |! w9 c#ifdef __WORLDSERVER
' I' s2 z- {& E. d' i3 k CUser* pUser = (CUser*)s.dwValue;
3 [3 p2 \+ D" L- E' \# b g_dpDBClient.SendClearPropose();
5 H0 v4 D) l$ u" T* e% K9 R) Z" ~#endif // __WORLDSERVER
$ \1 Z0 l9 h# A ?, `( I9 H return TRUE;
! M- F9 ~* l. U( ^" f; r% I}6 s, @; J7 x% x: l- y$ k
下面插入! D# c* Q7 Y1 k
BOOL TextCmd_rebirth( CScanner& scanner )/ @0 d! v# E+ Y
{
+ e! F5 a$ y% M& m! Q; Z#ifdef __WORLDSERVER
+ o9 [$ [' o- H! `CUser *pUser;- h, \4 d0 |$ b8 m, j% ~
pUser = (CUser*)scanner.dwValue;
, T2 q7 t3 Z* I6 e. Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 t4 V* l( X* f5 y4 zpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 q0 q5 i6 ^( _) `9 Y, zelse
$ g7 L4 L# r* M& I4 f# o# {pUser->AddText("你还未达到重生条件!");
. \8 m6 p* j/ C8 g+ w. w#endif! |0 ]$ Q2 `! p/ z
return TRUE;
+ w% Q% [/ h0 S} S- |2 B; ^3 E3 G f2 z% [, z
' A# G- O- O: ^) U# r0 ^ R( H" ~ W" [; j3 X4 Q: A
) }$ N- H) D M( a5 S
) a- q+ ~& U9 [/ L- R( a
|
|