|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; i3 U- g5 `; e: J
- n1 s+ x" w& k1 LMover.h
4 `! M8 X8 [! {9 A( j8 a, S) ], o代码:
4 c5 ]0 n/ ~$ j( ?# y( y- K找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! F, M7 i/ x+ f# s/ G
$ H; U+ J ~* F: o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 K) g- k. y: U& C* K0 E+ {* Q8 w2 K' w& s) R/ B8 \- J( m
然后你去mover.cpp添加
B" r' g# U6 H% _) S
- w1 y% i( M1 Z7 y; ~+ w代码:" p4 Z( }' e/ W% x/ z) _8 f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 B( Q" p3 k* B! S! k% x% C7 ~# ~{: `+ ]! j0 d b2 O! _1 P, B
#ifdef __WORLDSERVER; y4 @* y& {. A: E/ D* ^, f6 }/ i+ _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! F; `7 s: E" W0 E5 F
MoverProp* pProp = GetProp();& u; n/ W& |7 K$ C) {# N9 ^7 z
if( pProp )! U6 m1 E0 }# P' v4 K
{4 ^3 ?' i: N9 o9 a6 M5 }0 N2 k
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), o' a/ L! B3 I6 t
{
3 J" e! r, `) I AddChangeJob( nJob );2 {+ h; i) z$ [
}else{
, U$ W3 f2 T6 K% E return;- r% S* W/ h7 _9 {; v
}. ^( ? J3 I% S6 Z5 O8 V: s6 C @1 I
int nPoint = 0;8 s; G7 Y( L5 h/ O% f
if( m_nJob == JOB_MERCENARY ). w9 N0 H' u! l. _
nPoint += 40;
' T1 E% B' u; A$ o% D# k: S else if( m_nJob == JOB_ACROBAT )) \7 F: k! K! N# x, R
nPoint += 50;+ x4 y- U9 {* u/ L0 z
else if( m_nJob == JOB_ASSIST )# I, R( @9 ~. D; @+ |: W5 U
nPoint += 60;* `1 y9 O `+ x9 Q0 ` z. ]
else if( m_nJob == JOB_MAGICIAN )
Y% h8 @/ N& Q) j! M nPoint += 90;
# g0 C+ T, Z! F) D. l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )/ H* y+ q: r C! I
nPoint += 120;
9 ^6 u# A3 I1 K' y& `* l9 N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% E; |/ ?( r' n+ R% R
nPoint += 150;
9 W/ Y# a! M7 Y. _ else if( m_nJob == JOB_RINGMASTER )
! L4 w1 r, M% X" d6 O nPoint += 160;
" A8 C% b4 Z' d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" x& I7 j( Y. s$ n
nPoint += 180;: q+ ]4 @( P% z7 e
else if( m_nJob == JOB_ELEMENTOR )0 f" U8 A! I2 l2 U) v* d/ M
nPoint += 390;
( Z* q+ x2 A4 T+ J7 O* }& J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; ~- |" }0 _; |( e+ M v: V1 Y0 Z nPoint += 120;, p3 O( ?9 H% X1 }3 d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) ]$ J# R9 [ O( r
nPoint += 150;
/ ^& X4 l g. d* A else if( nJob == JOB_FLORIST_HERO )
' `# g5 T/ h0 h. D nPoint += 160;8 t t3 S' X7 W( E3 p6 k2 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ |. o9 @; p) {- x3 N; f; p9 F6 j nPoint += 180;
& t+ F1 K, Z# C) G8 o else if( nJob == JOB_ELEMENTORLORD_HERO )
; j4 z1 w) M0 a! u4 s1 K nPoint += 390;+ f( w. d! v1 O9 d% ^9 ?2 j7 T
4 |, |* V* t) `& O8 ?! n% { AddSkillPoint( nPoint );- ?$ D* ^* l, |! v( \4 J* E# e! T
m_nLevel = nLevel;
6 X( Z+ s6 o" k6 |1 {8 t' F! D7 a2 T4 X/ |2 |: n4 K" z
SetJobLevel( nLevel, nJob );8 l% T$ [$ q. h( y6 ]
m_nDeathLevel = nLevel;$ i4 y: ~2 f; S9 l# H, t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 Y) k# A% c# V# K% `
if(IsMaster())2 |7 a U T; W7 W
{7 }! r- Q$ L& m" c A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 B! K5 l. p2 W+ {8 d
if( nLevel > 59 && nLevel < 72 )
0 j: [) |; i( H dwTmpSkLevel = 1;0 v" y7 `& D* m* f% P$ J
else if( nLevel > 71 && nLevel < 84 )3 e+ {1 o% h! f2 q* X
dwTmpSkLevel = 2;
% u1 e% O+ W. J! p0 Y/ P" b else if( nLevel > 83 && nLevel < 96 )
# E% `$ ~$ p8 W& j8 e9 \ dwTmpSkLevel = 3;, Y/ c. e, [( C3 W; u+ ]7 m# V
else if( nLevel > 95 && nLevel < 108 ) w( ~; N" |3 J/ c2 b8 q% y
dwTmpSkLevel = 4;
|9 ]- Y6 X* Q! w) H8 M$ m# C$ I else if( nLevel > 107 && nLevel < 120 )( c4 h! o. R3 c
dwTmpSkLevel = 5;( j5 w& g4 M4 }4 d9 _% P, S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' a9 G" K" ^- ]% i% s6 ^- J {
3 P6 B$ D) V; o! Z4 v7 ~ g LPSKILL lpSkill = &(m_aJobSkill);
* \# @) X7 [! p: H if( lpSkill && lpSkill->dwSkill != NULL_ID )
% Z3 x& {& L8 X {3 r- T) j- b5 a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ {& M! z! T% u* d+ _ if( pSkillProp == NULL )
G4 Z: r7 T, G4 @ continue;3 b0 l: v. ~8 o4 j0 x* Q, z6 j2 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- Q% K& u, z4 h. U/ v! ^ continue;
! m% b P; I- V. a9 W lpSkill->dwLevel = dwTmpSkLevel;+ z; D& K4 N5 f `# X8 t. E
}
- y6 x* h' S6 k# |2 r8 ^7 v }! [, g8 _0 y( S7 `1 m
}
( n: m/ M. y. i# e+ K& N else if(IsHero())3 \3 Y$ j0 c5 ~- b7 m2 d! h1 s% j0 A
{
( ? h* n0 a0 L/ z for( int i = 0; i < MAX_SKILL_JOB; i++ ) # S" P! j6 \. t8 O) M
{
* `9 Q# U9 u3 h5 |5 l LPSKILL lpSkill = &(m_aJobSkill);$ ?$ ] P, |7 [8 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- Y& C( Q5 M% h5 P& U# D9 \% ^ {7 N4 F0 v% R! q, C4 b5 a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , |$ Q8 U+ t- p( }, @, R2 M0 {
if( pSkillProp == NULL )
6 H$ U+ F V' r continue;! L- t' o/ X3 d7 ^) L# I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& I- b( L; w6 o- K) b continue;' o Q( |0 h0 S: ?
lpSkill->dwLevel = 5;
! l: @; U+ s+ D8 K2 r }
3 H! q; _3 A+ H( l }! U( n4 z8 w' E5 o$ [
}
7 W: h4 P0 d+ V1 C& O else if(IsLegendHero())
! f$ u D, M7 Q3 y {
: r! D$ h( ] N- B: ?( Z; e1 m5 m( u for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' g$ e k k2 M% ^* d# c
{ ; e' _$ z- s" \/ G
LPSKILL lpSkill = &(m_aJobSkill);
- o, q% d! M2 {6 u3 e& G if( lpSkill && lpSkill->dwSkill != NULL_ID )
, U4 Y( X- D, N7 o' ~. ~& e/ v {
/ M; i. d R+ K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' G* d- ]4 O: C/ `
if( pSkillProp == NULL )
3 Q# d" m3 z4 ~: r y% V0 m/ ]6 k' M continue;
+ T9 K% @; u! O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 p1 T. |0 i7 p5 F) B/ T& u8 O
continue;; b. E4 x* [1 @2 J7 u; Z% a
lpSkill->dwLevel = 5;
& c8 I2 [4 A/ C5 t$ |9 J }
" C9 B: D% M8 l. R }
7 g9 a& B/ ?0 }4 I5 K! Q* d$ M- Y }/ ^6 y1 B+ ?! D4 I% V6 ]4 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ f+ k" L, i8 @- O# Y if( bGamma )
5 G2 j# i! ~% p8 a4 Q( z {
8 ?) m# S: a$ D F3 |5 e: ] m_nExp1 = 0;
4 v" F' A/ F; o' O: } }1 l: B$ z8 y2 d+ ]3 Y
1 ]3 ~* R( _5 {) K6 d# A( ` E
( (CUser*)this )->AddSetChangeJob( nJob );
, X# \; `9 B( m( Y9 f0 p C g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! s6 o8 S9 n' F) V' C3 q2 h N( b u
, Y* N- c- n+ K; W' g8 W& _1 F- S
#if __VER >= 11 // __SYS_PLAYER_DATA4 o2 p+ k. E Q) A' t" l- p) Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 v) I4 ^2 ]* k1 ?4 c#else // __SYS_PLAYER_DATA6 `; G6 _& G: }! n& i5 U1 c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); g/ [' }, b' i2 I2 G
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: }) G! U, l& ^" o( o/ n+ g% m, P if( m_idGuild != 0 )
b: |' m) h- q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 |6 X# O: d9 Q" V; X% u9 a) ^% t- l#endif // __SYS_PLAYER_DATA
0 m; N5 u3 r' b, R Z SetHitPoint( GetMaxHitPoint() );# c7 g$ m- Q% N, N' ?1 z% ^
SetManaPoint( GetMaxManaPoint() );6 J- e$ [3 g& z. r3 O/ Y k
SetFatiguePoint( GetMaxFatiguePoint() );
: F" e: w& W/ A8 q0 O if( nJob >= 1 && nJob <= 4 )
$ u4 R) i- `, {1 E {
. V6 W* j8 ~% b. F7 k, ] m_nStr = m_nSta = m_nDex = m_nInt = 15;1 c% Y- s o# X V% c' f
m_nRemainGP = 28;
. [4 {7 P, R! n }
5 i2 N3 B# F \2 M' Z! l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* Y3 s! ~+ r' O1 p+ t; h5 T
{
I s( y# u: i7 B I( u m_nRemainGP = 118;: W1 N! @" Q' `: k; _% W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" l# j! G6 q9 F1 y m_nStr = m_nSta = m_nDex = m_nInt = 15;
( p; p5 H {! B }) M7 P4 {4 Y( `1 W- |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# F4 J( v& q) e* F* k {
. R* S& U, @8 @/ @! R( M# v CItemElem itemelem;
G! A. c" P1 O. |& d itemelem.m_nItemNum = 1;
! P1 o) }3 f, {+ O0 A# z itemelem.m_bCharged = TRUE;" @2 ?! d; r$ r# y
BYTE nID;$ I' @2 y. v4 I
# x1 `/ N( _) `
if( nJob == JOB_MENTALIST_HERO )
4 E, u8 E4 C5 L( f: @+ @; Q9 L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
j. E, ~* k" u5 h3 w: M+ o if( nJob == JOB_FORCEMASTER_HERO )& o+ H+ l( ?2 w+ I9 J: d6 a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ b# P4 o$ e, ^" T
7 t2 J x, l" L5 p+ E. ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 N5 c4 p- r( W }# J) N2 ]7 O; P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( Z: S& ~) ?" c+ T9 X# C& j1 B* D ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ s) y9 G7 s( A- _* j* L, P; n$ G( ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 m9 Z, [. f0 m# a6 g& R D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* c0 P) u* d. }7 _6 A( J8 p1 L
( (CUser*)this )->AddTaskBar();*/
1 k( D. P: V5 S) T0 h" h* U0 ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- e: I6 N% ?( t) ~" K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 ?1 y3 d! Z6 S2 k$ W ((CUser*)this)->CheckHonorStat();0 ]9 d6 G; t' U% y0 ?
((CUser*)this)->AddHonorListAck();! k) m$ z4 z4 b- Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& @9 q5 E9 n* O: u5 l& H#endif // __HONORABLE_TITLE // ′Tà?
! Q: {* K- `6 Q& t* ~' w' L' E7 j }' P5 H' h& B7 l2 J, \# N. a& r
#endif // __WORLDSERVER
8 `1 {2 z5 T1 c2 s7 }0 r& t} + Q! @: r3 P: n& K7 d: e1 P
$ A2 v0 z& A- `0 ~6 g5 ~3 {! _: u1 n3 ^然后你进入functextcmd.cpp并添加以下
0 Z( K, ~% Z. A0 v+ C. d: ^
0 d0 j ~2 e. ]9 n6 D* M代码:# `6 _6 S( @: S" {: F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 e( Q, m [% ^, C9 D7 R
下面插入
+ k( h2 E$ Y; ]* q+ a, gON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 D/ e; g& l7 P7 T
# ?! t2 k: @, G6 Q" u; z然后你去
9 ^9 K- F) ?) U* i2 \9 \5 x6 h: S. s: V( M4 S- H
代码:
, S3 @/ b* X3 O8 `$ W7 K7 m代码, t% h" C4 N. l) n0 y
BOOL TextCmd_ClearPropose( CScanner & s )! K3 N- y4 f; U" U! v( C. l' ^
{
& Y5 \$ t$ `% k) o/ @#ifdef __WORLDSERVER
% k" Y" ~" Y1 b CUser* pUser = (CUser*)s.dwValue;
1 o* b, m7 O ?4 ^4 ]6 w% r g_dpDBClient.SendClearPropose();
2 f$ L0 G+ u$ ?* D, Y#endif // __WORLDSERVER- D; D5 z% t9 c) G: u9 o6 ]
return TRUE;% c. ^0 C' z4 B: o- r
}/ i I" o# ?* k! w" b/ ~. J
下面插入1 A; V$ S1 E' a0 m: J
BOOL TextCmd_rebirth( CScanner& scanner )
9 z: W3 R" t0 f( E{+ a, r8 S* q. P( O" @* Q T/ E
#ifdef __WORLDSERVER
' c6 |/ P. ~& Y: iCUser *pUser;4 n( d$ z4 Z/ _* ^5 k
pUser = (CUser*)scanner.dwValue;# e/ d# X/ E7 h% m. |8 d* _3 P
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; A$ h/ [2 }( z; N3 CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. H* l% \3 ~( k, T2 k G" ~
else
! ]' M" G5 S4 g" l* R7 J0 jpUser->AddText("你还未达到重生条件!");
9 I6 @. A3 N5 N6 S8 U#endif& X. y, K6 l: k" k$ N1 N9 C
return TRUE;
6 Z/ D4 j2 S+ @2 w( d+ c2 M& Y/ Z} 5 v/ d+ Z% l/ G/ \
$ t: X9 J$ W# b, e ~0 B% H
; Y# V& ~ M9 |- ~. {- z z, i6 ^0 r& Z D( j9 r
, q: m: e" J$ {, A |
|