|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ j" q3 _2 z* F- v' d5 F# A- b) ?, N U
Mover.h
9 r# Z# ~$ e" v2 k, n代码:& U7 J3 @# q+ {- i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. r7 W* V3 }' [; e. u) `6 H1 N6 k6 s$ t" k6 z) @) V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ T) S" M* z/ |. U) v+ c# O* |! E5 k0 n* b, A+ U: U
然后你去mover.cpp添加
6 X1 ~1 i! c: w( L* ^ u
) u$ Q ^& w* H' ^; A0 ]代码:+ O( Y2 f+ A# P/ f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* ~" w- G, f9 k- Y8 G
{
/ }" R' ^, Y* [#ifdef __WORLDSERVER
/ F5 d6 g1 d7 [: b4 \( N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" @% h& M' @! m K2 C$ _ MoverProp* pProp = GetProp();
, U/ Y- A7 D# z2 W I; { if( pProp )& O. P! I; s/ [7 b$ a8 V
{/ a( G9 ~0 `- E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' |* D* t2 i1 K7 I1 B4 I
{* [" ?) _% B' h! E3 b
AddChangeJob( nJob ); K7 ^: }7 V& D
}else{8 _& |7 G G) a
return;2 F* Z$ d* J3 Y! l7 t4 Q! B3 P
}
3 z% b8 `: J# n int nPoint = 0;
! i ~/ \! }2 k, C if( m_nJob == JOB_MERCENARY ), l; H6 `- G) W/ v, R$ ]7 p
nPoint += 40;7 V* f# ]! D! ?; j6 Q! z. N
else if( m_nJob == JOB_ACROBAT )
! x8 ~0 r7 M8 s5 n& \ nPoint += 50;
i& K# b2 n+ i8 a" Y else if( m_nJob == JOB_ASSIST )- \3 d' L% t. l$ Z- O4 l' Q
nPoint += 60;
0 M; T( ^( `8 s+ O5 J2 V9 H+ k else if( m_nJob == JOB_MAGICIAN )
9 M, }( L0 r. Z; m9 |5 ~& ^9 m! y nPoint += 90;
# S" s0 q( U0 T2 I% h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" c" @3 a3 k+ I8 f, n4 c/ a& Y% r. q
nPoint += 120;: r# e4 h9 } T/ v9 p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): U9 J. x5 m/ m/ `7 B( n4 d% g
nPoint += 150;
1 D* G: n3 X0 G' Y6 `9 D else if( m_nJob == JOB_RINGMASTER )4 g" C) e+ A- j
nPoint += 160;
4 Y' Y" R9 L( i. c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 D2 ]2 G0 `% B# D% y5 ~
nPoint += 180;
H' E4 p. s2 R* Y4 j* X4 O else if( m_nJob == JOB_ELEMENTOR )3 t; K. C }3 ^$ D
nPoint += 390;
! i! o' P+ x3 ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& z- w- N: u# |. \2 F) |# F
nPoint += 120;
5 s! `! N b% S, G* j else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) I- ?+ _* h: Y4 j! f5 m) T
nPoint += 150;
( g, I6 N }+ e: {4 b3 Q$ n else if( nJob == JOB_FLORIST_HERO )
: Q1 @# X5 L- K8 ? nPoint += 160;( T, A9 K+ I7 v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 Q& Y8 [5 T, B
nPoint += 180;
: D& c' k- A5 r4 o, a% D else if( nJob == JOB_ELEMENTORLORD_HERO )( v, ~/ \+ Z8 u( t# i
nPoint += 390;
9 {7 B3 [# H/ w' S2 q4 Z: a# F) B6 i* {( O# Y! {3 r$ C/ R
AddSkillPoint( nPoint );
0 {5 P% f" T! r0 `) {. j& C$ \; g m_nLevel = nLevel;
( ?, L' E5 M+ d3 q# J( U. \9 \4 h$ s. A' _ @' h, l
SetJobLevel( nLevel, nJob );
3 K- ~" Y5 }) ^" {- N m_nDeathLevel = nLevel;
# }. u7 Z1 h& Q& P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- b3 P/ t. B! ^0 q
if(IsMaster())
/ V4 u4 v. B7 E6 ^" o; B {" H9 U& H/ V3 B! Z+ f2 D: U9 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ I" A5 ?8 t8 c% [
if( nLevel > 59 && nLevel < 72 )! _/ q4 k* r8 v/ C) M0 ^
dwTmpSkLevel = 1;
0 D3 ]/ Y+ L' f9 Q: k% @6 } else if( nLevel > 71 && nLevel < 84 )
1 x+ x$ a7 o( j6 U1 v' X dwTmpSkLevel = 2;
) Z: k) Q& U% }1 r/ W4 x T0 P1 K5 a8 H else if( nLevel > 83 && nLevel < 96 )
0 R: f y$ d" n; B/ t: ~ dwTmpSkLevel = 3;$ @) ?% c4 X g+ U6 }% `
else if( nLevel > 95 && nLevel < 108 )0 f6 I* Z- N1 M* J- H6 [3 \
dwTmpSkLevel = 4;
( g" z2 p2 B' u1 A, k( ? else if( nLevel > 107 && nLevel < 120 )4 D- U4 w9 z1 Q/ {2 a% o) Q7 g4 I T @
dwTmpSkLevel = 5;
& g) K9 ?; T$ l5 C+ l& i for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ J# V5 X: @" x4 e+ `: K- O$ M
{
) W8 h6 ^# @6 B; P LPSKILL lpSkill = &(m_aJobSkill);
( O$ n" \5 w% |; @0 [8 U3 ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 {0 J* h* q, e3 t" h7 |& M( ` {
1 X5 S9 ^% h7 c2 ^9 I0 G+ {9 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 Z9 P: P+ g" _
if( pSkillProp == NULL )
; V- {( ^1 d) W, h$ N( v ~ continue;
2 S) o/ e3 b9 G) T2 e0 A& C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ]( |- [/ h" M. v% t7 _0 M continue;, a( L- Z0 ?6 M0 W+ [+ ~( X* z9 Z+ m: K
lpSkill->dwLevel = dwTmpSkLevel;/ ]# J- ]! H6 Z
}
: e$ K- o/ p" G) j }
+ N _- [& S+ C1 O }
7 Z- L/ i& t' {4 c! q else if(IsHero())+ d$ k' S8 [% B
{! q: Q5 M0 o) }- G o) V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + U7 I9 G9 K& E t9 A4 W5 x
{ * ?% [' ]* w4 R4 r
LPSKILL lpSkill = &(m_aJobSkill);
6 W6 T+ U: Z% U8 W if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ _( c# a& P% P {
5 B& A! u+ s/ p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : u2 n" b) X9 b; [ ^
if( pSkillProp == NULL )- H4 n% Y, I8 [; W1 X# ^
continue;
9 n: d+ P0 h0 x* y+ _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# c" Z& j" \, x- v" t- A A; H$ _0 R
continue;
. |& u2 g% M! V lpSkill->dwLevel = 5;" O9 |' M! G! c* w; t
}! _0 M; F! f2 b1 H8 U: p
}( S$ u: z. d& k- @' b
}
( D, ^& V/ i: R6 g else if(IsLegendHero())- \" h0 o. E" o1 A0 D/ z5 z
{
5 W" ?% |6 ]5 a/ W: `& G# R3 t for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 ^& [' r7 T$ Z3 X7 p6 @ { 2 ]2 ]+ ^! v/ c
LPSKILL lpSkill = &(m_aJobSkill);
5 r a u5 L/ F' ]2 H: s if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 F* P5 o, P- F {/ s& M. J6 g! `4 w/ ^8 s. [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 {1 }8 f4 ?" c/ a- r% N9 O+ Y if( pSkillProp == NULL )" T4 N+ A: o0 P; R) ~8 ~; k' Z
continue;6 A T; U( \* \4 g8 u+ _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% h& y8 E9 `, Z0 A
continue;( m* Q& Q& y: b' Y z+ c$ [- H% {+ X: u
lpSkill->dwLevel = 5;4 y* ~1 w4 n, i7 h% a
}' y9 A! o! [0 w, c/ B
}
8 B8 S* |9 Y' y4 i9 _ }0 d) X% @3 |$ m. q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' Q) a2 C( [9 |, i9 C0 r- ?9 ?
if( bGamma )
g, `: E7 A3 B! v& w {
8 y5 M {0 k% G. p q v m_nExp1 = 0;, [; c- R( `" l; k& ]) Q
}
4 s* s- {( c' `9 c5 X
1 \+ }' R% |1 g% ]; u ( (CUser*)this )->AddSetChangeJob( nJob );/ ?# F& o6 U& c. R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# k+ |' Y. g) {9 G# d# \5 ?+ j# b" |) Q. Z, ~) K d H
! w+ q+ A! c) _* `1 B* O#if __VER >= 11 // __SYS_PLAYER_DATA
+ S7 b% M2 D& s8 n# H, H+ Y7 m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. I- N6 O% @; y8 K
#else // __SYS_PLAYER_DATA
- A8 M/ I( f4 t; x: M( t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 X+ ?& U$ ^) f8 V! q6 c |' u$ s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; Y" A0 `" K4 r! L7 y# C: t1 Y
if( m_idGuild != 0 )
( F W' [; v6 [2 _+ h% c4 M g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 y+ j' P8 T6 c5 j#endif // __SYS_PLAYER_DATA
8 J% X7 |2 X- F. M SetHitPoint( GetMaxHitPoint() );- i, Y9 e; y' u5 g; ?7 j8 K0 G; K) _
SetManaPoint( GetMaxManaPoint() );8 ^, B- O7 [: k! C( [' Y
SetFatiguePoint( GetMaxFatiguePoint() );% F# m4 h" ^2 o; y }
if( nJob >= 1 && nJob <= 4 ); w/ h' \/ S3 j w h
{- u8 F5 f1 E4 X j
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ |. B4 J6 {9 ]! M4 b
m_nRemainGP = 28;
2 E. @" m+ B0 e) F+ Q) g/ M }; R/ K s" D2 j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 L3 C$ s8 ~; G
{
& Q, k7 t$ k8 _2 y' F" U m_nRemainGP = 118;
9 o* M1 R1 ]! m //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" X) L/ }( K) L2 x1 `1 P m_nStr = m_nSta = m_nDex = m_nInt = 15;
( s0 ^* A2 e% ^; U$ }7 j7 z9 o, {6 z, x }7 Q- L% a/ v0 q$ m# z) Z$ K! c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 ^0 O/ C! g. \" G5 {2 h {, R( A7 d) z! G. a4 ^
CItemElem itemelem;
4 D) S6 ^- }7 O itemelem.m_nItemNum = 1;
7 U, Y4 |* q2 F: O% W itemelem.m_bCharged = TRUE;
/ r+ a- a! j' S x BYTE nID;- r; V, G9 S4 \0 }& o
0 m/ C, E. ]0 V. c+ L* O
if( nJob == JOB_MENTALIST_HERO )
/ I0 j* }7 P5 E# a) h; v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ v, a& F1 n/ E; s( Y if( nJob == JOB_FORCEMASTER_HERO )) N$ u* s4 p: B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# ^( l' ^% ^$ ^# T( k. n
0 p0 o5 y0 R# r7 l; X ( ( CUser*)this)->CreateItem( &itemelem, &nID );! r" p% M' A/ I/ y, a
}
1 i- x6 |, ` n# y! }) v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. N K7 R" [+ O- s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' p1 U+ a: o) M6 S/ f- f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 j- I0 u# N, Z/ F. F L0 g /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 C+ J- k4 _3 t7 ]0 k% J ( (CUser*)this )->AddTaskBar();*/; r- o* M% x# L3 t
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, ^2 [. P0 d3 j# a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! u( w2 j: a' \) q
((CUser*)this)->CheckHonorStat();+ h {% @4 Y) x; K9 ?
((CUser*)this)->AddHonorListAck();( j, s" Y7 z, x. P( L2 a
g_UserMng.AddHonorTitleChange( this, m_nHonor);4 Y: p* C" W/ j" }
#endif // __HONORABLE_TITLE // ′Tà?1 m8 e! G, s! I; \, j
}2 J. B3 W$ t$ `1 @
#endif // __WORLDSERVER8 Z8 Z5 j! |9 g& t
}
6 b. F7 r: }5 {9 C0 r: X# u" e
- R, k% Q3 Z# n4 K然后你进入functextcmd.cpp并添加以下6 a% W( U3 t$ s* a( _4 ]9 h
9 Y) Z9 k3 H: r6 `# b- q$ }
代码:
8 |2 N- ]7 u. `9 FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) A5 c( ?7 S! k8 S& u
下面插入
( h+ Y* _! l4 L. y6 U, g4 X. HON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 k9 ]7 r# T- ]' z
, N7 t: u# Y, J然后你去2 i6 c8 E: ^: e" ?' y- F
$ ^% H; |' \: P% p
代码:2 E; `' m6 c+ K& P( _
代码
8 b5 V3 j8 t9 A8 o. [) qBOOL TextCmd_ClearPropose( CScanner & s )
! |4 C; N0 ?% X7 k6 [1 [6 h{
2 D* E; u3 g/ x#ifdef __WORLDSERVER; m9 ^" ?2 g S) `5 E) Q3 L2 n
CUser* pUser = (CUser*)s.dwValue;" y9 n" u3 D9 s, g- b6 d7 B
g_dpDBClient.SendClearPropose();9 W! ?2 C3 R2 N! b! i( R3 s
#endif // __WORLDSERVER& i) Q h9 U7 P% m7 b# K; ?. r3 o
return TRUE;
; I. w" x: y$ D- a6 x o) g}
6 {6 |; r( d& Z/ }下面插入6 l4 C" W+ O! }' [% W! j4 _- q
BOOL TextCmd_rebirth( CScanner& scanner )3 A$ X, F, M9 L6 n
{2 C( [' V1 d. V8 T# M# O/ ~
#ifdef __WORLDSERVER
- h; q4 y E! W) Z2 S/ ^; A1 ~- V; TCUser *pUser;1 q n- t- d% i7 F9 c
pUser = (CUser*)scanner.dwValue; H" s3 ^/ q3 Z$ F; {2 r; @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ j2 K; F9 _" E* O, M6 b1 R% Y) P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 n& s+ _- W; c, z) q
else
3 o/ {( H: n' v8 e7 t6 B! ^5 S/ A; tpUser->AddText("你还未达到重生条件!");' S2 F+ h5 k" o+ B+ C
#endif
, D. n$ g6 g' }return TRUE;
, Q' G6 Q7 _$ U p}
0 B1 ?; B) s/ ?' z
* ~) b' s0 Z/ l: l0 J1 K( H* j; o/ F6 K$ O0 W4 u, @+ Y- Y( O' O
: }. P1 |& Y H. g: C3 c3 S# p( W9 q* j8 p' w: V5 {
|
|