|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- z- J6 d, ?# M( K1 o
1 G4 [8 D) u" T8 F) [Mover.h1 e6 u* P! }- z5 v: P
代码:7 I' ?: y# M2 `1 S9 x7 B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 @$ l4 u, {* g
t% N$ {& D, ^: |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & M/ S$ a3 M% p+ n) g2 F; X% O S' x% ?
; L* D. B1 ]0 R/ z& U
然后你去mover.cpp添加 Z/ y" _/ A o, L
+ ?# p' _3 y/ w1 R8 `
代码:/ S t) c0 `; y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 [& n( t; z, d! t1 k- [; N
{
5 u9 ^6 [/ l% R#ifdef __WORLDSERVER, c' i* y" O: a# B V: I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 D4 N" ]& I1 E8 M5 O# t$ V MoverProp* pProp = GetProp();
9 o C% G' R4 ?$ S' s if( pProp )6 D0 J* r: l( A( x! Z
{5 I! g3 y. u* t1 W; e5 _8 G7 o; T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' w" v1 d7 B1 I% b {
7 b0 ?3 } w5 Q( Q! H: [ AddChangeJob( nJob );$ I A8 x; h, P& z' i! ~6 f
}else{5 N" W: p$ X+ l8 w
return;
$ c, o, _& X8 c; O5 w }5 d, A. D# o. x* u/ f) F7 N
int nPoint = 0;0 u; |! `# s8 y& k
if( m_nJob == JOB_MERCENARY )3 Z3 G! E& q& i. z
nPoint += 40;
5 j9 f3 M! [7 _ else if( m_nJob == JOB_ACROBAT )
9 h8 ^! z, v7 H3 F' P nPoint += 50;
& w; M* X8 r2 h+ k) E' \5 a else if( m_nJob == JOB_ASSIST )6 w9 L1 K: {+ L# V$ t2 o
nPoint += 60;
. a0 I: Q* s+ Z' z1 ] else if( m_nJob == JOB_MAGICIAN )
$ G; |% }: @; O- B nPoint += 90;
e0 z L! A; V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. n6 _" T9 E& |1 w nPoint += 120;& E* z I. @) c" J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! |4 L" w# ~! Q- H nPoint += 150;
9 t1 w1 z# H# T/ B5 k2 O) @ else if( m_nJob == JOB_RINGMASTER )
3 G! {' f' r- R& F5 F nPoint += 160;& v6 e$ l$ P+ e6 X }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ B# m; A1 g5 e7 L0 {; e7 q nPoint += 180;
, k0 P4 P0 {! G3 {$ a else if( m_nJob == JOB_ELEMENTOR )3 F5 ]9 B8 \; t5 K) f
nPoint += 390;" o5 E0 K: f+ t8 w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 g& B; C$ q% a3 X nPoint += 120;
, e$ M. S/ u& U2 B% | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 r2 W5 H- z1 _) Z& z* R# x
nPoint += 150;
: o1 l I6 Y8 @ else if( nJob == JOB_FLORIST_HERO )" |) f4 P# d2 G/ m2 V$ b3 I! d
nPoint += 160;
( h, H5 {, h; Z1 H* v0 U else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! ?, d% u" f* h+ R: S1 h
nPoint += 180;
8 I& s2 v$ q* m1 ^* { else if( nJob == JOB_ELEMENTORLORD_HERO )
4 a5 W# B g# }- h nPoint += 390;
: L8 }/ s% x, r& e! }6 b9 R* X1 A% _+ U m% z& u
AddSkillPoint( nPoint );( r$ c" ]3 ]0 e9 ?0 W" J8 W2 o
m_nLevel = nLevel;5 n. J* a7 j' p( t) h# ]
- S4 K2 R; u* N) e; ]3 t* y+ @0 I
SetJobLevel( nLevel, nJob );
5 P, t7 u9 Z- B/ E8 X, n3 m m_nDeathLevel = nLevel;4 Q; P6 \9 j5 z) m: q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, f- ]- t# t ? |$ { if(IsMaster())
( a6 r+ l5 N8 Q5 Q3 b {0 ?+ X; i: `3 I6 f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 j4 e3 {' S: Y if( nLevel > 59 && nLevel < 72 )* V1 o/ ?4 Y' }3 S: M: g, Q
dwTmpSkLevel = 1;& d6 `5 f9 b* ~% n7 C" F
else if( nLevel > 71 && nLevel < 84 )% [$ L/ w% e8 H* p7 o0 ?
dwTmpSkLevel = 2;+ I/ ?, f+ ?5 k5 h: F7 i0 u3 Q7 g
else if( nLevel > 83 && nLevel < 96 )
( ]4 e3 \/ C- {3 B5 ] dwTmpSkLevel = 3;
) ~/ E. l% w4 y* B* i' S else if( nLevel > 95 && nLevel < 108 )
7 \5 d$ a" n; m9 Q dwTmpSkLevel = 4;
3 u+ h. O) h4 W& @# E! t3 a else if( nLevel > 107 && nLevel < 120 )& w. Y) A, t( x5 k+ `
dwTmpSkLevel = 5;1 e% C: Q* J* O- e9 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) \5 E& ]% C9 b3 n
{ 6 S# n/ d( W6 S; N
LPSKILL lpSkill = &(m_aJobSkill);
, c, X$ p7 W6 F, a5 Q5 W if( lpSkill && lpSkill->dwSkill != NULL_ID )+ C/ B7 N" h' d/ r
{) j u, j2 s0 y2 z2 L+ W& Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) S* m- b6 }0 s/ Y1 m5 f4 w9 V3 @
if( pSkillProp == NULL )
3 ?2 s# O% w; i! B. `6 | continue;3 y9 U$ S: |: j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! X' s4 F( Q7 k3 e4 y9 ]( p; t( b( s continue;
" s: E) Z, M8 ^ lpSkill->dwLevel = dwTmpSkLevel;4 w( X! z; h0 [7 l" ?" n
}3 x' f W6 L: x6 k; ^
}- Q+ I( D7 U% f* F+ T! l
}8 u: j* D' ]0 ?: `" s4 I
else if(IsHero())
5 B8 r0 R8 \: ~/ }* Z5 O0 \( H5 C {
! |+ [; [6 @ h2 K; @- O7 A9 U& i. L! p/ f for( int i = 0; i < MAX_SKILL_JOB; i++ )
: x6 b: z1 m9 U# t! R( |5 _& z, O% d { - z( B" C8 ~) z8 O* L! s! r
LPSKILL lpSkill = &(m_aJobSkill);
# Y& t, t4 S4 k( [$ n if( lpSkill && lpSkill->dwSkill != NULL_ID )
, I% I, G- b: M' T) d- A {9 X, ]+ o+ @! ~! J+ B& ^$ X( l+ y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- i( M) f2 @& m2 a# Y. _7 F if( pSkillProp == NULL )
' s4 {3 Y1 _- t# l( R7 U continue;
8 X# h2 ?" U! y4 ^, [% z0 L2 W6 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER) v1 V' \) R$ A/ z2 [
continue;1 ?( p# T7 J5 I$ j# F) s1 T
lpSkill->dwLevel = 5;) T( C8 f: E$ x7 b4 P) p( A" g8 _
}
4 E) y1 `3 z/ J7 y0 B; o }
9 B1 D0 X$ x+ y- x' U, L: y }
6 Z6 {* d, a+ J' }& q1 C4 m else if(IsLegendHero())' c+ l r. c8 f/ j+ t, g, X5 e; G
{
7 C' ~3 q/ r5 g) G1 i! b# @. q for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ p* u$ b' }, n* o" P { . x- F2 j( t/ y4 v
LPSKILL lpSkill = &(m_aJobSkill);
* s& o# n5 W" r( d! `9 d if( lpSkill && lpSkill->dwSkill != NULL_ID )
, l1 p: v; f7 ~1 T* g' |- v) e {5 |* I2 g3 M8 q V; J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; B0 q1 K8 \- Q+ z9 r$ Z9 T% o) C) l' N( H if( pSkillProp == NULL )
" r8 c! Q* A+ {/ k$ P( t continue;" t/ Z6 ?3 a6 ^- M/ f8 G4 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ L3 P. O. |; l1 {: h/ M% } continue;' p z; o! n" A0 e* _/ W
lpSkill->dwLevel = 5;/ T! }/ }4 R0 s$ b$ z9 D
}
; J) I. _% M+ g9 }$ B- o1 t. s }
+ S/ f+ A) N0 @1 R9 P" x }
4 Z2 e; |" Y o$ s( n: |6 W7 |8 O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* [* `$ L! [- i' L. ]& T- W4 _4 W& F
if( bGamma )
% J$ p) T2 i9 j- L) g9 @7 b/ | {
. M( q3 S" o3 M8 @: n m_nExp1 = 0;
1 P$ [8 G# h S4 v7 K5 r( D( k: b }
# P: O q( m$ c! g- M. S/ c# R; X6 ~/ R8 Q0 M
( (CUser*)this )->AddSetChangeJob( nJob );
5 Y- r3 c% V" T3 u% { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 u0 y4 }' D: T4 C/ L9 a" n2 K1 w$ K. W% ^$ ?0 H+ T
9 a g$ u1 t( ^5 a/ \2 G#if __VER >= 11 // __SYS_PLAYER_DATA
% Q# R* c8 l0 l* n- N: z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' M+ t4 @1 L( G/ F. }#else // __SYS_PLAYER_DATA& H- W. e, b+ I& R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% j o7 }+ p4 A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; d% [1 f- J( D
if( m_idGuild != 0 )
$ Y; ^/ A0 c3 t* C' e! w& h& A g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( J W, g1 L/ {* l
#endif // __SYS_PLAYER_DATA. c. V+ ~! ?3 E
SetHitPoint( GetMaxHitPoint() ); O( @2 y# A# ]3 w! \
SetManaPoint( GetMaxManaPoint() );
' M N0 p1 u: f( P3 b1 H SetFatiguePoint( GetMaxFatiguePoint() );" B* p5 C6 s# e# }7 w1 e: @
if( nJob >= 1 && nJob <= 4 )
0 B l- X. \4 C4 ?1 \, ^9 ? {
& f' ], o! Y2 q1 R+ r" U m_nStr = m_nSta = m_nDex = m_nInt = 15;
; K$ e, V' z4 K; Y" t m_nRemainGP = 28;% J* @4 P7 l" f8 U
}# p/ ~0 c& e2 q5 {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' c8 R V( G! `% f8 A- Y( r
{4 D5 }. z- \+ ^4 Y7 r# i
m_nRemainGP = 118;6 v+ `* H$ ]1 F- ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: u. `3 G5 P5 J5 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;. W+ L0 ~9 s* [2 b* ]
} P2 D8 ?1 [1 \3 b9 T/ G. f' V p `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). ^2 R" L5 x' D3 S2 v- U6 ~& u
{/ @, b: R8 h/ Y/ X% r
CItemElem itemelem;0 d& B# F+ U) O- t5 l7 H
itemelem.m_nItemNum = 1;
8 I8 M- _% K: {9 _) r* ] itemelem.m_bCharged = TRUE;
; U3 m/ ^) y1 k' j BYTE nID;9 c6 ~/ S1 y& T/ W( ?% f% S' Q
, {4 R4 r8 f% r) j" I2 e2 C# Z if( nJob == JOB_MENTALIST_HERO )4 P5 `6 z. Q' d# {) U4 d) r4 P4 ?
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 o0 k! U; e4 G: ?9 [
if( nJob == JOB_FORCEMASTER_HERO )2 S- Z& c7 E- U8 s1 F$ K4 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% d" A- J: T6 J, @. n* K& o
1 b) v- l) E x! K0 [/ _, @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 J6 ~0 X$ g0 ?
}' n/ Q. @$ a U7 Z$ E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 e) P! N" U9 T- Y. Q' K4 S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! {" E7 A# n/ K ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 Y5 k8 p, B# S0 u /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& z4 {1 G7 Q1 p1 b
( (CUser*)this )->AddTaskBar();*/
$ C8 T1 f; |5 f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% O) [4 D$ s3 ^) o6 j K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, p W8 Z4 ~- [$ n ((CUser*)this)->CheckHonorStat();" x6 A2 v3 M, ^1 G9 E
((CUser*)this)->AddHonorListAck();
A# D4 M$ a. s4 s; p% G g_UserMng.AddHonorTitleChange( this, m_nHonor);6 d" b# D2 V3 S7 F& T
#endif // __HONORABLE_TITLE // ′Tà?
: {! ]" d8 N% S( V, ^, M$ m3 U }9 f, y# Q% L3 E5 q1 J
#endif // __WORLDSERVER
- E* m4 Y9 ?1 z! J4 A} 2 U+ r9 P+ N% k8 A% W/ Y
' g& Y1 H- O) H2 d" w$ e f$ v然后你进入functextcmd.cpp并添加以下
1 O/ y1 u. m9 m2 I' ]& n7 |+ y* J( o2 i
代码:! F* d/ N0 t* e2 T9 K+ ?# I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ @ q* o$ O+ c3 U: ^& a, S8 }下面插入9 w7 W! i. h/ l4 V8 N$ ^2 r, j' C& H
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- l Y3 R2 \1 r) f; Z5 I6 L$ A9 C9 @8 z
然后你去
/ v6 i$ G2 I* G+ q% i6 j7 @1 ]1 ]4 M- `. p9 }
代码:
: A% w6 ?+ n; y( c7 V; T代码
1 {, u6 O4 n% b- t. WBOOL TextCmd_ClearPropose( CScanner & s )
0 t) p- `! w* S |5 [3 ^{
' ]! l! t* q* T# ?" o#ifdef __WORLDSERVER
" h; ~, `( m! V u2 W7 J; S CUser* pUser = (CUser*)s.dwValue;
6 R$ j- H; |, q* P g_dpDBClient.SendClearPropose();! v+ e) \6 Q" M! o( o# n6 @4 P4 E, I
#endif // __WORLDSERVER
( y1 p/ Z/ y E2 o6 D) |! X1 i return TRUE;
: M4 Z5 H7 X4 m8 z3 F1 C}; ?7 w6 N5 w( k' M) n$ r! Z+ c, @( \
下面插入# L1 }' O9 `' i
BOOL TextCmd_rebirth( CScanner& scanner )
7 y; u/ ~8 S( m" J{
: x: L5 Z. z0 c: f* ~#ifdef __WORLDSERVER: H( J9 k- r- J. P
CUser *pUser;! h0 k# t4 p3 v6 E7 Z; ?+ P
pUser = (CUser*)scanner.dwValue;
: r( Q! d" j$ o6 ~/ B% q& `* M! nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
p& q) `+ A2 V5 Y5 g" {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); h8 D# O3 @6 U, Z' v% Y9 q/ b' a0 |
else6 I4 t0 J t' Z3 X. `5 o5 i" z
pUser->AddText("你还未达到重生条件!");
$ r, W6 Z) s) B( I [* r% {+ x#endif! @6 F& k1 F" ` T6 m
return TRUE;( k) m8 d8 @, P* l& J6 y& `: m
}
. a, q7 L$ e5 I/ B( V6 h. D& @$ R
4 s# S( Y9 m/ G, E' l
1 Y1 o: D7 O1 r+ [. W+ U
! e" [+ G" a; T# o |
|