|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- Z" v" L' j; d& q
; d% M7 _ E+ y* h7 ^" _Mover.h
. ^! ]. p5 U$ Q+ `代码:
9 w; Y$ g3 ~1 T找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 `% \- X) K' C+ p' ]# O- G
, q9 b. E B' n+ h% L! |1 L* |4 E下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; f) c: e& g/ |# L4 ^! v
# m- {7 F* _5 Z# o& w然后你去mover.cpp添加: v# [; f1 X' D! {
* D$ S! c, w' p/ D
代码:
8 y- H& s: ?8 Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 d$ c4 z% K! K% o{, n, A) k- q5 [) o
#ifdef __WORLDSERVER
4 g- c5 v* F. J. L/ G6 E // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 _; L3 N0 l$ ]8 T) L1 V4 l
MoverProp* pProp = GetProp();
# E, q5 G5 w# l. D6 n if( pProp )
4 B+ `8 V& I% j, H$ i& L0 Y8 H {
) I, r% Y1 C& b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 k; ?, I1 j+ W) | {1 z$ V. e* R9 `
AddChangeJob( nJob );
9 a+ `! P- |7 m. W }else{
3 Z* P8 y `, V, F8 K) \5 h return;4 P" W9 G( Y6 w, G, X% p
}! L# _2 F2 X8 i6 Y. u- H
int nPoint = 0; ?% H2 v+ l4 P9 T- ~! F
if( m_nJob == JOB_MERCENARY )
* h2 p6 F% }$ P7 G( Z7 A3 v, X nPoint += 40;
+ ?5 M* O9 ?+ x: r else if( m_nJob == JOB_ACROBAT )
B7 Y: t B+ x) b+ l nPoint += 50;. O! b5 h+ }' h5 |. p Y: E
else if( m_nJob == JOB_ASSIST )5 A( X }1 M( U$ l f
nPoint += 60;
/ q! q, p! E" G# y. { else if( m_nJob == JOB_MAGICIAN )) D5 @7 {4 |: d1 }2 x& a" p3 n
nPoint += 90;
9 v: o* N8 V* p, |9 ?2 E: d1 T- }) v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" U0 m6 J: M7 g! q
nPoint += 120;
% m5 C2 Z" y2 G& ]" [1 f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); V( e, d) o) r3 k M. o+ [
nPoint += 150;- n- ?. k/ V5 s
else if( m_nJob == JOB_RINGMASTER )& q! |" U& w" W
nPoint += 160;& ` p( x! T/ l, k7 i4 B3 ]8 a t3 j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 s( V& j$ z% ], R# |% |0 T5 e
nPoint += 180;
( l5 u1 k3 U% }3 W# ~! l else if( m_nJob == JOB_ELEMENTOR )
, d9 E& Z L' T1 s+ D+ | nPoint += 390;0 L% |9 l2 C; p4 ~2 s
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): U( @% {; K: n6 }0 s$ N. |; `) B
nPoint += 120;# v' H0 j+ c- T! {) o: J2 q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ h) [5 }- k) c$ Z6 e& L3 x# c nPoint += 150;
' K1 m2 n% F$ y4 W else if( nJob == JOB_FLORIST_HERO )& G' R- u- R; a/ F! y2 Y
nPoint += 160;
0 X; o) ~' b% ]: Q% s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% P1 |* h7 m3 B( e6 @2 [* S nPoint += 180;% |, S1 ~0 J ]7 F5 V3 K
else if( nJob == JOB_ELEMENTORLORD_HERO )
' o: f* s/ G5 g nPoint += 390;. s8 V! f; S% i' z* I' g
; B. x, M- `* z
AddSkillPoint( nPoint );
2 H& ]- R* N6 X- w7 q, J3 S m_nLevel = nLevel;
8 r/ Q8 B* L- C3 p- l- w0 J% \5 t) u# _. F4 j" ~1 u% F
SetJobLevel( nLevel, nJob );
4 b) f" N& T2 H4 Y7 W# P m_nDeathLevel = nLevel;- d7 ~3 i5 s) G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; }& d$ G( f% A/ v* Q
if(IsMaster())6 D( K' _8 h& n2 ~2 I
{ O% ~0 r$ |6 }( I' U
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& n9 W( V' `* p! b$ d! x if( nLevel > 59 && nLevel < 72 )
% p% n: E$ Q9 @9 a' ?/ J# Q dwTmpSkLevel = 1;
8 }4 f5 a' S* j" b [+ f else if( nLevel > 71 && nLevel < 84 )
0 g. T; Q. h1 l6 \5 w! [ dwTmpSkLevel = 2;
+ H/ u$ f! K3 } else if( nLevel > 83 && nLevel < 96 )
4 }& y) r8 ]4 @! K* e1 ?. y7 W, ]# P; S dwTmpSkLevel = 3;
% M- n; z+ G3 ~2 d+ L9 s else if( nLevel > 95 && nLevel < 108 )
9 S7 L( \" J( b' \% ^ dwTmpSkLevel = 4;, o% I& s3 r% `& j) K
else if( nLevel > 107 && nLevel < 120 )
. T1 v$ O5 i% [% z- @9 z dwTmpSkLevel = 5;4 V# N6 k- |2 |& d4 w8 p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 w/ C. d. a/ [$ I. F# [ { ; R+ F3 G% v& G& H7 E, m2 K
LPSKILL lpSkill = &(m_aJobSkill);7 N# }& {* {* t# n% P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ h4 S2 r: L7 @. n% n0 X- m {
% b6 e0 E: H- e1 D) E% t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 x+ o. o+ y: M# i7 J if( pSkillProp == NULL )1 i2 Y; h; K6 f0 R+ \$ `" s
continue;
. z" ]4 w8 y" L [& u3 \+ o6 Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) N# b- o$ h9 a
continue;
- J5 {- I. T3 l% j lpSkill->dwLevel = dwTmpSkLevel;. g6 j) p, @( F- _* |: l# u3 |
}
3 O9 B2 s0 ]2 m1 ~. D) ]: K }
8 W8 X: C+ ^- T4 Z* u( J J }; D2 P. t9 `+ P& M7 {6 p- Q
else if(IsHero()). |; I" |, o0 z; f3 c h% P, w
{7 b$ u6 _1 }( G4 j& R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, A1 y* c' g9 J3 {6 S% w7 t6 x {
; J1 a: {( H) n* R7 ]% _& l LPSKILL lpSkill = &(m_aJobSkill);
: b: E/ T' d4 S/ G) E/ ?4 [( ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 v* B% ?6 ^- \' L; y {
( X6 Q2 s; ]. f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ X* f3 j& [4 r0 O if( pSkillProp == NULL )
3 v7 l9 \; `' \. }0 F continue;
6 {9 x/ P% h- I& t" _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ Q* r+ p& U( `
continue;
7 _+ n9 W9 F' G lpSkill->dwLevel = 5; s- d' m7 ?8 `7 W. ]( ^8 W
}
& @4 X* f* T# N# A, [ }: o" N* M( j& Y
}
# {9 l" q7 {9 b, ` else if(IsLegendHero())
' F9 q. Q# z0 U1 k% |, R2 L$ o: | {
; @7 z4 g7 p4 r7 {2 @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 _4 @0 B4 A' ?. y {
- F$ D+ q: R' O/ C LPSKILL lpSkill = &(m_aJobSkill);
/ {0 o$ D6 ~1 w. Z if( lpSkill && lpSkill->dwSkill != NULL_ID )" o! D) g4 {' n+ R# N2 j1 b4 c
{$ C/ J T$ d3 p9 }8 Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # F7 H* `0 ^5 O0 L$ y& t4 k
if( pSkillProp == NULL )
( e; ?( M" ]- n y" X! B continue;" D6 z- x0 z k; q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' |8 o v+ y$ z% O( m6 c, M
continue;+ U. c* n! N6 s3 m" s3 f9 K4 }
lpSkill->dwLevel = 5;
# M8 j) r! N) Z# X* I; P9 f }
4 X7 W4 a9 i6 m5 r3 ? }
# I) q: V( r& \( C5 A a }! G) P0 l/ F- m% f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* P" D8 @, N2 w4 L# b. A+ A
if( bGamma )
0 g- A- @$ t" u4 {; k& W* a {
6 Q- I9 V5 @: K' e- T! V! N0 F, L m_nExp1 = 0;. ]; }8 s9 D1 y
}
0 B8 C) I* Z4 T" P8 Y2 X2 J% B/ N) |* _2 s6 _
( (CUser*)this )->AddSetChangeJob( nJob );
( k" ?2 D. w% t- ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 c3 b) V( Z z1 K) c! z7 K! ^& U
6 T) h1 T( m7 _; {3 G- p+ C
% r' o( X: v. D: [#if __VER >= 11 // __SYS_PLAYER_DATA7 {, b' U) N, K* U7 f& V; C/ ]2 d+ L# n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 i( |% I+ l( w9 C! q- ~; o! Y#else // __SYS_PLAYER_DATA
" D c. P& U) t' U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 T4 x0 C) j/ W5 L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 c* e% ]6 d! |5 @" e
if( m_idGuild != 0 ) m$ C( e4 y @0 Z% C# J v' Z4 v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: E5 ?/ a% m8 ^4 o4 W
#endif // __SYS_PLAYER_DATA
: v" I( m2 b. k, C' J SetHitPoint( GetMaxHitPoint() );0 g% a- e1 v/ O7 P; v V
SetManaPoint( GetMaxManaPoint() );
. o# p% n/ i8 `* y SetFatiguePoint( GetMaxFatiguePoint() );
" N, C4 [/ }% K' j! u* Y2 J if( nJob >= 1 && nJob <= 4 )5 U6 w" |% Z+ X& R3 X
{1 X; \& F8 D# v" Q# g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ L( y6 U8 C% n" F C m_nRemainGP = 28;
' w- H+ R) ?% c; b0 u }3 R( s5 \% k3 J; `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 T6 M+ e, ^$ s4 V {; f" p/ ^, W+ j/ ` u& u7 u+ I: z
m_nRemainGP = 118;
4 _1 {& Q: g+ |0 G# c- ^8 S6 W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 k8 u8 H' |* K: M/ h: @& } m_nStr = m_nSta = m_nDex = m_nInt = 15;& ?& w0 w) ~ _8 n
}
- ]! K+ j; }; P. E+ N if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' x& O; K7 s, d. \- K- E
{
) Q: W) a1 ~$ y$ B! m CItemElem itemelem;
* V- B3 n# p9 } itemelem.m_nItemNum = 1;2 G1 B3 s* {/ y2 [) i+ L
itemelem.m_bCharged = TRUE;! F7 _" v1 m0 |% g: U t
BYTE nID;4 }4 p/ j/ E# y$ l( @% D
, N4 ~# |' a, y# i. ~8 p
if( nJob == JOB_MENTALIST_HERO )
. k( y& v4 N8 l4 x$ E8 e2 T0 P8 e7 ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, u; J5 ?$ @ Y' ~
if( nJob == JOB_FORCEMASTER_HERO )
: q7 l1 \7 {1 H6 n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 H8 ~ n) b' `4 c2 q: V+ T1 |3 A
$ W1 \( J4 j1 d V5 U ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% ~" A. h" C: v }
" p9 m5 H( j& C& D. k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 d# `* L; T$ [: f, {/ J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ C/ L" _2 B3 B3 V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ R: n: Z; c4 c# ?4 H1 p- w! E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ M; d" D8 }% T$ ~! m
( (CUser*)this )->AddTaskBar();*/
: [$ m. J8 v8 s" k3 ?+ v ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. e. n& `0 }1 _! ^. k#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, M0 J5 x6 N. B" u9 v6 {: T* n
((CUser*)this)->CheckHonorStat();
: A. j$ G5 o& ^7 n8 Q ((CUser*)this)->AddHonorListAck();
+ o. A: \3 J; m8 d1 Q7 W% w3 [9 e! m g_UserMng.AddHonorTitleChange( this, m_nHonor);2 F0 I, q; |- c3 y* _
#endif // __HONORABLE_TITLE // ′Tà?
+ d' x# c) q2 W8 L5 J }0 _3 s# D1 k5 p3 }& G% t4 n( _
#endif // __WORLDSERVER
" J( P/ f( S X' K( N# r}
: z$ k4 w8 d. p, V; T- o+ K
7 M J j( g1 V1 Z) `4 t: F然后你进入functextcmd.cpp并添加以下
( Z+ _1 f$ i6 ^/ p6 `" W5 g5 P* M
3 I8 m7 z4 C1 J+ b$ f代码:+ o# ]' E$ V' ^- Q) I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ g$ ?, h$ Y6 p2 d4 B W- a
下面插入( U# `; P2 y' D) z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 O- Z# h6 T& j- [/ }5 i; e0 I: t, {3 b% ^. G
然后你去1 {9 x& c# L' X3 K$ Z& a( ]- q
$ k2 o$ I" B& Y7 {/ t/ Z
代码:
7 q2 J5 y5 P6 g8 G6 Z$ U F代码
; [% T: G$ A# GBOOL TextCmd_ClearPropose( CScanner & s )- r& u3 |4 o9 `( w" H- ~, {
{
' w% ?6 }, ?3 o( h#ifdef __WORLDSERVER! T# n. x6 t2 k* ~9 T
CUser* pUser = (CUser*)s.dwValue;
) s) p$ F2 o& [% D/ C6 Z g_dpDBClient.SendClearPropose();
* y$ C: |; a! F* [( x) P#endif // __WORLDSERVER1 C9 Q. J0 D( W! j+ g+ p t
return TRUE;
& e. f- U( X6 x}; h* L5 w# q6 ]. ^& e/ M$ A/ ?# }
下面插入2 l6 a2 d" f9 M6 g1 J
BOOL TextCmd_rebirth( CScanner& scanner )
8 L+ m, S& p0 A9 B7 Z( |{
' k& t: ^2 M3 ^) o, Q#ifdef __WORLDSERVER
) X2 o1 V& ]* mCUser *pUser;- E3 H4 r6 F2 g" W( \" Y; ^% A
pUser = (CUser*)scanner.dwValue;& ~. W$ a' e/ B7 L! d
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" n9 A }1 v% m. U) b: `/ @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" |' ]: [0 m0 Z ~, O8 Kelse
0 @. u2 g, U/ S: ]8 C6 kpUser->AddText("你还未达到重生条件!");
1 v7 H4 ~( ^ U, ~#endif. |, h. S' M" c
return TRUE;7 @# S+ s3 f9 E B
}
( m! Q; f9 V) Y- o. z1 B. S2 t! c8 c: N
6 q6 {, [: y3 u b& V1 y( k
# _) a4 y$ c8 o8 `% {3 {
6 V/ P% a/ ~) K0 p4 N
|
|