|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( l4 b( z, d9 o8 }4 `- @( p, n
5 p" T" `& _9 q- U" `Mover.h
% z! Q, n4 Z8 h" {/ x代码:
! j+ u6 m: O! g7 h$ c& E% {0 L找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 L+ q4 { L2 W% A1 o; u! v( N( L4 y/ r/ ]( Y+ A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; o3 x; g e# n/ b8 C8 H
7 N' C+ ?" s9 t$ J# q1 D0 S然后你去mover.cpp添加5 e% u m j: [; z
- U$ E) H( S+ r代码:: T$ J9 p# [0 y/ v' U4 N- I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), O4 P: ]7 i. x$ ?+ w7 K* G ~
{
9 x& U! D, j& k! e$ Z#ifdef __WORLDSERVER7 M& [, }, s/ ?0 y3 ?' K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 t1 U# K8 s9 X1 D MoverProp* pProp = GetProp();4 t) ]2 X& Y8 C2 `% x
if( pProp )
0 }: [8 W0 a$ b {0 D8 U0 Q( A! n# O
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 a& J7 D) H* ?
{- P2 \5 i9 r7 |7 l* j; W7 L8 }
AddChangeJob( nJob );
! C3 E s" E( ] }else{
* Q, o, m& Q/ W- E% i7 X return;% a2 w$ b9 b+ P5 T0 s
}
( {! X) @7 ?5 k. x5 ` int nPoint = 0;& g3 l) E8 t& d& h$ Q* @
if( m_nJob == JOB_MERCENARY )% T% t; ?/ y4 e3 ?" q
nPoint += 40;
6 ?3 U2 L* V) } else if( m_nJob == JOB_ACROBAT )
! p: v* W! F. @ nPoint += 50;
" `( l) K' `2 G1 S8 G5 M else if( m_nJob == JOB_ASSIST )! u! J9 c Z% O( ?$ i# h( P$ Z
nPoint += 60; r5 B! ^+ @) B( Z9 R
else if( m_nJob == JOB_MAGICIAN )) E# T/ P" _' I, b3 o. I( g
nPoint += 90;4 m& y( p1 t9 ~. E
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& ` @9 X3 y& k" A3 H% P nPoint += 120;* H, y# P- q8 R* |7 @/ m) t) H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 L/ E$ h" ~0 n& K7 |: M9 i nPoint += 150;8 d# Y6 p% K/ ]9 L3 ]: F9 X9 Y7 X3 U
else if( m_nJob == JOB_RINGMASTER )
' [' S4 [, S; Q nPoint += 160;8 U! j* e' t4 h& f3 e* w" I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" \% G J% }8 n! a; _( W
nPoint += 180;, r' C6 o8 f+ w9 U) c
else if( m_nJob == JOB_ELEMENTOR )8 s2 t9 c5 F; ?0 Q& g' v$ f
nPoint += 390;
9 e% ~4 d( M9 z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 L: n2 X) p; Z3 A
nPoint += 120;
' n9 }% V2 S2 i3 @4 p( g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 d7 _$ T0 g! E- {, g) C% Z' Q/ u
nPoint += 150;1 c% j+ t, L4 J: I7 r
else if( nJob == JOB_FLORIST_HERO ), o+ P9 M; x5 l2 B
nPoint += 160;: L2 m' c7 z) m0 S) ]2 O" O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), [% H7 k* Z- o* f. q
nPoint += 180;3 C' e# k) l7 Z/ ~7 i
else if( nJob == JOB_ELEMENTORLORD_HERO )0 J) V4 M) m3 x0 u O
nPoint += 390;
7 u a A, q$ J( r0 A A0 h! X6 [ w! ?- n& O
AddSkillPoint( nPoint );7 u7 b' H8 X; M. h$ E7 b7 B4 X
m_nLevel = nLevel;7 K% C4 [2 \% o0 G |5 }
/ x D/ N9 o3 ]/ X, c SetJobLevel( nLevel, nJob );" D( D u- R* f- j' I
m_nDeathLevel = nLevel;
9 o4 F4 C# |2 q* n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: Y0 q7 @6 W0 E4 o7 K if(IsMaster())
& t L: n8 L3 v, [' @& A { o! c+ i; Q/ d6 I1 p' X3 _( o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 V4 b- k; ]6 d' V if( nLevel > 59 && nLevel < 72 )
4 U" J& e' `! P) l v4 j: N dwTmpSkLevel = 1;
3 \' c1 L x1 r7 y else if( nLevel > 71 && nLevel < 84 )( U! s; Q# k+ Q7 V
dwTmpSkLevel = 2;$ m0 M8 h, C5 x, l' F+ l/ g# o
else if( nLevel > 83 && nLevel < 96 )9 i, X& V F5 y3 Y
dwTmpSkLevel = 3;
/ v# R" H( x4 L6 I1 B% }- r5 w else if( nLevel > 95 && nLevel < 108 )
: ~3 b" {4 Z, v( Q( [9 k dwTmpSkLevel = 4;- B( | y' C0 N7 B* K$ [
else if( nLevel > 107 && nLevel < 120 )2 |. G) V1 |( ^. s7 Z( Y: }! M8 J
dwTmpSkLevel = 5;
( n$ N4 v1 V! i: E for( int i = 0; i < MAX_SKILL_JOB; i++ ) / V' w8 W; n0 c0 s" L/ z! P
{
- }' D( i5 b3 C5 G6 U LPSKILL lpSkill = &(m_aJobSkill);6 B! O+ |3 _) F5 V8 j2 a+ q: Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- V/ O) D, I: B {
3 }" ^2 Q# s6 c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 f+ ~- j( c$ K( G* _3 a* A
if( pSkillProp == NULL )1 t3 K) H& m# w% z- f8 i- r$ z4 }. @
continue;: P1 B7 b1 Z5 L; \) M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 @: I# Q* y+ @5 W. f& \" N" h/ _
continue;4 [1 Q1 e2 ]* P) C
lpSkill->dwLevel = dwTmpSkLevel;
+ g4 l) Q, d2 T }
# ]: C3 Q! Q* ~ I, D2 i3 Z! v. m }* z9 y) ?, i2 d; F/ z1 V0 l0 t
}' D+ _$ Q+ f; \* @, r( J) M
else if(IsHero())
! s+ W9 s9 o6 z) e1 v {
+ _$ J- N! M ]# s* |6 F; z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 X( {6 ~: T h; Z8 ]
{
4 x2 D5 b% a! |/ |/ c$ l% R3 y+ o7 B LPSKILL lpSkill = &(m_aJobSkill);0 {' _; A# D$ O" b2 ]: j! [" j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# I6 F' K7 X: k# K# |' p7 } {2 X9 P: V1 x9 \) h3 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& L% |8 N: e" u0 v8 g. q if( pSkillProp == NULL )
0 _# ` o( M. H3 ?2 { continue;9 z+ L0 |9 n3 U6 g) W: t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 f" F3 X! o+ H
continue;
: P, A+ G' d2 p. | lpSkill->dwLevel = 5;$ l7 V) P% V- l1 V |% R% w) B
}
- B4 h5 ?* V0 U$ q5 P }# m& W; f3 i, V! q( z2 B' o9 o4 u
}
/ G7 l* K m' I3 r) z else if(IsLegendHero())
Q a; @9 t1 o; t3 r1 C8 `1 m {: s# E6 K! n$ K$ [$ t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( M* G/ t# P; B3 n {
0 Z! X- F7 a0 i LPSKILL lpSkill = &(m_aJobSkill);# \. |* s" d+ T5 [6 W6 ^: s
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ s, R, B# z6 b/ L# t, e& ]4 O1 H
{- {' ~4 u; m0 r9 S6 A+ @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# B9 U) o1 {. {& ~ if( pSkillProp == NULL )
% p; @) G5 G j! h- y1 ^9 u7 x3 o continue;7 L. h. t4 _! |; F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; J4 }* k6 j6 {% N9 G/ K continue;; p* y# M9 |& Y- {1 J1 ?
lpSkill->dwLevel = 5;
5 A# ]: ?* c5 u2 u' d }
8 D9 I0 M7 x- M% o/ y$ e: N }! r& Q& r: Z5 l, n- G+ [# W$ @
}
! w' X7 A6 m/ K" L#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" t6 y8 K9 J' l if( bGamma )
& Y! D6 W1 d% |% W {
( k8 c+ n8 A2 N' m: {; B. J m_nExp1 = 0;4 x3 z. B$ \& t* r1 T$ p0 z x4 |5 j
}6 Q3 r) l* r7 ~) A) M
( r' `" C1 Z& o; t ( (CUser*)this )->AddSetChangeJob( nJob );: j* \1 x$ s) {; S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ `. `; H( S/ V, h
7 ^# D# o5 {" n' A- @' m
6 j4 \1 S% j" D* c#if __VER >= 11 // __SYS_PLAYER_DATA
$ V. J- `4 K/ \' S3 t$ ]* T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 T1 z/ j, b, k2 l- O
#else // __SYS_PLAYER_DATA( B' x- r8 x3 m' M. y2 ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 y+ r+ H6 a7 ]6 V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 P" s& X6 |# A0 g
if( m_idGuild != 0 )
( j4 ^' u# T8 |( d$ E! x g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 z" C5 _; b" g# m$ A/ `3 N#endif // __SYS_PLAYER_DATA
; H) F& r0 J* f+ z$ M7 G' r SetHitPoint( GetMaxHitPoint() );
+ y, b8 O [7 p. g% } SetManaPoint( GetMaxManaPoint() );
: \3 |+ B" A) O2 G+ Y SetFatiguePoint( GetMaxFatiguePoint() );) O( ~9 y- F$ x
if( nJob >= 1 && nJob <= 4 )! z& ~& ?7 v K( b1 H, _' F
{! U8 X B, h& |) M" O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# S% i, ^. ^1 o' h m_nRemainGP = 28;
( T" k: U6 e+ K. K g }% j0 A8 [! c; r- F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
|' N- D1 C/ A. e" j1 S* A {# n% q6 Q( o' i y3 o- Q; `9 [, n) y
m_nRemainGP = 118;
' `& m5 c, A$ ]! M* w' J$ }8 M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ e6 n9 o8 I8 E9 \; r7 V' ?+ {0 T0 g
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ c5 Q% u6 e9 b2 `% {$ B8 w# o
}0 J# l7 ] N2 o6 j2 ?1 D( m6 r
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 P8 M0 Z- @6 y% V! @. z {8 y( Q( z3 r$ c# B" `
CItemElem itemelem;
V+ v; q6 ?7 j6 C itemelem.m_nItemNum = 1;# J* J5 G; L( u8 P2 K2 t o5 B
itemelem.m_bCharged = TRUE;9 R! l6 F; O/ [3 i ~: G
BYTE nID;) D7 ]/ f; g$ ^! e# _1 g
3 _, K: j" G) D: P3 F! Y if( nJob == JOB_MENTALIST_HERO )6 `2 a9 T( J5 W" a
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 p1 I; l4 V" `, \. [: p: B+ ]
if( nJob == JOB_FORCEMASTER_HERO )3 r2 J, e. o5 U: ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 A% E7 X9 C$ E" q7 F/ F# f" T8 c
4 l V$ `8 C2 |+ F9 r ( ( CUser*)this)->CreateItem( &itemelem, &nID );) {6 {- v# J0 {9 W3 B$ z
}9 L0 N: {1 \- A3 `$ m4 K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! ]4 d9 a2 S0 T/ j9 {( p. C X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 v; b% e& A$ O9 A d. C# @% j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); G) D% R8 E; d7 F/ h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 a ~6 I3 d3 ~9 @
( (CUser*)this )->AddTaskBar();*/
* g+ V9 f7 B. w* |- A4 G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 A5 A# N7 d3 L! R: d2 Y5 X' ~) U: Q0 ~#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
q: ]& `! j9 }5 v' h ((CUser*)this)->CheckHonorStat();
V) j+ h! v- L1 t( z8 Q d3 c ((CUser*)this)->AddHonorListAck();
' e3 u& h8 j& ^8 J: M3 s g_UserMng.AddHonorTitleChange( this, m_nHonor);
* { {% S$ N) r8 n1 M( u#endif // __HONORABLE_TITLE // ′Tà?* T. O: [- h, D, o
}
3 h7 `# ~* \2 e8 ?0 W#endif // __WORLDSERVER% U7 ], P: N; Q( d4 V1 u
}
' U! @/ J3 ]0 D$ ^, O f4 B9 S5 ~% p% v/ n7 p9 ~& u
然后你进入functextcmd.cpp并添加以下
. \: f* b. n6 _/ z# I
* Z+ [+ x+ ]) m; |) [* `6 w) J% \2 p代码:
5 Y# w: U8 r1 @- M: [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): ^" g! S/ ^( l" v% i" o- d
下面插入
- b% Y3 `6 e- H# `2 ION_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : ]6 z1 k, Q4 @( J
$ | r7 D/ G' ]3 l然后你去
* q+ Z) w! h* Q
) K: Q3 z0 l7 e+ ?代码:3 @% b8 O% ^: j2 {
代码
8 F9 m0 ` S1 V* t5 F( w9 TBOOL TextCmd_ClearPropose( CScanner & s )
8 p. F Q! X# K/ r' z$ I{
3 O ]0 z8 ?1 @4 u5 H2 w* h" q4 L7 `#ifdef __WORLDSERVER" d( }! K+ N' [6 z% Q9 g* @
CUser* pUser = (CUser*)s.dwValue;
7 A0 [: v& A. C$ C8 u g_dpDBClient.SendClearPropose();
0 q" p- c. B! q1 K) f#endif // __WORLDSERVER c& T- W5 j0 T' {
return TRUE;
; @ ]- r' a# o( h- N8 p8 t# o/ x}0 q2 u+ d. S% b& k
下面插入6 R3 `+ m& q6 X7 w
BOOL TextCmd_rebirth( CScanner& scanner )
; O; ]# B) ?- y; @$ ^. A{- J4 c/ V+ K/ F! O3 ^
#ifdef __WORLDSERVER
& q( ~6 g Y5 VCUser *pUser;
- X0 U+ K2 v; d) {8 npUser = (CUser*)scanner.dwValue;
$ I5 A" S1 H* m- G9 z5 z. Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- H2 r! P6 x9 _: y, A5 z6 SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* f! S/ Z. N) K( Q; b
else
$ V+ C Y1 u' tpUser->AddText("你还未达到重生条件!");
9 k. X/ P- }/ D#endif: e3 r8 S' ~0 X, n
return TRUE;
# z" I" P$ X, r}
3 V& I0 B4 P3 f. p2 w T3 j7 }" l) f, p3 w0 K6 x( \4 `
+ T# v' l7 Q' H, R( j, W& F; i& f2 H" N7 H* Q/ Z& t. @' U
d. r0 ~0 j. z+ P' z& Y p; C |
|