|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 [( ~1 e6 M$ U
" d. M( g5 T! r2 r. Y5 b1 r3 bMover.h
" P w7 v- ~+ u. P% M: |) l代码:
, H# @. K! M$ A找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* q' `& l5 j8 T a, H" x$ W
/ Z# `4 I! e7 p) h- J9 J下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 C1 J' v; v7 w5 x0 c& R+ f
2 M; M; H0 a4 m4 E1 U然后你去mover.cpp添加6 v) w' g# a2 u
6 ^/ H6 e- ~; H: W6 |( i0 @代码:
$ y0 y: ?* n( x3 [; U. \- Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- H" [0 x$ H, v1 S- {: ]
{7 f- h! E5 ^2 P" y
#ifdef __WORLDSERVER
! K! N _, A; v$ r" C$ S6 I! F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# b6 X& U/ Q! m# |$ G/ p MoverProp* pProp = GetProp();
& O6 e( _; X( u4 z: }5 j if( pProp )5 V; P) r. p8 n3 E6 [! e9 k
{, l" v# Z- ^6 A3 i! [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 m" X* U" ~8 F; G/ f {
, J/ r( Z9 R$ e( s0 D$ d AddChangeJob( nJob );
" Y Z6 T- ^( \) q }else{
9 Z1 W% f8 C1 x' b' W' h5 k return;8 H1 @1 A0 L$ E9 P% N
}
6 i5 y5 i2 a" l' d int nPoint = 0;7 i' [! p/ W. }( h+ L
if( m_nJob == JOB_MERCENARY )
/ `- |0 f, k' o; J% G, M0 j0 g5 @ nPoint += 40;5 b! g8 m, S* l1 r
else if( m_nJob == JOB_ACROBAT )
! m8 z! N, {0 z# Y3 G nPoint += 50;
( w/ x2 {/ E, C/ b+ X# a1 V5 P else if( m_nJob == JOB_ASSIST )
( e8 M& m* Z# |1 x) p0 E- I nPoint += 60;
7 v# o+ S' g9 d2 v1 y else if( m_nJob == JOB_MAGICIAN )8 o9 V2 L2 w7 H: P" W/ R) i
nPoint += 90;. t* B! h- ~ C" y) `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- b3 y8 e. E0 ~$ e* i5 y4 \
nPoint += 120;
- A5 L: N9 @0 W0 k else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) ?. J4 u* \5 d% _; A1 G/ |9 z7 p nPoint += 150;" E# }% R8 @7 x: x
else if( m_nJob == JOB_RINGMASTER )
% d! O+ B# M8 ?% k6 P2 G. c: L4 ? nPoint += 160;) K3 Q U8 ?# U H( h& b* r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' k3 ~1 |4 L9 @7 w: d; E+ X
nPoint += 180;% x9 n r+ k0 c8 B$ [) \- ?
else if( m_nJob == JOB_ELEMENTOR )6 u# {( i. K( ?+ }( |
nPoint += 390;
1 W4 ~, B4 F G! v: q0 H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ T2 J; C* W) f; W& W# u9 c nPoint += 120;' M6 x3 [, P E w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 A3 X+ X$ }" L2 g( r+ t nPoint += 150;/ `6 E+ |4 n) U/ _8 K q. q
else if( nJob == JOB_FLORIST_HERO )
* X9 b/ b! v- [7 E$ ], ? nPoint += 160;
% U. Y4 {2 |; l5 e: q8 i7 k" [% j else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. f+ z. H0 R+ m- w: |( b! ~/ [ nPoint += 180;2 F) t. j6 E8 y0 J# H1 j7 G1 h4 }
else if( nJob == JOB_ELEMENTORLORD_HERO )# O: s' c0 B! Q3 ]/ Y1 k
nPoint += 390;
5 Q$ `: ?* ^. ]: M5 \
6 T0 w1 w0 R0 A AddSkillPoint( nPoint );
; T& V) A; Z1 r+ m) B: U m_nLevel = nLevel;
1 ]8 X1 c% B9 D R% L. X' L6 z+ g; _3 t% {7 B# v
SetJobLevel( nLevel, nJob );
( G" J" I! }/ O% d. r m_nDeathLevel = nLevel;
4 P# k5 N1 k' p' \3 H* p5 V X c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ q3 |9 I/ B* t$ u
if(IsMaster())
. P$ A4 Q$ [5 E7 D4 h {
9 A3 M. y1 @ M$ ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 h4 q0 Y; J: I: K8 k
if( nLevel > 59 && nLevel < 72 )
6 r6 p1 x: j9 |3 A$ a dwTmpSkLevel = 1;
6 H0 {. o+ e, J% {5 f& b F7 p5 w+ \ else if( nLevel > 71 && nLevel < 84 )' w4 j! u: S) Q& H
dwTmpSkLevel = 2;
% h0 n6 w; Q. U n4 g) X else if( nLevel > 83 && nLevel < 96 )
/ y! p( o2 w( d8 N3 p- _ dwTmpSkLevel = 3;
e5 y; g% j4 j% ?: c else if( nLevel > 95 && nLevel < 108 )
9 _7 e" r' ~( Q6 H) L8 r dwTmpSkLevel = 4;
0 I/ y! O/ O; i' l# _2 k" X else if( nLevel > 107 && nLevel < 120 ); q- ?! P* @" A0 J; i$ ~
dwTmpSkLevel = 5;
1 v; R8 K1 v. Z9 v3 w) Q9 r4 w for( int i = 0; i < MAX_SKILL_JOB; i++ ) . n1 Z% t0 i8 G" `1 G& z+ ]! J
{ 6 x7 @8 O6 d2 `! y! A# W: g1 f8 ~
LPSKILL lpSkill = &(m_aJobSkill);
, A, s4 Z- @/ N; N if( lpSkill && lpSkill->dwSkill != NULL_ID ): W) q" p4 _# g' |
{
; D7 r* E& j H5 u7 _' G& | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 B1 K; C9 h* d: f6 R if( pSkillProp == NULL )& R3 Q; E. B) a& h: L7 }
continue;9 W9 l& `! u" }) c. B5 M; e' m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) X9 D2 S) m F+ r* T. \4 k
continue;
8 ^! d! }8 k5 A- f" S( ]% o lpSkill->dwLevel = dwTmpSkLevel;
3 F- Y! G9 \8 c5 n/ i' b2 E }/ h4 i( `6 X% V9 U
}" R* `* f9 D& E' q" }
}
2 Q C+ z5 R m5 f/ z else if(IsHero())
% r* N' C0 u# u {$ Y6 v5 ]: H% L1 |* g E+ |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( `5 X9 d2 X! ~( U# M* \
{
2 V, O4 {+ l$ o9 `5 q& W LPSKILL lpSkill = &(m_aJobSkill);' b, U/ a3 {: S
if( lpSkill && lpSkill->dwSkill != NULL_ID ): c/ S% q7 a' D; g- ^
{+ m) q0 b( P) T; G) S: ^5 X7 Z7 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 j+ ]: q+ {4 @/ @8 X if( pSkillProp == NULL )$ p( s' m& O) P; ?6 g. u4 k! J& B
continue;
- b& J# y+ E: H" R4 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) P" V0 ]) L2 Q( ? continue;
5 G$ V9 H; m9 a# x! O e lpSkill->dwLevel = 5;
! o+ ]% ?) p' c6 D$ p }
. k2 E2 N1 |& J5 |$ w6 x }
, ^4 {: v8 ^/ Y }2 P+ }" L$ l" A; @8 d
else if(IsLegendHero())7 u$ Z' [# _) Z3 z2 |1 m$ Z& J; |# s
{
4 u5 T4 S2 t$ t! m2 N! q for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( _- q1 ?, ^. S
{
5 N+ A" v; T4 B8 j i, F3 U LPSKILL lpSkill = &(m_aJobSkill);7 y% P2 u) ]9 b4 _( \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 ^9 o1 r) x2 } {/ @; B0 Q* l {6 T% Q) n: ^- r) W5 K$ n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# d; a8 p/ W6 C if( pSkillProp == NULL )6 w, {. m; R' k7 u( J+ D. \
continue;
7 C: q" P4 A6 |/ K g: O" L if( pSkillProp->dwItemKind1 != JTYPE_MASTER). {& I$ w9 ^7 {; E1 C+ r
continue;
7 a* d2 c& p1 d3 S9 S; A lpSkill->dwLevel = 5;. c" b3 x" l4 [7 W9 z
}0 u- F* \* v* m1 k1 Z
}
3 H0 ?$ W; ~$ l7 h/ z- k5 _ }- k2 H2 D, Q* V3 A+ I2 i* I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 A3 j; e; b% g Y( R
if( bGamma )' s# u( {& x; z6 w
{+ Q9 v& k& X4 Q, q; T! E
m_nExp1 = 0;
6 V. C* z6 ?5 p+ N }
$ l. p T9 X2 V( y/ m4 t
j4 a, r* O* m; Y! n4 ?3 R6 ?4 z ( (CUser*)this )->AddSetChangeJob( nJob );; }/ n3 Y4 S9 U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& ?7 o0 ?6 j% l! ~
( ?, o* B8 L9 v7 Y" |) a: l7 W
! U) x7 y2 U4 y- g: Q7 _' z$ |#if __VER >= 11 // __SYS_PLAYER_DATA3 f6 U7 Y& y0 {3 q! S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" Q+ C; H) K- j2 ]4 p7 e
#else // __SYS_PLAYER_DATA
% \/ K6 d" s, D3 Y* V/ }$ J! z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( ?- K" D) q7 g! R" ?+ n2 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( M7 V$ \$ D5 [
if( m_idGuild != 0 )3 u z! e4 w5 c3 P: R1 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& _: i( H! ~! a0 \+ h- @
#endif // __SYS_PLAYER_DATA0 r" J+ r- B% p$ c* v/ X
SetHitPoint( GetMaxHitPoint() );" J5 ^5 V4 r' p' o3 O k
SetManaPoint( GetMaxManaPoint() );
& a" t. Q: _. b9 {4 x A SetFatiguePoint( GetMaxFatiguePoint() );7 ~; L5 S. ]# P! D
if( nJob >= 1 && nJob <= 4 ): w* A# g' c' x* V0 U4 a
{8 X$ z. _% N& Q$ O5 t/ v3 M- m
m_nStr = m_nSta = m_nDex = m_nInt = 15;) F, T. j5 d& s a/ C0 h( _
m_nRemainGP = 28;+ d/ q/ [/ U7 o5 L, l1 {5 ~
}0 L& a( e! Q. B5 ]. X- F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' G* |! z7 T. a6 T. r3 n- ^ {
+ g% P% n. T& p. Y" S m_nRemainGP = 118;
& ?+ o" F% s! ]" a8 r, N& J- B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& q& ^6 Z) m# C& ~. p9 S
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 R# s" I7 o8 C/ p- a0 ^
}
" p0 R5 L3 w8 ^/ d if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 }% ]! g! ]5 j' l$ a
{
! M6 {8 w$ _6 o! C# k7 @ CItemElem itemelem;4 m: H; C* \8 e: z
itemelem.m_nItemNum = 1;
( Y' G# p7 ]: m5 k, R itemelem.m_bCharged = TRUE;
& I6 C: \8 x- q2 Z, O5 W" V BYTE nID;
, W1 t5 Z6 F3 B6 @
0 n* A8 [% V- k5 X, G if( nJob == JOB_MENTALIST_HERO )( h% h7 U/ A1 V; E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ j% U+ w h0 |" Z) \1 ]6 E W: U if( nJob == JOB_FORCEMASTER_HERO )0 |0 b( L& `0 z. B4 _1 l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 ^* G& R# I3 D# o5 J, ^& G0 t6 [6 l, J6 o, v
( ( CUser*)this)->CreateItem( &itemelem, &nID );
s' Y5 K. j0 M, l2 Q }
9 i9 @ \' b! m3 L$ @" D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' E* T0 }& ^3 _# {! K2 f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 Q: C; M* R) Z7 S, X4 U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. I" Q' p; S T/ p: d- \! q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 b+ _% c5 J4 ^: h
( (CUser*)this )->AddTaskBar();*/
$ x8 n' X+ n5 _# C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* F Q" t/ C6 y* Q' a" _# ^( y1 l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 h, r) b' j! | ^8 M0 O ((CUser*)this)->CheckHonorStat();' {1 P t6 }" i/ `2 g T/ L. Y
((CUser*)this)->AddHonorListAck();8 @* H- T& l* G) B
g_UserMng.AddHonorTitleChange( this, m_nHonor);) S* j6 F6 U8 i- V0 i
#endif // __HONORABLE_TITLE // ′Tà?
$ X$ l7 X9 l1 S A. [! B' Q }
6 V3 x( N! Z2 v; ~* ]8 j8 h#endif // __WORLDSERVER. K9 ]3 C8 u) R- J: p- P) P
}
! Y( i( v, [$ } [# q( U. y N2 R# ~' l% |; [6 S) X
然后你进入functextcmd.cpp并添加以下
: |7 S- u+ u; b9 |6 D3 a/ B. n# O% a G8 v% _
代码:/ H' z* W3 P% a" z$ [( Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); W7 a7 k* M2 Z" A; v8 W7 P) |0 O& t
下面插入
( z) W% j& I4 F6 w' A3 Q$ A) |0 @ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : m. [: x, w' F. h" |; P- l6 D+ S6 \
2 j i! D, \4 w然后你去
N3 t: o% g2 V9 ~4 P. L0 x: |7 G7 e5 t/ v- H
代码:
" F6 z* J- V" z0 T, H4 Q; i+ x0 b代码
$ C" Q6 j* G. jBOOL TextCmd_ClearPropose( CScanner & s )9 |: d1 y8 Q2 y" x3 Y
{
$ H5 f% O" w( e- ~% j#ifdef __WORLDSERVER
% K# U, C V6 {9 o CUser* pUser = (CUser*)s.dwValue;
, r) W6 |! l9 h2 K/ [9 c j g_dpDBClient.SendClearPropose();: P) ~; D: @) H+ h$ o8 u
#endif // __WORLDSERVER) T8 s. ^3 l2 ~$ y k2 F
return TRUE;
. _' Z/ M3 W- m) p}3 u: B( t, T6 K* \5 |2 }; k) I) Y3 i
下面插入4 c; O7 s: L) D2 u& F
BOOL TextCmd_rebirth( CScanner& scanner )
: ]! B: A# `& \ E6 Q& ^% U; y8 I& \{6 L2 Z" Z$ |. i& z$ P0 T
#ifdef __WORLDSERVER1 @- k" q% D, h. E/ s4 `
CUser *pUser;1 Y6 }/ K* ?9 ^9 P2 _, I+ ~1 W
pUser = (CUser*)scanner.dwValue;
4 V4 W9 ?, { }: L, y; f% @; Tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# M7 |4 G0 C9 R( W e0 C0 |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# L6 K& `4 v( N' ~ Oelse: d$ X4 O5 B; _8 P: V" L3 n% _
pUser->AddText("你还未达到重生条件!");
& Y0 e6 m# n8 a% e+ A#endif5 T1 u) |+ z. u# f: w" X4 ~3 n9 T4 J
return TRUE;/ E6 b: L2 D$ Y/ l! ^
} / Q5 I4 m0 i Q' G7 C
9 ~/ A; y7 G, U; [& H4 x8 u. b0 i/ Z. Z
+ w% J7 s- D, _& S7 O
* H6 t2 ]4 X) w2 \ |
|