|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ q. k8 [9 ]5 t3 w1 h
* j, [1 Z' n3 S$ |1 T! U
Mover.h
& N# e* p: G" Y& i% }- |7 C6 K代码:
! X: C! {# E- N7 B( D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ U+ {9 l3 K: E0 D
2 s) c* L" I0 i- ?) u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; V2 |+ u& O& |' l! L; q
; W6 |: ^' v j9 v) U然后你去mover.cpp添加# r! g6 M( R0 \# E! P0 i2 d
7 V' J5 h2 ^, w/ e7 m: V代码:6 k* i4 g* C+ |* N D U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( C7 H" q3 x; t' q; u
{
- n3 @8 v6 w1 X#ifdef __WORLDSERVER) f1 o8 S9 c$ h5 i+ X3 ~/ s3 k
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 @% b G. v* v1 | MoverProp* pProp = GetProp();" O' ~2 d$ n6 U5 r' D0 _ f _
if( pProp )
: A0 s! \$ n4 G& g {
$ `! j8 v( z4 q$ ?8 ^# k2 T5 t0 P: D if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 c' F! A0 x. ~9 `, N
{
" P. u; a, P. E' ]5 P; W AddChangeJob( nJob );& A, y2 {" y* r3 ]0 q
}else{9 H, R! J2 x9 S# p6 j% F
return;
2 @9 l( ] i! N+ l, P }) `* `0 o8 ]9 y) T; Q) b0 |
int nPoint = 0;( N5 A6 G2 G: h8 B9 A
if( m_nJob == JOB_MERCENARY )$ X" d2 a! m' o4 d; f! M) n
nPoint += 40;
; {' o7 O# X! g1 l( [: b- ` else if( m_nJob == JOB_ACROBAT )/ e) K) p8 v* ~4 K( F! g" R$ Y% i
nPoint += 50;& D q$ y6 ? D9 E
else if( m_nJob == JOB_ASSIST )
! T: u( ~- V$ r5 [; [ nPoint += 60;
' P2 V4 `' g7 m3 n0 y3 ^7 p2 a else if( m_nJob == JOB_MAGICIAN ); u1 l) U3 K" G; G* t) {( h/ J
nPoint += 90;- H: Y- L8 k/ f( T2 }/ R# A( f" @
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# Z: ?" a; x0 w$ e. N! g3 A nPoint += 120;
1 R% n& h; V, M) a3 B: x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); J0 e7 b+ m) k3 T
nPoint += 150;- d8 p3 X( \6 Q' j1 b
else if( m_nJob == JOB_RINGMASTER )
) j- V! \4 L# C2 W1 u nPoint += 160;+ G6 |5 [5 c- t/ {8 f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 C& M6 C- I) D. e0 J% J nPoint += 180;9 |) k! l+ C/ X; l, \
else if( m_nJob == JOB_ELEMENTOR )
/ ^6 F$ R+ q4 s nPoint += 390;# F) z% i4 v1 r2 ?/ D0 H7 C
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ _" _3 J& [4 X( @# U9 R4 @; `8 M* h2 @ nPoint += 120;/ D$ n* o' Y2 c7 E3 S" a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) c. h+ g' {* p5 R, q* r( k nPoint += 150;7 l3 }$ E; ?5 Y) s) Z
else if( nJob == JOB_FLORIST_HERO )
+ s3 m" y- ^" C) @ nPoint += 160;; l3 ?' Q# l S) S" W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 [0 P) ]$ W" j# m) K% V3 U {
nPoint += 180;; f6 S6 F& Z$ h) ^ a, Y
else if( nJob == JOB_ELEMENTORLORD_HERO )
: x: S4 V9 V; `' C1 y( s& ^ nPoint += 390;# z* u- H& r0 {! y
1 |5 F9 R9 F# l; `& L; S AddSkillPoint( nPoint );
7 A& U8 s# }3 D A m_nLevel = nLevel;
; q0 U* ]) J6 i! } V, E' ^3 m+ v0 M, u; @7 l( V- C
SetJobLevel( nLevel, nJob );
+ \ k- @: a9 X. G m_nDeathLevel = nLevel;
, N. Z9 H, r6 B/ s# d" h0 N |" G% A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ k* w, ~9 Q6 B7 o
if(IsMaster())9 f5 s/ }, l4 g: M8 l/ e
{( [. q2 S! C$ ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" |4 o3 Y/ C+ V- U& G- u7 F8 N. p
if( nLevel > 59 && nLevel < 72 )
/ {. P ^. c. l2 b* ? dwTmpSkLevel = 1;
9 [- B! C; y, q/ Y( b else if( nLevel > 71 && nLevel < 84 )
7 ^+ b) Q- [: K p5 t% a/ p dwTmpSkLevel = 2;
$ e% l2 M5 O# @) a6 A3 x- {4 J else if( nLevel > 83 && nLevel < 96 )
8 X; e: ^* a7 G& d/ g. D dwTmpSkLevel = 3;
2 `0 f2 c1 w' t7 l% e1 ?; t% n else if( nLevel > 95 && nLevel < 108 )
% H' Z0 m! ^( m8 t8 ] dwTmpSkLevel = 4;
% O3 J9 r% A& p) n5 ?& e( V else if( nLevel > 107 && nLevel < 120 )/ _, ]2 [7 s# q7 h
dwTmpSkLevel = 5;
! o# x. m$ k y/ t for( int i = 0; i < MAX_SKILL_JOB; i++ ) % U) c# Q4 f% k9 b
{ 1 D( a4 S2 R+ {* K8 }+ b
LPSKILL lpSkill = &(m_aJobSkill);
; Q- m+ T ?& S9 {) j, T+ Z0 H( l/ s if( lpSkill && lpSkill->dwSkill != NULL_ID ); Z5 v+ g; k* g+ f
{
* V" N4 n+ _ y: q- }7 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * y5 v' o9 \+ D0 F! {
if( pSkillProp == NULL ), V* ~& K+ N1 `1 ~ @6 E9 a
continue;
# `% l; ]# P; x0 x, A5 T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( B* |: a4 W7 P8 `, t# T/ D& z continue;! r" \7 ?* c2 F$ P4 p
lpSkill->dwLevel = dwTmpSkLevel;
2 ~6 x8 `( i0 I4 c9 E) n }
4 T$ ~ ~& y, x C6 Y }
; b' A7 d+ G ~2 T9 ~ }
. s& O; q0 v, A S% T9 _ else if(IsHero())8 B3 @0 U3 a8 N6 }( C
{
/ c9 h( ~% a% M. D5 F! n2 i; x7 V. z for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( D5 \$ j+ ^- z. F
{
$ f" z ~2 {0 m LPSKILL lpSkill = &(m_aJobSkill);
1 m7 W3 [, p2 f8 [% W) I! x/ I4 g if( lpSkill && lpSkill->dwSkill != NULL_ID ); z) R$ Z. e# H6 N v9 g2 H
{% X, n) H" U5 D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) x5 n9 I7 M1 o7 u if( pSkillProp == NULL )' S! r4 ^- ]7 d/ U" P
continue;$ J$ e1 b1 {9 b" ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 M4 t: {' ]4 ~3 f+ d" H continue;2 P$ z8 n6 R" H! M5 `, I
lpSkill->dwLevel = 5;
3 \( I4 i- z% _- n$ {: p& _9 L9 ~0 F }
% D$ o/ O1 I2 s0 Q* W }
4 Z7 O5 V! H: {3 \+ V1 D) \! d) P" D }
" ?( i- J' [/ \2 ]- _% C( k$ \8 [% W else if(IsLegendHero())
/ l" v4 O$ K6 y# k9 q& o {
s2 v+ N" d# Y# g/ s; L- G+ C for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 G) O$ M# o0 y* p% Z+ B9 O) j* w
{
( ~$ \ O0 p5 n: }& Y+ G LPSKILL lpSkill = &(m_aJobSkill);
! h$ j( A. m+ i1 j' A1 @! H/ k if( lpSkill && lpSkill->dwSkill != NULL_ID )
% o( @+ g- D5 {1 d' E' j {/ f3 t a2 j5 U: S8 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; |( l3 @( o! {4 r% g1 d if( pSkillProp == NULL )4 Z/ u& i# [* R
continue;+ C% ^; i7 d+ S7 A; B6 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& r, k( D, T3 \! X5 ^
continue;
) [5 W3 k& [5 ~; h5 Q8 P3 I lpSkill->dwLevel = 5;
9 I6 `# E1 b. h1 C" s }
9 ]* C- T, Q+ K V }
2 i4 u# r2 t; v4 g0 F$ t5 d }
) j3 `- V/ b0 {0 U0 W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ K; C: r, {2 A
if( bGamma )
) S" L0 n6 X, Z3 @( o$ n# @% H/ g {
- ^7 B V6 w; u m_nExp1 = 0;
; S! B" y7 ?3 t; e1 h }
/ B ?) ?8 C; J" X. ?' X" P
9 h! G0 q7 v1 |4 S, q: O ( (CUser*)this )->AddSetChangeJob( nJob );
/ r8 r( Y1 ?" F! }+ [ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ r4 q' I' A7 m
# [) \7 d" F. v. I7 G+ G
L; x6 _3 F- @4 I0 ?+ W#if __VER >= 11 // __SYS_PLAYER_DATA
" u& X! [! C! ~3 J' d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& R: d! U. L7 R. Q: f' j
#else // __SYS_PLAYER_DATA' m( {. C! }1 Y* F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 O/ d1 @" `$ k* J! ]+ {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 ?7 R: p; g5 B( X, x2 v if( m_idGuild != 0 )
/ {- w4 b. m1 c' m, n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 {2 L4 N, A! _2 t& t
#endif // __SYS_PLAYER_DATA) f; E/ f, |$ f' W1 x& s
SetHitPoint( GetMaxHitPoint() );6 F5 @8 g2 q. ]/ n: E% f( p
SetManaPoint( GetMaxManaPoint() );; L7 w6 {0 Z& h3 b3 y% u) |4 A
SetFatiguePoint( GetMaxFatiguePoint() );
3 ]; c& C0 T8 O4 {* ] if( nJob >= 1 && nJob <= 4 )
3 H4 Z7 o! j/ y: W9 M {
% L, x: }+ a: ?, @ m_nStr = m_nSta = m_nDex = m_nInt = 15;
' q8 _4 N6 f8 H8 |4 _7 e/ r m_nRemainGP = 28;
+ _; U( y0 J v- d. j1 T }7 W3 W6 K0 n# ]2 h( K# P* L
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% V+ q' ]% V' [/ r
{. i5 j% V+ f/ c. m* w
m_nRemainGP = 118;4 a4 O" _" P* w& Q# Q; |/ q6 }1 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; Q( t4 \3 z. m( V: n% j m_nStr = m_nSta = m_nDex = m_nInt = 15;2 H; h1 L' q: C7 `
}& v0 R) m% y; T6 d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); j3 b. T6 M+ u/ H) Y/ O4 Z
{" s& o/ k1 |8 t. `
CItemElem itemelem;
* F! |+ W+ p3 Y/ E3 q itemelem.m_nItemNum = 1;) z5 r2 m& A9 C. b) K% ~- p% ]
itemelem.m_bCharged = TRUE;
+ J H& E: Q% } BYTE nID;
+ H L9 P# j9 `4 Q# ^0 j( J! T, D
5 c: l# {4 M! A6 z, [1 e D* O: h3 p if( nJob == JOB_MENTALIST_HERO )
) o, \: E3 `" x7 C& y4 v2 w. x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ _; p2 n2 f0 O8 O if( nJob == JOB_FORCEMASTER_HERO )
6 |/ t( Z0 k- s4 { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. ~; G! m4 y; U% o7 I8 s
- s2 w: r% O& I9 i' e* o
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 T, c0 A$ y: G3 n/ s' L! d }
$ Q- x3 ~; J% {; u c a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" z6 A- Q; x+ O3 Z* z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 Z2 z# B6 E4 _* q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 M' V# G! g4 C+ \9 m$ s$ d) E# K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: T( h, A8 Q$ g* J3 h ( (CUser*)this )->AddTaskBar();*/' O/ u5 e5 ?! i* g0 r Y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 ]( i+ I3 B. r. S4 ~/ w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& Y2 U& C! u, N; i ((CUser*)this)->CheckHonorStat();, `+ C N5 e: }; b1 T
((CUser*)this)->AddHonorListAck();6 J6 D! B! J. F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 {) g. A/ X- w4 P# z3 P#endif // __HONORABLE_TITLE // ′Tà?4 V3 h4 p; J3 @+ [
}
$ L- u, V9 A$ {7 H& U. t#endif // __WORLDSERVER/ x9 q0 r7 O0 h( B7 T
}
/ m1 F2 w: M- l, G1 s. ^ i. o6 D c$ @
然后你进入functextcmd.cpp并添加以下
# a7 \2 f9 L3 t6 \* V; F& I5 _! ]; Y4 |8 x: e# m4 s" b& R" R
代码:" ]7 N! V' ]" | {9 j/ L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 ^1 r1 N, q1 _' R
下面插入
/ p7 Q9 r, Z# tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # x, ~$ F4 ^" s7 k* B
6 j' }$ x5 g4 {' ]+ R9 @' g9 x* n然后你去+ I3 y2 v( L* K" H8 }
! L8 M9 L- r0 D; q4 \2 S! }
代码: w D+ ^0 R: C; m! h$ S
代码$ U% e0 w" d' U7 a% @9 V' i
BOOL TextCmd_ClearPropose( CScanner & s )
; V6 f! d7 A# N- B{
4 e: w5 q2 b9 i: ^8 r#ifdef __WORLDSERVER
# `/ ]+ P9 S! E9 t9 E/ z CUser* pUser = (CUser*)s.dwValue;& B' d. Z- H% {' m
g_dpDBClient.SendClearPropose();
& `8 `4 {" M# h# v+ v#endif // __WORLDSERVER
; L) C7 B" J3 S5 S% \ return TRUE;
' ?, `) F j1 L( K. M7 Y0 }% Q6 _; B}
% e" V; Z3 ?; Q5 W# W: p下面插入5 L( u; T$ N7 A2 {8 b
BOOL TextCmd_rebirth( CScanner& scanner )
8 K( u* B4 f @7 [{
2 X! G# O' R7 w! c F: ?#ifdef __WORLDSERVER
# {+ T! o6 v2 [( TCUser *pUser;* |7 s. I% c2 t% J4 X
pUser = (CUser*)scanner.dwValue;
o1 Q7 d0 t9 }( t- Q0 l; Wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 x5 p+ @# f$ [% ~2 `; XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 i+ k7 l t7 Z( C
else& i7 \* z2 G, a* w
pUser->AddText("你还未达到重生条件!");- R8 Z: s1 V; k9 I: x: t
#endif
* q& j& f+ h+ r# J& Qreturn TRUE;) f/ r( n) |+ c) K
}
/ x( T3 r/ Y; ]% I- V l0 P+ _
6 D' H7 l& P9 m4 {! U% J# r$ ]. ^
, T. X3 N0 B) X7 S
" f# h1 H/ j. s V1 y, Q6 a5 k" i9 L* g, t. r. r9 v+ E! w
|
|