|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 s% l" u% _+ z& v l, p: r0 `3 G
+ B$ O" F% P1 ?0 v" n+ |Mover.h$ |) C* I& o, u: o/ e
代码:
" U- Q7 f* c. K2 j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 l. M: Z5 o! E
; p* }! E* X) R/ p5 |6 _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . y) W0 u* U4 m# L1 _) ?
4 o5 {/ s0 v. i; [6 w) p6 n6 N: ~: r然后你去mover.cpp添加$ l8 Z$ A0 R6 O+ e- H9 n1 W- R7 I
* y. P9 s! X" s# d" h4 M6 { g代码:
( O+ u" V7 I- F; N% U7 xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ S3 h% c: J; r& w4 J0 q{
7 y4 _( q8 \6 G( X1 J9 J1 K#ifdef __WORLDSERVER2 {+ X% p9 b" w4 O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 H* M K/ g/ a: @3 o' @ MoverProp* pProp = GetProp();
2 K2 _3 s, x. ~8 [8 X4 m if( pProp ) m( a1 B' Q6 B$ c
{
# M3 b' W5 E" v1 i if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 M; O2 a6 ^, y9 j8 M S+ ? Q {! {( L7 X0 G- j8 U6 @7 W$ O
AddChangeJob( nJob );3 {# Y* o! p2 j4 s
}else{9 c1 c2 M% R* Y- F
return;
2 a `2 g2 H/ W! u2 \# W0 G }0 n, q( R: {+ e) V
int nPoint = 0;, F# p( V% k% |* V
if( m_nJob == JOB_MERCENARY )2 U% S; Q$ D* J* }+ p2 Q N
nPoint += 40;4 r$ \9 u+ Z7 j- O2 q1 a' a
else if( m_nJob == JOB_ACROBAT )
# w, t! ?3 k) W# f nPoint += 50;" D; ?6 r" |4 Y1 c. T' O& o. E
else if( m_nJob == JOB_ASSIST )! O5 F7 Z* `, X8 E/ L7 M; A; i
nPoint += 60;
]8 p1 |( E& u4 h else if( m_nJob == JOB_MAGICIAN )* Q( V3 z; _8 P* F5 w, n
nPoint += 90;
# C4 T, ]$ z) f$ V+ Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( B& o5 z- w! @8 i
nPoint += 120;
. t. w; y% X* | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 X. @* o _( H' b$ X
nPoint += 150;
8 n' X$ {) r3 y1 L+ J) c else if( m_nJob == JOB_RINGMASTER )5 J1 j4 s- f+ }; d
nPoint += 160;
7 i# B4 @2 @/ y5 J9 n: F! Z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 Q1 _, ~1 w: U
nPoint += 180;
% ~0 r! a: y3 W1 O else if( m_nJob == JOB_ELEMENTOR )/ l" I6 U0 V% b: ? J
nPoint += 390;" i( N: M. T4 G" Q* p+ |1 r# u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 g. {. _" x0 [ Q/ X nPoint += 120;
1 N: {1 J! Y# `3 z* p, H! T. L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" c9 Y& L/ t! m' x
nPoint += 150;& J3 q7 M* ?( Z9 N g9 r! R
else if( nJob == JOB_FLORIST_HERO )$ i1 k" N! D* e. e9 N/ B3 e
nPoint += 160;, Y+ ?3 F) @* ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 x5 r5 U u7 A O4 |1 u nPoint += 180;" { t5 N" W/ G0 E: h3 P: ~0 {
else if( nJob == JOB_ELEMENTORLORD_HERO )! `% w; F8 `% a4 Y2 D; r
nPoint += 390;
" u, n$ j6 }8 I+ Z( p, h p
( ?1 u; i" t( h) ]! g" G) h AddSkillPoint( nPoint );
# C! K K; u: [$ Z1 V- E3 @) @ m_nLevel = nLevel; O6 u# S% J# ?! P) E
) q7 t! f. b( c! Z3 m" _/ C/ V
SetJobLevel( nLevel, nJob );
9 u) c1 f. B5 v. M m_nDeathLevel = nLevel;- p1 f2 {/ q4 h* \/ Q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 P5 V# d8 a. E+ h& Y0 w1 i$ j
if(IsMaster())
L O+ S" |4 s9 N6 I* ^7 C {
7 c; v6 f- _- L; V int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; _3 T: I' t* U6 Z& u1 ~) V
if( nLevel > 59 && nLevel < 72 ) l; R! w( O2 K, |8 ]
dwTmpSkLevel = 1;2 E+ a6 P' ^* e2 I' N( z! [3 J
else if( nLevel > 71 && nLevel < 84 )
5 G1 P( y* r8 J0 W/ u- U dwTmpSkLevel = 2;
! x9 B0 ?- ]+ F4 X else if( nLevel > 83 && nLevel < 96 )6 L& f( R4 W: N! V" B
dwTmpSkLevel = 3;8 k/ T% D z M% j" k( R+ r' F, j; E
else if( nLevel > 95 && nLevel < 108 )
/ m+ @' x- z, [, c: Q7 E) k dwTmpSkLevel = 4;
8 `& S: ?& g6 k. ]) a$ {, m( |0 N else if( nLevel > 107 && nLevel < 120 )- s p" v! S' G1 S% Z
dwTmpSkLevel = 5;
8 k2 I U, N% |$ R; k5 w7 {* h for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 A# k6 n& e0 c, S2 ~* v
{
' r' U! n) i4 s8 T1 q/ l6 ? LPSKILL lpSkill = &(m_aJobSkill);
) d2 b) O9 k6 }( X1 P) d if( lpSkill && lpSkill->dwSkill != NULL_ID )! M$ _8 |; r! }7 U( X7 Y$ L
{ V1 m9 `1 H5 k: z1 X7 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & W# K5 E' c0 d* r0 M
if( pSkillProp == NULL ). W7 e9 G& [5 e7 ]
continue;4 M: p' q" L5 `% g& x# C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 }( [4 [2 f8 \7 C+ ]) |
continue;
8 `6 u( f" X* g& Y6 `; Y) V$ G lpSkill->dwLevel = dwTmpSkLevel;
1 e& M, k. s0 [, p6 W1 ?+ x% j }, i' |8 S" \6 O& B- T
}
* G- k) G4 d- o$ K4 ? }/ v% r5 l2 p) K" ]( Z: G7 h
else if(IsHero())% M! g& Q0 C( p& p/ ?. g3 ~2 X4 A
{/ C/ T! w1 B$ Y+ j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ Q/ [5 w. f1 D1 s5 c {
0 P8 T3 L: P5 m LPSKILL lpSkill = &(m_aJobSkill);6 Q S: e7 o4 l1 F) {; |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# Q9 p/ c$ V1 o$ {7 m {' V+ t: s8 n; m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" @& a- g* _ G5 w! p! o& c& T if( pSkillProp == NULL )! G: l& d+ q) k6 O5 x
continue;
# k, L1 E( T0 k/ E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" O( u8 Y& s8 U1 V3 C continue;
7 ~' P) y" \* }( a lpSkill->dwLevel = 5;
7 p [$ x6 c, E, } }% _4 t, i0 D4 m2 o1 R
}2 S: d; n' h$ C0 p8 e
}
; L; c5 H% ^' H) p9 r% G else if(IsLegendHero())
2 V i, I) M* B% v. m {. \0 [$ c9 x0 ~' ~/ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : ~2 N& S& ~8 B) \6 T* E
{ 2 [) f% X6 b; I2 a
LPSKILL lpSkill = &(m_aJobSkill);( O* Z* z6 W% _" @+ j+ C1 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% S: ?$ o$ e5 r7 j+ c {
+ k3 Y$ Q) V2 B& }( S; _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! B" V% H/ D& t# U2 p if( pSkillProp == NULL ); o r: J# \/ ^7 E' h+ O
continue;
" J, Z2 Q0 T5 X+ e( Y5 m6 R) a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' M! {+ X9 Q' C1 k2 G' i0 A
continue;9 U0 d0 U8 N' w, y) ^8 H
lpSkill->dwLevel = 5;
, C* w0 G. g4 {" P, a3 d }5 g' H. o4 S( D1 ~0 x
}
3 Y# y; F: |% @ }1 B5 T5 L8 {, _- q& j+ D5 T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" w; v0 T5 f: m if( bGamma )! J, X9 P( M. m4 e
{# e2 K) \' s& Q; _
m_nExp1 = 0;
6 X( K5 ^! A7 y( j: [2 D& |/ P }
$ [8 i( f8 g/ h5 }8 U
x, e0 C5 J5 X3 ~8 ]5 {; l# J ( (CUser*)this )->AddSetChangeJob( nJob );
8 E# O% n! }. P' C( T; ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% d$ x/ [7 f, { [: _1 a" w
* K. X4 I, ^: Z* q( e* k% U
X7 p9 S$ Z" g! D. y! q8 _#if __VER >= 11 // __SYS_PLAYER_DATA* V! i" K f( x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. f+ T4 M; k3 z6 c: M/ r#else // __SYS_PLAYER_DATA
+ N; r, Q% w4 H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 i8 V. O, y' T* Z. B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: I6 e( {( s. J G" D' e# h
if( m_idGuild != 0 )
3 @" p5 P. a/ m0 O( _4 | g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 s! y# O* Q" n5 G3 s2 z; e/ ?
#endif // __SYS_PLAYER_DATA
$ {6 k) S" @- A8 K( a SetHitPoint( GetMaxHitPoint() );. ?3 Q) K/ \7 d, `3 S y
SetManaPoint( GetMaxManaPoint() );
7 ~9 x; {- B7 o8 v: x SetFatiguePoint( GetMaxFatiguePoint() );/ D/ o8 M/ u* a
if( nJob >= 1 && nJob <= 4 )
8 V8 U5 z* T: {& J0 d5 G4 |! i5 X {
* c3 I+ M. }7 n7 \) T7 Z/ r m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 B* v( ^# f6 j$ H m_nRemainGP = 28;8 ^) T( k9 }0 E: H ^$ U
}
V/ }' q/ \, ~2 u8 V- W$ j; h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( C: T. l: v: R/ r+ X
{5 S# {0 |9 M" ]% G! A H* X
m_nRemainGP = 118;/ ]: Y5 M' p7 ^( h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 j* x7 N% N6 w; Y9 Z9 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
% ~5 V7 t/ l/ [ E/ u% d }
1 l& ` ]5 m) y4 F, b c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" z8 O. M0 P7 \6 M% I6 T {
& Q1 q' p! e% w4 C/ T) X CItemElem itemelem;
" X* B; B; h8 K/ w6 o: {) M itemelem.m_nItemNum = 1; \% k% `+ X' ?: S0 v% P* a
itemelem.m_bCharged = TRUE;
/ h) B9 p, ?6 ?8 ?. m( N2 f2 U BYTE nID;) e- X: \1 T0 `8 V6 O5 `
; E8 z2 i8 w6 i- s( ~; `
if( nJob == JOB_MENTALIST_HERO )8 g4 D) a& ]+ `- [* y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% j& i! J- T3 W% r
if( nJob == JOB_FORCEMASTER_HERO )
4 v, O- q9 v+ u! `+ B8 y- [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. @6 E5 r6 t8 l/ @7 N
- e- d6 r. [0 \2 H2 f5 r% h ( ( CUser*)this)->CreateItem( &itemelem, &nID ); t# f/ t5 y- j* n3 s) w, `, M9 t
}# R3 A- x; s, \; o6 Z. D( f0 p/ H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% `9 f* v$ d7 e5 Y) U! q' _; Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 P% l- W- _) p6 |6 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
f( Q$ q0 M9 T9 B4 k( z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 _& N/ _3 l- t
( (CUser*)this )->AddTaskBar();*/: o, ?4 `6 X3 i% x' n+ g. X% f
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: _9 _$ Z6 j8 L. n' t
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ |" |' _& m$ r; x& R" P8 c$ F6 v ((CUser*)this)->CheckHonorStat();$ \5 L# f. H" }- L- ?
((CUser*)this)->AddHonorListAck();
x& n; j5 |) ]5 O; U7 K2 X g_UserMng.AddHonorTitleChange( this, m_nHonor);! ]; T. ?' m5 {4 A2 Z+ a8 C2 T
#endif // __HONORABLE_TITLE // ′Tà?6 H+ j) ?; }2 L7 ]% l3 P6 W
} ?; z8 K; t) P
#endif // __WORLDSERVER! S/ ]/ C9 E0 l$ S' k( r# H/ L
} $ p) }9 L( ^, _7 i5 F$ P6 Z
; Z: f0 S* {7 l7 d: D然后你进入functextcmd.cpp并添加以下
/ a9 z* b/ t7 z) ^( i0 z$ x' F2 I; I2 Z9 s
代码:
/ P* P9 V9 U- q7 m( n3 c& dON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 _$ w1 N8 H9 z7 ?* _$ M
下面插入2 Q, v" V( h0 \( y4 j/ Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! q, t: M5 Q* K
8 e0 X- H& ]8 H然后你去: |- p" |$ I- A9 O
% Y/ Y1 X! i. p+ \
代码:+ N9 X& B9 ]; `) k! V+ b, p
代码
+ o9 j0 {5 a& E+ q% L0 T/ RBOOL TextCmd_ClearPropose( CScanner & s )0 e, b' w0 `5 ~" ]3 C. L
{7 ]4 @* [. Y+ C/ U
#ifdef __WORLDSERVER
$ {- T; m1 d0 {' o C CUser* pUser = (CUser*)s.dwValue;' l, r z" I: q5 }) K# v, B& a
g_dpDBClient.SendClearPropose();
3 F; I: ~' n. N X0 l1 N @#endif // __WORLDSERVER
H& F. v& v6 Q& F' o) n2 F1 H return TRUE;9 x/ T- h$ j) Y: m+ @& o3 [4 Y
}
1 b7 g* c# s% N2 q' z下面插入
5 _/ F D3 @+ B5 c9 K9 S/ gBOOL TextCmd_rebirth( CScanner& scanner ); J O# q& K" c" Z+ {2 i
{! N% d" Z8 O5 c
#ifdef __WORLDSERVER6 M$ ?2 b3 ^5 G' X
CUser *pUser;; ^' R+ c/ b8 Q/ t% ]( ^3 r* [4 @; L
pUser = (CUser*)scanner.dwValue;! x: C4 M4 F- y4 k8 @- j
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* {* E- o: ^, U- HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 u5 c8 E: r4 y) w1 y9 W
else; {- c, ?5 e1 L9 X: B
pUser->AddText("你还未达到重生条件!");4 v- |) h' w/ q6 ~, h% F
#endif* T1 P" O8 a/ o8 N9 @
return TRUE;# B$ j/ a4 H0 e
}
7 b( o% `0 B+ q% h1 K# i* w& Q9 F4 Z2 Y6 o
* N- U: ~5 m; K! r
' `# C* n g* J$ T; g2 u+ d( P
: c+ j1 E/ Z- x
|
|