|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ g* H: p0 {8 T+ N" l0 a: o1 S3 @0 Z% p6 v9 W
Mover.h ]7 Z% f) z* V: Y* K& l0 o& t
代码:
X6 j) R4 I9 ]9 M: y: K; ~. `% P3 \找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. b0 i+ h( H3 L, C, _9 Z
+ @( | w; A+ Y! O1 v" Y6 e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 t$ z" ]" k* Y) g. m# z( @* Z- ~5 N. e+ K8 U
然后你去mover.cpp添加
* ^ }& b% F) t8 w k+ y; D/ ^/ I" B$ Z5 s, p/ A) o3 J7 N
代码:
3 P0 p* D" |0 Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 O; i$ r' l& ]
{
5 _3 j u0 ~& f# ^3 S7 x: h#ifdef __WORLDSERVER1 R4 _4 H1 S+ ~; V% c, N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% _! H% ^$ Q: s. i MoverProp* pProp = GetProp();
v4 f# d. d/ n( {( L if( pProp )) U9 b% o d1 f. M; {) s( ~
{3 U9 V; y. \0 z5 y9 o% C4 X, n
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) U! ]) E( [+ A5 d+ {8 k6 ]
{
3 E M1 b1 G% q4 o6 F3 m7 H AddChangeJob( nJob );1 x n& \8 h; s# |: i3 I
}else{
, G; S! q! ^% ~6 S return;+ b0 ^1 I9 X* W5 b0 A
}) m1 Z$ K. u8 H& D2 g1 J
int nPoint = 0;, u% U; r/ E9 p, ?
if( m_nJob == JOB_MERCENARY )8 v, _ S( s8 W
nPoint += 40;
3 m/ T9 M& T K0 v else if( m_nJob == JOB_ACROBAT ): X: m6 p9 p! r0 B6 T) i% L
nPoint += 50;
0 k. q! C9 ]0 v2 w else if( m_nJob == JOB_ASSIST )
# p. P2 Y$ |* J# j0 s nPoint += 60;! R' y7 ?+ W0 ^/ V
else if( m_nJob == JOB_MAGICIAN )
5 ~- z% m5 g' K+ _& a- u nPoint += 90;
3 E$ {* K2 \4 |& ~; u4 e) i" n; b else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); h: S) ^' x2 P8 t0 a0 c- ]8 o
nPoint += 120;
/ e9 ~2 b+ ]# }/ G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; m" F2 ?1 Z K4 @* V5 T nPoint += 150;# r0 p$ S' n- k3 Z/ ]- q
else if( m_nJob == JOB_RINGMASTER )# Y, n% T: F/ @4 {4 _, q3 p1 o
nPoint += 160;
$ `$ e7 L" O* K4 a4 }4 ^ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): `. ?- m; x% G1 m8 N
nPoint += 180;
1 W5 V6 U+ D* s4 ^; ~ else if( m_nJob == JOB_ELEMENTOR )
; [. b1 e- f5 b% @8 q9 E' U2 t nPoint += 390;
2 V6 x7 B* R- \. [* i" p9 _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" m3 X% X" E# {% w- l# ?
nPoint += 120;5 U9 g9 f7 P! a, n( N0 F! S% J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). K2 l/ o; J, ~6 E# ~" Q! f: I0 I
nPoint += 150; U/ W+ h" B! d/ ], I A& }
else if( nJob == JOB_FLORIST_HERO )
' a( ]$ N4 I! p/ e, X1 Q nPoint += 160;
2 L1 a* @+ A& d- f" b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( s+ f+ A* T' |& Y7 G* s7 Y nPoint += 180;
, u3 O) P2 b* C* S( E2 h else if( nJob == JOB_ELEMENTORLORD_HERO )
! D% ?, u. i c/ ]- [1 Q' ] nPoint += 390;8 f% D$ I) N! g0 z
6 ^7 ], G4 W' a' I
AddSkillPoint( nPoint );
5 I2 `- _5 J" h! `7 I, G m_nLevel = nLevel;# S/ k/ N) f9 i- @. k$ s; H
% [: X0 N0 t: ?# A& Y# S8 @ SetJobLevel( nLevel, nJob );
( w3 G7 `5 r7 D. K1 Y m_nDeathLevel = nLevel;
( d" Q+ i, R) m6 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 _- y; `5 h7 I4 r2 K) s
if(IsMaster()) l6 B" W7 G' [
{
, h1 u( \, s- i- [6 | int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 i0 b2 i* D; z6 w: L# x8 l" M/ y e! P
if( nLevel > 59 && nLevel < 72 )
?4 w4 i5 [) Q( i, ~0 _ dwTmpSkLevel = 1;1 N. d+ W7 H6 v
else if( nLevel > 71 && nLevel < 84 )
: M5 H$ y. W n9 c+ }# h dwTmpSkLevel = 2;4 m4 @; c2 q3 _+ r) W
else if( nLevel > 83 && nLevel < 96 ); W& g$ w9 o8 z6 j- y+ i( y
dwTmpSkLevel = 3;2 F w) j8 V8 p! g
else if( nLevel > 95 && nLevel < 108 )
6 s% @- Q! S, i5 y8 L) N dwTmpSkLevel = 4;
" R! Z! y( _* @: O+ |8 C9 V% g else if( nLevel > 107 && nLevel < 120 )
: h7 ?& u4 O' R2 H8 z dwTmpSkLevel = 5; o8 n; z6 F$ I4 O. S3 u* s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + T5 l; t2 K3 y# g7 _
{
+ O) i$ K8 B1 S) n3 | LPSKILL lpSkill = &(m_aJobSkill);1 ?) G$ ^* u" A* K. e, o
if( lpSkill && lpSkill->dwSkill != NULL_ID ); D% O; r4 q" G9 j9 }. E3 V6 v
{
. [! I! q- t- I t+ Z! B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 d. Z* _9 d6 t" L d' ~ if( pSkillProp == NULL )( U9 i. _, G( ]; @; Q% X8 R
continue;' J7 F, _( n3 p# h% ?8 E2 ]3 \/ P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 C/ h6 ]0 s5 y
continue;
. V2 p) I4 c: Q: v lpSkill->dwLevel = dwTmpSkLevel;
0 B: p, m8 Z, Q }
0 v" \3 U d" ~3 `( g' o, t }
0 U5 Y$ j& ~* c( {+ P: O } l/ L# e9 w7 q; M1 ]
else if(IsHero())
1 B: `; g/ f8 z) c4 j/ i {
7 e4 h% Y3 r( f: L! O# h for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 P( M5 g8 K( v. K: n6 g
{
$ ?* P) G( |: l% F LPSKILL lpSkill = &(m_aJobSkill);
. H- }# C+ g W* H* I$ k1 h if( lpSkill && lpSkill->dwSkill != NULL_ID )
; ]& j' n) ?* u4 ?- F. d: @8 R6 ? {$ N6 W& t7 ~0 Y z3 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 r, n/ {# o' e7 Y* d if( pSkillProp == NULL )
9 ]) h0 {0 ~0 j1 R) _$ @5 i* ]& ` continue;
, H' W" u, J7 u6 x$ I# I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: o6 m) v2 P7 l3 u2 G" E8 X$ D continue;
1 |3 \# C8 y; B2 \# C7 b( P7 C A lpSkill->dwLevel = 5;
7 ]8 ^$ Z+ z# o; i }
0 W: \) Y' G% \; ~2 q6 w7 \ }
% u6 O7 w' r: A- X }9 D: }1 U4 T% D; W7 P1 {6 D
else if(IsLegendHero())
& F# |3 P, h/ h9 Y {
) \) M8 o0 n1 P O* v, f; n2 v for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 U: d& c4 d; [& A% X- O
{ ; ~- o: a& E% |" t% N* h
LPSKILL lpSkill = &(m_aJobSkill);
* l/ A6 Z$ J* x% w# \) T+ \8 y/ ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
. _ Q3 H4 r; b5 K {" X: {, i+ q' W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # g5 j# P% r& P$ k4 y
if( pSkillProp == NULL )' e) ?2 P4 O, s7 }- x+ x* {
continue;& @+ B- V) h5 L! V: T- H- G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): J. F1 W& b' r& u, b, N$ o* e
continue;. k) e+ {- u6 k; W, b" e# T
lpSkill->dwLevel = 5;
z$ U) x- Q$ G1 ] }0 @5 o7 ]8 z/ c( |( p
}
& ^2 j+ J, [3 s) L6 k# v g }
# Z% ~0 f/ d! |3 o0 v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# W7 B! W! o, [. G4 S' ]' f if( bGamma )7 s" F% U5 j6 Y
{
% Q# \- ^% q6 |% \5 p3 J m_nExp1 = 0;
0 o6 z6 u6 x/ @8 n. } }
( U) w: x' U$ Q; N, f4 W
3 \) i+ u0 n! O0 q3 K; g ( (CUser*)this )->AddSetChangeJob( nJob );
- Z' _: x; U* g6 H- ~+ t, a g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 q) N: p9 I: L4 X: j5 p2 d
; u8 P( o1 Z, X8 f+ O6 ?6 U* g5 p N1 V9 t5 c
#if __VER >= 11 // __SYS_PLAYER_DATA
0 ]' g, X% D2 j7 m% J2 ^5 M U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. J) z1 l6 O! `) F8 B9 x
#else // __SYS_PLAYER_DATA) Y/ Y; ~) C+ r' J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- S& ]* k4 v8 {# W9 N% A g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' d% @3 j; e6 u7 r if( m_idGuild != 0 )5 y' M2 `3 p) w1 X6 {1 Y7 F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ d3 t9 S2 @! e/ v' {- [3 O% [
#endif // __SYS_PLAYER_DATA
" t3 p: G$ {4 y h8 ?9 K1 m SetHitPoint( GetMaxHitPoint() );7 N. m, n0 m- `# L0 \9 U2 m7 }" \
SetManaPoint( GetMaxManaPoint() );
0 i5 L! {3 ?- ^ SetFatiguePoint( GetMaxFatiguePoint() );" i, \3 V5 J- }; Y* i q4 s
if( nJob >= 1 && nJob <= 4 ): t$ Q9 ?9 F7 z- m2 W# q* ]! K
{! x6 y" d* K3 A! Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- y- X& |- |4 `3 ?9 j2 X: k9 D m_nRemainGP = 28;' w& m5 S1 P& ]# }( z( m
}# S8 I* q' Z8 n! e/ ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) h# K6 H; r1 y$ Z5 {6 n9 R {) z8 ?, G' P c0 `' \+ k+ M
m_nRemainGP = 118;
4 O$ s; N/ ^) G6 @6 s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) H+ Z$ P# {6 T/ D
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 q u0 z8 E- c) J+ e0 @
}
z* B: i. z6 Q J+ ~ o/ Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: o8 ?2 h) K! Y% I {
' w) p2 c5 z6 z7 O6 b4 f CItemElem itemelem;
! N* _5 w2 A3 c; T J! W5 q itemelem.m_nItemNum = 1;1 Q# z' z& A+ R7 A, I4 j
itemelem.m_bCharged = TRUE;
0 B$ j& m& c, }; M1 l BYTE nID;+ l. S8 N( f1 M+ C) h
V: R, Q) ]- J z. e9 _) E/ T2 M if( nJob == JOB_MENTALIST_HERO )# s% a3 J7 W9 c3 }
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 e- j% P% w1 {% u: {: z" o" z& F if( nJob == JOB_FORCEMASTER_HERO )5 @7 E+ v$ k/ I* V6 w1 J, d( C9 S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 h2 T5 l6 j# j7 V" }! F3 r) k5 ^: s; O) q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 }; Q- I; S1 a4 _; T }3 o" B7 [9 k* H0 n
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) ~, M5 ?1 J1 j1 g2 Y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" V0 N+ S. n6 f' T ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 k" L- D+ {$ i2 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: u! r1 z; @* R" U# \3 c) v# Z ( (CUser*)this )->AddTaskBar();*/. o) W4 ^, v( u0 H/ o2 S# a( B9 ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 J6 c3 d& k: h: `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 G& \5 f1 m! `( r9 | ((CUser*)this)->CheckHonorStat();+ }+ s4 D& l0 c
((CUser*)this)->AddHonorListAck();
) z& Q0 @! C4 n* n g_UserMng.AddHonorTitleChange( this, m_nHonor);
* i& D/ [' y$ J; K" w7 E" P% G#endif // __HONORABLE_TITLE // ′Tà?
7 ~4 ~- o# x& `$ d9 p }
4 n6 h+ i; d5 f5 B+ |" x4 e# H#endif // __WORLDSERVER
A. ?* O# K! [* U3 j9 c$ ?}
4 L( w! s0 \9 ^: q! T7 s. W3 v5 F1 e' A. ?7 e3 `
然后你进入functextcmd.cpp并添加以下
' Q2 C9 O9 A a% C
. _ d0 N& J4 v- n代码:
6 W7 |2 v4 I% b: DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 c0 }2 T2 `- W, L2 ~7 z
下面插入1 D# U0 A; a+ T" g- K9 a- ~; U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * g) m" R0 _/ c% H1 p& _$ W0 S
: k9 W+ L9 Z) B7 T然后你去/ |& F, s4 F6 c4 x8 O' o
2 [' D$ B0 s* u代码:- Y* s' f" Q6 R7 v; Q" E6 }
代码
( [. V- ^) \! w. h" a( e' o3 @BOOL TextCmd_ClearPropose( CScanner & s )
, C" h* y9 O, L" ~5 J{
* p+ F2 R7 W+ x/ W; c+ U#ifdef __WORLDSERVER6 `7 Z7 O1 w/ ]# n
CUser* pUser = (CUser*)s.dwValue;9 Y: g+ ?9 e$ j- `1 |
g_dpDBClient.SendClearPropose();
- }& t8 K; F& X: m8 b1 F#endif // __WORLDSERVER1 W. ~5 C9 M' X! j
return TRUE;
! c2 N' U* A# `; k v: q}
8 z1 o, ]* C* w下面插入, r* |' N0 M$ ~' S( G2 u
BOOL TextCmd_rebirth( CScanner& scanner )
2 O( S9 v* p3 h `7 S6 W j# K: ?{
- g U$ q( t# z r#ifdef __WORLDSERVER
4 d9 f( y: q& UCUser *pUser;
* `& n g! E( J( HpUser = (CUser*)scanner.dwValue;9 O" j) w6 o5 j. Y6 `# m8 @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ |) r0 O: g9 Y# ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. p1 ^3 A, U) c$ a9 d# O9 yelse( c( `/ M% r" V' o7 y) p% ~! G
pUser->AddText("你还未达到重生条件!");
4 i' D! M ~ }0 ~#endif/ ^2 Y$ L1 G) n: e6 Z2 m/ G
return TRUE;
( y5 R8 J: u) W# f& j9 D8 z6 ]} ; m! g5 ^" H3 U2 M5 z7 p
! f& m, q# g7 P. B j7 H
- `& d8 _0 {: v$ e1 S
" |1 y! M7 X6 K) n# u9 C: Y3 S! W P
6 s' l# N5 F3 Y/ S7 T |
|