|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ m7 f. r g; k' d1 f; @9 E% V
+ c1 B8 l- ~ L: ~ K: M" ?/ d
Mover.h9 @* V p1 F( U6 Y7 r! D5 }: j F
代码:" E" q' W! ~! b( x) N- V& E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" A- q& O7 d: a# W0 z
4 M r2 {# L9 l3 l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: h/ T- Z9 s7 C T
: R8 E; Z# }/ I; Y2 B2 a, B9 C然后你去mover.cpp添加: V0 k. o3 L# h7 O/ N1 |* J
! Y ]% i2 [" l5 ^( B& `1 }1 A1 J
代码:- i# q+ R: H+ C, ^- Y' V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 p8 I3 E! y, I
{
V7 B P4 E& K/ d#ifdef __WORLDSERVER( D* k' g6 }, o5 P4 ~1 j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 P+ [! f" I7 w8 [+ O MoverProp* pProp = GetProp();
6 p! N- |3 m# @+ L# v) Q if( pProp )
7 f* `7 X& F' x9 y {( y9 A: s! d4 c% T |) R/ N) L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 L' s) b% ^) ^7 s8 { {
/ J2 ~2 }5 u- t- } p3 @( `$ u0 p AddChangeJob( nJob );" \" J( }4 C& J
}else{0 t5 _! ~9 _: {- A8 C8 t" y1 u
return;: N8 ]. k7 D' s6 U, Y
}
1 s" `; s7 M) z4 N8 `' z. _( v0 u* ?7 _ int nPoint = 0;
+ K! v Y3 z% W6 o; c. F% O& [ if( m_nJob == JOB_MERCENARY )% ~- P u% r) {0 y& |4 K
nPoint += 40;
3 A% C# V/ @, s$ ~4 l) A* p else if( m_nJob == JOB_ACROBAT )
! q# T+ U* i3 j1 S* f4 B nPoint += 50;. L2 w5 R- P- B
else if( m_nJob == JOB_ASSIST )4 f# X% T0 Q1 n) Y( N0 L
nPoint += 60;
1 K% ~# l2 M5 R5 X8 t! ~, l1 G6 f- _/ @ else if( m_nJob == JOB_MAGICIAN )8 s6 |/ h ^: L
nPoint += 90;+ j! x) s- M9 M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ f3 H M5 O. l" `, D
nPoint += 120;
A/ X! l3 D- T, r/ A5 W' s- x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" A1 X2 G+ Y3 R. f: z) a5 l nPoint += 150;4 a+ I+ P9 e! }$ q# M6 i
else if( m_nJob == JOB_RINGMASTER )
1 L$ a/ O ^, a nPoint += 160;9 B3 ^- E0 u$ c& ]" D" {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* h; ]7 V1 z" J! @' l( F nPoint += 180;
5 z8 t$ ~# G, W% s1 L# s w, Z else if( m_nJob == JOB_ELEMENTOR ): T( H P! M) v% r- ^
nPoint += 390;
. h/ S/ M$ n0 E( K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 c8 G# Y5 V2 z2 h2 K nPoint += 120;
4 ?/ _: M& `. E$ m* b9 v else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 X" r' e, |) y! p8 ^
nPoint += 150;
+ v. C5 [% y- t" f: f else if( nJob == JOB_FLORIST_HERO )
D4 r# K: f; s! B& Z& ` nPoint += 160;
- J8 H& K. O* U3 w4 c- y else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ a2 d, T- \# B9 W5 I8 w$ h# F. N nPoint += 180;
, O5 s5 y. u9 c/ }* ^' P" a( ~ else if( nJob == JOB_ELEMENTORLORD_HERO )
5 w4 f1 l: n* }: t6 C nPoint += 390;
0 d$ \' W" q* J5 T j1 E* p' }& q% P2 }: m. V4 h7 \
AddSkillPoint( nPoint );7 c5 H) G, \7 y+ p! k: m2 ~1 C' Y
m_nLevel = nLevel;# U: B) c* I) Y' @3 ~8 D
$ S* d y# z; B
SetJobLevel( nLevel, nJob );2 Y0 g3 p$ u! `' H9 P
m_nDeathLevel = nLevel;" p7 v7 e9 y+ F# s1 ], p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: H& Y- |# i( Q" r, \
if(IsMaster())
+ v, ^( D) j m. n& T: A- @ {6 W3 S- \( H) C& Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' L' \# p5 @' Z, J& G7 [ if( nLevel > 59 && nLevel < 72 )+ A! C, g7 j9 c
dwTmpSkLevel = 1;$ `8 D; l* ?* N: c! R3 e9 d4 k
else if( nLevel > 71 && nLevel < 84 )
/ v. U9 Y# t; B1 }" q) ~* V- b- z dwTmpSkLevel = 2;! X8 e, P9 W7 q- }6 q; h' d
else if( nLevel > 83 && nLevel < 96 ): ?% Z8 @5 Y4 p' _' f& a+ I/ t: z
dwTmpSkLevel = 3;$ \" P4 k5 t2 Z$ J- b
else if( nLevel > 95 && nLevel < 108 )
4 ?. ^' t4 ^5 Z- s( \. @) Z dwTmpSkLevel = 4;
/ U/ j+ m4 y9 _1 K/ c else if( nLevel > 107 && nLevel < 120 )3 R& X2 D l: ~ L# o/ c9 q
dwTmpSkLevel = 5;
/ m; G: U% B! x for( int i = 0; i < MAX_SKILL_JOB; i++ )
: k" F6 P. Q# _! N7 O& ` {
. L$ w9 i# d) r* V( Q1 O9 ^. D6 s LPSKILL lpSkill = &(m_aJobSkill);/ d: `8 r$ k* L" d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; N; {! d* ]+ e% B ] {
2 }! H1 y: ^: l; G0 f ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / @4 m6 t* r" _- A
if( pSkillProp == NULL )
* G! A9 J6 N5 c3 l0 D% G continue;
5 T: I; _% V5 x5 F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 J! g! l1 @3 r# U9 ^: d continue;
& c% s3 ^ j; D) ?2 ~5 O lpSkill->dwLevel = dwTmpSkLevel;
9 K/ F# k; r% j" ^% F }
- t5 h/ p# I: v% ?' j }' ~) V8 I$ h p2 ^5 E
}. w/ M! M8 G+ O; z( z
else if(IsHero())4 X0 f% v4 s2 K8 q# B
{7 w- n3 B7 L4 j |8 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 M# T. D$ |9 j& ~, B4 q {
8 U6 ?/ _% n! r6 a LPSKILL lpSkill = &(m_aJobSkill);
4 ^7 Q; w) v; ^6 R if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 `3 x" ~& f: F4 F8 j {" N5 f% C3 s0 M5 }* P" g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ ^' w! e, T0 v2 R5 W+ t$ x5 I! v V
if( pSkillProp == NULL )% |+ d- m$ J( M
continue;
, @8 O; H7 @' I. Y" m. {, K6 F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' v6 H3 V6 U* k. z& r- y7 z2 \) a continue;
4 q. \/ c9 i0 e7 s+ T1 ^! C lpSkill->dwLevel = 5;
/ S# r$ I; V3 p! ]6 o8 v }3 v3 X- Z) X, a
}) r; T; l o" z- [, B" Z) C4 T8 I
}5 K) k) j# B) O% F5 l8 Q
else if(IsLegendHero())
" g4 f% n# m% X k$ q2 Y {) F- T) L9 a, _8 O; I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 \2 U7 _: k! M' }1 j5 E* {7 V) m9 W# Q { ' E8 u# v: r" g5 l' a' h3 P
LPSKILL lpSkill = &(m_aJobSkill);# t$ y. v+ q0 N# _. ^, W, J/ F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 ]- W# k; i2 v ?9 E0 S. K2 Z {
+ M# O$ t6 `% |; [( r U ~# d! w1 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) T, |6 C% c! Z0 w$ n9 D( c! s
if( pSkillProp == NULL )
: K; ^4 b) J9 J0 p) s continue;
! U$ ~1 _* M4 r# G) _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. j/ [7 z* V- d1 M# A continue;
! E- Y* J6 ^" ?- H ? lpSkill->dwLevel = 5;4 y# J* }, ]% [* ?# Z& h
}/ W0 l/ W( G, m, | ^
}9 D$ d, t9 {/ D) x* l, I _4 p
}
8 C$ M8 s% s' V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% F% F6 ]! H' W7 O5 W5 V* \
if( bGamma )
) F0 I: K. k- e9 Z$ S {
) n0 ^/ r4 w g0 d; Z m_nExp1 = 0;
8 s3 B6 B5 ^$ e5 f: s }
^9 \* u% c2 O% m7 V
9 `7 s* P6 k. t6 X ( (CUser*)this )->AddSetChangeJob( nJob );
' H0 A3 D& @5 t/ } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! h: P' J1 k$ Z. @
; A) F2 W% s8 T+ u5 w/ {8 R2 ~4 x8 f6 J/ j- q
#if __VER >= 11 // __SYS_PLAYER_DATA
$ P: P2 m8 |4 i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( V# [ y) [( O0 f- s
#else // __SYS_PLAYER_DATA$ [1 k9 `! |( A0 Z1 v7 J( c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 \, A' X( G8 n9 a# D0 V( K/ { m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% }9 |! Q9 ?, T, p- h! k" E
if( m_idGuild != 0 )9 U5 G: k/ r: s" N( O( ?4 J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 c; L$ [' s& B t
#endif // __SYS_PLAYER_DATA9 ?* M( Y) L% ]+ d
SetHitPoint( GetMaxHitPoint() );
! \5 G2 q8 b7 j9 D. B SetManaPoint( GetMaxManaPoint() );# V$ _/ h8 V) |4 ^
SetFatiguePoint( GetMaxFatiguePoint() );7 r: ]( A6 ~; ]; ]
if( nJob >= 1 && nJob <= 4 )' ^" c M& K( h
{
; k1 d. h6 ~$ S! G3 N9 J, } v m_nStr = m_nSta = m_nDex = m_nInt = 15;3 l+ M+ t# a1 @
m_nRemainGP = 28;3 K: l" t% S8 M7 [1 |
}
2 m! T6 D/ N4 S0 P if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( S9 v7 H0 M9 U& K
{0 M, I- V! {. ?0 F+ M; J
m_nRemainGP = 118;- j( ]$ b. W( Y" H5 {7 n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 ?8 D7 ^0 S3 Q' G m_nStr = m_nSta = m_nDex = m_nInt = 15;) n% ` Y3 h9 M& M3 C. o
}8 q7 {) I" b# r3 k; l- d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). }7 Q- ~, z1 [ z& F: [( @* v: Y
{# [+ [# n7 ~, R/ Y* F7 Y
CItemElem itemelem;
7 ]: ~+ s1 y7 R* a% w5 x/ } itemelem.m_nItemNum = 1;
* T; @ S! D5 O/ S" G itemelem.m_bCharged = TRUE;
6 r% p7 v( }6 [+ D# ` y @ BYTE nID;
# V) Y& Z z9 V& Y5 |* T2 a( Q
9 C6 l7 }$ f2 \ if( nJob == JOB_MENTALIST_HERO )3 X' M* t8 i" [( ]; B; }( x! l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; T& m; y- {4 ^. \. |+ o; h if( nJob == JOB_FORCEMASTER_HERO )
" J; d$ f7 r) R c ^4 \7 S itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' O% T* C5 Q+ k. K L1 d
& {! i. t% }0 u- c
( ( CUser*)this)->CreateItem( &itemelem, &nID );# s" o/ j) ^. p/ O7 L6 i) H) B
}8 W$ @9 R) H$ v& O$ w) [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! b) H- n. W5 f9 v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 D8 `) F. t# Q( \* Q$ v* h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& j$ a1 Q% l; V) \0 z8 i* y( } /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 Y- c0 ?# ~/ ]8 M* t( q ( (CUser*)this )->AddTaskBar();*/! ^3 G4 l4 J" V+ p' E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* E- A7 p( D. [# M0 f4 A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? \) l& V- S0 V' w8 ?2 b5 W2 q+ d
((CUser*)this)->CheckHonorStat();
% I% T( m h. [+ Q# P% z ((CUser*)this)->AddHonorListAck();$ v- P& Y* Y1 M$ o
g_UserMng.AddHonorTitleChange( this, m_nHonor);! y* P. j* k% K4 v! T/ g! z
#endif // __HONORABLE_TITLE // ′Tà?* I) f- O m' l" V/ { a
}
8 m O; @8 |3 K3 g- D! h1 P#endif // __WORLDSERVER& k' g' @) F* z& J x8 L
}
$ {: K+ q0 W" M4 {( G5 P, U+ p2 V A* d! k9 K& \) z
然后你进入functextcmd.cpp并添加以下 b0 ^: ] {$ y1 V9 `' o) n
6 A4 f+ @0 ?/ @" c' s# X# O
代码:5 r( w; V, J, _7 V/ K1 I- l
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. S0 Y6 O, H4 G8 q" `; g下面插入) t% B: [& X, a7 o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, l3 j' I" ]' U. x' c
+ p5 Z8 M+ A" X然后你去
8 L; b& c3 s. H& L5 b' K) O% k6 o- Z9 t3 q3 v
代码:4 @7 b1 S) K& F9 p: n) w* d
代码, _+ w! F7 J8 ?" L' r
BOOL TextCmd_ClearPropose( CScanner & s )! k* j6 y1 ?0 c* ?7 N5 ]4 y' Y
{0 Z3 a; Y' S6 K. R, N. G7 f
#ifdef __WORLDSERVER
, Z5 i1 h, w5 _2 z7 Y j4 w CUser* pUser = (CUser*)s.dwValue;
" m v. U% R1 O4 U/ Z/ _ g_dpDBClient.SendClearPropose();
9 ?/ J2 u) [/ G9 r& F9 B4 t#endif // __WORLDSERVER; t" }/ b( ^( K2 n
return TRUE;
, i8 v' _0 Y0 `- K9 z7 x}
: U6 D: i! {3 Y$ C下面插入! h) N, Z L8 f4 w/ T, g8 C J
BOOL TextCmd_rebirth( CScanner& scanner )0 }( p* E, ]7 C4 Y
{1 I3 X! Q/ `9 S% G& i
#ifdef __WORLDSERVER; z$ Y1 R, o: x [% P7 {! H( a
CUser *pUser;
1 C8 M5 M8 D8 H, R3 g- u6 QpUser = (CUser*)scanner.dwValue;/ ~. M) S- C3 ~2 E) n! Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 Z2 G6 s& G6 C, y, e4 b. x- o$ d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 |8 [% H8 c1 r$ C1 m+ {else5 \! y7 i3 ]7 y& e, Q& h
pUser->AddText("你还未达到重生条件!");+ R8 \5 ] P7 `7 y. I- w: f
#endif- o$ I8 ?) ]$ p+ M, ]& D+ C; V
return TRUE;
: z+ p0 Q6 }3 c( K9 q7 I7 X8 I1 M}
* C. _# N0 X$ D3 _4 K+ U- i$ G( l2 [# ]
1 Z+ H( o7 ?* i; ]9 R7 P- w! G: w$ h2 m- d1 B
& O" r" l1 t& ?: f3 X& H |
|