|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 B8 K2 v: ?" N s) ]
I. K2 K: z. c. F/ e$ }4 }4 jMover.h
) z6 j. [6 b' b" {. ?' _ O" D代码:
% |' n- P9 J- h! J/ ?: e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. o! C7 {0 p+ ^8 ~% P c- b5 }
( V* C4 }/ {" S( w下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . g5 n. R# F. z6 d" w! \
6 u2 O! [1 V( H/ y
然后你去mover.cpp添加
/ |: g6 f- ~* i! w) t2 t6 D% I
: E7 O/ ^& t5 L代码:
6 f, O5 p" a9 z4 P5 [2 W% o5 ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& `: ~% T) u. k
{2 |0 N4 d% C8 Q! _8 `1 B! N
#ifdef __WORLDSERVER, c# _0 i/ u1 R' z; W; J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! {5 k% e7 i3 S8 V% b$ Z( R
MoverProp* pProp = GetProp();
; j1 U+ D- z4 i8 U& m/ E, A if( pProp )
@. s2 w; ?# l6 f3 e) R3 K Y {7 O" l8 n9 R N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ ~# v3 L5 e6 d( P2 C# b
{
+ ]) D" g' p0 h* ^ AddChangeJob( nJob );3 r+ D1 }' G) g: D& k
}else{
$ ~: l. x5 T1 b# Q( u. d return;
) t- X- F7 ?5 v+ J }
9 o& O4 j. A. b: h/ v" f int nPoint = 0;
9 \. i P* v- |& H% J; W0 j3 _0 Y* g if( m_nJob == JOB_MERCENARY )
' [) h0 P3 k6 w- H! J L nPoint += 40;
9 @4 s" n3 m% `; U7 l, H else if( m_nJob == JOB_ACROBAT )0 D z; \ m( O
nPoint += 50;
; I9 G a8 {3 |( g: L) ^2 z- m: B else if( m_nJob == JOB_ASSIST )) a# f; p5 w# ?5 M
nPoint += 60;" M% t/ s* a J# K
else if( m_nJob == JOB_MAGICIAN )
5 Z0 R' E# E- y# ^: [8 Q! I nPoint += 90;
# _, a9 ] [" y) X7 T" f( V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; c. z& a0 }9 s6 w nPoint += 120;
1 S7 q- m5 Q4 P- H6 l% I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( [6 O2 B* ?2 s8 e# w# G3 s1 b nPoint += 150;
0 L1 ~1 n6 D& X7 C1 ]* Z) p else if( m_nJob == JOB_RINGMASTER )" `& K! z: @# ]6 y
nPoint += 160;* H- M% [! `+ X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ f4 J0 p! W$ n4 k nPoint += 180;
. t" _6 u+ \# B2 N" B7 x else if( m_nJob == JOB_ELEMENTOR )5 d0 X# C! w# y# b+ s8 [+ B
nPoint += 390;
, P0 s* X3 j$ r' d: ]: r else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! I; U! M# v1 ]: t3 @, Z' Q! j( i
nPoint += 120;
! T- s; V0 r! D& v: x! m; R$ ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ ]( M1 q6 V/ _! B: \ k nPoint += 150;# y& [6 z$ z& H5 m$ v$ r
else if( nJob == JOB_FLORIST_HERO )
( o, Z& M& M3 k! H1 K+ W5 c nPoint += 160;& u' `; {2 }) {8 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% C. {, S; W+ O3 u9 l# O7 Q! T, t
nPoint += 180;& o* y. s* u4 a2 p! r l
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 _ I9 Z( |6 b* R' _ v/ R, ~4 _ nPoint += 390;
/ L" X5 Q6 u5 K$ U
6 Y1 ^/ f Z/ y9 J3 K+ w( @ AddSkillPoint( nPoint );' n) _" }1 D" u& d* l* V7 F1 ^5 V
m_nLevel = nLevel;
0 X! N# R. C6 b/ r% n( A c6 S" g
$ M8 g8 `7 t$ h# @ SetJobLevel( nLevel, nJob );; {$ |8 ~* i! Y% m
m_nDeathLevel = nLevel;9 j5 D& g9 K2 g4 @, y* ]" T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 l6 d1 y6 U4 z2 n5 G+ o
if(IsMaster())) f2 N7 J) Q! W1 N6 L
{
8 [7 l8 |" E3 A1 p( b9 q7 T int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 r8 L( I. t" z- b |0 Z
if( nLevel > 59 && nLevel < 72 )$ X% }6 ]" W9 P Z
dwTmpSkLevel = 1;
5 _( ?3 P U" n8 S else if( nLevel > 71 && nLevel < 84 )* o h8 K% d: G/ [) ?$ E- G
dwTmpSkLevel = 2;8 V' W t8 u- ?3 U: P9 E
else if( nLevel > 83 && nLevel < 96 ); G4 A9 w) Y H$ d' R) I
dwTmpSkLevel = 3;' k8 `; t' ~/ O. T6 Q" }
else if( nLevel > 95 && nLevel < 108 )
0 {+ C: a G, Y2 g9 k dwTmpSkLevel = 4;
: i: ?* G8 \) [! m else if( nLevel > 107 && nLevel < 120 )
; @& ~% d+ b: F( [# m dwTmpSkLevel = 5;
: W! s( q8 E4 x) D6 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 v+ |: _! W/ | { . Q0 N( Q2 |7 p7 t9 o
LPSKILL lpSkill = &(m_aJobSkill);4 v: i# p/ \- p& z9 l1 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& O! I7 W: E0 Z; w+ f* \ {
! ?, ^! U2 ~: e! p: X# y7 \$ x" a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) g. `; u" `/ t1 V/ s! C) T6 X
if( pSkillProp == NULL )
$ p. o3 X/ F( O# q continue;: ^" z5 L7 i2 r# e0 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 p6 i+ D9 E* s1 j; @. ^3 p continue;
- Z/ n: b6 i( [! g lpSkill->dwLevel = dwTmpSkLevel;& ]1 C, Y, u4 u4 O1 _, M) |; A! c
}
) e# C: W2 t1 W0 h }* O s. A8 o9 v" o6 Z
}2 s0 j, v6 D6 M' z
else if(IsHero())( @1 L( W+ r# m$ ]9 z+ E
{& ]( D7 t1 c6 `# d9 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / h' ~# M# u1 l' f9 j a" s( g* @
{
# c/ l$ U9 Y4 Q LPSKILL lpSkill = &(m_aJobSkill);$ e2 A# h& p$ p, a3 S- ?' ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- z" V. k! ]& @( `5 B- @2 j {( Y. C( J" v9 k2 y1 k# }, q, h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - M; t! U1 R9 \4 f' x# O% f
if( pSkillProp == NULL )
7 M. T# D3 I a continue;
( c: Z- A& q# r8 T+ g3 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ S1 Y, _! x @* T) Z* X
continue;. Z: ^: V: t# q/ Z1 n
lpSkill->dwLevel = 5;6 l7 {' K* G& `2 }
}
8 |( K4 M; F; V6 ^, H }
+ W9 k7 F4 d2 |. j/ ~- ` }
2 E U) [; |, M' m$ { else if(IsLegendHero())
' R7 k# p# O4 C9 |) z3 O4 q {
. G" j$ h0 s, v$ z# J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 w4 z( K/ G6 q a; A: R
{ 3 X7 |7 R# W$ X$ s& h& _ e' g
LPSKILL lpSkill = &(m_aJobSkill);
( l; _7 d& ?9 L. x g& N: B! C if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ y) A7 H0 |3 V* r& Q1 b" {, X8 G {/ Y/ z' e* K3 F7 M1 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 c6 R$ F2 w# O7 ]" w
if( pSkillProp == NULL )# A5 @* M- y! Z: d) e" N* M
continue;
; e5 T! Y- g7 t" p& H W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! Q+ ^/ c( W" D% T continue;
, ]) Y; A" m8 c lpSkill->dwLevel = 5;
9 ?/ {# `) p( u/ E! S( Z }0 ?% o$ o# {" W" {
}- M$ D3 f1 \" q1 n) a
}8 H! `1 U$ U/ N- S* z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% L+ Q9 }9 m* G8 x% M) b if( bGamma )' U) V1 b) K! j% G* b, Z
{
- s5 I* X7 l: C9 d m_nExp1 = 0;
- g) |, d( ^$ j& H2 x# ^8 d/ s }& q5 o" g! f, Y* F6 W9 F
# }6 O1 C a3 }& \
( (CUser*)this )->AddSetChangeJob( nJob );. b" g6 N& g4 ?2 W6 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 Z3 e4 ^7 o7 a9 l
$ r0 g2 h0 S5 ?! D+ f; O& ?) x* m; Z* O
' e, j. d! |4 y# n# [# n7 v* P#if __VER >= 11 // __SYS_PLAYER_DATA
Q- i- r4 C6 e6 w g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 P1 o$ Z% m, N: Y* d$ n/ F$ ]#else // __SYS_PLAYER_DATA
4 n0 B# }- l7 ?% T* e, D4 r n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# d* f' v7 ]3 x" A5 ~( ?6 u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. n) j. E8 J8 g6 o2 l- R* O if( m_idGuild != 0 )
8 d4 Y; F' P9 q+ e. ]$ ]& [ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) r" d* V6 A1 N& r% h' R! }. s
#endif // __SYS_PLAYER_DATA
. W" u w+ y' Q8 z' }$ S SetHitPoint( GetMaxHitPoint() );
! b& h* \/ e% B- h% A3 l SetManaPoint( GetMaxManaPoint() );0 ~* ?( H5 _. a$ T/ [
SetFatiguePoint( GetMaxFatiguePoint() );; ^& D- L3 E. n% s+ n0 k4 h
if( nJob >= 1 && nJob <= 4 )
% L- l8 j8 t9 P {& ]: k; E4 Y1 E# b5 E# Z- \$ P/ o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: F& ?4 e. e5 y# O m_nRemainGP = 28;
4 ]# F' y6 z& `, j! I* y7 R5 P. n- A& P }* D0 L0 A3 ~ M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
h/ ]7 `; }5 {1 v1 d {' y0 ]3 l$ p# D
m_nRemainGP = 118;" [5 _+ `7 ^* l8 D% N- j$ q% T
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' T3 X. T9 K# w" R, k% |1 ?) o
m_nStr = m_nSta = m_nDex = m_nInt = 15; d z& B! @9 n
}7 G: k! ^5 u0 V
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 }6 L6 X. a6 n$ p' Z; @
{
7 I+ H+ R. S" K5 i CItemElem itemelem;
7 s3 m# x( o# j5 q itemelem.m_nItemNum = 1;
7 [3 f6 S0 C1 g3 Z% i itemelem.m_bCharged = TRUE;+ ~' o8 ^2 ~. f9 ~! z2 [! Z* R( k
BYTE nID;
% d4 {9 g7 J" ?+ |* J+ H# j0 n- B9 G8 \6 b0 U. x9 N; d
if( nJob == JOB_MENTALIST_HERO )
$ @! X- e. u2 [' Q0 @" j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 K$ E1 ^4 ?& [: h+ }/ M7 ^( {6 P
if( nJob == JOB_FORCEMASTER_HERO )
! z4 o! a! M; a, X" l. _ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" l: s" o8 X3 L$ q1 X
0 H/ ^. b1 |, D |8 @. _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 A t( A; a% P; u3 g; q- [/ U }
. n4 {' V, a( u: x% s" T5 e6 P+ U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* _* K6 h' W; g# _ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& A0 x5 u) B& v* w- V& i ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ W+ z0 ]5 h" U% K; K! I- _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# O5 B5 k+ P. W+ N/ K ( (CUser*)this )->AddTaskBar();*/; R% g) G. J7 ~" r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 X. t4 ~ m* B# a4 c
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' ^% p. @ K+ P, @ k7 Z7 G" n ((CUser*)this)->CheckHonorStat();# z& I+ Z% F& t! o# E( {3 a
((CUser*)this)->AddHonorListAck();. M1 A" q+ Z6 d- h2 D( l
g_UserMng.AddHonorTitleChange( this, m_nHonor);! a2 C7 L2 Y' s6 }; a) m
#endif // __HONORABLE_TITLE // ′Tà?7 E' H0 w* q; J2 |2 V: R) ?
}! y7 q# b% ?* \9 g
#endif // __WORLDSERVER2 {: r/ z! P- V- e$ M
} 8 s/ J& L( ^! c. j5 ^
% d; Q D2 a" Y" f8 A7 w2 q
然后你进入functextcmd.cpp并添加以下
$ X/ Z) T& y& Q# c
; |- J% g) }7 H- H: g代码:
% v- N2 k8 b" V$ W# u4 m6 YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% F4 q( \8 m+ B/ B9 J
下面插入
/ k* v8 {! u' _# X% \ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # [# ]* U9 C* K, T
! E' R7 G) U9 g: \4 _
然后你去0 C9 L. y I0 p9 m7 p
, }/ G8 }$ K* [' v代码:8 S0 N8 I! z* `; |1 u2 M
代码$ C/ [2 @# b C! I3 H; Z
BOOL TextCmd_ClearPropose( CScanner & s )$ {$ d+ e) g& B* R( `
{4 b8 ?. `/ A" o, m! R( B/ J2 T
#ifdef __WORLDSERVER
4 h$ v& O e$ Z$ H' ^/ { CUser* pUser = (CUser*)s.dwValue;
" _) L% q6 ]9 D* O g_dpDBClient.SendClearPropose();1 p" R, g; M( u
#endif // __WORLDSERVER
9 _& w: ^( O0 n: {1 e return TRUE;
* K# J5 d! L, {( T; q}5 \8 n: } y1 J: w& O
下面插入1 T' d5 u) {& C4 N
BOOL TextCmd_rebirth( CScanner& scanner )( w1 d+ T2 |9 @0 H" Z8 n+ Z
{
! O7 Q4 A' z$ s9 k, e#ifdef __WORLDSERVER/ q& V. W/ S- X2 s" _+ ]; r
CUser *pUser;
/ o# O4 q0 M8 J( KpUser = (CUser*)scanner.dwValue;7 \2 _& l/ _6 z; n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) g7 m6 s9 p& |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* U: b( `# ?) l. ]. {5 V
else
5 W' M* v) ^, I+ v! PpUser->AddText("你还未达到重生条件!");$ B6 e" ]- Y! {, |- r6 Z/ V
#endif
, h1 d6 U c; C8 Wreturn TRUE;
2 }* y e4 o' }" |& R, F6 X! `9 n} 7 B! n; j2 {, I1 p3 ?. z
6 O' F' k. C8 i, C t# g o( Z; d
; b6 N5 H* ]# R+ r C2 R0 \) a+ A% R h3 h. _
" y$ _$ m. m2 t1 }
|
|