|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) r# |8 |( C( b+ y1 [5 h
5 ]% ^, g7 Z( _2 p( P7 k" aMover.h
1 z) a3 z F* J' ~2 E代码:
& F" C, W6 g0 O* I" D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ v' O! H* f- y1 f4 l0 m8 B
$ D9 k6 u0 _1 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 o! h5 `! L0 T* B' g( i
; s% y) {) g" j' W! Y然后你去mover.cpp添加
3 d9 h$ T4 ~9 N& y' ^5 N/ ~
1 o, P* z" A. c6 i3 U代码:& G8 S, C) a: C3 [! \; ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& _4 C0 s R4 v; F* B" S( |" h/ @{
' N" ~% z x- c# M! C#ifdef __WORLDSERVER
5 ?" I$ K o g // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 @5 C- r5 Y: o9 V MoverProp* pProp = GetProp();4 M4 g" E K7 t1 w( f0 M
if( pProp )+ \' W% W `) B8 F. f6 X
{* g, t, U6 d% r# u( Q" S( P2 `
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): l) L6 l' r$ e$ c; n
{
' i+ a0 r7 Z; [2 h9 D& s0 T) z" ^ AddChangeJob( nJob );% `! |% x7 [$ i0 y' q$ J/ T8 f
}else{
: L1 }/ F+ ^. P return;
' \- f* D7 F% R) k }' @1 |. ]# E( \1 |4 q
int nPoint = 0;
' n9 @: L j, P9 O! G8 {, q if( m_nJob == JOB_MERCENARY )
/ s4 E0 T7 x F8 {& i, u1 ] nPoint += 40;! s8 t" V& q8 S2 ?1 ]: ~
else if( m_nJob == JOB_ACROBAT ), S3 f+ f: i( w1 D4 a3 v& o3 O/ {1 I6 X
nPoint += 50;* E9 W: h. b8 v% f, b# Z6 d
else if( m_nJob == JOB_ASSIST )9 ^ x5 Q* Y. r) B7 f
nPoint += 60;
0 t$ p1 _$ e- a0 M3 H else if( m_nJob == JOB_MAGICIAN )1 b7 @' ?0 |$ T0 H# u( K! U! u
nPoint += 90;- C4 ?4 u, F# m w$ I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* X% r9 Y; F, D! a
nPoint += 120;
' S' M2 L( j+ x; Q* U2 u# n. U! e else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, l3 f1 ]9 A/ V nPoint += 150;
: ]* c6 W- n; ] else if( m_nJob == JOB_RINGMASTER )% u6 C% D) _6 l- a/ ~/ s
nPoint += 160;
h" ]7 [0 \. j0 c0 J9 H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 x, M3 g: |# o$ Q. w' t- ? nPoint += 180;, ~( q( ?8 ^) E: F( Z
else if( m_nJob == JOB_ELEMENTOR )
/ P9 Z0 {* E/ J, [1 _ nPoint += 390;
) w/ ~# Q' D8 I8 j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% ]# y9 p" L2 n+ p6 o+ b: y5 d
nPoint += 120;
# [! Z( i9 d% m7 `1 F3 j* c$ B4 B8 x else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 ]! C. X2 b* \% s
nPoint += 150;% c9 w5 M0 |5 Y- ~( J z2 `; S
else if( nJob == JOB_FLORIST_HERO )/ l7 S: ], | c/ _, G
nPoint += 160;
% i3 @* Y8 a( n1 o9 J2 Q: a* r else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! I1 A( D. m' |9 a4 }1 S+ N
nPoint += 180;
! K6 { [7 {) j) ]7 E) v2 H else if( nJob == JOB_ELEMENTORLORD_HERO )
* p* A. l! \5 E% F2 {' g nPoint += 390;4 p- I& s# r, f* Z
, K" N( o0 B7 W" l' g3 ]
AddSkillPoint( nPoint );
2 f6 ~7 X# G7 v6 C `9 l5 X. O m_nLevel = nLevel;
. j5 e5 V2 N: H" I7 `3 N. Z5 ]. `2 Z3 ` w
SetJobLevel( nLevel, nJob );
9 e! f3 h W2 E( R, a/ r% d3 } m_nDeathLevel = nLevel;
( m% ^9 t- E3 k: B+ m#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ t$ L1 j: X( z8 }
if(IsMaster())( }# z0 N( P( A3 ^3 |. a
{7 [# ~' D: U+ o4 m4 N0 w- C, Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" J. d+ U, u" W( ?! |6 B+ ~1 l# ~& m if( nLevel > 59 && nLevel < 72 )
* D0 Q3 |) M" e dwTmpSkLevel = 1;% o4 }/ W" b0 G6 V) p Y$ {7 D
else if( nLevel > 71 && nLevel < 84 )! E) L, \/ _6 t% q
dwTmpSkLevel = 2;
, L, y0 [9 G5 z6 x" V else if( nLevel > 83 && nLevel < 96 )
, G+ Y& ~& M9 t4 \* b dwTmpSkLevel = 3;& Q5 q- u( j% V ?) ]
else if( nLevel > 95 && nLevel < 108 )
" A" S4 K, Z3 V dwTmpSkLevel = 4;
, Z# a0 w2 P6 {' d; G$ u, n, A8 q else if( nLevel > 107 && nLevel < 120 )
7 y% [+ S# G( U1 k dwTmpSkLevel = 5;
" S8 h: G0 L# e2 P for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 P3 s! r/ r3 H, L {
6 T$ k0 Y4 |3 O LPSKILL lpSkill = &(m_aJobSkill);% H5 O6 l$ @) Y- F. G" l% ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: U' S- o7 l8 y+ @6 w: h4 r {2 n% {/ W5 j7 m6 {4 H1 e* k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 F2 ]2 q7 P0 O5 J
if( pSkillProp == NULL )4 _/ h7 _0 J2 {9 J/ ]
continue;
% d) g! N. ?) [( w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* E* x# x7 a1 z9 C! i9 G( u
continue;* o7 ?" ?* j( ~: Q) W+ {+ T9 R
lpSkill->dwLevel = dwTmpSkLevel;4 P- |: `% ]5 }- n0 D5 ]! `
}
2 A6 k8 H f! M6 r3 w8 ~7 f }
& C1 p" h' \8 T1 E3 b }
6 R+ o. `( K' d else if(IsHero()); X N' H* C5 Z/ N6 A
{
# p4 o6 |! K+ w, T; W for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' M4 G* T1 N9 y ?% ]* R$ M
{
2 i2 S( x4 R8 ^) N4 O) L LPSKILL lpSkill = &(m_aJobSkill);
7 N3 k, M0 h9 h6 O if( lpSkill && lpSkill->dwSkill != NULL_ID )) a! o9 M& q( N8 `+ F
{0 w& {* @$ u: h* w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# V9 r; n" \9 y7 z0 ~/ j0 F& A if( pSkillProp == NULL )& _$ s6 g# N H
continue;) G9 E3 |# n( b% H- f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( m" ?- @0 t- O. ~9 A* z& f8 v( O continue;/ s& U/ Y% J0 O+ q
lpSkill->dwLevel = 5;7 p" i7 c$ ?* j) C1 S* j
}
- m5 w1 | n+ s }- b+ {# j- V% V# D) F+ T
}8 N4 _$ D5 v: {3 B
else if(IsLegendHero())
: e+ Z' S$ C0 j {% {4 X. p9 k( r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 R/ f! ^( r8 F( a {
$ Z. ~7 F# J9 e/ R LPSKILL lpSkill = &(m_aJobSkill);
/ G' ~! \, f5 ?9 h0 J if( lpSkill && lpSkill->dwSkill != NULL_ID )* ]7 n3 t. ^ m/ A# q
{
: d6 ?& n- L r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* Y: [4 b3 B5 d/ D5 o if( pSkillProp == NULL )
' B$ u7 m" m* ?& O! T continue;
0 X1 G- }$ {3 _# R. s, ?* o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. _1 J$ }4 P, ?: ?* _ continue;
6 N% I! l. a2 w, D4 k) x1 @ H lpSkill->dwLevel = 5;
- T3 {* X$ b; n6 `( ~- T9 T }
4 f! c6 {# P! U8 }( I8 m; u }
$ u, X! f* k& l1 I! a; P* E }
8 ?8 N6 V7 |% Y; ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 g; l9 A9 X/ v if( bGamma )* s* q, i f' r/ P8 u) F2 Q
{
. s( ^0 U) @' k& R9 s- F3 h m_nExp1 = 0;
! z; Q* i1 O g; d/ F }# z: ], ?" i0 p) ?9 h# b
6 a" T" S; S1 I; l ( (CUser*)this )->AddSetChangeJob( nJob );- u+ R2 Y8 v( d7 {, t9 ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 s6 [: ]: o* Y7 s: o2 d* }
; D# P: V9 `( p0 ~5 k1 I
3 x& p! ?$ _' ?, V) l" p2 V
#if __VER >= 11 // __SYS_PLAYER_DATA
4 A3 z. [9 B2 u# ?; M+ y5 v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 W# o$ g7 W) H* @% O#else // __SYS_PLAYER_DATA/ e4 K9 y# E, \5 h+ q( K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, w& [9 m e+ K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" A7 {0 p/ r6 A& t! {
if( m_idGuild != 0 )
) I0 R5 J! ^/ ]$ i3 M$ Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! ~; |1 v2 T9 X7 U) L/ m) `#endif // __SYS_PLAYER_DATA3 U2 s6 e. I' h: _% A
SetHitPoint( GetMaxHitPoint() );& L" R5 w6 @7 O% o
SetManaPoint( GetMaxManaPoint() );
- f j0 f' H$ }8 P6 L# v9 z SetFatiguePoint( GetMaxFatiguePoint() );1 R- R1 p: C4 s
if( nJob >= 1 && nJob <= 4 )$ K4 e7 h! G K% M- d& @. u7 T
{
$ F+ ?9 K }( r6 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
* C- B9 E t5 ` m_nRemainGP = 28;
; G- S2 v9 M5 V- L& w/ H" N }1 R* r& `0 }! t2 P8 N. y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 h- Y! U, E/ t% u4 e# c- L: T7 l
{
* P" R2 o& p2 e m_nRemainGP = 118;
# I% C9 B( y/ ~/ f d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: u/ N9 P+ E: X: f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 R4 z+ ^1 ~4 {" p2 B( U }
+ x4 {" u! |, m, M4 V7 j d if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" R% y& X9 k1 b: \& ~
{
- q% q& X' C, v CItemElem itemelem;
! h1 v6 W4 H9 j8 {( Y5 l: s itemelem.m_nItemNum = 1;
' X, q0 I; O" Y- E itemelem.m_bCharged = TRUE;
2 C$ r4 `' X# G6 k1 W3 L BYTE nID; `4 ?) g+ b9 P+ i5 M
% Q6 n U8 W7 r6 c( t% X1 [
if( nJob == JOB_MENTALIST_HERO )6 @. ?% v: R+ M+ y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) Z+ S; g" |' c# i+ U: e8 ]. f
if( nJob == JOB_FORCEMASTER_HERO )* y" ~4 @! I5 q/ {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ ^$ A% q: U# Z H& H9 H
. o; a" V% ]- ^5 x ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 f0 a$ [8 f! z
}
8 V A* [1 c0 @* ^ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; u+ B a% V( A6 c; H
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 ~6 _1 ?0 ~" ^, w+ }. I$ j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, ^3 i. j- y1 r U$ P
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ z1 l0 c* A& g. W) X: X2 Y' y; z
( (CUser*)this )->AddTaskBar();*/
+ Q. J, }( b! R3 P; n. f* o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 u6 W% j' x, Y* E' B- I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% C1 B9 q L5 c, z( ]: x! @$ F
((CUser*)this)->CheckHonorStat();0 I5 I u8 y( a6 T% ]3 |" |
((CUser*)this)->AddHonorListAck();
) ?) R# n Q- X; \7 Q" z g_UserMng.AddHonorTitleChange( this, m_nHonor);
& N* m a8 Z6 F- j" x+ l#endif // __HONORABLE_TITLE // ′Tà?
; w9 [* I. ^9 _( e# p- I, l$ b* F }
8 _- [- R8 U3 u$ A2 k' G. A7 @& C#endif // __WORLDSERVER
% Z9 T( B! B. T' S}
9 k/ \5 z+ q- b
$ ~( \* ?% Y! n) e" G! ~+ _$ H然后你进入functextcmd.cpp并添加以下
) _; F$ d( ]/ q! i# b9 U7 S$ L+ u. `3 }6 E
代码:
" K- M9 _. G$ W, _( K2 G6 x- aON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 G0 u5 n6 C0 n0 M6 u; T3 M
下面插入
# a2 p1 y: w/ o2 c7 }5 m' k4 kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 J+ Q6 {) J1 D+ j: \' w) a1 Z0 H
1 l2 a. B5 _% ^7 O然后你去
" [ k' ]& M, \0 T9 `( |
4 ^+ W0 w) J$ J& M0 W! |+ K4 S代码:( ^) N1 k( H+ E3 M- J4 u
代码, A& B! o8 C! c) {
BOOL TextCmd_ClearPropose( CScanner & s )4 D; I* Y+ Y% J! u. P; {
{% W: R" q$ f3 D$ s8 g0 n! N
#ifdef __WORLDSERVER+ B0 O. E+ T9 Z$ H0 z0 q. i
CUser* pUser = (CUser*)s.dwValue;6 n( }& M2 O% K
g_dpDBClient.SendClearPropose();: @: a) N2 N4 R6 e! F
#endif // __WORLDSERVER
/ a5 k3 f; T5 r2 {0 P return TRUE;
/ p9 y% {# p. p# k' [1 |}. M3 ^$ `- O6 d2 \2 s- O2 T
下面插入9 N! Z6 n. g7 f2 {% R
BOOL TextCmd_rebirth( CScanner& scanner )
z3 S4 h8 [" m+ ~# w{
4 E) H, y$ A! Y+ e' `#ifdef __WORLDSERVER
; u, H8 b2 N: S& o6 g9 e2 bCUser *pUser;. g3 X( r5 ?8 D% K
pUser = (CUser*)scanner.dwValue;
( B; D3 i' X7 V0 Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) \/ A) F3 ]2 I) X+ G; m% v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* P F9 t1 P6 x; O' l! Oelse6 @1 _: R1 l8 i' j) h$ w
pUser->AddText("你还未达到重生条件!");
! ^7 `8 u) I% P% t4 a5 k! j#endif
7 X2 Q. A7 o2 J/ E) H L- [. R# xreturn TRUE;
- l' w/ M& C4 [- k6 l' G& O}
J5 E$ Z" n0 c
( A" M5 C+ V$ i( v4 G* `. x5 I4 k/ J
0 L1 L: J8 i2 R1 L% G% D6 o0 G+ E y7 F) S
! O5 z+ w+ ^! J7 Q
|
|