|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! M0 h& B3 C8 b) y/ q
, E( ~% x% j: ~ Q. K# jMover.h
8 E. \) L- f% @6 _5 b) j# |代码:$ G* d- m. C% N' o: ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: L8 X' D1 T8 n
4 T3 B5 p% m w" }9 j/ f. A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 c# [" F. W2 r1 ^
; L1 P9 N# T- b8 G9 e7 W! u6 d
然后你去mover.cpp添加( V7 u7 U5 ^& O: d) ?
; J4 Y/ u/ h$ H, @, G* q" o
代码:
$ [7 D# q) O, U! N8 F Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* O( ?8 U* ^/ ~" N f* Q' u{
' j q% \9 e5 o# _. o# K#ifdef __WORLDSERVER, ^$ ~' ?. F' c. C M# `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. ], l+ L# l- b# \ MoverProp* pProp = GetProp();/ n" q4 l% ^( D* f" x
if( pProp )
9 n6 w, x$ x+ F3 N) B. w, Y( [ {
" |. o9 X1 @7 w if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- T {% K& Q; G F7 C! x {8 o9 @/ Q1 c! Z. a( R9 e
AddChangeJob( nJob ); ~% M }3 m5 T3 E7 P: ^1 ]- s' t1 W+ J
}else{/ a7 L7 R* }3 T# J4 U: w/ q
return;: |" g' g8 o; l# ^) ~! M8 S
}
}. {9 D& c5 \" P+ C4 B" \; q int nPoint = 0;
" U" i1 r2 x+ A4 f+ p6 R8 C2 U if( m_nJob == JOB_MERCENARY )
2 P# l: s$ I2 Z2 u, T0 a nPoint += 40;) J/ U4 A& R0 p$ D$ d# _1 ^; p5 ?9 k2 T
else if( m_nJob == JOB_ACROBAT )" N" ~, d- B* d6 H) D5 k
nPoint += 50;" P8 u( ]: F5 e3 Q0 A/ o
else if( m_nJob == JOB_ASSIST )
6 ?1 {% H: R _4 {) E* I- r! l nPoint += 60;
$ _& _! W3 [! i) _4 S% ~ else if( m_nJob == JOB_MAGICIAN )/ C. S7 t6 d' ~3 Q
nPoint += 90;7 o1 K+ o1 u( ^+ k; K2 y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 F7 M' }& {0 H
nPoint += 120;$ Z6 ~ k3 |1 i: O5 I6 d1 p5 P8 m
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. c- d3 P6 f- {5 P nPoint += 150;. C0 }3 r$ B. X# y+ }
else if( m_nJob == JOB_RINGMASTER )* j3 L* \4 R) ~3 m
nPoint += 160;
$ F: h- q6 a' M- i, d( U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# Q7 N( o0 G# R* U nPoint += 180;& Q1 J. k) J0 J/ v
else if( m_nJob == JOB_ELEMENTOR )
) n+ F- f9 Z" v: i$ m) u nPoint += 390;' z' X; W8 ^/ b. A& A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ e9 p D. O9 {, G
nPoint += 120;( y/ a. W% f2 ?7 e; ?1 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 d: D, O( b0 m2 d" x
nPoint += 150;) X7 ?- u; ]+ z+ ?" K" w
else if( nJob == JOB_FLORIST_HERO )
/ O8 m' r5 _/ t% w5 \8 k nPoint += 160;+ D z5 |6 H6 ^8 g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( F0 r( u! R2 M nPoint += 180;3 N A; h" R `" ?: F( P) F
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 j3 h" H! A5 @" }& u) H$ F nPoint += 390;
# w6 I) s' M4 {% I6 _
9 q: Z' J7 i$ i" H5 U AddSkillPoint( nPoint );6 \, ]! I0 A) j9 Q
m_nLevel = nLevel;
' `/ \' V% h- x* K* B) {& a! c9 h5 m4 f; Z- B! t
SetJobLevel( nLevel, nJob );3 C" k/ O& \9 ?
m_nDeathLevel = nLevel;
1 A- s7 T+ d8 {% x#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, E& Z0 H' {* @& W- f& r( Z2 h if(IsMaster())# @$ _. M# N% K8 j3 x1 Q1 X# q- c
{/ I! |% o" f7 G. \0 D" c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 ~2 v0 g$ G9 V9 F5 L
if( nLevel > 59 && nLevel < 72 )
9 j/ z9 Z% p: ]( {, b; t dwTmpSkLevel = 1;0 Q$ R# l& y; A% _. B
else if( nLevel > 71 && nLevel < 84 )
( b8 j; u9 {5 g$ _4 x+ H9 c/ b dwTmpSkLevel = 2;' T. x. x" k P1 ^# T
else if( nLevel > 83 && nLevel < 96 )
5 N. m# U4 ?7 Z! U dwTmpSkLevel = 3;
2 _0 C' t0 S! |2 q. J else if( nLevel > 95 && nLevel < 108 )
! h& D O7 y) O- y# n& u dwTmpSkLevel = 4;+ n/ ^# x$ Q9 S7 `* n" F& `, g; P
else if( nLevel > 107 && nLevel < 120 )
; g; O& ]' o! l5 ?: c4 \ dwTmpSkLevel = 5; y; Y! _+ g+ U% }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ O2 u8 l3 d; U- z& m { & T, }% }( m4 @6 K
LPSKILL lpSkill = &(m_aJobSkill);
/ K/ a! X4 _$ y( m v if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 c* o% ]* }2 X% Z9 y6 s {7 B$ E; E1 r( d; N: H' C" ^! [; K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * T7 U5 S) M- T* `& H7 O! k
if( pSkillProp == NULL )
# Y, R3 K$ P( i& b) [5 R( t0 S5 G& ^ continue;: c0 r8 f' S; h* R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- g" s- D7 F# V; |# H) p7 v) A continue; y* f. H' O) m$ @( f6 R* v& a1 y5 r
lpSkill->dwLevel = dwTmpSkLevel;
% o9 L, b: I8 a9 a8 L" O+ w }
' G4 m4 }" O* v5 {) r. t" A }3 \2 U8 }: I: F3 J! F
}
% r4 Q. e$ S0 Z9 }, Q2 C _ else if(IsHero())
$ M) Z- G/ X1 m4 }! W0 | {
1 H2 _" n! o' }6 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
) E9 H" P v) d3 \. M, f { / X9 C# p: ?6 V2 D3 ]: R5 U% T- [
LPSKILL lpSkill = &(m_aJobSkill);1 ]1 \" L. _4 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 X( |" ~( s( V. p {% ?% r% Y% n% S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 G+ S( n8 o; r$ @: V+ m! _
if( pSkillProp == NULL )
2 q( F% T+ K. v& h7 ^7 v* E continue;8 F3 ^3 T( @7 ~ l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" P. s( `. A5 A
continue;
; }5 q, m6 F* x4 c) E lpSkill->dwLevel = 5;
7 W0 s+ Y! ]; \, H [3 G5 h }9 v6 k3 U! [$ q
}
! p+ ^ \. z0 ^: L4 h }) G1 P4 H" P8 p0 g
else if(IsLegendHero())
/ [# V- t; }- W3 E4 @6 v$ R {+ ]4 {2 L! f/ ]9 k: B/ u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - Z* y6 ]7 c* h/ D/ e
{
c1 T# s6 Y0 Q* R/ R; G LPSKILL lpSkill = &(m_aJobSkill);
. W" M2 E) x* \9 J. Z if( lpSkill && lpSkill->dwSkill != NULL_ID ), t- ?( g8 O) ?. A; E; U# J
{: K" a( X0 G' v- h* N4 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ j+ [9 ]# ~ M$ ]+ q# n
if( pSkillProp == NULL )0 J6 _/ T8 Y. P5 K5 I
continue;
0 \/ S' r4 j) j$ e/ Z, y$ w2 ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 O1 p4 q5 g V# b4 a/ g* s7 Y continue;
/ v2 k3 t7 P' f: z7 I$ }- R lpSkill->dwLevel = 5;
% f& o6 Y1 v( Y& X9 T* ^. } }( P" u4 ?' p1 C! V0 H. W
}
6 }" Q% f( N9 U1 r. s }
1 w5 }" y1 ~2 X+ l( @# R/ s# U#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( G& f$ ?6 q z. T4 ^4 p
if( bGamma )
7 e7 v9 }# Y! P# K. M {
. ?% y% ^ z( a: u7 [- V. X m_nExp1 = 0;( f% V g1 `- f$ ^
}
3 ?. C) j/ }8 e* z1 ~8 E& E+ g9 j
( (CUser*)this )->AddSetChangeJob( nJob );& q7 K) N2 A- C. N3 e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 n8 [$ u9 |$ G1 ^
5 P# ?& L3 X0 C
* W; u7 k |+ _) Q#if __VER >= 11 // __SYS_PLAYER_DATA0 A, P7 w; L! T- _3 ~0 B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ j" _/ {8 n1 {
#else // __SYS_PLAYER_DATA) ?" E! d w W- w' x7 I& }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% s' g, `0 x! V* N g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 C% x/ [# t+ C: _) A0 u6 { if( m_idGuild != 0 )) W! b* T8 c" M* f3 r6 E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. ]+ L9 i' I" x3 V1 u#endif // __SYS_PLAYER_DATA' u n9 J& v& h9 X- q5 G
SetHitPoint( GetMaxHitPoint() );
0 E; ?# H& K2 b2 |0 b" ], I" c SetManaPoint( GetMaxManaPoint() );0 r* v# K* K7 y i5 `1 v& v* h1 h% g% W
SetFatiguePoint( GetMaxFatiguePoint() );" I d6 O, W$ j1 @
if( nJob >= 1 && nJob <= 4 )& l; ]* L" i K+ B" B g" b) ]
{
5 I1 q1 P' J# |. G; `% n m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 |) ]4 i9 A# h3 `6 u1 u( q m_nRemainGP = 28;
+ E r8 {2 c/ W- g" Q3 N }
- w! ]( @* Q" F4 U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% L7 }! T) y8 w$ d' n {7 B' D2 p/ P: Y9 w- v# e5 \
m_nRemainGP = 118;
: y7 F3 H* m9 R( H+ \' p: r7 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 e- m, v( }, L& D }5 d! ?+ j7 j m_nStr = m_nSta = m_nDex = m_nInt = 15;
& J C* C( d, ^: n- f5 y# G0 t! w }
" p6 k3 U# |. A. l7 E. e# d* D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 l) f6 M" |+ { {" }4 [% K% E, e' E
CItemElem itemelem;
& h0 m0 O" y0 K8 [ itemelem.m_nItemNum = 1;
, G) i8 u$ c6 U+ \ itemelem.m_bCharged = TRUE;
0 ~" H) s. H+ X BYTE nID;
) e0 `# q- z" r9 L& a& \* \
: X4 d" V/ Q) |' [# [, y if( nJob == JOB_MENTALIST_HERO )
, a# v3 {7 N2 L) T- a! H, a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 [2 q8 O2 G8 j
if( nJob == JOB_FORCEMASTER_HERO )" H& T: \* K$ h1 e+ A2 T) j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) Q0 U& q: L* } f4 C& ^. |* s" x( M' l8 h* O
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! W6 r- ~0 Y! Q" q$ a: Y }
) E" R! V5 n+ |8 j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 m, c% s% Q3 r6 @" q1 k ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' ^% G* {/ w$ k* }) D* X5 z7 {
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- M+ P& w z, a, _! f, A* {' y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); D) T" [. Q2 L3 k
( (CUser*)this )->AddTaskBar();*/8 c5 v# p/ u& J1 k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, a1 [) W: Q! D' G: k! R! M#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* K$ M% `$ n6 `" J: y
((CUser*)this)->CheckHonorStat();6 p8 r% l' h" R. g" |* l! ?- f
((CUser*)this)->AddHonorListAck();
; p/ {1 E9 T' k# ?3 \/ R! f g_UserMng.AddHonorTitleChange( this, m_nHonor);
( {0 I6 Y1 ?& [2 `- V C# y#endif // __HONORABLE_TITLE // ′Tà?
) ]. d5 ]* N$ p- K! U }
% Z" w% Q* {: c2 Q8 _/ Z#endif // __WORLDSERVER. C R% Y9 W9 O0 @- Q
}
, F4 s& `8 ^5 Z, g, ^" U+ V, Y
5 ^% g/ q4 K# }, O" h# `7 y% l; V然后你进入functextcmd.cpp并添加以下+ Y- F: m0 A: C2 E9 s9 @0 N
/ l j1 e2 }+ X1 f: ^
代码:! L# j% V7 U" t& j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ |4 k: e) r; }7 x/ [, U- ]" l下面插入
2 E% B- P6 ]% EON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 ^4 [/ v/ I4 K4 a# {/ C
' g: S2 e$ h l5 j4 W: f; o( M; F
然后你去 ?: [# O* q. m3 a i% W
5 z" ?& W5 F' I0 W: y; o
代码:
3 B3 I* O, N; O6 g代码- s+ D4 c; i) |* R& B" E4 n3 @' f
BOOL TextCmd_ClearPropose( CScanner & s ): b" o4 ~, W: e# c
{
- \, `- t/ I, [! S# I#ifdef __WORLDSERVER
( M: @! o; }+ g$ \ J CUser* pUser = (CUser*)s.dwValue;
" w$ G8 Q* U; m# H, f% ?6 D6 t g_dpDBClient.SendClearPropose();0 ~& b5 o1 i' l/ Y! [
#endif // __WORLDSERVER
2 x5 y5 o7 G9 x/ ?2 D return TRUE;; ?' O3 a% p) T6 A2 Q+ ^
}5 B5 ?: ~. n) }2 ]4 K6 n8 V
下面插入1 _9 k f: S4 i) P! Z5 F1 g# D
BOOL TextCmd_rebirth( CScanner& scanner )
9 s, i+ O* d& v/ X{
" r% A h! N: l+ ^& k1 o1 W#ifdef __WORLDSERVER
1 c% o4 W6 g3 b! ?' d1 FCUser *pUser;
& ^1 C3 ?/ m) C _) r2 U- A( FpUser = (CUser*)scanner.dwValue;
+ a0 a7 }7 d0 }5 x5 u9 m$ Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' ?2 C2 p. u3 @, r1 o: F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 `2 d% `5 c- H" d6 Aelse9 u* u6 L- y! j' R. p( f6 o
pUser->AddText("你还未达到重生条件!");
0 @* I) K4 n5 s `, x#endif
4 g# s" c/ o/ t* [' l8 o, T% B. rreturn TRUE;: I0 V) J S- ?6 R P0 A
}
6 d2 n+ l F7 I, Z) }. w9 o4 _0 F
: ?- l4 `4 [' W( e9 C" A# L9 _1 q% a3 t0 D
* D8 F/ m6 [! M9 h
! C" ? z9 C9 L1 F |
|