|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 d( S* J5 a' r D, e+ T) Q; Z' R, L j+ O2 j
Mover.h+ n( G: c& D$ p+ N# x# D3 e
代码:9 k$ c$ W Z8 ~) K! E* i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ a: C3 M! Y& @6 R% q
/ ^; J3 v y2 `" e; Z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 Q) J5 ?/ M* N6 c+ M
% H1 \+ V4 v2 ^& q0 n0 b, e y$ e然后你去mover.cpp添加# ~) ?* \( }5 G3 X
+ l: _2 d& W% y+ G9 R, H代码:
+ J7 m8 ] A7 z/ c/ h* [/ Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! `) }" _/ o) `6 v2 y
{8 C$ A- ?* i8 a( S
#ifdef __WORLDSERVER; w% z5 D1 T/ y) T2 U& E' d4 z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% V3 r( V* D( ^% |; {
MoverProp* pProp = GetProp();8 x7 P, w4 p& [9 }% S1 G7 ]
if( pProp )
2 P3 K0 X1 ~0 s% H+ c7 d {% V( W4 w, f7 n7 u: M. W$ m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( T; O9 M- Q; w* O! l5 f
{
' _) [# c" U% d, S! {. n; w( L AddChangeJob( nJob );
& u2 e( A1 }# `5 D/ @) d7 R+ f }else{6 V5 [7 ^3 O6 Y/ x; ~8 C3 B
return;
8 J/ }0 }- E8 B: g5 R1 v: q% J }- w+ _5 b" q/ a `! b( M
int nPoint = 0;- o% O6 n3 C7 q2 c: r, `6 x
if( m_nJob == JOB_MERCENARY )
4 k2 c0 X, P( `1 O; v O nPoint += 40;1 E7 _& W* h! ~. c# [! L
else if( m_nJob == JOB_ACROBAT ); p, O/ D. q7 H0 r/ y# ^; r
nPoint += 50;
5 B& w5 h) y% f else if( m_nJob == JOB_ASSIST )
$ C1 |( P- s; t8 l$ u nPoint += 60;
' ~" S- h+ i) I$ j' } else if( m_nJob == JOB_MAGICIAN )" E' Q7 ^" o0 c, A! d4 M9 v
nPoint += 90;5 _- C) o. ~: C# |. |, ?5 j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( X& m+ S4 W9 \. n2 s nPoint += 120;& N$ ~+ |7 I! ]5 G9 v, P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 q5 I) V" e* |; V1 e# A nPoint += 150;' `3 ^% I. `- Y+ C! g3 {/ A5 a9 f2 w
else if( m_nJob == JOB_RINGMASTER )
- ?) o& S0 S* H9 _9 }5 f nPoint += 160;" d: l* C+ M6 f( b1 L. m. O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( R5 D: f. ^5 T- B# O" N
nPoint += 180;
: A! b; t- w6 j3 I9 @. [% y" Q else if( m_nJob == JOB_ELEMENTOR )7 l6 Y8 t( l7 G* }+ C
nPoint += 390;2 s7 S- g. [1 a) c6 A8 @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) Q; Z! C+ H7 b6 k* t1 S0 I4 @6 _
nPoint += 120;
2 Y# I7 x! E' L% k; q# U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 }, N3 u2 N6 S3 w nPoint += 150;: v8 S7 q0 q: R
else if( nJob == JOB_FLORIST_HERO )% ?1 G3 e4 u2 Y! X3 j* j. F! C
nPoint += 160;
: s4 ~3 \. \; ^& h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 S, N4 M) q6 c+ q
nPoint += 180;
% @( @* M+ h P- E% C else if( nJob == JOB_ELEMENTORLORD_HERO )
2 x2 s/ n$ @- y3 K1 U nPoint += 390; W3 @% O; P& s) A M- k3 ~ Z
+ F0 k5 K% D" B AddSkillPoint( nPoint );
8 Q R$ ? j( M) W$ I m_nLevel = nLevel;5 N5 [8 B' c1 k8 f9 P* Y8 h
$ |. H4 I/ c' e B& T/ `
SetJobLevel( nLevel, nJob );
" ~- F) T4 q, U* ~+ i m_nDeathLevel = nLevel;$ z* f, |8 R5 x* C$ s" e) _1 q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# `& p+ o5 O8 D# }
if(IsMaster())
$ Y. W @: n/ Q, A; u {
2 ?0 e0 r5 `0 | F' a7 O8 I a$ m int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' U' _: T; \1 m9 s. e
if( nLevel > 59 && nLevel < 72 )% W% ~! a9 u( z! [; x" i) Z
dwTmpSkLevel = 1;' t' H+ i4 e- x8 r( X8 |
else if( nLevel > 71 && nLevel < 84 )9 F3 i; G# ]+ }* _; B
dwTmpSkLevel = 2;6 O7 O& {9 N+ K) i& C% S3 ~; y! C8 c
else if( nLevel > 83 && nLevel < 96 )
/ b4 I; H! p" X& q* @, R dwTmpSkLevel = 3;0 \% @. J( h) D2 ~
else if( nLevel > 95 && nLevel < 108 )8 {. G' b3 L, A& y
dwTmpSkLevel = 4;
& l$ F# }- J4 S else if( nLevel > 107 && nLevel < 120 )6 y2 ~( W/ ]: F! V, X
dwTmpSkLevel = 5;. c+ v" |8 s* a' u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, a6 @# Q# Q) x- C: R { " R: P5 J* `+ N0 U1 {9 _3 i
LPSKILL lpSkill = &(m_aJobSkill);9 C" l) s' }+ B0 `7 w/ O
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 V" f. b9 J' ^; T4 \4 ?
{8 F9 v5 I% B2 c' f, s. `' I: ~5 q, `" a) N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 f$ [" [8 Z' T, a# F if( pSkillProp == NULL )
B* |8 }& \4 D+ [# J! v7 o8 ] W continue;! g; Y% F# ?2 u8 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 t9 S" v3 y+ Y continue;, V) W/ z7 S `# m' d
lpSkill->dwLevel = dwTmpSkLevel;6 j% f1 c j6 J, z0 R$ \7 e1 v$ D; j
}
1 L7 h5 }" W) W" q7 C+ x% P( N2 K }9 c4 p! `# o) x3 X! h0 n8 o5 ?
}
2 d& D% V4 I* d/ m else if(IsHero()); @ F9 t4 I$ i( _" E
{" K A) |( o5 z: j) L: L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" p& L# F" z# Z# J$ q/ z8 l { # C; w4 L$ u$ j N& n- p5 a$ r
LPSKILL lpSkill = &(m_aJobSkill); [' O+ n$ [3 k! n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Q* f; u, U' D# f# i7 H5 p+ z5 B {
8 I! {6 L- w2 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: V6 w3 M4 ]7 Z& y; W% D if( pSkillProp == NULL )
& a6 M: t0 f7 x4 M8 b; F& `$ L continue;* Q1 M9 l0 v# H% ]* C% n4 c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( {& d4 |! q+ |: j continue;
, P6 y0 L$ A7 H- \ lpSkill->dwLevel = 5;
* O9 v( R" m' V9 p }
: _* L' W4 |1 w( Y }
7 w" E( }1 m7 i. w. I }
3 q" Q& T# Z: C else if(IsLegendHero())2 B6 o7 J! [9 C3 j: f) N
{6 G Q e* P& Z$ M s J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" ?+ D) J5 m& Q& m k. f {
. I+ _9 T+ ]6 o1 ~' Y. [- x LPSKILL lpSkill = &(m_aJobSkill);
4 U i9 `) t1 {. ?$ R: L if( lpSkill && lpSkill->dwSkill != NULL_ID )- o, G1 P- E: @: A/ B
{
, [# b2 W ]8 F1 G$ Q4 \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% W4 z9 N# j$ l( G1 q, h2 a if( pSkillProp == NULL )4 {0 N6 ~! Z' e# J$ x) @: f! T' j
continue;& `; C" W7 j i7 V- W2 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ~2 I) B6 G4 R5 P
continue;
" P! V" m4 S$ z T! p lpSkill->dwLevel = 5;1 n# u7 y' ^$ g1 N) b
}
/ ^6 E2 C7 R U( K3 m. A }+ P. g( i0 N, Y/ u" X
}
+ ~5 D1 Z8 O# Z! `#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 z1 A: s5 `0 D+ C9 e3 ] if( bGamma )6 q. t! G( Q% a! }8 @! G
{
$ u1 s. {& [) `' v/ s m_nExp1 = 0;& g6 V" }; b r6 g9 L3 m6 Y) ^
}
8 l: N, S* }: i9 m, e/ r* K, [! z* A; g) p# l* c( o
( (CUser*)this )->AddSetChangeJob( nJob );' |3 |7 D H% U! r6 N% x( P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. M; _+ a- ~ y; i4 O$ h
, j7 b" H) ]# U$ i" T, B
7 y% D( M/ J- b! T4 o
#if __VER >= 11 // __SYS_PLAYER_DATA& N1 `3 P/ e2 B: `% A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" h, ^$ j' C/ W#else // __SYS_PLAYER_DATA r c: w# G# {, K1 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! g; S2 \$ X. Q6 e( c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ Y6 V5 v/ Y0 r% B* x* ~0 E2 j" U l if( m_idGuild != 0 ), R( s6 j# S& _4 l: U% Z1 x1 `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, q) ]. U- d6 W7 j6 Z" P) ~, \
#endif // __SYS_PLAYER_DATA+ u) N% W- }8 q& l
SetHitPoint( GetMaxHitPoint() );
/ O z, |( a9 q SetManaPoint( GetMaxManaPoint() );, A8 `' w9 F( C G$ o
SetFatiguePoint( GetMaxFatiguePoint() );
) R$ m9 y' b# M0 ]# i/ s8 x if( nJob >= 1 && nJob <= 4 )
5 t+ e+ E4 c: }; W2 Z* C" Q5 _ {
9 y. y8 m: M9 r o( l m_nStr = m_nSta = m_nDex = m_nInt = 15;' [5 j `9 {, K# H2 x* C
m_nRemainGP = 28;* \& y; {; w. L
}
; j, n: O! Z9 v' {9 o- z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 j/ N# x' ^$ K" T {# L6 h' l$ R/ f7 L
m_nRemainGP = 118;( ?6 g3 m' r4 |$ c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- p# y2 [. H! c- {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, m! G$ B2 e0 [3 [8 X' P }
4 n; x1 c V$ G( E* X* T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' |7 o% @ Y* Y& x7 Y8 a6 M {
* O5 [+ l7 Q9 l CItemElem itemelem;
) l- W* O7 T4 i; ~5 z) x itemelem.m_nItemNum = 1;
' D; R2 ~. k( \0 b itemelem.m_bCharged = TRUE;5 P5 K' U! F# `3 O$ K. Z4 K
BYTE nID;+ e8 G6 f9 ~* R* `
# l" }. H- [6 H0 h2 q9 v
if( nJob == JOB_MENTALIST_HERO )0 v" n* l% N( T0 f5 F
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* w: j4 n8 b9 A$ z if( nJob == JOB_FORCEMASTER_HERO )$ u" i& W$ R( [; Y' {/ Q7 B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% ?' m' h f8 w* I* m
1 U. H1 H7 ?, U: q2 K, @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- B4 J$ b2 \4 {+ X. F# ]* ~ }% l1 B' b1 F$ d7 L7 L
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( c6 L# S6 I& l. @2 D5 w: }* o
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 r: Q0 n7 X8 u9 m ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ H' h2 G( _0 n6 I/ |" s/ S" k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) C! K4 L5 u! S9 ^. d' u0 v: ^$ @
( (CUser*)this )->AddTaskBar();*/" D! G; [+ v3 s3 ~, O1 y4 k' o
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ [, H9 a# F4 W# R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! x! Z9 t& i+ u4 a; w ((CUser*)this)->CheckHonorStat();
6 ]) `" j5 ^: Q7 Y ((CUser*)this)->AddHonorListAck();
: d5 Z8 R8 l; h( ?8 I g_UserMng.AddHonorTitleChange( this, m_nHonor);
. O! `* P* T+ x# @#endif // __HONORABLE_TITLE // ′Tà?
- ]# [: o; y# C4 A }- c1 ?! C! q- o
#endif // __WORLDSERVER
/ T" \4 j' z" n/ U, q$ p} 0 M9 o( u; F- Y6 d# a" V2 U
0 c# F+ n* O, i然后你进入functextcmd.cpp并添加以下3 o& R9 R- y& ] C# w
3 w/ g7 X5 A9 f
代码:1 i! t& m$ A9 l* w C
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 K+ U+ U3 j' a; k0 l+ f' w
下面插入
5 ?! k0 `( |: @" f6 |4 DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . T* t( |9 \ U f0 N$ @
3 M0 ~" {% A/ E6 y4 o3 m; e" z
然后你去 t) K, [2 d) V! g& [5 }
U1 t# P; p6 m+ ^代码:
, c( W% c6 k+ p' R' I3 S" v" n代码1 A7 R6 {' @2 w" p
BOOL TextCmd_ClearPropose( CScanner & s )6 P+ x7 F/ @, [/ M( d$ h
{. A/ H* _: C( n8 K
#ifdef __WORLDSERVER/ r9 T( d! [6 |7 }" {
CUser* pUser = (CUser*)s.dwValue;' l1 g# |7 U# ~5 q5 C5 c: I
g_dpDBClient.SendClearPropose();- U& r( x( |8 o4 q
#endif // __WORLDSERVER
" q" h. j+ G+ c3 p( v return TRUE;
; C/ p) s1 b4 l' z2 M. L: v% g# H}
# P* M' f& O) j' a/ h! L1 Y下面插入" k: z% L% h; a( N. Q6 P
BOOL TextCmd_rebirth( CScanner& scanner ); c4 M% Y; G, s( E8 H9 W9 Y
{3 y0 s4 p$ l; F2 Q% a
#ifdef __WORLDSERVER+ }; u# |- B2 X3 `. O% ~2 V6 ]
CUser *pUser;
# a+ F, i" w5 _8 v/ FpUser = (CUser*)scanner.dwValue;
, w5 u% _9 x; D3 bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) E! |; a$ S, L! Q* b* l; E3 ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 V1 |, z$ o7 k" Q" Eelse0 w$ S' L) b1 V9 c
pUser->AddText("你还未达到重生条件!");" \6 z9 ?. @1 R* H* o V r
#endif$ F; R4 w1 a( U; @: o) `: e
return TRUE;. G/ Q) ^# h/ j
} & i* w5 a" _3 A2 m' m0 {
5 S% r9 e2 y4 `% ^+ F- U$ s( t* ^# o
8 q. n& i& Y8 H) s. h
2 u2 [& i( S3 E2 z6 z |
|