|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 S* E+ ]7 t3 g7 p8 c3 m
" P: K5 V: a5 `0 M: tMover.h- i( z! p* G/ i" y' X. C- j
代码:; t3 Z2 X: L8 Y. l2 Q. z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, k$ V" f k6 _2 X( j- b
9 m9 Y' k' m' `. T
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ J+ I9 x$ L, e8 n
* q7 I* M# P7 d0 ^9 ^# p然后你去mover.cpp添加& @5 o* _# w. Y, `
( K! l) ? {! S
代码:1 T0 B- W. G( Z/ t& g8 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 {9 e! |$ ~ q G7 s{$ k( \# C, ?! L4 x
#ifdef __WORLDSERVER3 c7 Y1 m* @3 [2 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. p! ~9 V8 H/ u* `! E h! _! z MoverProp* pProp = GetProp();
. c: g/ b; O: M; r8 y/ p if( pProp )) P9 `6 B$ S$ Q8 [- r8 D
{
5 F6 E4 E# c" d# M if( nJob > 0 && nJob < MAX_LEGEND_HERO ); ?" \( d, e M9 @% k
{1 `4 j- S \4 R0 s
AddChangeJob( nJob );
. S: @: T8 Q* L }else{
j9 {: X9 E# U2 G, y0 z% N9 [ o return;
3 t+ U- n: f7 n1 x0 W/ h& J }
' X& v* P$ |) I; T/ v3 O2 U int nPoint = 0;. r' U" }) M# Z/ p
if( m_nJob == JOB_MERCENARY )
3 f; @3 i( `' ?+ p7 n9 s nPoint += 40;
' E. q- L$ I6 q# S else if( m_nJob == JOB_ACROBAT ) k9 _9 u- u0 B. {
nPoint += 50;, Q9 }4 ^/ S7 e U. J4 w
else if( m_nJob == JOB_ASSIST )7 X. ~' B% t8 Y- M' C
nPoint += 60;
/ |) {) s; A6 p" l: U- L else if( m_nJob == JOB_MAGICIAN )
f7 v! Q. X3 I# Z' u- t nPoint += 90;
/ c" h$ E9 |8 P. D5 l- ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 M/ ~8 N3 a5 q! w9 ]2 ^
nPoint += 120;
N" J* E* t3 c7 i" n) W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# G& A" B# v3 T6 f
nPoint += 150;; j9 N7 z @# [
else if( m_nJob == JOB_RINGMASTER ), k7 r+ v* b& f- N
nPoint += 160;: ~2 d1 t0 D9 @) y- }( Y; e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 I' v2 s0 p* o6 |$ N, w nPoint += 180;
0 C8 \! `' s# k; X; S else if( m_nJob == JOB_ELEMENTOR )
5 q0 g; |9 K* A nPoint += 390;( t7 \8 x1 Y6 Q2 I% C8 \& t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), c# m" G' C4 y, b! {1 a2 `- D4 l
nPoint += 120;( d! ^- z5 t# t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# O$ {- m) [: K. m2 [0 E nPoint += 150;
. f/ c* D5 \. n9 T* \! S else if( nJob == JOB_FLORIST_HERO )3 [: `$ l9 H' W# A
nPoint += 160;' H" z" m4 W- Q* P" k
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# R$ ]% { o+ B* E
nPoint += 180;
4 m4 ~# j! _3 ] else if( nJob == JOB_ELEMENTORLORD_HERO )% e/ D9 i* P0 T* c
nPoint += 390;3 N. [4 ?2 a/ g+ V# G8 h
N1 E0 e( E4 U
AddSkillPoint( nPoint );5 X, G3 U! } m" f1 r
m_nLevel = nLevel;& Z/ U+ Z: D( v# @( c0 O0 C% O
; r! {# Q4 `. F
SetJobLevel( nLevel, nJob );+ H3 h7 N: _- Z* Q/ u9 E& j
m_nDeathLevel = nLevel;3 z( w8 ?$ z- ]: X
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' }0 ~" P! K) S4 J if(IsMaster())5 n" |1 ? N3 O9 M
{6 F" R9 ]/ ]. S, `! G/ t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 \: }8 {' G9 \+ S: ^+ X if( nLevel > 59 && nLevel < 72 )% p+ X5 p7 n% ]" E# h5 ]; v
dwTmpSkLevel = 1;# P3 f" ?& G/ |# K- \* [" F7 z- p
else if( nLevel > 71 && nLevel < 84 ): Z4 u r3 t- ^; n+ d
dwTmpSkLevel = 2;: V$ W, x# @" e7 S0 G+ o5 H0 t
else if( nLevel > 83 && nLevel < 96 )
5 u# y1 q6 g6 T1 W9 @! l+ b dwTmpSkLevel = 3;1 c4 O; ~7 T7 |# n
else if( nLevel > 95 && nLevel < 108 )2 v6 p' v R" X5 d$ _3 c
dwTmpSkLevel = 4;3 C% i& h, L5 U) f; @# U& y; F! O% D
else if( nLevel > 107 && nLevel < 120 )
3 z9 x0 a9 ]* p4 M& l" c8 C) a, l1 X dwTmpSkLevel = 5;
# i0 p& _6 V ?9 \& D for( int i = 0; i < MAX_SKILL_JOB; i++ )
' ]( p# @3 P+ R {
. `. o: N J2 j3 j, y3 x1 n LPSKILL lpSkill = &(m_aJobSkill);
' j) q' p8 c7 n2 l) H6 m if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 B0 n7 K# p3 a3 F {
+ V5 y+ E5 c$ }0 _, h5 f0 c# Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' F# C* o* m' Q* j7 K if( pSkillProp == NULL )) Y5 m' G( Y u& g ]) J' o7 {
continue;
0 l: ^/ Q) B3 Z9 C9 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 L. e0 g% R% \# B7 L" S" z
continue;
) m* J& f# h7 n lpSkill->dwLevel = dwTmpSkLevel;
, [/ ^6 ]; k \$ _3 o }8 c4 W B8 s9 R- x0 F
}; y$ b4 G( m7 Z0 W7 G
}8 ]8 O- @5 y* [+ O2 @' b) V4 ?
else if(IsHero())
2 ~5 `) J* r0 |, V& w* b: c {
' o" n+ l" l% s/ }0 @: X+ @# A for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 C8 b: H+ ^( J+ T- J$ Q4 c
{ ! H% h' p0 j" t( Q# U" {" J0 J9 M
LPSKILL lpSkill = &(m_aJobSkill);
$ C C; u1 Q2 E" o3 _+ l4 J if( lpSkill && lpSkill->dwSkill != NULL_ID )# }! }) N* M, E4 p
{
& _( U6 q! [& S5 c. [. K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- ^5 _& f( E& ]) R$ O( G7 s! Y- v if( pSkillProp == NULL )' C( y5 [/ _4 [1 d
continue;
% i7 O" _- ~8 R5 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 ?5 A" H7 Y' ?8 F; Q
continue;) k- ]$ u, X* \' l! o0 i# q
lpSkill->dwLevel = 5;
. G2 D7 p2 z2 [ }
% L; b5 H i( f1 C }' T8 C N7 L: T- l( f+ {
}7 G2 t2 n& q% C& a0 |: x
else if(IsLegendHero())
# Z5 s4 K! q, d- i {% m5 F: q& h8 K- y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # [! } F$ M8 ^
{ : P4 h6 F( }7 A' W) M, X U
LPSKILL lpSkill = &(m_aJobSkill);
$ _- J* N3 H& F# X) s7 {* ?/ l if( lpSkill && lpSkill->dwSkill != NULL_ID )5 b \2 \8 _5 A; D! }6 f
{3 g2 F2 G1 I0 p/ A$ E2 X9 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: m' f3 |2 b E& W8 J. z3 f if( pSkillProp == NULL )
# P+ o' q e# [& V+ h continue;
- y+ y. b8 y6 X8 i) H. Q% U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( s. ^/ C$ ? N ^9 |, X3 l! O7 B \ continue;
7 h- h* i7 R: M7 `9 F lpSkill->dwLevel = 5;
2 O) p( x A$ { G6 y1 j! j }
3 M! z, U1 C# R3 h% k% L; ], a }
* b- T8 X' j' z+ X# V- b }5 x* o! M- A) ]6 A6 D3 T! ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- [) V; @2 i3 S) u8 [ p& e
if( bGamma )
( W5 u- u5 Q/ ?5 P- M5 i {
" n# O5 Y! V% m5 ^" {- B. _' G m_nExp1 = 0;, c, X. B6 {! Z( [; U! t( S. `
}
- G; t; T- y. g0 Z2 ]6 c
9 {& E0 c' R! N! e# {+ r ( (CUser*)this )->AddSetChangeJob( nJob );) d+ u/ W* Z. Z8 h V( B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 \& ~- c- p/ U" R3 ^, Q
( r8 }2 s ?2 D$ }; H. F" w( n
* g) r8 I& K4 M9 F j# p# _1 X#if __VER >= 11 // __SYS_PLAYER_DATA
! }! R$ J6 C$ r0 L' X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' g( f0 U. q, |# _7 t6 M3 _; ~8 I
#else // __SYS_PLAYER_DATA
: i' O9 u/ F* c& s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ z$ z* U7 I, P7 L g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 l s! K) H; I8 B" h6 L" d if( m_idGuild != 0 )
* `( ^8 t: j {6 |0 g3 ?) ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" j! F+ D" X' a+ |
#endif // __SYS_PLAYER_DATA1 P& f* \" p* M; }( N
SetHitPoint( GetMaxHitPoint() );
$ x: e/ V2 b& v" I( s) d, R. x% z. V$ |5 o SetManaPoint( GetMaxManaPoint() );9 J Z' X4 ?" C0 R
SetFatiguePoint( GetMaxFatiguePoint() );! i) y. N3 @/ w- }- U) ]2 n
if( nJob >= 1 && nJob <= 4 )/ O$ V4 n+ i5 {" F+ Q7 O
{
- T& A* o0 u. ~$ c; b7 O m_nStr = m_nSta = m_nDex = m_nInt = 15;: _$ u, E/ F9 s2 {5 P2 X$ J
m_nRemainGP = 28;
6 D: \, i5 c% I& G# x% k3 C }4 B+ Q# Y$ j( I# Q' z5 U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ Y2 T# p8 |" M1 J& l' d$ M. w/ ` {! n; |2 B4 S% X6 v, A' t
m_nRemainGP = 118;; T4 h, W; |/ u& V- Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 Q8 }9 r) y& b- }. j1 Y1 a) H m_nStr = m_nSta = m_nDex = m_nInt = 15;
. c8 i% Z5 V9 v1 t" P+ j }
+ O1 s0 b' O2 ?' ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 P% i9 _, J; p; s/ X n8 J
{
9 Z+ j0 t5 J) n6 Y6 ^ s CItemElem itemelem;$ l3 F% q& g5 G' x4 Q, u4 [$ g7 l, F
itemelem.m_nItemNum = 1;, B- l% k! q9 `) P
itemelem.m_bCharged = TRUE;( P* ^0 V$ Q$ Z, F# k/ b5 m" g, {
BYTE nID;- |9 y& b# c" M3 a/ x6 ^8 |$ c
- D+ T5 r; O- y1 ? if( nJob == JOB_MENTALIST_HERO )
7 `% B! `4 n" R3 V# M4 } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! f) u1 h* P: Z: p* A7 S if( nJob == JOB_FORCEMASTER_HERO )" w2 p5 d/ c# T* N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ D v. I! n# P' u) I) C$ Y3 c' A6 J u( s" T
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 P9 z" ?& u) W& G; _0 n. i" b. C; Z' _
}4 E( O. w8 V# } t' K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" p l9 z+ m) V. r# l. T( x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ F6 r! c K$ v% V6 ^7 e1 q6 H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% B! X1 y$ e7 h( Q- z+ O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); l, o. I, R% R5 ]' \9 D7 y
( (CUser*)this )->AddTaskBar();*/
* `! g0 V0 n! P; c }; Z# f+ \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' T) c8 |% U F/ S4 n0 I#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! d' ^1 B0 q+ r+ ]9 | ((CUser*)this)->CheckHonorStat();3 s4 |) s9 i0 _
((CUser*)this)->AddHonorListAck();
+ d3 i! I; Q4 e7 t. C: }' u5 B, ~2 L g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 D* L& r+ G4 x. S4 d#endif // __HONORABLE_TITLE // ′Tà?8 k, {) d! V- D4 o
}0 c' z: b- j+ J7 G5 }1 C. J% ?+ X% J
#endif // __WORLDSERVER
3 b K! C9 O' R1 S0 s/ B! s: ?8 D}
8 `2 S* C7 q5 w# s$ v
. h' \2 L% d* m( N% z然后你进入functextcmd.cpp并添加以下
$ a4 u9 i$ O/ b4 k- ?% ]( N7 H3 f1 q: [9 h' A, R0 k
代码:* f2 w! \. S5 ?# ? D/ s: B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, \5 X o3 B0 Z+ t下面插入
' X$ N( l6 ^% ^( g8 cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; M- |! E) s+ T; U# P; T5 q9 l2 r
8 X( h' ^- p$ K然后你去
2 ~' P, k* r! H7 `0 V$ H4 Y6 T, s& P2 |
代码:, }, ~ x8 I5 b- B) D
代码5 y+ ]! S3 h& s% @( N2 r& `
BOOL TextCmd_ClearPropose( CScanner & s )
5 S3 ^6 U4 f. {2 h$ s: B{1 u( F7 j' d9 g5 J' U( Y% o7 _8 P3 O
#ifdef __WORLDSERVER
4 X4 U" h' u9 a C! z& P+ h CUser* pUser = (CUser*)s.dwValue;7 Q, H4 z' ~& Q: s6 D+ R. E7 u
g_dpDBClient.SendClearPropose();; n- ?% N3 {+ `& m" K
#endif // __WORLDSERVER
* U) B6 v! e/ |' M4 o return TRUE;6 W/ O* d2 ~ s8 \8 H- G5 G
}4 k. z7 R8 n8 |& T# A
下面插入0 R) k' R' \# S; a+ I5 N4 c% y5 P
BOOL TextCmd_rebirth( CScanner& scanner )( `1 K* _, ?- u% l. l
{/ t4 m" |$ v8 E r) [
#ifdef __WORLDSERVER
* g% F& l5 v: b' HCUser *pUser;
/ q3 M" {# W1 F3 OpUser = (CUser*)scanner.dwValue;9 J& {5 A6 U8 r8 Y6 t% r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! R: B7 Z! |" j+ ~! p- @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 t9 q# F+ l. ^- x6 B. Zelse
% S1 o/ s9 b5 S; G& _, FpUser->AddText("你还未达到重生条件!");
* w: h, |. e5 \1 G0 }+ X#endif7 d( Y- R! U7 {
return TRUE;& i- j) c: Z& n/ ]- M: b
} ) X3 `: K/ C. `9 y3 r4 [
8 k& m- B: `0 O
' C! O0 b( Z; E: A8 ~% A" o2 v- G/ `
3 Y% ]/ E5 b1 { |
|