|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# E5 P% e1 I0 V0 v3 p! F- S& ?& Z, @" T: `# \; Y8 Z, c
Mover.h$ P& J4 l4 i% @
代码:
* R/ K, S+ }; p) Y* I找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 D V7 _4 g8 Y5 {# N0 \. X- k( T* D" y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 g- n K0 u7 U [8 C' B: A6 b+ i, a, Y4 O0 G* o
然后你去mover.cpp添加
- R5 I% d$ V& h
" s0 P' }1 y9 `4 o8 a+ m+ W8 q代码:
6 N% D/ ^. j ]# {) i* Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 O1 B) p/ }; s) v
{
: T1 Q5 ~' u" m2 c#ifdef __WORLDSERVER
: K% C0 I: B6 f( h! L5 `! c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( C* o# i. k( N$ E" ^
MoverProp* pProp = GetProp();
6 u0 J# Q4 x4 g% r& Q& [, r" z _ if( pProp )0 W3 }; h7 @5 D7 w3 ]: u
{
6 z m8 E/ x0 _0 S' A/ |* `1 l if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 k9 \" N3 c% Y" E
{
9 a& l; S6 r6 l/ G AddChangeJob( nJob );
+ c* m9 g7 B7 O! q0 U; j. H3 } }else{
. v0 p$ @9 n" {1 z9 ^% v. y return;
2 Q0 X0 E1 T8 I: ]% {2 o }. q4 L' {" R$ r
int nPoint = 0;
# d/ Y- J4 V8 [' O, m9 r- ] if( m_nJob == JOB_MERCENARY )0 R, C9 d/ s; s6 c) L: |# G# Y
nPoint += 40;
) t6 J- k) z- x0 p3 A$ D% m( B else if( m_nJob == JOB_ACROBAT )$ Q) u9 a- f4 M( M S
nPoint += 50;5 M8 a/ C6 h* t9 [ `' Z
else if( m_nJob == JOB_ASSIST )2 ] G# M) N7 V, Q B2 l
nPoint += 60;. c. r H* K- C$ G" ?! Q
else if( m_nJob == JOB_MAGICIAN ). M9 Z1 `! q' j: I/ _
nPoint += 90;
1 G0 d: u% v% o$ l& i' O else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ O0 Z- G ?7 Q' d. b
nPoint += 120;3 M; J9 u( x& |9 ^4 _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" S) }( T0 C% {5 N) X nPoint += 150;
8 f& `& x% C. p) V/ A else if( m_nJob == JOB_RINGMASTER )
, ^% V4 H2 c8 g6 d' o" `$ \$ n nPoint += 160;) n6 s' b, j/ N0 [7 G p3 Q k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 |6 u* k6 f5 J3 R. W6 o3 Y nPoint += 180;
V; Y* z- q% r B2 P/ V1 @; A else if( m_nJob == JOB_ELEMENTOR ); _$ w: T5 ]3 A) \! |" J/ b) |
nPoint += 390;2 e# }, a+ {1 i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" E% E/ A2 I/ Z0 _1 | nPoint += 120;5 |) _! X! J5 N6 e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, ^$ _ }7 ~7 x nPoint += 150;$ L0 B5 M& }& n! {* _0 R
else if( nJob == JOB_FLORIST_HERO )
x; A4 r" @$ N" C4 z; v nPoint += 160;! }. U c$ |1 W4 j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( ?7 r9 t) k% i8 L
nPoint += 180;
9 q# c$ A- b; r else if( nJob == JOB_ELEMENTORLORD_HERO )! a; U# `; T/ T5 g+ [
nPoint += 390;* I# n3 M; W+ x% b9 l3 S. \- k
% T: C1 w I) A' ^5 y7 } AddSkillPoint( nPoint );4 \. x- f; Q# z3 U: F% g0 O
m_nLevel = nLevel;
2 d* L8 G5 ?2 \; Z2 U9 z
3 T9 W/ t4 [/ S7 D7 B A0 e SetJobLevel( nLevel, nJob );3 x1 ^' Z, }; k* K0 ^
m_nDeathLevel = nLevel;6 L7 C2 r/ e' b( d0 Z* O8 O/ b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 W/ o* E; T0 N/ G0 E
if(IsMaster())- e9 i" N5 l( i" m# O* R( S
{
( m5 ]7 u# H8 Q" l+ x, V, A) h9 ~5 ^# z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 J E, I' n) ^# d. W
if( nLevel > 59 && nLevel < 72 )
5 u2 j, r% I* r dwTmpSkLevel = 1;
" Q) v, T% X2 [; ~ else if( nLevel > 71 && nLevel < 84 )
3 J: N# n2 i( y dwTmpSkLevel = 2;0 i W1 w$ K" E ~. i- x7 _$ M
else if( nLevel > 83 && nLevel < 96 )
/ D3 D2 D& J5 j( a" K- { dwTmpSkLevel = 3;
( I9 s& Y3 X6 i, A9 ^ else if( nLevel > 95 && nLevel < 108 )
) B' e/ {6 N4 P! u- U dwTmpSkLevel = 4;$ ^9 r+ @& z+ L; w: M, q0 R2 {
else if( nLevel > 107 && nLevel < 120 )
5 m9 F; M% T7 y$ y dwTmpSkLevel = 5;
`( S+ u" O. L! |% f' F for( int i = 0; i < MAX_SKILL_JOB; i++ )
) h! \) S1 G8 l* H0 v8 h/ ` { 8 h/ y0 Z9 Y9 o% @4 c7 o) a \
LPSKILL lpSkill = &(m_aJobSkill);' P7 K2 I$ e8 u4 j9 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ ~2 W. H% T X {% @/ x# \4 o- A* H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 I; {8 u$ d+ d# Q+ I8 y$ @ if( pSkillProp == NULL )9 ~ K/ }& T* u
continue; ]( q/ w8 q& y% L2 G; U/ T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ^1 t1 W- L8 }' ]: A* M5 v continue;
1 Y4 ?9 Q$ B9 R lpSkill->dwLevel = dwTmpSkLevel;8 d" q. A# A# }( J' `1 V y+ B
}; R. R+ {& x! T" }
}
) B Y$ o3 J& X( [. {1 H0 X }
* u: A, G& O) t else if(IsHero())
+ W$ W7 n1 _9 _8 d. ~4 N( O {! X8 Y: _+ G- ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 g/ V3 w4 q: }) h. f9 e, J1 w
{ % F+ n+ q% O7 ~$ `! [8 y
LPSKILL lpSkill = &(m_aJobSkill);+ \/ d2 Z7 ?8 o. [: v- [
if( lpSkill && lpSkill->dwSkill != NULL_ID ) D& t' p' J, P9 j, u2 J7 W
{; C k# }: A7 J1 T& f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * {! `$ d; o# i2 C2 L M: r4 o/ }/ O
if( pSkillProp == NULL )
( R3 n7 z! d4 T7 |$ B2 m continue;
+ j) u N% L* E% }; y, J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% [) G7 W6 E7 k
continue;
, s7 {# g1 `, n6 V5 v& X, R lpSkill->dwLevel = 5;2 p& H, v- r# M9 A2 W/ V
}
* |+ i6 c1 b7 E5 S/ j$ e1 z# b. b }
?6 j$ q6 {! p! ~# @ f/ X9 r }0 n& k8 C5 l- y9 e) y# y$ H: Z
else if(IsLegendHero())2 O1 Z5 Q+ U! [( T& F* d
{
, A, p! s( }6 I! R' i$ K, _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 h1 g, B( z6 c8 E1 r6 u0 |# L {
/ s* Q4 h0 O# E1 R) G LPSKILL lpSkill = &(m_aJobSkill);* L3 J! ~1 U# s; |/ A; i' I2 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
k0 a- E. g0 y5 \1 j3 E& R8 d {6 ?: n( [8 q4 F$ Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 _4 U5 {9 G0 y% c* B4 [- \' x if( pSkillProp == NULL )
! L) E! ?" [5 E0 B/ G7 @5 g continue;' R) t. b. Z" P# n2 L1 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 |4 _: T- I8 G6 G9 j3 \* Y+ X continue;
( P9 V# i, N* x5 Y' f$ g4 ]' g lpSkill->dwLevel = 5;, d- \: G+ U8 |" G$ |
}
% a6 D4 U. k6 |$ O( {9 ^; j; z1 m6 o }# T8 N6 J! }' v7 D6 A' S+ ?' i
}
, W! r2 k( p! c( u( Z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 I: J$ s" l1 h8 \3 k
if( bGamma )
8 F4 G: T' f+ D {
# H( R3 U9 [+ c5 Y m_nExp1 = 0;
$ y* v: t5 `8 a }
2 d9 o) H% v$ f
1 d+ a) H+ `0 X* \% E ( (CUser*)this )->AddSetChangeJob( nJob );
# ]& N: H: J5 W' F& j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ z/ p5 p# F2 S8 w: I
# F3 B8 l9 I; Z+ E* j j) l+ v$ q
+ e0 C6 F* b* U8 e j! }#if __VER >= 11 // __SYS_PLAYER_DATA
" S( `: j/ }, Q% ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); O) L% k+ P) K# A7 I( o9 X
#else // __SYS_PLAYER_DATA
M) \; C7 W8 I5 r" \. Z' V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 z( ~* \( |4 O0 U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ N, F0 ^: b6 k3 t+ n1 d' x5 i) _ if( m_idGuild != 0 )! N6 X. a9 `; D5 f! h( ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 \% C/ N" M% S4 f0 d#endif // __SYS_PLAYER_DATA x' y8 y# J' j9 A3 e
SetHitPoint( GetMaxHitPoint() );' z: }* b# o5 O0 f
SetManaPoint( GetMaxManaPoint() );! s; Y b- _0 w/ |
SetFatiguePoint( GetMaxFatiguePoint() );; Q* `- u& X; C1 h3 x3 s
if( nJob >= 1 && nJob <= 4 )/ C9 S$ F2 O2 x1 n
{+ w$ F$ ^! k+ G3 e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 I6 @: p* ?/ t' ~/ Y0 P% j m_nRemainGP = 28;
, T) D6 E: P5 D9 ?/ L }- Y2 r( h/ I# X( m6 ]# P6 D! W% o
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); b$ F) s; r3 W* L5 K4 K: U
{
( d/ W$ C- Z7 ?2 @5 A% [$ o m_nRemainGP = 118;
" _. O" B2 R/ U //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 y2 y3 ~8 d0 z7 }7 W9 _" H) J
m_nStr = m_nSta = m_nDex = m_nInt = 15;& O; @ E* P" }2 C; |- S4 Y5 `, c$ Q
}
1 `4 H/ M& N* E& L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 Z q' g2 n8 I0 V* ~, F) q* ~ {
1 I0 i$ D8 x' A1 y- G4 L7 { CItemElem itemelem;; ?' j0 o" J! e' S: y/ }
itemelem.m_nItemNum = 1;( \6 A( ]# ` R/ {+ X
itemelem.m_bCharged = TRUE;
$ s5 R% ?5 I! r) p8 J& h5 |! ` BYTE nID;' D8 I! a2 n3 f. v" L
! s2 I. `5 G* a# Z3 G7 Y6 r+ T
if( nJob == JOB_MENTALIST_HERO )
1 \4 a+ [2 Y7 x2 ~5 q$ Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; H% f; V7 |2 O
if( nJob == JOB_FORCEMASTER_HERO )
7 Z; g1 e* r+ J4 U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ J% F' S, y* X
5 q6 [2 H( E& n9 S ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ l% I5 \$ U7 V: r }: X$ o) j1 G8 s M- N6 H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ p+ Z( y' Y2 X7 K6 `5 p2 p ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 q- @, b1 ~5 o4 O5 m2 ?2 k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; {% o) b2 x( B* T/ ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ a( D- l% c. }7 A
( (CUser*)this )->AddTaskBar();*/
, K, B0 T& p7 e2 ]; u ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 L) O& H- ~. |* D" Y: A#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ n, j+ L7 E" L* g4 |9 _
((CUser*)this)->CheckHonorStat();
X2 \8 D h: G- x/ F1 X ((CUser*)this)->AddHonorListAck();
, Z. O! c0 g- o* ?4 B g_UserMng.AddHonorTitleChange( this, m_nHonor);* e' K5 J$ O, b; [8 t
#endif // __HONORABLE_TITLE // ′Tà?
! h. r- \ n0 W6 S2 W* \. V }
* I& e: ]# x! r* v+ A' N' I" q% c#endif // __WORLDSERVER+ o* v6 G( ~. ?9 [- |
}
; j5 S* B0 d, X( l3 H
5 n+ W" L0 D" e5 g然后你进入functextcmd.cpp并添加以下, S. Z9 J2 h: I% o! V
0 v" X z/ V" X0 Y8 w4 |代码:
- u8 B+ z$ [( p' g3 I3 H, U" ]ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ N. C' ^$ V( g. H. r下面插入
1 F- e: F2 {; `( F+ O; GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , m( k# M F/ `1 {
4 j6 ]0 ?+ v0 j. w8 P
然后你去1 v% l0 S* q" i
, {8 C1 _0 V* m+ f7 I; _* c代码:% Y$ U. ~' [9 n( n# P. \& i. @
代码3 t2 `) F$ E2 x' V& }
BOOL TextCmd_ClearPropose( CScanner & s )
3 w. T4 F0 I' a{2 ~4 ?) @7 B5 w, c& o0 I
#ifdef __WORLDSERVER. P1 t0 x: x4 U# [
CUser* pUser = (CUser*)s.dwValue;
7 L, Z1 Y8 `) H g_dpDBClient.SendClearPropose();
' m; Z8 P/ I: P0 G( ]" o#endif // __WORLDSERVER0 w2 r& I; ] a3 J7 h$ l
return TRUE;
+ Q0 Y U, c) y1 r, }5 Y}
" i' Q+ L4 V2 ?下面插入& R8 ^# d' V- I4 M1 A) z
BOOL TextCmd_rebirth( CScanner& scanner )& f8 K, Z9 F! q2 S2 P
{
+ D( Q) P7 L" v5 n& e2 v2 n#ifdef __WORLDSERVER
: d. ]+ p+ y! D* X0 eCUser *pUser;
" V n# b: O" l9 opUser = (CUser*)scanner.dwValue;
, f/ z: `+ l. I9 w8 b2 L. r$ Z" aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. G9 f* o7 l8 ?, V; [6 e+ |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); m3 E4 s5 Y9 a. h% Q
else
: ~$ L& }; s9 h" g# mpUser->AddText("你还未达到重生条件!");1 A! Z$ ? p# E5 r( j, Q; L
#endif
1 C* F( x# M) U& Jreturn TRUE;# O) @; K+ M0 ~+ ~
}
2 o, \ y* t# b' w9 p! t3 }, M8 x4 j: R5 l. }* x. h( r% s
7 s% x/ i7 }* x" [; R& c% l5 ^2 v: w
% H" [' x1 w' ]( t2 y2 h3 j
|
|