|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! ^4 M$ c6 _, e* V9 h; J: n! f' ]! m
; O) U1 E/ U0 c4 u1 V
Mover.h2 e" d7 _0 b8 n2 w$ `
代码:8 V5 i% D! s, ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 B+ {% O) [$ v$ K* j
J. B6 s9 J2 u, q( n$ C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# G; H$ v$ W% t; y( o. m
& |! Q8 a8 d; l然后你去mover.cpp添加
6 b5 U7 E u# [: N ^
* n2 {" l8 T o) l1 x {; {2 o5 {代码:
' n* Q4 {$ A4 Kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 N- M4 ]7 o; x
{
$ u0 }$ E; G* F0 B+ x8 X% Y: D' T; K+ m#ifdef __WORLDSERVER1 C. x1 ]! N1 I5 z' ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! y* D" t1 ?" c, [( l( a2 Z MoverProp* pProp = GetProp();
( l1 G% H* ~% G5 O* Q$ i if( pProp )9 }1 I0 z. y$ S" m3 {
{
( b0 G* g; k9 `$ |( [ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% X9 _5 n y* }: j; [- L+ ^) ]/ H {
# c0 ^+ x* y; _0 E/ o AddChangeJob( nJob );: W. a$ w$ S" y. R
}else{
% R. h5 v( k0 e: a( h2 z return;
. ~6 U: H$ Y5 y+ Z+ j }
6 X/ c3 m6 r, P$ ~/ \% m# q int nPoint = 0;
8 ^' O8 x( n* Y& K! |1 L if( m_nJob == JOB_MERCENARY )
7 n2 l+ X4 h7 x; | nPoint += 40;/ v4 {/ u$ w9 U- a
else if( m_nJob == JOB_ACROBAT )% H) u w0 F9 W" D @* F7 `& P
nPoint += 50;
7 M/ i" }- R) n else if( m_nJob == JOB_ASSIST )( l# i- T/ \2 r3 @% \$ o
nPoint += 60;
3 l' S$ j N0 x* o' @ m else if( m_nJob == JOB_MAGICIAN )
% h6 ^8 S6 E% i; T. s4 M5 I nPoint += 90;2 [% Q! h X! R. I: g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- \# X4 a4 g2 Z nPoint += 120;2 X( b2 {( l7 s8 @( h% Q* C6 y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 N1 @9 w( J& C5 k' Z5 k8 z8 F nPoint += 150;9 d, ?& z2 X. D+ f) v- H# ]
else if( m_nJob == JOB_RINGMASTER )
+ }& v0 V4 U' Y% d) ~6 K nPoint += 160;
2 w) o. v* W2 _6 z- m! I: t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). r( R1 G7 M& G+ K" @# w
nPoint += 180;8 p% }0 @! U; T+ t
else if( m_nJob == JOB_ELEMENTOR )" e% v- N2 `, a. m8 J
nPoint += 390;1 @4 C- ^& c9 s& ?& q9 R& _. u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 k) L( _3 r1 r7 ]6 V& F- j nPoint += 120;+ o5 T, v, L0 E
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( H( D' ^4 D) Y( E6 h s
nPoint += 150;9 \2 E( d8 j0 A
else if( nJob == JOB_FLORIST_HERO )3 V( S: ^5 R- X; Z( f% J
nPoint += 160;
0 U: Z: o1 }9 ^4 Y/ \3 {- K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 K: r! Z) V8 G' E: c% q1 g nPoint += 180;
! U; Y5 j9 W# q k o+ u/ V d else if( nJob == JOB_ELEMENTORLORD_HERO )/ h# R3 x( U. o3 W& R
nPoint += 390;2 w# ~ T2 W8 {5 v2 h; c' K. k$ m
5 ~. B! u7 m7 L/ E/ _& w
AddSkillPoint( nPoint );+ b" H4 e8 A$ S
m_nLevel = nLevel;8 r+ ^5 @8 m J- ^! Q# u2 ?
# h! f( I- ~# p* M6 A; L8 g SetJobLevel( nLevel, nJob );5 s9 V- I, K7 I& A
m_nDeathLevel = nLevel;' m2 V. P- a" v, t \$ m4 J0 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 X$ Z1 Y8 B6 v' l
if(IsMaster())
# P X) T- d( _7 Q {
/ F% R* ]% l- i* e int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- \* |- _& C2 c2 p if( nLevel > 59 && nLevel < 72 )
$ z9 x, E/ Q) b$ R8 F# [ dwTmpSkLevel = 1;1 m: n0 c% p" i, B
else if( nLevel > 71 && nLevel < 84 )' h6 u6 x+ J0 }8 @' G
dwTmpSkLevel = 2;
3 s: _. S5 ?$ S# A7 x. c2 E) _0 F else if( nLevel > 83 && nLevel < 96 )
# ~1 P( i# T; B dwTmpSkLevel = 3;
5 W* z! p6 P+ U* m else if( nLevel > 95 && nLevel < 108 )
5 D* u! {% s6 g. g) Y dwTmpSkLevel = 4;
9 w" \% M5 g- O! U! Z* Q3 U% @ else if( nLevel > 107 && nLevel < 120 )
/ P! \. G& x, H" m dwTmpSkLevel = 5;
! c8 u3 C S4 i. u7 G, J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ]# Z) l8 ?* m0 g# l- r
{
* }6 L0 R/ N, _3 p! h/ T LPSKILL lpSkill = &(m_aJobSkill);
* g$ E( ?9 }6 P+ h0 S( v3 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
! w* n1 n* C, H* S/ s {: O* {+ y$ b2 t0 e( A: C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: s! |3 p7 k5 D3 R* I: i if( pSkillProp == NULL )
8 x% M* \3 ^. H0 |5 O9 Z5 C continue;
% v5 i5 Z, J+ [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 f! w: ?: A- m6 k, w8 E2 E' I
continue;
' p2 ?6 S0 }; H4 W lpSkill->dwLevel = dwTmpSkLevel;+ x3 m+ c; W7 E' P- [; x
}# H9 c0 N- L# N3 q- O3 G3 I
}9 o$ j4 a$ Z3 g* J
}
. ^1 }4 t4 K! w& L. h; L else if(IsHero()); v) P+ p% G x% e* I- z0 w6 ~
{5 ~& W+ Z( }$ ]: W% j r) S) P' s, Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : s, o- x4 H! f# \" M6 j6 ?
{
& K) Y5 g- B" W8 B/ T LPSKILL lpSkill = &(m_aJobSkill);
# m, v$ A! r( p7 X if( lpSkill && lpSkill->dwSkill != NULL_ID )6 x' l0 z+ |( ?, B* S
{
& A s$ }% K+ n! Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 F1 J1 g* i U6 D if( pSkillProp == NULL )( d* n0 Q- B7 O5 {# j1 o# l# _+ u) h" N
continue;
% o8 O4 C7 X2 E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 h, P) X/ N) l; j6 c& @/ H# V7 U
continue;5 M( U+ d% x6 u! a+ `. z2 ], c g
lpSkill->dwLevel = 5;% X) Z, O% e& j6 `/ X9 Z
}+ o3 _% p4 x* H; c1 o( I
}0 a' w; l9 ?" n( R
}
# v/ S' c6 _" Y2 T. R' K& A else if(IsLegendHero())" |% v k/ p6 }+ I5 r/ y
{4 V4 T. Z O: g! a" S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # J+ k) M. B, t$ R5 a/ b
{
" a" O8 [' m- d LPSKILL lpSkill = &(m_aJobSkill);
* \9 d9 u& z0 \2 Q( T' D if( lpSkill && lpSkill->dwSkill != NULL_ID )
^1 i/ ]2 \4 f% { b& C {
: K) o- V! {6 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, K7 G. u0 e/ z& o4 Y2 K, i if( pSkillProp == NULL )
, Z0 h. G* N% t# g# v continue;! U1 ?2 d# F4 b4 w9 ^4 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( |- P+ }& O/ b6 @/ B0 |4 d5 R1 n continue;& O3 m. r+ c0 \1 p9 q$ W, p& h
lpSkill->dwLevel = 5;
. F* l7 K8 g- m$ [7 Y3 d8 p1 f0 d }3 ]5 s6 j/ o: e0 s* I4 x
}
9 k2 u% t' W( L }) K7 u% X, x; ^/ M9 y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, b% G' U4 k7 ~
if( bGamma )( i4 _+ o ?# x! C% Q0 [
{
& ?' [& [& U/ Z" `' k* u m_nExp1 = 0;
- k+ B! h; e) ~. x6 k/ w" W6 b }
- @ ?3 n5 Y6 T* `; X6 o
3 y' K9 E: m$ Z# S" {4 r7 E ( (CUser*)this )->AddSetChangeJob( nJob );6 {/ \4 Z3 n) c& ~! W2 p1 i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ D1 A- R# G! v! b! @+ G
+ C% r/ k8 N. _3 ]+ F+ x
5 [, q+ g8 _; u/ [- a) H( M
#if __VER >= 11 // __SYS_PLAYER_DATA
7 ~' B% F1 O9 R, h$ J% g, x# }/ ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 G! v# R/ T: B! x
#else // __SYS_PLAYER_DATA0 x: ^. z$ u1 m. j$ j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 x$ l+ ^6 l; B& l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 F7 u9 A4 j, E. P
if( m_idGuild != 0 )
5 D3 _; Y* O3 O! e- w; K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ ^- Y2 f# E1 G7 h7 j) p4 P5 k#endif // __SYS_PLAYER_DATA2 m& `" H& K' G) R! o: t& j
SetHitPoint( GetMaxHitPoint() );
) O9 [. h) a0 o J9 L0 L1 p SetManaPoint( GetMaxManaPoint() );
. E1 g3 z0 C( U SetFatiguePoint( GetMaxFatiguePoint() );
' f. F* a( ?: W3 u" g9 t( t; I+ a if( nJob >= 1 && nJob <= 4 )7 o/ S l. p7 w* p
{5 ?. R) F$ R# r Y6 h
m_nStr = m_nSta = m_nDex = m_nInt = 15;! n$ p) Z0 N6 C' k3 y2 [; Q4 k& t
m_nRemainGP = 28;
; n; r9 D* e: \" J }: u' A* q; ^" ]* `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: u: y* F; _1 ~2 f6 g {
5 X+ z. q. ]+ V" b/ M( r m_nRemainGP = 118;
) H5 [ `( a9 I3 @" U' T& Z' N //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 k2 @; P( t, N7 v- d9 M+ J6 Q' N6 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;. m9 F4 B+ V: O0 e! @
}
: X, E' C9 k; q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 `6 A C# G) v- g* @9 q/ a7 F
{
6 I2 V( v; w3 t9 A: r+ Q( E' P CItemElem itemelem;
. {6 X. A. W9 s itemelem.m_nItemNum = 1;
# v. l% M: N- M O# n0 k itemelem.m_bCharged = TRUE;' A% g9 T. I \/ O, t# v' n
BYTE nID;( L% D2 q8 g1 ?
! L. A, r. j. M8 }( p; H
if( nJob == JOB_MENTALIST_HERO ): W% u, U# v" t/ B$ K& v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 I& e% e3 D% `( H* H. Z if( nJob == JOB_FORCEMASTER_HERO ). P. u! x+ Y5 @5 Q5 q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" X# s3 _. `' \! }
, ^; G4 y+ \1 s ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 u2 c( I5 d$ o
}
' ?/ e! G) D# G% U @% y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& h( B( R0 B. a; s$ f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% [# @7 z$ d& q8 n; S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( I: |% Q; J! g. ]5 m8 Y2 w
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, K7 y; {+ j6 H! R6 l ^1 I6 h ( (CUser*)this )->AddTaskBar();*/( ? O n" h8 ?. g- A
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' o2 g6 @+ m! |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! N, w5 R; o3 e9 t ((CUser*)this)->CheckHonorStat();
( Q4 o0 m K! r. y ((CUser*)this)->AddHonorListAck();& }: b4 ]3 n3 x
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 n' T5 q g9 R' h! C% L* J
#endif // __HONORABLE_TITLE // ′Tà?
: k, d/ W2 Z6 n1 b }1 A* Z2 B/ V' W8 A5 a- c
#endif // __WORLDSERVER
4 i/ s8 u4 b1 c0 a} % P% g. P$ m3 m: ?, c' Q
* J* U8 N2 ]( M" ^6 Y
然后你进入functextcmd.cpp并添加以下
/ R* s, Z1 g" z& a: f
/ R/ @! v) }' {代码:
. \, v! \, ~1 ^ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' N# k$ Z2 I: i: }; [; d T
下面插入# B5 Q; ^3 r9 G6 s& B4 z$ k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 I! q$ d( I5 {" ]3 e; Y9 V" x# h
$ i. ~# a3 | ~5 b# G% ]
然后你去
/ R& q! I) s4 h& r
' e+ L5 B$ e4 {# C3 O代码:
8 O( e6 d. u" p代码
) R, O+ ~7 w$ oBOOL TextCmd_ClearPropose( CScanner & s )
5 O. B V1 h6 k" N4 g7 ^{
3 d* ~' a* U$ X. X" B9 E#ifdef __WORLDSERVER
5 o) h5 G2 u. M9 X& f2 ]; L# q CUser* pUser = (CUser*)s.dwValue;. p0 e6 R' L% Q- `; b" p' o* ^
g_dpDBClient.SendClearPropose();
) y( x6 B. |$ H1 n) |2 M6 D#endif // __WORLDSERVER5 S- k. D: L" a9 q$ u
return TRUE;
8 M" }( `5 Q( ?2 \) }9 I}
' J! j, F" e2 i7 C下面插入
z4 N+ d J. E9 E, l5 l" CBOOL TextCmd_rebirth( CScanner& scanner )( c# H a, T' j$ {# c
{1 U8 @+ I# _5 `# q
#ifdef __WORLDSERVER; L/ A$ j4 n+ J |% q% N7 g! j
CUser *pUser;3 a$ p/ p' i, N, }9 ^5 c
pUser = (CUser*)scanner.dwValue;
, G x+ ?% F: M; y4 Lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- X3 l0 `; D: R3 MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 A+ T; J9 j; u. Helse, u2 Q, f: g- S2 Y! n
pUser->AddText("你还未达到重生条件!");
# z8 _2 r6 @, B- G. O#endif: y1 M- m5 ]$ m: H4 Q
return TRUE;2 \3 u; o+ i8 E2 \! X
}
; z$ d. O$ H# W/ o
! M& }7 _. V* U7 _: B* V
( n: k7 P. _* R' a& `, N. `- r- I( u5 R* e; o3 Y
7 q, U) g1 s. {, T$ N |
|