|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: R) y& {2 U) q. K+ N
' y3 v* }3 O% M5 l* C2 K9 ^Mover.h0 P) h3 w* R# X% w1 T3 ^. v
代码:# Q% b8 E" \& X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* Q9 V/ |' w; F& h) I. T
/ E8 v& O8 U+ U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) Y2 Q. x. l! O. H
$ c: _1 z+ L: C$ C5 ~* A然后你去mover.cpp添加& O( v* c/ f- z |7 a" j
; b4 T& T) D: q* H- v代码:8 c' Y9 R, w. F$ Z3 V9 z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 Y- Z$ c' _0 e. K; a9 ^{( C3 a; O* E0 d- \" M) |
#ifdef __WORLDSERVER
1 [1 e1 D( x" F3 h0 ~* v // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! ?8 ~& \( V' V2 f4 [ V! a7 D
MoverProp* pProp = GetProp();
- D, @+ @" t( x) Y) ^ if( pProp )
! H$ T8 l3 z; T8 }) O6 g {
2 E' E# T: }% d" k. }* p if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 G. u0 E& x4 @ {, k {( \8 l* j, g! {6 z3 q; F# u
AddChangeJob( nJob );
/ i; }4 o& |3 b' w$ A: b( |2 P: E }else{7 C9 ` x/ F* v/ h0 ]' o
return;
1 R; v. I, Q/ }9 ?4 z }
: d" b1 w6 F2 a/ E$ H i int nPoint = 0;
- V0 B% P, J. |! g$ K2 c if( m_nJob == JOB_MERCENARY )
8 G/ K% b# ]8 V: ~ nPoint += 40;
; p z' Y/ \1 p/ F n% i- u( { else if( m_nJob == JOB_ACROBAT )9 N$ l+ n' ?8 Y* I$ l
nPoint += 50;
- O H, L* ^7 s1 W( r: ` else if( m_nJob == JOB_ASSIST )
; d T- p& I. x1 N nPoint += 60;
5 [- A) d3 U( T; U else if( m_nJob == JOB_MAGICIAN )
4 r- q) k" d4 }0 z6 ?* e nPoint += 90;" [- X. A l, x: f9 R/ T. d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! @, O/ r& U& q, P+ }/ y* Q nPoint += 120;) u7 S: j4 r# I; g/ I# @
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ c! `+ I" A/ k* H* h) l
nPoint += 150;' [- j0 X6 c# i- S/ W
else if( m_nJob == JOB_RINGMASTER )" j6 v4 a" {- _3 l4 d8 B. }
nPoint += 160;- T% I' U$ q3 y W5 v3 s/ E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 D" G- d7 X: y
nPoint += 180;
1 d$ A9 \( u5 z else if( m_nJob == JOB_ELEMENTOR )
2 G/ i7 G: |9 _) D) b nPoint += 390;& R! k+ }7 [) ~- I; O3 f2 N# y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); t2 D( h8 i2 b/ F+ E* @
nPoint += 120;! }6 F6 Y- O; j( \6 x L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% `! u6 V1 Z5 _7 j0 ~7 ?
nPoint += 150;
1 R* T6 q4 ?' t. \1 ^( ~5 H* B else if( nJob == JOB_FLORIST_HERO )
2 }! g. o5 Q$ ]8 |" {% I; X+ e: E nPoint += 160;
& o! s: B6 {) f+ G else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! I) o0 @; Q5 J# H$ S: h& J9 n8 Z/ i
nPoint += 180;
; K! c$ x5 W! ]9 p else if( nJob == JOB_ELEMENTORLORD_HERO )
$ F \1 m( O3 O nPoint += 390;
2 [5 K" K% ], A3 k& }! Z) ^, y1 S! L5 a6 \) S) y P
AddSkillPoint( nPoint );3 z0 w, _# x! ?/ c
m_nLevel = nLevel;' V+ @; V- @) p
0 F7 {+ F+ O* y9 d' H; b. U
SetJobLevel( nLevel, nJob );
$ I. C- n8 g# f' a m_nDeathLevel = nLevel; ^/ O4 D/ t( ^5 y+ b, Y# K& M X
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' Q0 q) t" v3 k! G: {$ b
if(IsMaster())
8 \: `* s! R6 u5 L5 T( U0 n {/ Y: Z" h: ]- X3 Z. c U
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; R1 i) k1 q5 y g( k5 C0 d+ y
if( nLevel > 59 && nLevel < 72 )
# |) p2 r% w. M( E dwTmpSkLevel = 1;
6 k' a0 s" D0 ?# d' | else if( nLevel > 71 && nLevel < 84 )4 R" a* R% i) x2 O- J
dwTmpSkLevel = 2;7 C* q# a: g2 C5 I
else if( nLevel > 83 && nLevel < 96 )- c2 i$ _5 S& ]2 }# b( g
dwTmpSkLevel = 3;, B/ |1 ?( q; a; C; T
else if( nLevel > 95 && nLevel < 108 )0 T1 T" L3 e# F( w; p- q5 O3 R% J3 F
dwTmpSkLevel = 4;
. Q$ _! c. S$ X* R) Y else if( nLevel > 107 && nLevel < 120 )/ {. g. w: Z- X' g9 G B C
dwTmpSkLevel = 5;4 Z$ a3 s, j( O* N+ y2 G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 P5 I- l* R+ O/ p7 ~7 L& y { ?. E2 D3 K5 _# A) v3 F
LPSKILL lpSkill = &(m_aJobSkill);+ t- _! Q% [# ^/ D; ~% A' N9 k, z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
j" |9 F3 l+ H* T5 @" L1 B {
/ h2 Y: i1 F. Y3 I5 |/ ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 F ?( Q1 ?0 u% g* o2 T) d# X
if( pSkillProp == NULL )
8 H0 K1 H1 {% J* V. M f1 z7 q9 i* o continue;
2 ]3 k m, g8 I; ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 M! R4 y5 J0 d- Y% _% {- i
continue;
- ?( W; Y; A6 f- w$ n lpSkill->dwLevel = dwTmpSkLevel;7 E" Z2 S' ~4 [7 b1 x
}1 S: i% [8 j3 P8 N5 b& c/ a
}: {; M2 U) V K+ V' [& P( ?
}9 p# l2 a% r1 H% A: D* e: n
else if(IsHero())# w: q V; v+ d- y
{4 c) h' t$ B# D5 c' d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ l s6 h- j- F! [% v3 d& t
{
' J0 _1 f' X5 o! s2 z LPSKILL lpSkill = &(m_aJobSkill);
; ~; q8 d- b" d, I if( lpSkill && lpSkill->dwSkill != NULL_ID )
: Y q: t4 M& A; G0 n7 R {& O" k. l1 l, L7 h4 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 I) Z' _: H: U0 H# O0 G
if( pSkillProp == NULL )* e# S5 B. [4 w* k
continue;' {" V$ I" W4 G0 K6 `3 B- b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! x5 \ _, x6 T8 o continue;
: l% y3 Q: b& G( O G) v9 X% R1 t lpSkill->dwLevel = 5;
% ?, l$ `9 a+ D4 q8 w# u }
6 E, z+ W& v: B% l5 y8 e }+ l/ J( F* ^: p2 |7 ]6 E
}+ ?6 |0 \2 E6 A, Q+ X; K. }# M
else if(IsLegendHero())
8 E" m; a5 s) G& Y( `' C {
& s# _6 `3 v A8 } for( int i = 0; i < MAX_SKILL_JOB; i++ )
, h1 l6 Y+ \8 c {
& j7 u, _3 t# }- q! Y6 t LPSKILL lpSkill = &(m_aJobSkill);
! b4 i! x: Y( N" U6 I if( lpSkill && lpSkill->dwSkill != NULL_ID )' d$ o5 I# Z H
{ S; H3 ]/ y1 M6 X5 a @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' t2 c$ a( N4 m8 ]
if( pSkillProp == NULL )' s$ `) m2 F! l: @9 z
continue;
1 e. Z% @7 K: ^& W9 b; K( E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& ~( K1 L6 z" p2 P8 U continue;9 ~, o" Q* U% W6 R# m. E
lpSkill->dwLevel = 5;
: D; W+ f( m* e0 d$ Z! V: J1 e4 b }
; [( q+ W/ @% |4 k- n* t }
' G$ Q6 ^4 g' \# Q2 ^/ ] }9 ~1 e1 f" l+ R% u. P9 L. x$ z! H
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( {- e' t3 f* T8 ] A) W
if( bGamma )
: w4 n3 }( i( g }. B {: }) C# _2 T. m' E/ U3 ` x7 B
m_nExp1 = 0;
. l! ?: J0 Y" A( b9 Z }
$ x+ L( G! P4 z% g, z j
8 N* G1 h7 C4 v ( (CUser*)this )->AddSetChangeJob( nJob );
3 G$ c2 l g/ m4 O' }' G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ j% p1 @) [1 @. Q0 B- @: r8 E/ R
1 |, E' r1 e7 ~3 [/ i#if __VER >= 11 // __SYS_PLAYER_DATA
" ^- I6 J) q' f0 b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 z: q+ E$ a" L
#else // __SYS_PLAYER_DATA. X/ T. C% x8 J+ n4 _& s' |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); P s0 M3 s$ P) U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* S/ q1 }! L$ K2 Q2 t if( m_idGuild != 0 )9 _- h$ x0 V6 g H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 g# r0 t6 u0 v. j; F0 U#endif // __SYS_PLAYER_DATA7 j1 i, \2 s+ f) Q
SetHitPoint( GetMaxHitPoint() );8 b' H, T7 z4 U, p3 ~" P1 @; }
SetManaPoint( GetMaxManaPoint() );
8 m) v- X6 J% x- ]# W/ o& R SetFatiguePoint( GetMaxFatiguePoint() );
2 a E& W- \9 A+ J/ Y# I if( nJob >= 1 && nJob <= 4 )9 B8 s% G: r) M# T* N' ^
{1 Y4 L9 {* E2 Q0 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;; a" F7 V( A, w* r( a0 `! p
m_nRemainGP = 28;4 R. r/ i$ M: L: [5 q2 a* q
}
; O6 v- | L T* o2 |) w+ \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 e- P# Z& E6 S4 f' \* i* O3 N {
# ~1 E9 Q9 s8 l m_nRemainGP = 118;: e0 ^: M* Q8 ]% e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" f. U* V2 s' J, d4 [9 N1 D m_nStr = m_nSta = m_nDex = m_nInt = 15;
( [9 ^0 C2 [6 B3 T9 o" V }! J' j' X: B9 ?( P% z- a6 M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 G" X3 [! \7 o& L4 C% S) V$ e6 l {
0 X' d' f6 P& l+ d5 l CItemElem itemelem;
9 Y9 I: |6 Z/ l( O itemelem.m_nItemNum = 1;1 C1 [% c% Z: g
itemelem.m_bCharged = TRUE;
$ h: b4 S5 i& s BYTE nID;; p% b2 I* Y) M, ?
9 _2 A! Q. Q4 v) u- y3 w if( nJob == JOB_MENTALIST_HERO ); I0 n9 M2 I' X; e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 O" J0 U3 { s) L if( nJob == JOB_FORCEMASTER_HERO )
. f& m3 T& \( H9 u8 i5 W" l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 J: p+ |! s1 t8 r, A) q: M& q
# j2 S9 E( `4 D) S2 u! A3 W, @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 Y/ Y2 j4 ~" @
}
3 `9 G/ }. b# { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 @! @, M; n# D3 V B; u4 e# b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 P% ?) l: T! R) \0 R ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% t0 v6 h. J) |' J( e( N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 O" x q+ q7 L+ G. v* ] ( (CUser*)this )->AddTaskBar();*/! b6 q! A9 M4 [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 q# c& |8 M! G4 H* p) S. S$ L b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. F n+ ]" O/ T, O# |+ u2 Z" w ((CUser*)this)->CheckHonorStat();3 W, M; [! x, k( r
((CUser*)this)->AddHonorListAck();
5 n$ ^) `2 E& X B" i. {/ P; w g_UserMng.AddHonorTitleChange( this, m_nHonor);
: _& k( e2 f4 x) B% j8 s#endif // __HONORABLE_TITLE // ′Tà?
% \+ p3 g' }6 O% e2 w }4 L( ?( L" A9 b& C. N
#endif // __WORLDSERVER
% N8 p0 o5 u9 H' @/ H& S}
* M- }2 E. k9 ^- {+ _& @! P: k% Y: S( w; O; A
然后你进入functextcmd.cpp并添加以下8 o# z4 I4 \$ {- a# K0 b: B
2 W6 T- r' l n) J1 o; f; p
代码:' k( p2 Z1 V d5 S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 T1 `8 A# c# u" O
下面插入$ @& _/ R+ k& `6 ]% s9 d& h8 p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 ]9 c1 t- K+ M: ]
4 `0 k" V/ J$ h然后你去
/ E. I. k) k8 x" v8 W+ j6 ~3 x3 v/ {8 v( W/ i ]
代码:
' B* G9 G' p2 j代码- [7 E5 i. v2 T% I% I( a
BOOL TextCmd_ClearPropose( CScanner & s )
) g/ _) j) ^9 D# N{/ [" R3 f+ w) M) ^% m
#ifdef __WORLDSERVER1 Q: ?/ h, D( a- X" H
CUser* pUser = (CUser*)s.dwValue;
( \1 l( k( t5 J& Q8 a1 O- q g_dpDBClient.SendClearPropose();) ]. p, w: d8 Y/ v9 w( A( G% _
#endif // __WORLDSERVER& P9 X `, S) ~: E, [: i0 Y
return TRUE;
9 P/ r S" ?6 `4 S6 Q" D* w}
4 X4 Q: m G( o9 m! _! E下面插入, Q6 M5 d$ l3 i/ P5 c$ {
BOOL TextCmd_rebirth( CScanner& scanner ); Q, s& @5 F" U& I
{
2 I# s, {! T2 }$ i4 q#ifdef __WORLDSERVER5 P6 {0 X- D4 |( N0 v
CUser *pUser;
4 f$ |$ Q7 p5 k: \! u! Y" v) t4 fpUser = (CUser*)scanner.dwValue;" M- A+ i$ y4 t3 K- X! Y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 L6 \. v- w* b$ @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; i/ W, c. {) Y6 P) u& h# Lelse( k3 P2 s; l" t T; p4 C0 g
pUser->AddText("你还未达到重生条件!");
7 l5 g o1 p+ j! q& |8 Z( x/ e! p#endif3 U0 _' W2 ^. J& w3 S. O$ S( I7 e
return TRUE;9 e" t- t4 d8 m: m @& x
} - w" W) S2 z9 K0 v: @) I: a( w/ e
2 |9 q5 ]' x2 H
- s# C- e3 ]+ S4 `9 r( l8 O1 X) p7 l }4 A% ~
; @6 \5 ^" Q4 ~- U/ Y. p& t/ E
|
|