|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
e4 V) \; E8 g l4 Z7 N- ?9 `8 u# w" X8 ]
Mover.h
" e# \6 P) v% }4 c$ @0 E! g2 _0 y代码:
, n# G6 S% A7 v/ Q5 s5 `) C! |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 i) u( O4 k/ `4 z9 \. w9 Q$ i9 u
6 a# y% t/ U& g7 ]* l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# Z5 f' S- r1 v1 v# q8 B. y+ ~! ]% [- d' l
然后你去mover.cpp添加
! I9 ~% A' u! O" l/ e# F. k. m& d* i' F
代码:: A/ r* a/ h8 T. O$ {) _2 Q1 _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ \6 U! [9 z; J" u9 a
{ C, J, _6 C* k2 S* o4 P$ m
#ifdef __WORLDSERVER1 H6 u# ^% y, M4 K, r3 e$ T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, K/ V& E! R$ I6 D8 n MoverProp* pProp = GetProp();
4 |, ]; E: h4 m! e" N7 O7 o7 g if( pProp )# D4 V) @7 z# L7 L& x* N
{
) B8 E/ r+ I. e) p! _% T6 A if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 N Q& L5 g0 { {4 }' L3 L$ Q4 ?
AddChangeJob( nJob );7 h& Z* W1 @ s' r9 R1 V `
}else{( }1 L! }' C* r3 L" p
return;
" C9 D S5 }$ b; f. u6 y }* V0 M7 p3 P8 v/ j$ P/ S
int nPoint = 0;
& j/ w" K9 c2 }' }& P4 { if( m_nJob == JOB_MERCENARY )7 a/ Q0 j9 @' c- m( K' k
nPoint += 40;& y1 J4 O7 ?' _
else if( m_nJob == JOB_ACROBAT )3 m+ X: U3 Q X# ?2 {7 }6 s# w7 w+ @
nPoint += 50;
4 [! A/ p( F# u. _, _4 q. v else if( m_nJob == JOB_ASSIST )' r e# ]0 M# s9 }' ]
nPoint += 60;
' \- z0 J) y' [6 p6 [- u/ Q, Y else if( m_nJob == JOB_MAGICIAN )
4 K5 J) Q) c8 [ nPoint += 90;
' Q$ R D: f5 f else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); {" j4 z1 X+ S1 J* p/ b
nPoint += 120;" I, N& I7 h! b) G2 [0 w3 P$ L# x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 A8 x; y1 v1 z- I' ] nPoint += 150;
# R) j6 }) q @! y6 K% k0 m else if( m_nJob == JOB_RINGMASTER )8 g8 A2 `) `- Z2 P, m7 |
nPoint += 160;
0 r9 V9 O& }7 o& w! i9 q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 d) }& Z- W' O9 n5 t! C4 k
nPoint += 180;
# q- K6 s- C9 d7 ~+ q else if( m_nJob == JOB_ELEMENTOR ): R" o9 q# o, ~4 Y1 X7 N
nPoint += 390;, T& ~- Z8 p9 H' I! f, h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- w# i. s' t7 G# O `2 h9 [
nPoint += 120;3 I; N8 n# K% ]; B( }* X9 j2 ?; k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; I+ n: \: X3 A5 P4 A- L7 C, H nPoint += 150;
9 a" G% D& o: K# x- }, J% B/ a else if( nJob == JOB_FLORIST_HERO ) n0 m4 c* S( s+ Q
nPoint += 160;
! J+ S9 C" w+ y! I( R/ M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% C( _ ?- `' [1 T6 }0 R! l& a nPoint += 180;6 y+ |# e# |1 h$ l* K( U
else if( nJob == JOB_ELEMENTORLORD_HERO )% W- V- K7 |4 ?
nPoint += 390;
8 d/ l: C* j/ A4 g' s# r
+ a1 a: d" F$ _5 \0 A8 s! m" f. O AddSkillPoint( nPoint );+ @1 g( n0 s4 {+ }# X& X
m_nLevel = nLevel;$ G7 X3 o. T! }
- ~& ^7 j& p5 h: _6 c SetJobLevel( nLevel, nJob );
% k( |7 Q4 w# S. l d/ V: ^ m_nDeathLevel = nLevel;
8 t; S4 {( ]8 U. k C. v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) w" h7 x/ E7 s6 f3 _ c/ Y
if(IsMaster())" g- B3 \3 s0 f4 Y' {+ M% P1 N1 G
{; u# l( d+ z+ K0 ]' e2 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% w/ x% U; z8 ^: C! h if( nLevel > 59 && nLevel < 72 )
9 ? W% Q* o1 ?' s8 L% h/ Y dwTmpSkLevel = 1;
$ M* j2 U4 R+ A/ M9 G4 \% X- R else if( nLevel > 71 && nLevel < 84 )
# A% b6 x) A+ n1 K dwTmpSkLevel = 2;$ M9 L! N* b# q. I9 J
else if( nLevel > 83 && nLevel < 96 )
* z/ r: B9 \! D, D" Q7 l dwTmpSkLevel = 3;$ M7 V' u9 i6 ?5 W0 G& }
else if( nLevel > 95 && nLevel < 108 )6 H) ~; ~. H+ L2 t& y
dwTmpSkLevel = 4;
5 F% N# V3 |3 h6 b else if( nLevel > 107 && nLevel < 120 )0 Y0 e" b* d2 a: O' u" x5 W
dwTmpSkLevel = 5;
0 ]; P" Q4 `. i0 Q& O: Q% @# M for( int i = 0; i < MAX_SKILL_JOB; i++ ) % L# p" r* _" G+ t4 z
{
/ y. E% \, ]& n" T3 Y& z LPSKILL lpSkill = &(m_aJobSkill);
0 p6 f* W8 y" X4 p2 d' V8 ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
# Q4 P) I8 q o9 ^, l4 y" O {
/ U4 [. F6 i0 k( |1 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 G3 z- F" D/ k% _ if( pSkillProp == NULL )
" n/ X5 D4 P* b8 F, F continue;
( O6 m3 q8 R4 a$ v. {# @7 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ Y/ _2 \; x4 e& p continue;
J, u2 `# H# D- s lpSkill->dwLevel = dwTmpSkLevel;0 Q+ D/ x1 ]1 {- L" p7 s3 T
}3 J- i+ \. [! t7 i/ W
}
5 E p* _, A; s: X }
; _3 M; X; G4 @4 f4 ~& `) l else if(IsHero())9 ^/ X1 w( ?# \+ E
{3 m+ }1 {: ~) l; I2 Q6 Z1 L5 m% `8 e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 y4 X4 f( |4 @1 o
{ & ~. w) |6 f' f5 [6 ^2 ^0 E( h. A
LPSKILL lpSkill = &(m_aJobSkill);
8 w- k6 c$ m2 r3 a) W2 G if( lpSkill && lpSkill->dwSkill != NULL_ID )0 c( {. I5 L8 k& E
{
% j4 H ~% `# D& U( [4 f* z: r* ~( z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 E4 ]# @# U h2 n4 ?2 M, p& S. Y: `
if( pSkillProp == NULL )3 v: @, G, M3 [& N
continue;
! |% D* U+ R9 g, H# ]4 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) C+ D0 u- `1 z
continue;0 b# B2 W- ?" F0 C8 M
lpSkill->dwLevel = 5;
! s \2 C. K+ _# |8 O }
+ U/ ?! V& w/ f* u$ M, B' V }
: C5 Q! y: J) c }0 t' O' S; {- k
else if(IsLegendHero())
* o$ [, G# X- G! h* F6 ? {
G, Y5 s5 u+ h- t4 d1 c: y5 } for( int i = 0; i < MAX_SKILL_JOB; i++ ) / U Q. F" S7 v3 S3 v$ ^
{
/ e# ~& w; [& } f; G. w$ L LPSKILL lpSkill = &(m_aJobSkill);0 C" c- m/ `* i. W) \# _
if( lpSkill && lpSkill->dwSkill != NULL_ID )% `* x. ~) {. y
{
3 e) Q+ i: y3 q4 i! H! M* j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 B- _0 H" \- y! g
if( pSkillProp == NULL )' I0 Q) F9 U: W; ~! r" l
continue;. w) C: U& Y l R, ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 p1 n$ {6 i4 O. z5 ]! o ]0 N continue; i, I% u5 O' M4 ?4 \' X n
lpSkill->dwLevel = 5;
$ }0 X% ]/ y' i: x }
) Q3 Z6 D' W, R# c6 N+ ]" f; t) C }6 [5 z' y$ P6 v7 k I5 A3 x
}7 n; \0 @. w! p I3 n" `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ I4 F+ a4 V& E% k1 z
if( bGamma )
5 \' M; a. u/ f9 P {! a7 O. @ y. ] x: R1 ?0 }1 M
m_nExp1 = 0;
2 W `; |" V7 w$ ~ o+ \ }
) G+ r3 x6 {- M, j( J, ] e' h6 g5 [7 Z
( (CUser*)this )->AddSetChangeJob( nJob );
T8 w, R' q9 ~6 O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# T/ Q5 G) f# W# N: o- b/ }. c5 `2 {0 \
5 u4 Y( P9 }4 y) Z% ]#if __VER >= 11 // __SYS_PLAYER_DATA- N1 L) e2 i8 ~' i8 `" x/ B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& p3 ]" X* h, O* F7 G, X8 ~
#else // __SYS_PLAYER_DATA" i# F7 l! p, B6 b% M1 F" o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) [0 k/ y6 ~: s6 H9 q( m l W, Q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# O! y8 _& h- B9 N: G2 e
if( m_idGuild != 0 )0 I& _: Y" ?3 g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 B d: j9 r5 W
#endif // __SYS_PLAYER_DATA
& l" g c/ x$ {- Z' w) _ SetHitPoint( GetMaxHitPoint() );
3 O2 p5 o4 ^9 p SetManaPoint( GetMaxManaPoint() ); N7 R$ s% Q0 d3 G- D( c8 b
SetFatiguePoint( GetMaxFatiguePoint() );
$ J4 X" S: Z% v& t; S3 f if( nJob >= 1 && nJob <= 4 )
6 q) f- {" O5 B) _ {4 H( }/ A# D* H: z, a/ ?7 K+ V
m_nStr = m_nSta = m_nDex = m_nInt = 15;: o8 w9 r8 ^; y" i
m_nRemainGP = 28;
( `% z8 `5 l: H4 C9 D. N! N" i' K } R* s: P# S$ p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 d* H% i. ]4 s' F( q5 f8 K2 { {* E* v4 H( g6 o
m_nRemainGP = 118;8 K: u+ a* o2 j; e' a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 s7 a5 \) p( i+ Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 |- ^0 u* Z$ j( v' g6 U
}* E6 t2 s1 f; L; T( d+ M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), u1 h0 ~# U1 r, J c: Y
{# r# C4 e: W+ I) Z" A) f; t
CItemElem itemelem;- e/ J! q% n% P$ H0 K; c9 G
itemelem.m_nItemNum = 1;
7 p; }/ B3 U" b( k: {- H; ] itemelem.m_bCharged = TRUE;
2 v2 J1 _. `. X+ C( s0 y- e BYTE nID;
. Z f) \5 W( ?/ D* Q0 W( w9 r8 ~
if( nJob == JOB_MENTALIST_HERO )
8 r% V) X5 T6 K" y6 ?9 F$ o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. C! t0 r! ~5 v# K7 Z
if( nJob == JOB_FORCEMASTER_HERO )# f4 e* j% Q% o: y# l& d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* C- O0 S& b$ ?) G
) y2 h$ X3 A2 p2 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );& o4 o+ X. K& j* a6 P
}6 H F* u0 j: A- M5 e6 Q6 Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: C4 Z" U# M' R! ?8 \+ A0 a" Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 U* t* u- j3 x" a; R+ S" W3 b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 \8 S* D1 l# }' f5 ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- L* q3 I0 a" T" A% P- I
( (CUser*)this )->AddTaskBar();*/
! f3 ^) M% L( B; g' g- B ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% a0 u; ~2 c& h6 B6 C. P#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ P& B# W, ?9 a8 ^" Y: _* Z ((CUser*)this)->CheckHonorStat();
% u o& M" f% x5 `/ T6 j! K+ q ((CUser*)this)->AddHonorListAck();. O# X0 |9 ?% R! p1 e B4 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);& i6 j% B5 Y& c9 W+ @
#endif // __HONORABLE_TITLE // ′Tà? B, _9 C/ R5 S9 X: Q( h2 Y
}
4 S, f1 T: ^& p. g5 } N# q' r#endif // __WORLDSERVER
' b+ Z2 D I. v1 s q) v0 J}
% C/ L0 \, W: V. `7 O0 ~2 V0 p2 V- M
* t$ C; i3 o% Q: d9 G0 I然后你进入functextcmd.cpp并添加以下$ J" T* ~- y7 H# V6 K
' P& R8 S9 q' W) ?
代码:
# S$ B7 R; s/ |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 N5 x4 L3 M/ P2 V3 D下面插入
( l7 ]9 j0 j7 b; gON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! l @% G# E+ N- }) r$ K ~3 E& S) C8 g
然后你去# r8 m& k% \4 _% ^+ w9 k, z9 s
. X4 S6 E. J! E! Y0 p
代码:1 Q: H, B; J; M# o8 D) s
代码% Z8 s9 B0 R9 g& C9 j, h$ b5 o, r3 R
BOOL TextCmd_ClearPropose( CScanner & s )
9 x% e R4 D. ]# |4 G9 d{
: v$ R2 R1 |( `7 ~#ifdef __WORLDSERVER E& L. ~1 l5 t' x
CUser* pUser = (CUser*)s.dwValue;
. @+ \- [0 V! A! z6 ~5 U! C$ S- n! l g_dpDBClient.SendClearPropose();! Y) T( T1 a+ X! o
#endif // __WORLDSERVER
7 {% C3 _4 u( \/ Y; p" X return TRUE;
0 u: f0 ~& }+ o5 u: M( a" e$ N}& F* c0 P/ Y7 u; Z1 _4 A
下面插入- P' R$ O0 N! V# Y
BOOL TextCmd_rebirth( CScanner& scanner )
" S- F. O" V6 `$ S u+ k. g8 I{- W4 B- T0 S/ u% Z6 t
#ifdef __WORLDSERVER. Q2 |! ?; h) Z) {. R4 F; j* v \8 r
CUser *pUser;
! d& s! S' {% W+ S. C! f; [pUser = (CUser*)scanner.dwValue;
3 |' j( K/ w' V" _+ c, dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- G6 i5 F& }# O d+ O8 ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 [! t7 k8 P8 T7 b5 p
else
* D3 w V! W5 ?pUser->AddText("你还未达到重生条件!");
2 c J3 v; Y& S$ M#endif3 c, U- Q1 a( B$ i6 \0 W
return TRUE;$ {# o* D3 C2 \: p3 I% t
}
& y0 j& H$ p4 i) ?; a% t5 W# k( R0 f; N4 l( p f6 R r* q' N* j
: b3 T" R' L1 _0 {& `
& l/ n4 F$ C0 q* m, O1 C2 v
# N. O2 f; \9 A9 y/ Z* N |
|