|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, `. ]3 H" Q; v
0 O* _' M! Q. N! n$ ~; Z
Mover.h
( A; X! ^: @' e- M, n( P代码:$ W: L, J6 ]4 Z ?" |& k) E, G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 o" J* T; z9 q3 ^: T% T4 A% J8 o# S' J6 [2 a/ i/ Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 l& z2 N( {) k. k9 M; a: \
3 M, |( C- `+ q
然后你去mover.cpp添加
9 l) i: h9 _" {, F6 q- ~3 Q0 r4 R9 O7 s4 @
代码:
6 y. r$ }0 Z% p. W' z9 a& Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- H8 J) d/ `& \. S) L) Z9 c) f{" m, m$ {, r% G# O
#ifdef __WORLDSERVER t- e( g5 k) O( a, s6 ^2 r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 u, b; [' p) z2 a6 ^2 ^& A6 I/ ~
MoverProp* pProp = GetProp(); F: g: D- R$ ^
if( pProp )1 x9 `9 a* M8 V9 z) S/ Y& D) U' L
{
& K- T9 x) V) V: O4 F6 b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 }* ?) [4 u! ^% C+ b& } {
4 @8 ^* d' D7 d- g AddChangeJob( nJob );6 l/ }& u4 t0 C/ a
}else{4 S( ^7 b) l! x4 }' C
return;
# k/ ?, Z6 W2 C }% p, ^0 L8 [4 {
int nPoint = 0;
' d8 Q9 u5 h9 y$ h if( m_nJob == JOB_MERCENARY )+ p$ d3 {# T4 Q' j' C: f0 e9 l
nPoint += 40;
/ {4 B1 O1 Z& g8 S else if( m_nJob == JOB_ACROBAT ). c( p) _3 q' |8 S
nPoint += 50;
7 F/ q! s" X% d; a# B1 P6 s else if( m_nJob == JOB_ASSIST )
+ x' X/ X% E- m% k: D. h. m) @ nPoint += 60;
4 H9 g7 v) l6 T# p k) C3 L else if( m_nJob == JOB_MAGICIAN )
) m" s; E2 d# ?1 \& p! ?8 j K2 P/ O nPoint += 90;* E1 X. u# r9 t/ U7 y/ m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ S" e6 t5 b0 j4 o1 L nPoint += 120;% r* l% a' o) \* [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 a4 \# A* W6 ]5 P7 D- [6 M7 j
nPoint += 150;
' b/ t4 b9 l0 L: ~2 l0 O else if( m_nJob == JOB_RINGMASTER )5 z/ N1 V, Y' j7 M9 R$ W( R+ R
nPoint += 160;' ]1 ~; c9 s; D; W9 s* B
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) [- ^; |$ |- | l) a nPoint += 180;' M% G3 \' Y1 I; H! l# t! |
else if( m_nJob == JOB_ELEMENTOR )2 s: x# F/ p4 h; c7 F! b
nPoint += 390;0 V' a8 M! ~* Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ W/ [9 Y; J1 v6 n; o
nPoint += 120;5 M" m O; N9 t: c8 P3 d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* |( y3 Y3 `, y" S, H1 M2 [3 e/ r nPoint += 150;) q, j* w" ]- _0 i" G
else if( nJob == JOB_FLORIST_HERO )
1 a4 a" r b" L4 X2 } I0 w nPoint += 160;
/ Q6 A" d7 Y! Q; Q1 x else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) }* J1 g4 x) D' a# P# i nPoint += 180;( e l: @9 C+ z8 f1 V* N8 a
else if( nJob == JOB_ELEMENTORLORD_HERO )- z4 }/ Y( {9 Y) u% E* L# Y5 d
nPoint += 390;
9 @* p4 x: p6 `8 D5 c' b3 p7 h& ^3 K& i# L. {0 N/ A
AddSkillPoint( nPoint );" w4 B* a6 `& P) F
m_nLevel = nLevel;# k7 n* c; z' t& W
- D7 l$ C+ C: `' X/ O
SetJobLevel( nLevel, nJob );
1 m) S4 f' Q, e( S" I m_nDeathLevel = nLevel;5 @) }( E& ?4 c b# T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# i1 W$ C2 `+ U1 G) e* q7 M
if(IsMaster())" w$ d, X" B9 R/ X& M
{( G6 N0 I/ D' t& B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- J; {9 g4 B6 Y9 v
if( nLevel > 59 && nLevel < 72 )
+ M1 n0 k. j7 Z) V0 I! u dwTmpSkLevel = 1;
! h+ o; ?' I8 O8 H- W else if( nLevel > 71 && nLevel < 84 )
0 ^: {& K+ i' r# b2 J5 r; S dwTmpSkLevel = 2;
- z3 H9 f1 `# G' f6 f" m else if( nLevel > 83 && nLevel < 96 )
" J/ C3 c8 x& ]- T, W dwTmpSkLevel = 3;0 J6 d& b* x! m$ @6 |9 B8 f& W
else if( nLevel > 95 && nLevel < 108 )0 \1 ~! `. q( s! V5 d M1 l$ H, O
dwTmpSkLevel = 4;
- @" }- j b0 }9 G else if( nLevel > 107 && nLevel < 120 )) K* J2 j3 j+ G6 x" D
dwTmpSkLevel = 5;' |- C+ E3 o$ J& D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ d3 U' p6 G% j# l9 @, ]1 w {
( H5 a" Y; `! n9 D LPSKILL lpSkill = &(m_aJobSkill);
, j6 m& `& J5 M4 U; r f6 z if( lpSkill && lpSkill->dwSkill != NULL_ID )$ b6 Y1 E0 J2 i7 k
{7 ]) F4 {: O5 b$ ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 ?" J* Z" Q( x' _# k
if( pSkillProp == NULL )8 r) ^2 m0 p& n6 u5 z
continue;
% T0 h: ]! t4 [, g* F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 d' U/ v4 e; ?' q. B3 Y% L+ a Q continue;8 x' ]9 h8 Z/ n0 M5 H
lpSkill->dwLevel = dwTmpSkLevel;
# d2 d- D, u4 `! H } d& `, F; m7 S9 Z' G: J
}
" [* p$ p; q4 z) h0 a9 m/ R- w. ` }1 v$ U- c. h6 N Q* k" R1 n! D& ~
else if(IsHero())
- g/ O( b1 |; a/ M {; n( j9 ?- ~$ l: _+ R! _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 b. G+ w2 O, N/ Y7 `' ] {
) N2 Y4 I! ?% q$ Z/ R; s7 t4 v LPSKILL lpSkill = &(m_aJobSkill);
& K% |/ h9 {7 s5 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 r; I8 i" d( |4 M {
7 ~. M8 b# y( V9 U0 P% \6 \9 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 O4 G7 W" E( j( O9 U6 \+ u. Q
if( pSkillProp == NULL )
0 C+ h2 D! s; g o( E% G continue;! s: J7 j5 m, l e7 @1 o. u3 G- s0 h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): [# T% f) c* j7 B# q+ b
continue;( k6 J" t' |5 I8 ]9 Z
lpSkill->dwLevel = 5;: Q7 h8 M; K# ^
}- q& V r+ w( t+ p
}% y/ C0 @9 ~- s( G& L4 q
}
^/ W: x7 G' ]5 B& W# [ else if(IsLegendHero())
/ U0 @, h* C+ e {2 G }9 W2 z9 f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 F0 a2 o; v- `: G: a. ~ { & U: N6 x% s3 L9 y
LPSKILL lpSkill = &(m_aJobSkill);/ d; M4 s' @ K4 ?: G k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 C! N/ J3 W7 v6 N; d" h' H {4 s( O" V" P2 [/ D$ N2 T6 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: Z% ]4 @! G, m* _ if( pSkillProp == NULL )0 {- r9 `; A3 F2 j
continue;! ?4 `3 c& Y9 w x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! x( I& ~; i. i% m: K) @ continue;
* a* h. U& h, m1 _, I! d lpSkill->dwLevel = 5;
: ^6 L: X- M; y! f% J( L" I }
+ X7 X, i. K2 l$ l% F* z4 R+ N }
f7 G7 h o* s5 P }) R# k- x& w/ D8 K, g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 ?5 A' m+ b O1 f- A2 [, ]$ a
if( bGamma )
* s6 [* n9 Q$ ]5 y2 J* G: [+ Q. N+ Q' G {
4 m* p8 n5 A) n. t m_nExp1 = 0;
8 D; Q3 l( z6 @8 D1 N }
1 p$ Y: S+ {2 t/ j5 x* _0 _/ q/ n: J2 _$ G
( (CUser*)this )->AddSetChangeJob( nJob );- C, d9 j2 Z, Q, C) I1 I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 ?4 M1 P% c) U/ d' w
) W$ G9 c7 l/ a2 J- O8 H8 J
6 B% T6 r6 m6 p0 p" m% R#if __VER >= 11 // __SYS_PLAYER_DATA
5 B# P2 {" ?7 H$ c2 k) ` g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ f* _2 G- u6 l% s) _#else // __SYS_PLAYER_DATA9 |3 w9 { v8 X4 j' `* @& ?
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 `( T( ?. A$ k. ]1 u; M' y" Q' L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 s3 a, m; a' n! D Y, W
if( m_idGuild != 0 )
1 M1 w* O' @; s* I! s2 a* q+ v g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 W: E7 l( p! B) A; F#endif // __SYS_PLAYER_DATA/ [ Y' D$ C4 x: r
SetHitPoint( GetMaxHitPoint() );
* Q0 J9 x0 F) d3 A# S: V. z: h9 a SetManaPoint( GetMaxManaPoint() );
, c0 a Z! @& b$ d% k SetFatiguePoint( GetMaxFatiguePoint() );
/ q9 B# o, T- B& f if( nJob >= 1 && nJob <= 4 )
" u" ~7 d8 i6 k& g+ z, V# O {5 q7 |* N4 R! _
m_nStr = m_nSta = m_nDex = m_nInt = 15;) j, W) G/ t4 u' v7 h/ k
m_nRemainGP = 28;
/ o) _& H) g. u0 w Z$ S }
" m3 c1 q& J! y: Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 b7 n1 V. w# Z h8 M p {0 d* E4 G( a# D' F8 A6 b
m_nRemainGP = 118;
: q" h( w9 E1 {7 E0 H+ ^2 r! B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 p" a9 ^/ T( w' P
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 L8 ~ w s7 v; Q' F0 H8 o8 t0 B3 k
}& L; U* z. C# ]* E* I* ^, X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 W4 p; ^# s% W+ f& i) y {9 r+ l8 b0 }/ G, j( O
CItemElem itemelem;
/ \+ B$ r. |6 v8 O5 Q& _, v itemelem.m_nItemNum = 1;
" N; y8 N9 [7 }; \ itemelem.m_bCharged = TRUE;
9 R! ^. {, y3 G, h8 @; x BYTE nID;
$ \( d* `5 s' r1 e7 {2 N* @* S- L+ y
if( nJob == JOB_MENTALIST_HERO )
6 p9 |2 ^: z- |$ W/ X& @/ Q6 |6 w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% r' s5 h2 v* X% } O- A
if( nJob == JOB_FORCEMASTER_HERO )
, f6 X j' f4 e$ d9 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* ]; k; z4 |% \3 s' K+ w/ V
0 _# C: A7 h1 \# i- q
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 |0 {0 y, I) b9 z/ w
}
/ T1 |# q& G( R3 W* U" s- j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# X4 b/ V$ h5 S$ u' F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! ^9 _6 d7 h3 V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. o( h9 e8 V1 i% x1 ^. O! p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, t* ?' V+ P4 d6 ?; u% q8 `' P$ b ( (CUser*)this )->AddTaskBar();*/
, X4 H; E# g+ V7 Q5 J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" d7 j; V! @/ ` W1 ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ x% ?* p: i' z3 f+ S0 B0 N; Q
((CUser*)this)->CheckHonorStat();* d! Q) U% M2 {1 h X3 ]
((CUser*)this)->AddHonorListAck();
8 P6 i: S" |* @4 D g_UserMng.AddHonorTitleChange( this, m_nHonor);
# G3 S7 P7 _8 Y0 b* k: _#endif // __HONORABLE_TITLE // ′Tà?
0 V. \# a( ]/ s3 S8 y }
" }) p% }& |) R# `) n: H#endif // __WORLDSERVER6 Z u3 [2 K+ g. @
} % ?2 A) t4 I- ~& G @/ P: w
) v) K: T( S' F8 W0 B
然后你进入functextcmd.cpp并添加以下0 b( o$ G9 v- ~0 E4 ~$ K6 Z' U
0 n( e' J0 m, V+ N1 H% t代码:, I6 U" p, I* d) e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 {. ~) k% k" U: U2 `下面插入; F: M& t+ _! B% v( B
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 P1 I! a( N5 i* u' J; u! l1 D4 c% v
# V) d: @' Q8 u7 x$ q! p然后你去
8 u. O* E$ c9 h" G0 J5 L% ~) @
+ j0 E# L7 b$ U% i3 P代码:% [( Y( S* _9 x! g
代码- s, M2 p9 l, x( }# ~8 b. |. _) M
BOOL TextCmd_ClearPropose( CScanner & s )4 A P6 L q% {. j
{
% j: v. E( B" l2 a4 }0 j#ifdef __WORLDSERVER' P2 Q, p; L+ y8 u/ p5 u
CUser* pUser = (CUser*)s.dwValue;6 H0 ]. f; z) V: V( v
g_dpDBClient.SendClearPropose();
0 f8 F& ]( H8 D2 A% o9 u9 C#endif // __WORLDSERVER2 J" I; ?7 J% r; Z# U; Y& p
return TRUE;
: A' H9 M$ c( O; D& _4 M5 k4 b/ l}4 D0 o5 R' c2 y
下面插入0 w7 u$ `& j7 |' Z) |/ a
BOOL TextCmd_rebirth( CScanner& scanner )
" S" e" c. S9 Z7 Z7 j{% [; R* w6 {0 m6 G
#ifdef __WORLDSERVER' Q/ K! e, v" p- s" @7 `
CUser *pUser;' B$ g {( Y( B0 z, S5 X% t
pUser = (CUser*)scanner.dwValue;6 f1 L$ x( g. f, }9 u! {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 j, k2 N* D) L/ c
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; \" i1 L" ]: e l9 k3 \
else/ J( t9 N8 C! k) @
pUser->AddText("你还未达到重生条件!");
% W0 W6 r4 x; r/ t#endif, T4 d! R' Z0 T% `$ p2 b' i" u
return TRUE;
% R8 p6 ?( o( o/ d2 q( R} ( d, S7 Q) q8 ^6 J
. w# f/ e4 ]( T/ ?! ]5 _
9 c* J5 _2 I j- l# b7 j
@* n5 _- N" `6 |( \1 A% P! L
2 ~9 |+ i1 w9 g( K* }6 d1 a" X7 I |
|