|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 [/ W _+ Z! \3 A$ m6 Y T
5 Z' x* B+ n) |( ?Mover.h
* h' U+ Q5 b8 d' H代码:
% E% {) I) R- o* w y6 M! o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- L% i4 X7 C) L4 G* w9 |
; R' A @) M/ }( u$ D @* H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : i O# y& a+ k; I
4 k* D- E9 n) |* S3 v$ q, O然后你去mover.cpp添加2 L/ N+ x2 O; V+ u" k2 o' t
4 d3 _' y8 y" Z- S7 ?7 N: r# ?$ D% |代码:2 b3 W4 G2 ^4 H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, ?3 n, B0 _2 Z9 ^: F$ s( R{6 X: @0 C7 w4 Z; R. y; `7 L3 P
#ifdef __WORLDSERVER9 \ Q1 F! R& v6 A+ M1 ]2 m
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 L. i( Q1 J! ]/ [1 { MoverProp* pProp = GetProp();% K' m% |, _, q8 _. y0 z$ D
if( pProp )
' R4 V* t0 @7 k S9 Y& z; ? {- l: M+ @- @1 ~* E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ w9 w" {$ H# _6 b
{
1 d- o" q V7 ~ AddChangeJob( nJob ); I# ]) \$ u& i" r( z
}else{
# n7 Y* y* g2 I0 f S% R, h# r9 m return;# {! M# [" h8 ~$ H C
}
4 u5 Z6 F; D( C' d) M7 X$ u int nPoint = 0;1 k+ w* R0 C/ b- W6 |
if( m_nJob == JOB_MERCENARY )( I) X6 `) f) U z; ]
nPoint += 40;% q$ R# ?8 `; B5 [% G% T
else if( m_nJob == JOB_ACROBAT )2 A) }- X$ H0 R0 @' ]: K
nPoint += 50;
- b: c7 o& ~% r% [ else if( m_nJob == JOB_ASSIST )) X& R! i( k" N6 b6 x
nPoint += 60;- D m! h" q i K( \* ~
else if( m_nJob == JOB_MAGICIAN )/ a# e3 b3 y% i1 I) n0 d1 u
nPoint += 90;. B: o6 r1 l2 U6 F/ z9 b8 ^# n( C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 U+ l+ |3 R* \" I nPoint += 120;
2 ?8 W; v( t+ T5 @6 n) ~2 ` else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* E! J6 `: z9 _4 Q! o nPoint += 150;
+ O( g6 g7 m, F5 @+ c9 r' d9 z else if( m_nJob == JOB_RINGMASTER )
- Y+ `) K% ?- U nPoint += 160;
+ |8 A9 N0 j; n6 o: B( p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 R. l0 s' Q% T( u nPoint += 180;
$ p7 O* q- ^3 g/ \$ j4 r else if( m_nJob == JOB_ELEMENTOR )
' v2 A3 L: T% _3 w nPoint += 390;( q9 a0 [# y) c3 Z' I8 x6 o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): e. R; v# \% F& X/ U# t F
nPoint += 120;
9 b: ~& f& d7 t5 M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
f: f- d( l5 H/ b nPoint += 150;
9 d$ \0 d ~8 N5 j else if( nJob == JOB_FLORIST_HERO )( D# }& r* E# o. O6 `
nPoint += 160;$ a" p! f0 _0 V" z( A. `# g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& p, b" M0 F3 O; R) G/ s nPoint += 180;" N) V6 K5 ^. Z% `1 X2 b, \, X) X
else if( nJob == JOB_ELEMENTORLORD_HERO ); W5 B; [* I+ I- e, t; w. i
nPoint += 390;) N+ J, l' Y D" `) t) `
* I6 S3 H: @/ B2 n3 A AddSkillPoint( nPoint );$ Q! A% ]5 _; \$ x+ r7 ~
m_nLevel = nLevel;
$ P5 O% T; c! O
! o% P: r% }9 @ SetJobLevel( nLevel, nJob );/ { {: X* @5 F4 r/ F
m_nDeathLevel = nLevel;
) N, F; D1 y [; ]5 H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! j! \+ Q9 |7 c: Q if(IsMaster())
4 P" w' i: r' q5 w; N0 u- h: ] {
A) o/ ]' M; s3 F- U! g; b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 N4 t7 ^: |4 t) ^; q/ V$ \4 U if( nLevel > 59 && nLevel < 72 ). c! m5 C/ `# B5 c% g, `
dwTmpSkLevel = 1;3 q3 Y- t+ w- Z. @
else if( nLevel > 71 && nLevel < 84 )% z7 {9 R& v1 x( K! b% L
dwTmpSkLevel = 2;
; W" @1 J' Q. N! D else if( nLevel > 83 && nLevel < 96 ); U7 K* P. i: ]4 q1 q
dwTmpSkLevel = 3;
1 H7 A% ^6 h, x0 r3 ]6 H! r, C else if( nLevel > 95 && nLevel < 108 )
- E& i3 l6 ~0 K, M. A; e& ^ dwTmpSkLevel = 4;
! A a0 k: {! q' U! B, `; T! {# S else if( nLevel > 107 && nLevel < 120 )
# i; U& @5 x2 A5 {+ j dwTmpSkLevel = 5;
: Z; l( J5 K# C0 Z; C; G for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( x1 b) t3 P4 T$ p
{ , s' J$ n' V4 t
LPSKILL lpSkill = &(m_aJobSkill);
$ y0 l$ {6 H0 c$ U$ J if( lpSkill && lpSkill->dwSkill != NULL_ID )0 l6 q. K1 `; {" Q$ p
{, B7 s" w: G4 q' q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; _7 j# I3 x" [! S
if( pSkillProp == NULL )" T: Q. [4 W4 O9 U+ c+ q
continue;7 ?, z7 ]4 |% s; Y) j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ g0 u& t l5 ~( X) _; M! z8 I continue;
) [/ ?- h- K$ I0 d lpSkill->dwLevel = dwTmpSkLevel;
3 L- e8 v! r8 V" j0 G! K: Y f- f }
/ m; e. i! a1 s6 L6 w* a' V4 b/ n& o }
: z8 Z$ z4 O$ P! M/ j- w" q& Y' C }( H x& `5 b. M: I1 z/ B& G# h' [7 U
else if(IsHero())" E7 @- r; k4 Q d* t
{
& q) o, \2 z! a for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 g2 S) @" |3 C; c
{ 8 z j* Y b( j$ ]) y
LPSKILL lpSkill = &(m_aJobSkill);
5 Q ~6 z( t, p! L; P u2 d7 v if( lpSkill && lpSkill->dwSkill != NULL_ID )% G/ E& U" V3 {
{
, g7 b9 e) Q4 t$ o- o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 P) }% f! b" m+ d if( pSkillProp == NULL )$ r( R1 t/ L, \8 l- h5 k
continue;. d. M$ t) F9 H& }3 D6 U& j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* {; k* ]( U! q( x3 Z3 v4 } continue;0 f' ^; z4 o' S! q8 G
lpSkill->dwLevel = 5;
3 D$ S! Y) x' U9 P" K }; z/ t& l* t( P- S/ Q |% [
}
8 Q' o& C) ^. X }
2 r( H- {( g% q: ~) ?# g else if(IsLegendHero()), a( W% o N5 m
{# h6 k5 x. {/ e z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
}5 Z% X% l0 s' } { 5 C# d. ]0 g" j
LPSKILL lpSkill = &(m_aJobSkill);
4 Q% o/ \* ]5 O" Q6 z if( lpSkill && lpSkill->dwSkill != NULL_ID )' K) r, Z' I5 ?* b
{ A( O, o9 \ G- f _0 x7 T% b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) X! ?& _' z0 [" t6 }7 _
if( pSkillProp == NULL )
4 X; x) n0 u/ U W continue;
+ i% D( M5 e& [4 j7 ~' { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! x* c2 U G' ?* h' R; Y$ P
continue;
$ N4 ~- H5 }" z- L lpSkill->dwLevel = 5;# Y" D2 s' M* d+ v
}
+ I: u) T- K# A# b3 _ }! c" g& Z: |5 T- E2 k$ o4 d
}
( }- N' |/ t2 x) r2 \8 H# _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 ?) x) J9 ]" A& Z" ]& \. T* G9 g
if( bGamma ), Z. `! i" Z% \! S
{
5 ~/ _7 H1 M0 v( [9 O m_nExp1 = 0;& `; V; _/ O- f. s9 \& {
}
$ W6 A) B, Z# n) {
4 D- B# V" O) x/ O" w ( (CUser*)this )->AddSetChangeJob( nJob );8 O& Y" s5 e( F; ]1 p
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 n" E# Y! V( c2 i: N8 Z+ G
5 U/ N2 j8 L9 i" O# X6 c( ~
" [+ Y% I3 g3 m4 \8 N% d#if __VER >= 11 // __SYS_PLAYER_DATA8 ?! w; o# l" e0 o$ x) e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 ^5 Q/ z/ W& U, j0 g7 i
#else // __SYS_PLAYER_DATA2 q; {+ t5 ^3 l5 D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, e8 \" I6 u, j- O8 ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# |1 S( {: [2 w" ]# C! `
if( m_idGuild != 0 )5 ^* H8 y; I% Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% \/ u) X1 Q6 I) L9 t#endif // __SYS_PLAYER_DATA6 z* ^" s& k5 T0 m9 s6 @- |4 p
SetHitPoint( GetMaxHitPoint() );6 S3 F' w4 H* T6 d# o; j4 g1 i4 {
SetManaPoint( GetMaxManaPoint() );2 p4 @% ~* t! l1 K4 E" N7 D
SetFatiguePoint( GetMaxFatiguePoint() );5 r7 X2 \6 W: i1 H# y% \3 p
if( nJob >= 1 && nJob <= 4 )
, k. Y/ m- h t! W* p% L6 \ {7 L% Y* I* `7 O5 m. D
m_nStr = m_nSta = m_nDex = m_nInt = 15;; j# h1 z; `+ q' R' [8 K! R- f/ Y
m_nRemainGP = 28;4 k5 {; M0 h S5 [. |
}
. V! |' d3 E0 y1 `7 Q& p1 J0 Z5 \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 S4 y9 S7 V7 m {, o+ F# |- \+ k+ H
m_nRemainGP = 118;" D$ h: W0 o, r; ?" A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 S; O- x3 ]' X/ \
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 u1 p- D: l2 M8 R
}
1 ?* d7 ]! z+ Y: F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
Q/ i N( P: ^ X3 G0 [/ `8 O {
" |2 a1 |3 h8 p9 I- B% m7 X' R- ^ CItemElem itemelem;9 A; I# m2 g4 V9 V% x# |! S
itemelem.m_nItemNum = 1;2 c) j0 y x0 v* b* ]
itemelem.m_bCharged = TRUE;
! [9 U9 m) m- q2 x J BYTE nID;4 b2 S \- a2 j l
$ \6 F7 e0 p/ N2 q
if( nJob == JOB_MENTALIST_HERO )+ m8 a4 R7 T O. h' n, {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 v! z! H2 }% f2 b, q' \
if( nJob == JOB_FORCEMASTER_HERO )2 g3 p; j6 I {% n7 Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
e& @0 `+ `4 a; l+ [7 ]$ j4 U
" \. n1 L3 {% ]3 t& e$ m ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 h# E- o4 {) X+ X }
/ n& \1 y7 e$ K) @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 `% g, ]1 @: G; m( C7 ?' m ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ o' H( u D- W
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 N# w) X" s0 L. ]* \ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 t4 `! t) f0 p7 ~; t' ?3 F- f6 t ( (CUser*)this )->AddTaskBar();*/# H& [; c6 I: B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 A$ E' {' E$ G% V9 K" s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 [" s7 D4 ]! {3 i/ N" t ((CUser*)this)->CheckHonorStat();
( {- r2 z: N1 V ((CUser*)this)->AddHonorListAck();
* G F& z, Z/ G! k& k. J. J g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 D! @# m B* H5 @#endif // __HONORABLE_TITLE // ′Tà?3 y# n2 |0 F* ]8 c
}
6 W4 d) ~; p! Q0 x#endif // __WORLDSERVER5 h/ s/ ]. m' m3 y
}
) y# f$ ^& A# o: K2 B0 l! f
~ _- }; Z; C6 P( w然后你进入functextcmd.cpp并添加以下6 j! j6 w* R5 o+ q) j- D6 O& ~# q# W
8 U, N& A1 S5 k6 b6 Y1 @2 A代码:1 _' |+ T' c4 O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 H8 R9 Q3 G* I下面插入2 R! @% [# u, M w* c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 e r/ j7 p @
/ j% o% Z, o; G然后你去/ h. R( m* w0 y( ~8 n
S& o7 r' R! ~% L
代码:( P! g9 t# ^/ ]- C- \* |
代码2 @' [' Q+ R: R. [" L4 C1 @2 S" k
BOOL TextCmd_ClearPropose( CScanner & s )' d4 s) q( {6 M& U9 C7 T- E+ v
{) v- ?. R3 W/ A$ t
#ifdef __WORLDSERVER
, R2 p9 t3 y" a+ [# d$ D; y CUser* pUser = (CUser*)s.dwValue;
6 p$ X+ Q$ _/ h+ s+ R' \3 e g_dpDBClient.SendClearPropose();' { T9 m7 Y0 ]% ^
#endif // __WORLDSERVER
, v; d5 Y3 R7 Y8 @) b H# y return TRUE;% H% e% g) \3 [; ?- j2 a; K0 B
}3 l8 r3 u# s. {; a1 `" d
下面插入
0 S4 E$ i- g* s. GBOOL TextCmd_rebirth( CScanner& scanner )% T. w( p4 f& _
{. v9 j) R* q/ t
#ifdef __WORLDSERVER
/ {6 k6 H2 M# _8 H! xCUser *pUser;
' ^: V3 j; s' dpUser = (CUser*)scanner.dwValue;
: t! Y y8 O iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). L, k: j' \* k- X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 \0 f( n) h- K5 i% G* ]2 Welse
: m9 m; t. \. e- TpUser->AddText("你还未达到重生条件!");
5 e; C8 T! D, b3 f5 }: s#endif. h, k& t1 ]+ t0 S |
return TRUE; ?+ B- }$ j9 m; Q6 _1 Z! g
} 2 j$ [9 U( Z q4 [
# _' c( ^2 o) ^1 t" C4 |& M8 F; `8 m+ {- U* k! J4 ?- G+ Z
+ W2 [4 y1 Y+ {7 W0 \1 C; Z
: u/ v0 }8 a9 N& u" M J6 N |
|