|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. k0 E$ E% T; e& ?4 Q- r5 v. N% D9 ~3 }
Mover.h$ s+ [- U! |9 l1 @
代码:
: m% \$ N( o) j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ i. H( Z0 d& @4 A+ Z7 V. s/ i
7 D+ z& l/ G2 K* s3 n下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 ~: v5 A8 W$ L9 E# T$ _- m: K+ |1 T- t& x% k; Z. N+ D+ x9 @& \& F
然后你去mover.cpp添加, q7 a+ k n$ u
1 \( A: [* J' ]# c- H% Q
代码:
" K" s) i! {5 y$ R1 Ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): W+ h* W: l+ T, Q/ [
{/ _/ [ ^1 U& i4 C( Q, h6 d
#ifdef __WORLDSERVER
: R7 {7 E+ a+ M% \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ q1 O% l1 ]( J( j2 W) V+ ~ ~ MoverProp* pProp = GetProp();
6 z7 E% ^7 E7 S! t6 ?$ R if( pProp )5 V8 G& H3 I6 L4 P4 a4 l/ c
{9 S1 e8 B) @- X& s5 G( H
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 X0 h: ] n1 k3 v5 C& v- f
{/ R0 g& k3 W p4 \. E8 r: E% I. j
AddChangeJob( nJob );
+ M' [5 m. c7 F) c0 o4 q M }else{
4 z/ B. p( X7 I% [2 Y4 X return;# M/ m9 p t; K
} X% u1 {, G- e0 K6 S1 u7 R
int nPoint = 0;
& ?0 G) F% f Y; r' G2 F if( m_nJob == JOB_MERCENARY )
0 h6 v; Y' n( v Z' {* W/ P nPoint += 40;
, R# F( L! h# ~. Y- K) b/ E1 y t, X else if( m_nJob == JOB_ACROBAT )9 v7 C3 Z+ K. @3 z% F# b/ u5 ?; k
nPoint += 50;3 n; ~9 ?& c# v) l8 W1 Z; v
else if( m_nJob == JOB_ASSIST ); U, X% m/ x6 J2 n, H l
nPoint += 60;2 T# ^# O6 u# N) e
else if( m_nJob == JOB_MAGICIAN )' }: j% T* k1 l, Q o
nPoint += 90;; i+ ?5 c! b: e2 a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). h' A5 O4 r' f4 o5 w U' ^
nPoint += 120;# s& F4 Y) e6 E% z% @: D
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 f3 u* G( l8 |8 T. U' c8 u w nPoint += 150;
$ l1 y6 ^" B( H# ` else if( m_nJob == JOB_RINGMASTER )5 }$ M, {; T* x( O! K2 l
nPoint += 160;( J: v# R; z1 [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 p8 @, J1 `' C$ ]
nPoint += 180;
! c: R5 s+ Y4 C6 e, ` else if( m_nJob == JOB_ELEMENTOR )1 H/ r( [: D; w# V
nPoint += 390;* r/ Q- i" T6 q. j- K; _2 m% Z' W
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
D5 ]3 p% `% U; z nPoint += 120;
5 F q2 v0 Y: R4 g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# p! B% j# N2 W2 J# x9 L0 ` nPoint += 150;! r8 X# V2 R$ {% ]8 b2 d: _ a# R
else if( nJob == JOB_FLORIST_HERO )$ u! Y0 L0 M1 y a- X9 K' f8 U
nPoint += 160;
0 p+ U5 x4 J& }! H7 e C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 w+ @$ f6 {2 x8 O/ o0 r' k) y! D
nPoint += 180;
, T# ~ ~$ u$ f- x' {- R' J: Q else if( nJob == JOB_ELEMENTORLORD_HERO )
6 A( Q. n2 S6 s( l' \# X$ f7 z nPoint += 390;
' g5 D$ h- Z6 S" z6 t) a2 ^5 y# L5 X) e5 u! z) U" z
AddSkillPoint( nPoint );. E* k( a5 s0 @: u# }
m_nLevel = nLevel;* M6 E; J l) G5 U
7 T6 `- |, j& w" }5 D8 Z2 U: Z2 [- V SetJobLevel( nLevel, nJob );( l% v% Z: k* a
m_nDeathLevel = nLevel;
, f& m5 [* p4 H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" M: c; |, S* V5 Q7 L" Y+ T if(IsMaster())' h2 _! ~1 S* \3 L/ e ]/ P' X
{
/ t* q# R K0 y4 S& [& s3 l/ v& x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 N9 f" `- J" r( ?7 f1 e. o if( nLevel > 59 && nLevel < 72 )! T! ]6 O$ J1 u" O7 u+ E/ U
dwTmpSkLevel = 1;
9 t9 U- o# S) G% t. U0 t7 n else if( nLevel > 71 && nLevel < 84 )$ ]2 ]9 x5 S5 g& k
dwTmpSkLevel = 2;
6 e: m# |, W) k else if( nLevel > 83 && nLevel < 96 ), q& @) Q( Q: Z- r
dwTmpSkLevel = 3;# ]2 }5 W. A4 u2 D
else if( nLevel > 95 && nLevel < 108 )
6 [0 }4 T' r: ]; {$ h" O. c dwTmpSkLevel = 4;
+ I/ a- D* y' X* v. f& b4 b else if( nLevel > 107 && nLevel < 120 )
5 U; u* m% T% g3 Y* s' d dwTmpSkLevel = 5;/ Z6 x, @4 R" J# Z+ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) G1 |8 t! Y( ~- W! |9 z( h
{ 2 K. e# G0 d' P! f: \& ^* K: Z- P
LPSKILL lpSkill = &(m_aJobSkill);
7 z$ ]) R/ M. @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 Y# h4 {* M# D {- [1 f# a v# W' m$ q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - I, t! Y/ }) i. M. w
if( pSkillProp == NULL ): i; w% R" E; B; h7 \
continue;
# {0 r- S' r0 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& Y' D9 o/ R+ a7 N4 Y7 W' w continue;( U* B2 q" ]' s3 S: n0 [- [, _
lpSkill->dwLevel = dwTmpSkLevel;' A, L2 q" `& B, u5 u4 B9 K( |
}/ e% X+ H" f6 L3 X& w
}
! c2 S; P6 x0 o. ?; f' z }
$ T) f$ W& H, T- F4 K# |: J6 D else if(IsHero())& b9 \. ?, B! g- F8 s1 k h
{# u. p b* M7 x$ o, V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) G5 H" N" X. T% D& J: s( J) I
{ 3 }6 K' y; t. {/ ?5 s
LPSKILL lpSkill = &(m_aJobSkill);
, s$ G2 Z* @% G" O! ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )- C0 e7 _: Q& F7 E
{
& g3 z& i X; j) I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! A0 C; T( u9 G4 v( ~6 }7 U. X if( pSkillProp == NULL )
) M9 B; r8 W x# f( W% l6 g) _ continue;
; U3 U! s7 m* T1 c" c if( pSkillProp->dwItemKind1 != JTYPE_MASTER): v7 S" p% n( K4 p3 @
continue;8 c2 T. ]2 U' F
lpSkill->dwLevel = 5;: D2 H. X0 P: ?$ u
}8 A+ j$ I8 _# ^
}
1 B" }, v' X9 E. m G0 q }& V6 k1 ?# G4 e% G/ ^8 ]+ N5 _
else if(IsLegendHero())
$ A( W. h+ X1 b6 F* j {
' c6 @* L- ]$ A' Q S3 F% B6 J, ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) M0 E1 H( D! y4 s/ l' Z
{ ( k3 t' a- S& J
LPSKILL lpSkill = &(m_aJobSkill);
+ M* }3 A8 a/ R if( lpSkill && lpSkill->dwSkill != NULL_ID )8 ^8 ^3 H. q+ I5 \* p0 O
{
" @8 G; x) p" p. w& V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- X/ H2 H4 v; F; t9 o% a# L6 K if( pSkillProp == NULL )7 d, U4 ~% K) e; Z2 m. V( a8 j
continue;& P! V0 u u% s" W0 j" x9 S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) D8 Z3 f9 A2 ~2 K7 q, W7 k
continue;
% ~ B3 W C4 z1 f% m/ t% }* Y lpSkill->dwLevel = 5;
, P5 T: l3 {! h0 ^/ X9 \ }& p( N, S3 J- F' ]; F9 I
}3 W- ^1 _5 F# `' d2 Q3 A
}
2 O, Y* E6 R4 }+ M# T0 X5 S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 c& w0 m! p: ?, z2 o/ Y if( bGamma )
4 _3 {) {2 ]4 ?* ~7 \8 X% a {( i' ^2 [; J5 ]
m_nExp1 = 0;/ O- i' v5 u' p
}
3 J. P' \9 N. F8 j) ~& H+ E! w
( v0 M4 \$ }$ ^& p$ y ( (CUser*)this )->AddSetChangeJob( nJob );% E8 ?+ p: H4 k: x
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- Z+ ?7 }8 F4 v0 _1 t* g5 d% w$ \3 g! \+ l
- E7 g' u* `7 s4 v( g( g* e7 V& P
#if __VER >= 11 // __SYS_PLAYER_DATA0 T- _: X" v) V) o6 B& J9 g$ t7 l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 J5 l# b7 j' y#else // __SYS_PLAYER_DATA
6 C8 @' p5 E, h+ q1 n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ l3 J4 K6 m) O: S C7 m& f- R- A0 l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 G% A- J7 C7 h( S if( m_idGuild != 0 )# P2 K7 _- H% M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% }$ O. q5 t/ M2 F' i$ U/ T- C#endif // __SYS_PLAYER_DATA: ]( i/ v ]% x8 y0 k y
SetHitPoint( GetMaxHitPoint() );
2 {3 {/ I( \: z1 w SetManaPoint( GetMaxManaPoint() );& e3 z! Y1 B( ~$ J
SetFatiguePoint( GetMaxFatiguePoint() );
; | o/ y' `1 `5 [" i if( nJob >= 1 && nJob <= 4 )4 v; V4 g8 t8 o$ P7 p% s9 | p) i
{
. c# x& w W1 _! D m_nStr = m_nSta = m_nDex = m_nInt = 15;
# }* q% b2 y6 `2 Q6 C4 P m_nRemainGP = 28;# @5 K* k; P" H% {6 m: ?
}
# A7 V. k- c! W; T# p. T" z: w& o- k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! t7 {( b/ [0 H {1 T& {+ l6 V" U
m_nRemainGP = 118;. y% |* j6 @6 @9 j* F% O/ s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ B' M% b' Q+ |" c1 z+ g; V0 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;' L+ N* l# [3 j3 ]
}
, g5 [' G ^7 L! y6 x# @ L7 l7 P$ f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 W) Y2 U6 [) n4 D
{
4 r A& |. e! o7 K1 h& @8 ] CItemElem itemelem;. M7 K( q4 _ B; g X
itemelem.m_nItemNum = 1;
, w* j0 h& I* C( j9 W itemelem.m_bCharged = TRUE;1 h. `) \( H9 P
BYTE nID;) s7 \; n9 K7 R4 \7 q2 r
9 M4 H7 R, \1 G9 w if( nJob == JOB_MENTALIST_HERO )
/ [, j3 Y0 I! ~9 I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 h3 e# P, J9 M/ G+ s9 n8 b
if( nJob == JOB_FORCEMASTER_HERO )
1 i! _) R* e9 v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( n/ [9 e4 x/ [8 Z! c
% m* F1 H# P B. t0 W+ J% N ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. d# d4 `. N; M# S8 Q7 C }
) ]; {5 e# i5 H% x; m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: X* @0 |* \( H0 ^3 G Q' V3 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! {5 j+ }) C& p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- C/ v2 ~( Z1 {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. ^" N8 [6 M" N8 c
( (CUser*)this )->AddTaskBar();*/
$ c X) N, _, W6 g ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
S6 H! n0 W8 T, x1 G& S' d/ n( R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% b: w4 F! R2 @
((CUser*)this)->CheckHonorStat();
1 ^. Q8 \1 w9 t* M ((CUser*)this)->AddHonorListAck();$ c0 v# }3 c N+ y! Y; N! B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! f) F6 d. V- W6 Z: b! v- ^: a#endif // __HONORABLE_TITLE // ′Tà?
# J0 i, y, o6 J5 R }
$ @& S9 p. S, U% G- }#endif // __WORLDSERVER: e) P, h* Q! e& V+ S
}
, r1 Q7 D d; o& ~+ F1 M- [
2 _! c9 I" P8 A+ Q8 m( j然后你进入functextcmd.cpp并添加以下
+ o( }. n+ M- ]3 C. r& ^- {: n3 {( C: P. B
代码:2 x2 C% C1 p2 x0 Z, ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). E' r6 N0 Z* ]/ Z
下面插入
9 g/ C' D' o+ F$ O5 ?6 p, Y7 s3 c: {9 BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) D: n+ s4 {6 d0 o, |# c/ R
& A' S( J9 T# i1 j
然后你去* J" N9 m1 N( e% t T
: U% M/ E5 j- ~
代码:
% P( D8 `) ~9 L5 [ n% p代码" U9 Z) g9 w: D" T/ e2 B/ |% V( E
BOOL TextCmd_ClearPropose( CScanner & s ): m7 a; T" M5 y$ }& c" |8 t4 r) Q- b
{
" j6 K6 z6 i! s1 C- P' _#ifdef __WORLDSERVER
8 E7 V9 [/ e+ D6 @( g+ V% \ CUser* pUser = (CUser*)s.dwValue;$ S1 M" E1 m+ b
g_dpDBClient.SendClearPropose();8 s/ q) L6 |4 E9 V% ~5 Y0 A; Y+ x
#endif // __WORLDSERVER
) e( z0 J5 V4 o: K" i5 ]9 {2 Z return TRUE;. ?. T+ p. O) s# t$ y
}
) Z- D5 q3 g3 K6 c' p下面插入
) C8 Y) a# D, w( Y( o% MBOOL TextCmd_rebirth( CScanner& scanner )
8 i* k* @" ~1 i2 D9 y5 |1 Q2 H{
# ^0 J2 I7 g6 y0 f* Q#ifdef __WORLDSERVER
! [2 X3 Q; d# M# h+ F& {. bCUser *pUser;$ |7 }& Z/ o* `2 v
pUser = (CUser*)scanner.dwValue;
" U6 H8 I3 B! H" {. y. nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( h# A8 `: x; C: R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, K6 J% b) ?! h9 O2 c7 |7 T8 @+ @
else
5 U4 r$ V( W J* PpUser->AddText("你还未达到重生条件!");
2 {+ O- f% S5 u4 ~#endif( r* ~- g1 X0 M: N
return TRUE;# x. i6 N5 Q, z9 Q' X3 N
}
; e% X0 c! V. D5 `' q! {5 H3 C: b) p4 Z6 M
* v/ U6 x5 ^ \! t( l* f+ s, W2 E& m6 s |- A# V" C5 l2 K7 |$ i
: \+ R" {0 ^' P
|
|