|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ V2 C2 ?# F# I6 k. T
% |; v0 L5 E& C: R" z" C0 fMover.h, G- ]! E: L; I! s. U1 |. |1 Q; b6 B
代码:
4 t( l0 d0 @. Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ _2 J: t) s: T0 D" `, N6 C1 v- K
7 H6 G6 h0 e* K8 s/ v; b4 t
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 r, {+ e/ P! p% Y
7 `+ B& v. a ?" X# i, B3 R b0 G然后你去mover.cpp添加
8 t4 _4 w! x/ V9 L& p
: X8 K) [7 D* m+ N+ U代码:
8 d# Q$ W: ~8 Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 p1 a9 c4 _2 _+ x: [) p
{" K& [ o8 L1 s$ M, ^) G3 r4 T/ {/ W
#ifdef __WORLDSERVER
" H3 M# g# P" @( L, E$ x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 @4 t% \% t8 u* `, p* Q4 H
MoverProp* pProp = GetProp();
2 x& ^' I+ z l+ c if( pProp )- ?* N" b! |& s( D( ^6 r4 Q J
{% T9 U3 [" x8 u9 T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' ^8 Q3 `8 b. x& h. d1 n {
5 a ~% Z% h Q! s- W1 B3 W6 C AddChangeJob( nJob );
8 g5 I }3 [. k+ s6 K }else{( W- U1 j) C5 ^/ }
return;
& }3 I! d6 y5 A: b, S( c }
0 ?7 c. u8 k- r9 Q1 D$ ~6 p( O, I int nPoint = 0;* v! U# z0 o2 w$ Q- }, r6 `& u
if( m_nJob == JOB_MERCENARY )
/ J: N7 u# j# d$ [' o4 M3 v; J nPoint += 40;
3 E! x4 e+ Y0 L2 h* f2 p! ? else if( m_nJob == JOB_ACROBAT )6 c$ K* I2 Y5 A' W
nPoint += 50;, S0 o5 g# \9 p* U& ]$ u+ P
else if( m_nJob == JOB_ASSIST )
( O8 o* F- S$ ?# W5 ^2 e nPoint += 60;
) h0 T1 \! E7 `6 w8 ^ else if( m_nJob == JOB_MAGICIAN )! l. @5 E8 Y7 W& L1 o2 b, ]
nPoint += 90;) o' ?' Z$ X: t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
G/ o; T1 O/ e3 q" q+ e9 ] nPoint += 120;
* @) V; b- J# ]9 @1 E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- \5 S8 ]# D' c& j2 q
nPoint += 150;' [! r- N' M* ?: s8 n
else if( m_nJob == JOB_RINGMASTER )8 x! H5 v# `; p1 A' s
nPoint += 160;$ K+ |" a1 [; t; }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( q, V) L" P4 E9 r( r+ k( c
nPoint += 180;
' U8 f5 i, Z5 H else if( m_nJob == JOB_ELEMENTOR )
* q7 C( K! M; T nPoint += 390;
$ |$ y) Q3 i0 K) M. h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: h6 C, j6 a* } nPoint += 120;) Y) `& ^* f! |7 Q' q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# p9 q/ U# l! A9 Q5 f8 s. i- r nPoint += 150;* ]6 x6 z* x. X- k% b! H! p% X* k
else if( nJob == JOB_FLORIST_HERO )/ q8 F) J, Q. a! r: r+ |" y
nPoint += 160;
7 w/ O2 V% b" S {( ? v& H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
X( ]/ @; V! Q" z) N* K nPoint += 180;) F: D2 q$ }1 ]9 r, L( b
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 C: ?; T, ]5 J nPoint += 390;' ^5 {( ?5 e; C0 e5 k
0 k$ R+ i+ U m* Z, h AddSkillPoint( nPoint );7 G" {+ ?7 l! o
m_nLevel = nLevel;
# e7 g. u- U9 `
4 M1 o) `. H" c6 Y1 T SetJobLevel( nLevel, nJob );9 L9 z8 d) v c, L- V' J0 Q7 n
m_nDeathLevel = nLevel;" ^0 s( Q9 C4 J! d; b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ }1 _% t$ ~7 V0 t if(IsMaster())4 r( Y% H- e8 Z5 g5 v" J/ H9 `
{( g) c" q* Z/ X2 Y: y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 l2 g5 c# J" ^# V" A# ^ if( nLevel > 59 && nLevel < 72 )
3 k5 W6 o1 B) g; {5 ? dwTmpSkLevel = 1;) K6 h% ~2 W5 p6 o4 R
else if( nLevel > 71 && nLevel < 84 )# U% S2 W3 f2 j0 B7 u0 @
dwTmpSkLevel = 2;+ X! T. b& h9 H2 x/ f
else if( nLevel > 83 && nLevel < 96 )3 f" K# a% B6 H- O1 S6 d" G. r
dwTmpSkLevel = 3;. _3 b: ~+ L2 y0 j5 `/ ]7 A# S* C
else if( nLevel > 95 && nLevel < 108 )
{' O: L0 h8 T/ O( {9 N' T dwTmpSkLevel = 4;" y: v& L; M( s T- N% l* a* s
else if( nLevel > 107 && nLevel < 120 )2 s a& [0 G& Z- N/ p3 E0 _, l. m
dwTmpSkLevel = 5; j7 |: v; j; _. C8 _8 `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 N |$ e, D/ _
{ 8 r1 k) @8 x/ o
LPSKILL lpSkill = &(m_aJobSkill);8 D" r9 x2 m9 c; d+ B
if( lpSkill && lpSkill->dwSkill != NULL_ID )! `+ R% z6 p3 S( m) m/ i0 H9 d
{
U, }/ c, F3 q3 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. q. N& u ?) T$ ? if( pSkillProp == NULL )
5 b; a/ y7 h2 X" ~4 x+ s2 g* U continue;
7 S! I" X4 L: d3 f1 U3 C8 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- l' ?( H# @9 `" z8 u
continue; F5 k/ v; E! N# Z1 \9 m( ?2 J
lpSkill->dwLevel = dwTmpSkLevel;7 ]8 ]4 k/ j9 ]
}
" p' B# h( ?+ R; ]) D }# f1 @, q; s. w; x! i/ w+ ? t- U8 J0 Q
}; k4 s' r% _9 ~2 X5 U& g
else if(IsHero())! B9 W0 r0 [! }: \$ Y
{' H2 d( g1 {: P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 U8 @( J6 T' z1 L
{ ; d1 r7 v1 J( b: f
LPSKILL lpSkill = &(m_aJobSkill); P$ a3 E, E3 ^& A/ b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ ]* e3 @2 g! ^. G. v+ M- Z {+ P- e+ n# i( t6 R7 [6 Z- g: ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % k5 j& m z3 t7 V# c2 k
if( pSkillProp == NULL )
/ y) i& r* z7 N$ b/ w; n0 J: ^ continue;* J! c1 D( m, l: c. w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" j3 T$ Y3 t a2 v7 U
continue;
7 d3 X) P) X. }( {' J2 d# S lpSkill->dwLevel = 5;) {. T% v! m, ` n7 y# A$ p: m
}$ R9 L. q6 y+ w8 d+ y" h) K
}
5 K5 l- z# O7 a% j }. h1 X! [; v" _* z4 c
else if(IsLegendHero())
|7 }' H7 k; S, j f( @, y {
* J( ]5 O5 L- O6 C" {# J# L7 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) + g5 a) v9 L9 j7 I& \
{ $ |2 @* k# q% Y. |' I6 g
LPSKILL lpSkill = &(m_aJobSkill);
- F6 ]3 z5 p% O% \ if( lpSkill && lpSkill->dwSkill != NULL_ID )$ o4 Q1 Q- P$ b7 J# n# W6 a( [
{3 G0 A) D6 J# E- }+ h& X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 e; a! W$ Y& l4 | if( pSkillProp == NULL )9 b: F& A: \9 K5 T1 e0 K+ S7 J& t
continue;3 \8 `% ~( N; l |/ D( S5 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! X- s% i) z3 Q! t; m
continue;# O+ N& m2 J0 R4 J* i6 @ J& C
lpSkill->dwLevel = 5;
3 q; x7 R( o R1 w( Y9 l+ R }
. d: @ C& Z c }
9 b/ E" v) f# n }
! d& `; u9 p/ q2 p6 b2 K( I#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ i. }6 M- g/ q3 z: A$ P3 U if( bGamma )
7 C& P p) s r4 a9 o {9 ~2 U) _5 b/ O8 A. j
m_nExp1 = 0;
3 w K+ b* o7 _9 M7 y b } Z8 X* ^& x+ D* x$ J9 m
! l! H4 M, a/ z4 |/ B
( (CUser*)this )->AddSetChangeJob( nJob );
- \! `' U3 Q6 ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ P. v5 E2 {. Y+ K! ~/ Q2 }4 @. \% D: |$ t
% Y0 x8 l ~& i, ~+ x#if __VER >= 11 // __SYS_PLAYER_DATA% j8 Z% ^7 w( p7 }- G" {1 b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 X4 @8 w! E5 ?" Q9 G( Y3 f6 r L
#else // __SYS_PLAYER_DATA
7 ~' t/ s/ `7 Q* ^. l$ J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 }/ B. c1 d7 ~# B% Q$ d- d3 s3 E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; X& `; }% X, ^+ U: F) }# C
if( m_idGuild != 0 )) J \! R3 P: ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( K0 r0 T0 v; G, n#endif // __SYS_PLAYER_DATA
7 r( S" Z# j3 T Q' i. r. { SetHitPoint( GetMaxHitPoint() );
8 B9 L* b- w; F3 \( Q SetManaPoint( GetMaxManaPoint() );
* I+ p% c6 |1 A1 R- d SetFatiguePoint( GetMaxFatiguePoint() );) b1 y& M5 u, u" }
if( nJob >= 1 && nJob <= 4 )* J% c7 O4 @) {$ p
{
F I! b8 ]: x4 M/ j m_nStr = m_nSta = m_nDex = m_nInt = 15;
) Y$ x8 p! s+ {- C5 k# c2 X m_nRemainGP = 28;$ c( r4 ?2 \2 J8 |% W. }9 Z' N
} w4 D2 d9 Z' g- {) M4 \* z: g
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ s- n# ]/ e3 y- u8 U: N% G0 B { {! X6 l1 g- S& A
m_nRemainGP = 118;# f' f9 A( t. p- f( @3 ~
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& ?" b, E0 E" w- X/ w( {7 N: \2 Z- W m_nStr = m_nSta = m_nDex = m_nInt = 15;
- L4 X8 E0 `$ q. M8 M* P: G }
0 j% s1 L( G4 ]1 a( {+ s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 e3 N, R# `2 O9 i
{
$ K/ X) k$ _7 S5 H5 A6 ` CItemElem itemelem;
0 `% D$ r0 ]( S5 k5 w itemelem.m_nItemNum = 1;! f- g) L8 c; D: X+ z
itemelem.m_bCharged = TRUE;
0 m; i1 {) F0 ]6 l$ k2 K( N, x' U BYTE nID;
' z9 y7 M, @0 o5 ^6 x& w! U7 K6 }6 p/ g% r
if( nJob == JOB_MENTALIST_HERO )
: t5 p1 q' ]# y0 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ i' X5 F8 p# Q7 B4 p. Z if( nJob == JOB_FORCEMASTER_HERO )! \2 y$ K' C2 k( Z0 k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, m, t7 _$ ^ \5 ~
. R2 o! {+ M4 k1 i5 T2 Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 m$ @! Q/ `, u( s! Y" Y% ^* K }% T7 S& u7 _( ]0 t( }& {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! B: @; E% E6 r
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! f- w; l" y; j* D5 l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 b5 p9 y) w W5 i) C* O) q) _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- b6 {1 L+ K/ a9 v ( (CUser*)this )->AddTaskBar();*/: g3 U% Q s. z. _. I- H2 L) _) W
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 a3 q( w3 C# A( \9 l9 T$ z* K$ d
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) _# f; S' x% | ((CUser*)this)->CheckHonorStat();) v4 o1 V* C. Q! j1 E5 r! S* c
((CUser*)this)->AddHonorListAck(); b4 I0 H0 y A" F4 ]$ T9 q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" k0 I+ \7 J. Q) G#endif // __HONORABLE_TITLE // ′Tà?/ h/ s) O ?2 P, o* u
}
0 H9 W- b# b: E/ b1 D+ J# |#endif // __WORLDSERVER
/ N' w: j# Y0 Y}
! C" b, o$ \8 M' `# i9 d. ?$ E" U3 b6 V6 n% |
然后你进入functextcmd.cpp并添加以下
; T; ?: U0 d; t5 k5 M6 f- C( W# W1 h. {1 ?9 x5 ~
代码:) D! s$ i/ c" R V, d8 H% N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 k* [. |& `# J- i* _下面插入/ B7 g$ G: I2 i) N: J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 l% R6 f; g1 q7 h* u0 J. P
% p/ b/ w K8 G# C% _/ Y* q% W
然后你去
) k* K B' I! ]6 R/ K W
. F r& g5 K6 p2 S* i, T2 }代码:
# a' }# ?, ^$ L W: g代码1 x8 X0 b5 p$ ]' _0 h* X, E5 a3 @
BOOL TextCmd_ClearPropose( CScanner & s )
& t$ R* m u4 E, y" Z% g{$ _6 w1 q7 e, H ?$ B0 [* k! L
#ifdef __WORLDSERVER4 e' H& k5 u* c$ l9 t
CUser* pUser = (CUser*)s.dwValue;* h# k$ ?4 e7 G5 S0 o$ R
g_dpDBClient.SendClearPropose();1 Y: y* j& H2 V1 H9 u3 V
#endif // __WORLDSERVER
- A; W9 c% \5 B% e8 f) a return TRUE;
5 E6 u5 L3 |" h4 w! A5 L N}
" H- [6 ] r. d' E/ Z8 R: M7 W4 U下面插入 }1 V8 @2 l- ~7 t! G6 T7 ?
BOOL TextCmd_rebirth( CScanner& scanner )
4 k% ^& Z$ J* `8 B9 X3 d" j3 B9 S{
% U! ]8 c% N; |. l( D% q3 f#ifdef __WORLDSERVER6 P ?+ r) c9 `5 |
CUser *pUser;
& |5 a- b: R' P4 |pUser = (CUser*)scanner.dwValue;5 {+ c9 f' I8 Q) H. y/ B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' C0 e% g- v$ @* R! ]6 p M3 }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& ^1 f1 Q3 N ^% g' M
else/ j/ a" d+ ^2 P/ j2 V8 D
pUser->AddText("你还未达到重生条件!");
( d$ |6 C% k3 {5 w7 ]. E+ H#endif" \2 ?; N8 P- K, [# @
return TRUE;. U' a& r/ Z+ t& O" c" J
} ; f5 t$ q/ B* C# [9 d+ y
8 Z$ R2 `0 O+ _9 ]0 c/ \
/ \' S+ S1 l5 {8 S) e- Z* l7 O1 v5 f
0 k' d7 y Z! e( L |
|