|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 u( @ F) ?) v! ^# U, X4 V# ?
, S# D( u! ~! o) N; U/ E! U# UMover.h, N" G1 \/ S1 I
代码:
4 Y: y! M2 Q# f' f% n0 b找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, U9 A3 r( W% q9 Y2 F
0 |& y5 K/ q" |7 @ E+ Q' S& M- D* Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ o1 N7 I* n$ r w. y
# O' C5 i! X, j6 J# {- z" Q然后你去mover.cpp添加
9 ]4 a3 `8 F' x5 _- S: R! c) b0 E) j7 Q1 i7 M7 W
代码:
. K' d, }4 y2 s5 ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 N* ^/ w3 ~5 J3 z{
" t' j* z% F1 {( c6 t: E#ifdef __WORLDSERVER
' ] P/ R, k" ^0 E: g/ z7 z! Y# M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 l$ Q2 b5 ^/ ?* ~ MoverProp* pProp = GetProp();
z: n5 h6 D. j1 R" ] Z if( pProp )
& u" k9 ?3 f6 ?: f$ `" C {/ G2 O% `6 M+ J9 C9 N Y. G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, \+ L$ X5 E6 ]0 z {
$ w- |9 _; O8 J7 v, N) } AddChangeJob( nJob );' p0 s, _1 N% L( w3 F
}else{
F( W! x2 a) s+ B% p! C9 b. _% C" U return;" U& z: F7 g. J, |0 N0 T
}
+ C) `% q% e/ [: K& ^$ Q int nPoint = 0;
$ f2 O/ k! E9 {4 z if( m_nJob == JOB_MERCENARY )
: @) b% c/ H+ Q; C: L/ i nPoint += 40;
" e% J( a: L0 y. u; ]: U j else if( m_nJob == JOB_ACROBAT )
2 t$ W' M: ]! H0 r# l- M4 J; R) N( g nPoint += 50;
) x/ J5 T( \$ K6 |/ Z8 { else if( m_nJob == JOB_ASSIST )
8 o; _* b6 N9 d" O8 E( O5 Q, G nPoint += 60;, Q- I, ~: V0 b" U1 I8 \
else if( m_nJob == JOB_MAGICIAN )
: z: {5 ~9 e7 D) L6 o) _2 j nPoint += 90;3 d I+ Q- A. \5 d" U3 r6 n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 u- e* j+ R! O
nPoint += 120;8 Y7 q- P s7 x# K& W6 n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). B9 S9 L- x! u
nPoint += 150;0 ]7 Z& X% h' }0 l
else if( m_nJob == JOB_RINGMASTER )
- i% F1 W" C0 F% W$ m8 \0 B nPoint += 160;
$ U- i, P# ]- G6 p& \3 }5 C else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! u" ~) `* K1 g5 K( q
nPoint += 180;' e: ?# r3 r9 x
else if( m_nJob == JOB_ELEMENTOR )- W/ Q4 H9 N! [
nPoint += 390;
) a, {0 w# q9 t# h% q3 y& ~% G5 r else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: a. L/ m0 x' P8 u nPoint += 120;3 Y0 o2 X$ @5 K# g5 V+ }6 B: I# H
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); z6 }8 S; X" Y
nPoint += 150;
' t; W! u. z* n. j else if( nJob == JOB_FLORIST_HERO )# l9 |" P8 [6 Z$ P
nPoint += 160;' Z s/ ~* D5 c& W. A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 c. s( K5 a8 {( S- g, q
nPoint += 180;# w) t' l: l2 ^* M2 k
else if( nJob == JOB_ELEMENTORLORD_HERO )
) O5 p) i& D5 t2 @ nPoint += 390;
4 U- ]: j1 N) K4 G0 ? a+ `* `! W. `2 n
AddSkillPoint( nPoint );
. G4 q2 e/ g( ]/ E; M; C m_nLevel = nLevel;
; ^" `8 s" l! F, z& ]+ _: s. C0 z
SetJobLevel( nLevel, nJob );: h; b# \, L" d: s
m_nDeathLevel = nLevel;# n. Y4 p) `% C I9 R+ ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: e3 a" R! Z% T1 }) L4 I
if(IsMaster())7 i+ m* \$ L. T4 J6 m
{# }; j4 s8 m+ ?; ~+ l# n4 a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 J/ ^5 l7 Z3 d Q$ t: q3 _ if( nLevel > 59 && nLevel < 72 )" h9 L6 e# S1 `* K5 B1 C
dwTmpSkLevel = 1;3 Q' y% |% X: i8 C
else if( nLevel > 71 && nLevel < 84 )
- d! }# A& X' T, c) d7 x. E dwTmpSkLevel = 2;
, y' D! Z* E, {. o else if( nLevel > 83 && nLevel < 96 )1 f0 i1 Z& h* Y# m3 S
dwTmpSkLevel = 3;% Z9 q4 o& n1 K9 f/ D; }
else if( nLevel > 95 && nLevel < 108 )
( t. F( k, s& c# |' g3 P dwTmpSkLevel = 4;5 d5 a7 C; ^, ~$ v$ z" j" f" S
else if( nLevel > 107 && nLevel < 120 )* Q+ v6 x! e6 O! H- _9 }
dwTmpSkLevel = 5;
* ] h$ R Y: W k5 T2 z1 C for( int i = 0; i < MAX_SKILL_JOB; i++ )
- a% x; M5 q9 s- v: T* e4 o {
) D/ O3 m0 Y5 b9 i LPSKILL lpSkill = &(m_aJobSkill);" M5 p. o( e3 O+ y8 v' T# K$ n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" M$ o- D5 k$ C {& {6 C: A) w9 S' E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 |1 u7 d6 \% x
if( pSkillProp == NULL )4 ?/ `1 p+ ]- \8 |+ P& f! g5 q
continue;" l' k+ B7 J6 X- ~( Y V: F! R4 z" b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- S# O7 X$ b# h+ S
continue;# q2 X8 f2 X8 P) X$ c& q( p
lpSkill->dwLevel = dwTmpSkLevel;7 D* f6 w* v; Y" `! k* i# [' `/ m8 L
}
* B) r, B. I- P: L9 c }) a3 V' B( d7 ^# h Q
}5 Y9 E- g# j! ]2 @- v8 [
else if(IsHero())
1 Q8 k w/ c1 [* @ {
+ ]9 Y# X* S) ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' U2 l- E3 L% }5 b
{
: [1 d; y2 q9 M* {' W R/ k LPSKILL lpSkill = &(m_aJobSkill);
+ C* I9 `! i7 t# n* C0 { if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 F0 l0 l1 c/ v7 C6 f3 a! g {
4 E5 a% _0 B9 I. E# o7 _$ V/ A8 W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 Z& D& n# `6 X! z i if( pSkillProp == NULL )
# F; L) o: `1 F( M( O/ @8 F continue;
% x9 ^ [. a% T$ p% f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( P4 i9 r" F1 @& x+ P continue;+ k" }' u' z4 R O1 f& ^3 w
lpSkill->dwLevel = 5; Z/ w# ^+ x* L- n9 M
}" }2 I9 i" J) i2 ^8 N
}
! g/ L$ @& X T2 D }
/ t+ v, S. P, h else if(IsLegendHero())
) Z5 a' K; k: c- Y {: O9 H3 Q+ T* {2 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 U% |& o0 W( P6 j( ~ c" E
{ - L# y& ^, h$ @ m0 {
LPSKILL lpSkill = &(m_aJobSkill);9 f+ x9 ?+ ?! C* W- B$ d6 o( c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& `, W8 c) z, D @' X {
6 |+ a: z4 \# L& Y. H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 } v* @& t! j
if( pSkillProp == NULL ): k4 K6 A# W' ~% M. ]3 i
continue;
; P9 m( H# _4 N7 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 f% k' ?" Z% P: J$ A% ~ continue;
- f$ l: A- D* T7 t lpSkill->dwLevel = 5;
5 h { Z" u; a! y5 n* K1 a+ F }$ r9 g3 X# I- }
}
/ n8 _3 b4 K* K w3 d$ ` }% F6 D8 E2 ]. I9 Q; x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% \6 m$ g: z: M1 m4 H0 U+ Z
if( bGamma )
( z$ y9 @9 y! p8 R3 x {
. m6 Z/ v' i U: z# O m_nExp1 = 0;- O) K1 ~9 X+ L" R% I2 Z
}
$ ?, [5 A% u2 H& q% C, y" ^, y
& C' m( g8 X. J" U* v ( (CUser*)this )->AddSetChangeJob( nJob );
4 C8 v+ K+ O2 f/ L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 T. ~4 \" b( x. o5 z V0 z
d' q1 u$ [: {8 j; m4 O! F
( ]! b: e1 t. O5 I" c. T
#if __VER >= 11 // __SYS_PLAYER_DATA
/ {( o. [) s9 d: c3 ]( J g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! Y. l5 V2 }1 O5 D( o8 n l) R
#else // __SYS_PLAYER_DATA- [2 S" P+ p" M/ k
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ r' R! S: ] h" M& a3 I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 S: K0 I( Q# h& @! S
if( m_idGuild != 0 )- ]6 R* N7 E) K5 z9 `, x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 x8 O- Y2 h% i( z#endif // __SYS_PLAYER_DATA [2 a* K6 C `
SetHitPoint( GetMaxHitPoint() );
! P! c- F/ J6 t7 H+ q4 O$ b SetManaPoint( GetMaxManaPoint() );
* K# }7 y+ `. D7 c! X SetFatiguePoint( GetMaxFatiguePoint() );
4 s9 t. I: u: F6 Q if( nJob >= 1 && nJob <= 4 )
4 V) w e& R0 t% D9 J3 B: h4 B+ [ {
# q* b3 j/ J9 i; \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 _+ u: x' u9 N" m m_nRemainGP = 28;
# P4 H( A! ^- { }+ Y2 u" [5 G% U. _* O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& U' o" b, Y' A O {
8 M/ |3 ?" D' u J e, m m_nRemainGP = 118;
; l3 T% t+ r! a" Q i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 ~, v9 ^ x" u! g! W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 z% `! U6 F0 A( _4 D. z }
: Q9 q) O# _: O5 `2 a6 p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& \9 j2 ]$ k+ m# H! U' c, y {
: Y$ e. K9 \' t3 k CItemElem itemelem;
. i; L# x& O. b$ ] itemelem.m_nItemNum = 1;& v& j2 t$ N0 V& H
itemelem.m_bCharged = TRUE;5 ?6 b7 x+ j- |* f6 q
BYTE nID;
& m! o8 _( ^6 N. w: J% W- c o, P; {* `0 e) }
if( nJob == JOB_MENTALIST_HERO )
/ G6 a. w% R S# ^1 \5 x1 Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# a- h2 b3 y* F G0 t% Z7 N
if( nJob == JOB_FORCEMASTER_HERO )
; |! r1 }2 O6 t: Q: | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* g, @5 p! X; Q* X1 g
( E6 Z1 {, z8 y$ J& Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 O0 ~% Z4 F0 j K" V' V1 `
}
0 i j5 k+ l, T* m: n! h g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! {( m8 |5 e3 S; N% C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' K& f# E5 V+ q/ r% n3 x/ D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! k: q' `, J' W# N& M6 f
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# ^; B- n$ @3 U% T ( (CUser*)this )->AddTaskBar();*/7 V3 @6 n; V2 P4 U1 O+ E R5 E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& F- h3 |9 x% V5 W4 m w# J% _6 E: f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ Z- B. }- U7 L5 l* X3 ~$ U
((CUser*)this)->CheckHonorStat();
8 w* x' u1 \, x2 e0 q$ l ((CUser*)this)->AddHonorListAck();0 d* ]* n8 \/ q& I
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 Y7 d0 V" S, ]: O' @3 G+ r2 |#endif // __HONORABLE_TITLE // ′Tà?' s; E, N0 W; S* R2 `
}! U- Z. n9 X8 U* k: B
#endif // __WORLDSERVER$ A4 K6 h3 K: ^% c5 q) M
} , U7 |% V9 q5 @% a$ u
6 V5 e) o$ P8 [. E6 V5 s" M$ K) Q
然后你进入functextcmd.cpp并添加以下
! U- a" n# Q( t+ c+ P6 W
; V1 ?2 V! U( d8 x代码:
! f( i1 g/ X3 v& D( M4 _' FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): W! M) C5 p# W0 ]2 y1 q$ G
下面插入
/ E- w& Z1 S4 P: t# W3 g+ |+ ]ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 W3 L# ~$ T; C' ?# O5 }! u
' r+ Y+ f, |1 h, a' Q: l$ Q然后你去
3 c! s, U8 O; s4 f8 {+ `. C0 c9 w6 D0 s0 g( K0 X: g
代码:7 C' x2 _' H3 m* j5 r; W& t& y
代码
/ g6 w. a7 Z g8 a9 @' P7 aBOOL TextCmd_ClearPropose( CScanner & s )8 I! @! T$ }; V
{5 n% i; F/ c! S! j# z! d% f1 G0 t
#ifdef __WORLDSERVER0 x9 u7 U% C. D; p/ u5 l, u6 b5 S
CUser* pUser = (CUser*)s.dwValue;
) P% N9 F& A) X( m; a g_dpDBClient.SendClearPropose();) A, Q( I# Z5 K' D+ ]
#endif // __WORLDSERVER5 w! n$ c8 b7 ], s. ?4 n9 I9 |6 q+ e
return TRUE;4 c6 {- M1 b5 P4 ^ I, n
}
: ^7 `- S' A i0 w# Y4 A" N下面插入& d! A1 _. o" J- K9 J1 \
BOOL TextCmd_rebirth( CScanner& scanner ), `, F- @3 I. A" D9 C v
{0 p1 A" v. d6 d; U2 S$ f
#ifdef __WORLDSERVER
$ |" i9 y& x9 } ]; ]CUser *pUser;0 E4 w! V7 U) d# R
pUser = (CUser*)scanner.dwValue;
# }( d3 k- B& n) c0 q+ mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 L, c: L# @1 H: [. w+ N
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 Q* c1 K+ M8 L; helse' y' Q; t7 f( ?. Q
pUser->AddText("你还未达到重生条件!");
6 ]. |/ `# X4 _( h" G#endif
, A: H, l, \7 Vreturn TRUE;
8 w; @- M2 x/ f- n& a}
/ C0 r) ~; w: A/ e
2 r; Z0 S* `) N: b2 B* J m, g
7 A- A+ `6 X* P! w( N. l( x9 @9 u1 N1 |( N2 \7 f8 M* h3 {
# u. `7 g6 l( d6 M3 g1 F
|
|