|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 q4 e7 |0 H# M/ U; C" o& g
( H X/ ?7 A% q | aMover.h, ?. x- ]7 x9 D2 c' o3 ~- v
代码:2 p) k: g7 k( p0 l) b. P, H$ ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; |2 r! R- h& C
* Y d& d8 _0 ~" ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 }7 D2 j. P, I/ @
5 M; H! P! `" E* D然后你去mover.cpp添加
' e( g* W5 J- ?& I' K6 o0 E
/ v9 C. N/ b. ?代码:
$ a" Y$ @/ m; |void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# l2 e' w. H* P1 t{% {( \, ~8 v; f$ A' R0 U7 m7 b
#ifdef __WORLDSERVER
. W# F" e! k* \5 B) J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ K( M- f& u4 B" \ MoverProp* pProp = GetProp();
2 ^' I) j& P/ j7 n( {0 K# O% c if( pProp )
3 a" _9 x! p4 f& ` {7 ~9 J2 c, T( m! |0 m* Z5 d6 r" U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- _3 I D. M! v$ {. l, z
{
. Y+ I$ r4 W7 K$ `4 w AddChangeJob( nJob );+ `4 ^1 D4 B7 V! t$ R
}else{
& h' {2 U3 \, g return;4 K* y1 j/ w2 D u
}
" B# Z7 L8 x$ A" o- b" C+ I int nPoint = 0;
% G5 T6 u( c9 t& x if( m_nJob == JOB_MERCENARY )
6 f4 g5 e% P+ P5 R2 M nPoint += 40;; j( |0 i1 j( P" n+ i" K ?- M0 j* U
else if( m_nJob == JOB_ACROBAT )! l8 D+ e' Y A0 H0 a4 Q% q8 U
nPoint += 50;) p P. F% l7 y, c. D) z i
else if( m_nJob == JOB_ASSIST )7 T2 @3 v S, R* d) s' a
nPoint += 60;
. R f$ V2 v' k' r7 }7 k, I7 q& h else if( m_nJob == JOB_MAGICIAN ): S$ L% f/ o' g9 Q9 e
nPoint += 90;9 ]$ {! s+ P9 \" f5 J4 i9 g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 L8 O( [2 V5 Y0 B' w nPoint += 120; D* {5 ?8 }2 Z: x3 D
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# k ]+ c& y* F o0 O
nPoint += 150;* o: P: Y# ^5 P& i/ x6 F+ M& u
else if( m_nJob == JOB_RINGMASTER )
: |+ r0 h" N6 i t nPoint += 160;
% v" P7 L8 u# G( \$ a9 @, M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" B& F* j& N& O3 c# g5 o nPoint += 180;# N- P5 {: L1 |. L/ ~/ |
else if( m_nJob == JOB_ELEMENTOR )
2 v( E' D1 h d4 ]! G- L nPoint += 390;( Z+ Q6 s7 _. ]/ ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& u* u3 n* C X& C+ K- D
nPoint += 120;
% a6 N# X, m$ _ E( p1 P& e else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); `- N+ J: r* m3 R+ f+ m1 r
nPoint += 150;
" ~5 Z7 v3 V1 w else if( nJob == JOB_FLORIST_HERO )4 i$ |8 @% s$ v
nPoint += 160;( _5 Q+ s! k6 u4 z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# _6 E% Z3 M% G" ] nPoint += 180;* J4 A. g0 W+ m! F) H0 |- C
else if( nJob == JOB_ELEMENTORLORD_HERO )
. s8 ]) h% F+ ]' h; f' f nPoint += 390;
" w6 R: D! D# {( M/ z! K7 E9 e5 ~+ p; x6 w& U( J
AddSkillPoint( nPoint );
5 j7 x! w: Q# |4 ^1 v0 F8 | m_nLevel = nLevel;. L7 z5 z7 T) x! p' o0 T5 g3 B" S1 x" H
% w W, \) k9 q0 `! B SetJobLevel( nLevel, nJob );2 G' _# U+ _* `% M: t
m_nDeathLevel = nLevel;, d( f% m: K7 n- L$ g" W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" G: w+ { b6 N) ` h S$ ^3 t
if(IsMaster())
; t! [+ J8 d, [. v& S' G% A) n {
8 {: o Y" Z, e6 b5 X3 K3 P8 s* q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# f2 p. Z1 c7 }" U% v if( nLevel > 59 && nLevel < 72 )5 k0 T8 F$ u& k7 }. T) o
dwTmpSkLevel = 1;, S$ Z" o0 v, u$ n) G) j0 W
else if( nLevel > 71 && nLevel < 84 )
! m* E7 F4 W4 s" o dwTmpSkLevel = 2;
; n5 Y, P# h) `* E else if( nLevel > 83 && nLevel < 96 )
! Y( K7 L- _9 X+ `" \ dwTmpSkLevel = 3;
* \" l2 h d. H3 P n% r else if( nLevel > 95 && nLevel < 108 )
1 \% F+ G- ]/ H: a) I) ?5 E dwTmpSkLevel = 4;
* X4 x. r2 ?, S7 i1 q, k' q9 N3 E else if( nLevel > 107 && nLevel < 120 )5 H$ ?" R; b. n
dwTmpSkLevel = 5;
$ s ~, n' ?# L8 x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 I1 \0 h) X/ K* `
{
5 @, r4 @! O3 }. }' P- e( g S LPSKILL lpSkill = &(m_aJobSkill);
6 V! B2 H+ U; D3 e/ _- p5 V4 j if( lpSkill && lpSkill->dwSkill != NULL_ID )% ~; F8 q7 c a; F) V$ \
{2 ]1 Y9 J: Z! d/ x) @9 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' ]) c% P. V) Z1 E
if( pSkillProp == NULL ): M% d% ?0 d- [: X' e# s, Q
continue;
. |" X0 r9 o6 [) M Y& f% \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ M/ J! d# \) Q: _; @- l" d3 V continue;7 p# Y/ b* v8 Y& B# P
lpSkill->dwLevel = dwTmpSkLevel;; a: K7 l) ^9 p5 p
}
- p5 N1 n+ @0 F G* E) R }2 H# A7 ^- ?7 ] @2 E
}: u# n# g, k4 v. g
else if(IsHero())+ A m9 z7 v* c/ h/ Q
{
/ p* a- Y* b6 J2 r for( int i = 0; i < MAX_SKILL_JOB; i++ ) # `" F( a1 |: I% s& m: S$ x- @
{
' \1 B0 S" s' P% l s LPSKILL lpSkill = &(m_aJobSkill);( x4 e) P1 P' J$ a' _. R
if( lpSkill && lpSkill->dwSkill != NULL_ID )) r# R, x! a$ m' l" b+ e- W2 ~
{
7 n2 N/ k9 R, q* v; K: { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : v$ Q* }! F7 E7 z3 `0 D
if( pSkillProp == NULL )" W7 d$ }. D3 g: b
continue;/ g. m. Z- J5 Q3 n2 {# K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 V3 o+ C* N; X0 l0 j% M! Z8 d9 d continue;% {. y8 h/ M" p; |5 Q- w& r
lpSkill->dwLevel = 5;
! v' _/ u, P/ B( B5 l } ?4 }- G) N9 ] P9 x
}) z0 X, M! Q1 a1 P" p) w t$ y
}0 o; w5 b: [0 z. C. V# [4 C
else if(IsLegendHero())8 W$ ?7 d% |6 y3 f; {9 {5 Y
{2 l5 Z7 z) n. t+ w: Z- G. ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* c: N9 I% g' x$ P" \/ K {
1 v8 ^! T t: K$ r8 B LPSKILL lpSkill = &(m_aJobSkill);: l" D2 \7 R8 I) ?9 Q! Q) h
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 X% u) y' m1 u R1 w0 j8 f! W3 K& W
{
0 j) X5 L& z( k& c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 _( y, S* U# ]2 P if( pSkillProp == NULL )# ?! @7 N# Y9 L' ]. D, q
continue;" ~% g# A0 m: B9 | Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). y3 {4 G& t! g/ }5 h
continue;
( l0 Z: W) J9 M' h3 ]1 b lpSkill->dwLevel = 5;
# \! U9 p% P) d& R$ Z% Z$ R, S# G }
! X! f0 b" }+ C) o, `1 N8 ~ }
6 B/ t% e7 v1 P9 _5 X }
! F& T8 ^' u( t: P9 f7 p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" i# `; V+ D5 S( }8 V if( bGamma )
# q) G- ?4 o& N) G {" _: B; d! v' x+ ~
m_nExp1 = 0;; p+ {) T+ ?3 u0 U* G
}* z4 d: ~0 |+ t! y6 @# b
/ h2 }9 R# k& I4 S ( (CUser*)this )->AddSetChangeJob( nJob );1 \( Q X7 `4 E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 B6 w; R/ W6 e# U* X5 t3 @9 G. F3 j: c$ T0 S9 |5 u X
% v- g( X2 h/ t- e* w0 j
#if __VER >= 11 // __SYS_PLAYER_DATA$ X, s; _4 h3 ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# k, Q! t! ~* H! V, L
#else // __SYS_PLAYER_DATA" V; H$ z: Z3 d; {8 V0 |1 O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, g% p: K3 W9 O: W3 r$ w; _& z" \ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* G% i0 e$ R4 G$ h+ N if( m_idGuild != 0 )" U+ L0 L6 ]$ h7 c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 x Q% [6 e. `+ ?3 T2 g @#endif // __SYS_PLAYER_DATA, ?( B" _. q" E0 ~" Y2 _/ [7 ?
SetHitPoint( GetMaxHitPoint() );
o+ N' D" Q+ b9 T SetManaPoint( GetMaxManaPoint() );
7 E9 F4 u' B& Q" q* w! X# | B SetFatiguePoint( GetMaxFatiguePoint() );9 t% o* t& v+ D5 u8 Z
if( nJob >= 1 && nJob <= 4 )0 a6 a+ s" u, \1 b: \# T2 `
{5 |) B" a( O2 {. D; }; W6 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% B6 Y* E0 Y6 W% Q% U2 `( U m_nRemainGP = 28;
; Y. s9 `9 A" g& s7 M }. p* U& k- s( D, J/ p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ _/ i0 Z# V+ T2 A; B {! J1 a) ~) \% o N
m_nRemainGP = 118;
5 O8 B1 s, _; K) W+ n9 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ @* ^6 Z( C. ?; D. o e6 d* H; u: n
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 Q2 }4 j- m; U# N3 Z8 H- q/ W7 B0 O
}# [% m0 d0 L" p# U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) x( {! J1 A0 ]2 A7 Y
{
( |; X. \; S( p u. r CItemElem itemelem;
+ K6 z5 k1 f& @+ R- C0 F itemelem.m_nItemNum = 1;
4 b" A, f1 i7 V" E, w ~$ O- c8 _& @ itemelem.m_bCharged = TRUE; y" {+ I2 q3 R, Q0 A$ i4 Y
BYTE nID;
, _" z* ^; d, o \5 e
+ x7 w- c V( C2 L- G: c if( nJob == JOB_MENTALIST_HERO )4 W* K, X n7 W5 F: y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ X2 l9 n: {9 s1 e; ` if( nJob == JOB_FORCEMASTER_HERO )
; G, |6 z4 b) ^7 R0 V itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 k! n2 ~: B* ]
% X8 ~ X! {8 M# v! c2 ? ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 g7 u! u% h: k9 [, a
}
2 `) d! J/ a9 `+ `; q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# S/ H+ p0 u3 k" |, o+ a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); v# D; P) F2 \" E5 l
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" K f- M( M S. U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. Q0 Z6 R5 M% L) U
( (CUser*)this )->AddTaskBar();*/, |4 _2 A- z- z5 c$ [3 Z, m: s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 i8 Z( [' L) S6 p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 L7 A% \0 z; J' ~7 H* d# m' z
((CUser*)this)->CheckHonorStat();3 S4 o0 U% T% F! }# ]( m
((CUser*)this)->AddHonorListAck();. t" Y6 k% `" l: E3 l
g_UserMng.AddHonorTitleChange( this, m_nHonor);( M7 [( Q; e( o+ c6 B6 f
#endif // __HONORABLE_TITLE // ′Tà?0 \$ Y( I, u* d! A3 @ u
}
! x8 a8 y! [) ]4 p#endif // __WORLDSERVER
* G) F: x. C+ T; ?} % ?3 A% |. b4 m
9 h0 k! N* l6 B2 @, C5 y
然后你进入functextcmd.cpp并添加以下
4 U* A4 k. Z# E/ d* J
! B- p5 O) q& y! k" Z4 Q代码:! j9 I% e5 Q* `& `0 v' F2 U/ b
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
K8 i) X8 B# I0 {$ ^+ E* m; G' o- K下面插入
1 V) h9 }) ?) g6 kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! p* a; Y2 Y' {7 N+ O6 Y1 C5 \% V9 Z
4 g+ y4 d# v" ?; ?8 W! Q然后你去
d- ^- Q1 {4 E' S3 _( n, g1 w! _2 w6 d
代码:
: c# r& j& v4 e E代码5 `# E) P! S8 f) F9 K6 z& G
BOOL TextCmd_ClearPropose( CScanner & s )5 f/ J% n/ T2 m& P
{
7 D" ^9 M2 Z4 |0 I! U: e#ifdef __WORLDSERVER
! h* _' j- D" C. z( A; \& D% x CUser* pUser = (CUser*)s.dwValue;
) ^" [. m; R6 r* |6 h! s g_dpDBClient.SendClearPropose();
6 M6 T; ~* B t7 R- |: y6 _#endif // __WORLDSERVER' z4 V8 m# N6 y- t, m3 U- a9 d
return TRUE;( K L* E3 U! z# r, c! l
}) p1 U9 U+ P, Q0 G7 Y
下面插入
' Y5 m% z8 V; F3 b0 Y; LBOOL TextCmd_rebirth( CScanner& scanner ): H4 V: P" s- \5 y" c- G
{
/ B5 s( s+ S5 X/ f+ O( W7 m#ifdef __WORLDSERVER
3 U! L& y" V* o- A/ e% P. B+ qCUser *pUser;
, c+ M2 Z7 Z0 @2 b' ]. b% RpUser = (CUser*)scanner.dwValue;
r1 T- Z# v8 Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) [2 o4 V- ^- \# dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* W* N' [ g, v% |else
8 }4 W7 W% u' `& d) p- C, I! p1 \8 LpUser->AddText("你还未达到重生条件!");
5 X' [( o8 F a6 W#endif8 x6 c" G I( S' [9 @" v, J" b
return TRUE;; M0 c& A$ S: K4 F8 w% Y! J2 \
} : \) S- A/ G7 K* v/ y) S
8 C/ h* n6 |: O
( h0 {) q/ G4 Z5 A' m ?! u
- K# c; G7 G/ _4 Z/ O
, ^6 F: g4 P* b- D! b
|
|