|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 T5 _4 c! P l9 ]
0 T* q, P; Q0 L- e1 O
Mover.h9 I" z7 _4 q" z* h" r
代码:' ~- Z+ S( b+ v% K: g% E: I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 e- n4 \1 f* ~5 ], X# R) e
) w) y- T1 [7 z$ o0 s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . k% l! ^1 l8 {) ~
3 L4 F: Y/ Y) ~; ]然后你去mover.cpp添加7 R4 [) r( \3 x$ H: L
) S% w) r: C1 p( ]' n! ^1 H8 f代码:) T d4 ? c4 _+ _+ k B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 e6 \% U7 l4 D8 M{8 e- ^- }6 a* ]* T0 ?0 ^; W8 t
#ifdef __WORLDSERVER
3 B( o) e% p) I/ T0 u) ^! Z n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. s) V4 T. R/ T: F MoverProp* pProp = GetProp();3 w3 \, t6 h* |6 y+ ~. C. j v
if( pProp )
: l! V5 |* g m/ k2 m3 c {, q5 }4 }1 f8 N, M$ }3 K# f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 e9 H8 N* C$ X4 i+ _
{' Y: y4 @ x; o9 o9 u& w; n! ]7 k
AddChangeJob( nJob );) N8 t U- i5 O% ^! J
}else{. O0 @0 Q) D6 P' x7 ^1 N
return;7 g3 U* J. \" Y. l* ?
}
1 Q" M4 k4 W/ f2 A( F" i int nPoint = 0;9 d* `3 {+ W0 D* l% s
if( m_nJob == JOB_MERCENARY )
) i% r. L6 f/ _4 ]+ k nPoint += 40;
9 W, \: J, ~3 x; @' z else if( m_nJob == JOB_ACROBAT )
w( X% }# E3 x% ], i0 _ nPoint += 50;* m) n4 G/ h: `+ v) r
else if( m_nJob == JOB_ASSIST ) J2 d3 Z: c3 C' X2 O9 H0 k5 X) V
nPoint += 60; ^. l% q/ b, D- d! V
else if( m_nJob == JOB_MAGICIAN )1 @: e; {5 C2 Z/ r# K! d. i
nPoint += 90;
" T' k" }. h. }: B A( A else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ N1 x1 J+ x$ d7 O
nPoint += 120;
: d$ ^" `. k# c. R- d. c0 } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; K5 m3 f5 G+ d( ^7 O5 K nPoint += 150;
/ L1 A7 R6 K3 z1 ] else if( m_nJob == JOB_RINGMASTER )
2 ?2 m W2 K* X8 K5 s nPoint += 160;
( u3 y9 q" m5 H0 Z. L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
H4 t8 ~; _: R2 q! m nPoint += 180;
3 j4 `. N% \* U1 i0 f6 N& X else if( m_nJob == JOB_ELEMENTOR )* C" Z3 g/ T6 I- t1 a7 A* P0 B2 ~
nPoint += 390;3 I" u$ ?: v J" Z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 W6 K' ^" S; ~4 a$ H8 \" k nPoint += 120;6 z8 W! Z% ?) n3 m5 S1 e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 W4 e5 f: o+ s3 k! b% {9 \ nPoint += 150;! d2 P; T' W# v. c3 w1 Z- n
else if( nJob == JOB_FLORIST_HERO )9 y2 \4 H7 B1 w0 F% H7 G7 e+ ?
nPoint += 160;7 I! o* m0 Q5 Y& {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) @8 L2 u% C3 [) m3 ~+ \ nPoint += 180;
/ f7 ^& M3 y+ J0 I0 E4 A$ E else if( nJob == JOB_ELEMENTORLORD_HERO )6 o, b: L$ G2 i( w1 N! O# e
nPoint += 390;
# P9 ]' L; X4 b7 `! l; I5 `$ j* U5 Q; m, G1 T
AddSkillPoint( nPoint );. h1 ?- {$ |+ o" I8 \: P
m_nLevel = nLevel;% E7 y: K }7 B7 n; C0 ]
$ d% s* A& t f7 q/ |( V& w2 l4 N2 ~ SetJobLevel( nLevel, nJob );2 U6 n7 S" U& p
m_nDeathLevel = nLevel;7 _9 g1 ?) J, m e+ j) E1 M
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 C9 X8 B& ?9 B+ ?. u/ _( Y if(IsMaster())
4 O, y0 P$ C6 |" O$ ? {3 _, b) v0 h+ y& m" P6 j9 A3 D7 `6 w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 W; J. l9 N! E7 z$ a if( nLevel > 59 && nLevel < 72 ); z( |6 k. a- m) K+ P' B, P
dwTmpSkLevel = 1;
# m1 e0 ~. P, l& g+ @3 Y5 s else if( nLevel > 71 && nLevel < 84 )% J( |- L+ \* w1 g6 Y6 M
dwTmpSkLevel = 2;, b2 G& v4 P* a4 s
else if( nLevel > 83 && nLevel < 96 )+ c1 I- T7 [8 i+ o* X6 X
dwTmpSkLevel = 3;
, L# d, n* x9 h% p else if( nLevel > 95 && nLevel < 108 ). u3 y+ ` c; I( h# ~* S0 z
dwTmpSkLevel = 4;2 D4 @. R* {4 N5 y: P4 H- b* m& q
else if( nLevel > 107 && nLevel < 120 )
6 d+ R$ @$ B$ [/ M- p& K dwTmpSkLevel = 5;
. I/ x) j1 ~7 S for( int i = 0; i < MAX_SKILL_JOB; i++ ) / D$ e5 W2 Q# O7 X U
{
' ` b, e1 ]0 B3 j LPSKILL lpSkill = &(m_aJobSkill);; }4 p3 P* o- A0 \" r) |3 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: Z R7 [: p9 I8 J0 w2 J {
' v$ X7 l/ L7 T9 @. V$ s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + r* I' [6 U) L
if( pSkillProp == NULL )
4 l6 N9 M6 T. u8 V: ]7 E1 @) `5 O3 ^3 K continue;
5 k- @1 V! ]$ x! t( N2 Z6 c2 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 y2 n5 L. Y" w @" w8 O0 }
continue;2 E1 l; v! o* B
lpSkill->dwLevel = dwTmpSkLevel;
; L4 P6 s$ A2 R! W( D# a }
" X1 h+ i x4 V2 S/ E1 P5 [& s }3 w9 H f* m" d; f9 ~
}$ g" |# s; f3 k1 C" [
else if(IsHero())
# G+ g |) H6 f& F; e {
# \4 Q+ c' c9 Y! _; U6 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) : A7 m0 i/ v( {9 s! v/ n4 g
{ : s7 `3 T0 z& t- ^. i
LPSKILL lpSkill = &(m_aJobSkill);
" A; L' a4 I8 C0 {- [9 C/ q if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 b) g/ K7 |$ C! }9 P {% B6 c1 V; |0 s; N6 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' x$ B* B( R7 ]7 q0 J6 |+ [8 d if( pSkillProp == NULL )
9 i, X+ E3 H) e7 G2 T continue;% _' K, f* D; \8 s: s. x$ [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 J: E4 G' E, q1 D& Q continue;! c2 D. S+ W! _( V* W8 H
lpSkill->dwLevel = 5;
* u5 \! h. C j* Z; H# z } Q' K" q$ t+ m- F4 _# c8 {( n" [
}
- W0 a/ [; K: m1 z2 S1 d) ~ }, p4 m% ^( m7 d; a
else if(IsLegendHero())
$ u) R* Q/ h- j/ t, Q' s3 P {7 @5 j1 C a2 f* ~, S6 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! p! X8 D. [, E/ {5 J {
8 I$ n" A' l8 n' I9 { LPSKILL lpSkill = &(m_aJobSkill);5 R4 \: d& ]" u1 _! `
if( lpSkill && lpSkill->dwSkill != NULL_ID ); Q" P n' g6 P4 R) K6 |
{
j3 Y' Y9 K( I. K% C7 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* x. s3 ^3 s( s3 V if( pSkillProp == NULL ). Z. i% u4 X# \( i& X
continue;) J6 u3 T9 m0 D( Q+ O+ s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
s% C3 ~" {2 k1 n continue;
# E# a4 w7 {( ]( r [ lpSkill->dwLevel = 5;$ P8 {: D: ?+ ?8 n
}
, M' x) ]- i# X2 A }
/ C! H2 d9 w9 l" R& A. X7 W4 T* H }
6 I* ], ]7 g5 X3 o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& ]6 D6 L: G, s. c G2 B! ` if( bGamma ): p. u: s' X9 Z( l% w
{
2 b( R ~$ m" l5 B# f8 [5 ?4 @3 W% @ m_nExp1 = 0;2 k* V- U% _) F) l0 Z
}4 e6 k0 z4 X$ W6 w$ t& Q0 ?
! M2 l* h- p+ M; F. u" D& W ( (CUser*)this )->AddSetChangeJob( nJob );; R. Y: R$ R7 ^: Y; j1 A, ^8 R) R. ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ o3 [! m) i/ f, R6 z0 B; S& K. ~) X7 l( p& F2 D
- N: m) M4 M/ P
#if __VER >= 11 // __SYS_PLAYER_DATA
% A6 V+ o, d; z& J4 {) V6 M7 h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 K& N: ?0 ]$ T- W5 M0 |#else // __SYS_PLAYER_DATA7 r' _, n6 S; j9 N' W# o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# E3 {& ~5 P* O; c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; k; y) l, L. D4 r# Z: F9 c if( m_idGuild != 0 ); r! r+ [% Y2 C+ Z; D: Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 W8 J; } `$ W#endif // __SYS_PLAYER_DATA
+ _- ]+ H' R( h$ U SetHitPoint( GetMaxHitPoint() );" n% t4 O' M, Q4 F8 h0 q
SetManaPoint( GetMaxManaPoint() );
& k" ?8 q9 V. ]% x* U# [$ F$ o SetFatiguePoint( GetMaxFatiguePoint() );
8 x5 ]" R0 j: I1 ]& z' T if( nJob >= 1 && nJob <= 4 )
$ e2 ~5 S" F4 J$ d* D {
% n- \, U0 x. G3 T m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 T# x9 G( ?+ Y% L1 ]0 D m_nRemainGP = 28;
3 q. `: R; Z, i5 b }4 O) W$ X7 ~- J/ f/ N4 @6 g
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' n+ Q0 v g& V {
8 d( ^3 b: G# u* @" Q' `9 k m_nRemainGP = 118;0 j! Q3 F' q' m2 V' \1 U0 d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% j/ k, d% f' x# M3 L0 {. l) c: O) ]* G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" m8 O+ P+ U2 I- w) \: a }1 ?) m: g' N7 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): b5 q7 x2 p0 q6 q7 \" K$ Q
{4 V; k: U1 F% ]6 G- {/ l9 ^7 \
CItemElem itemelem;
+ U; o& L$ j% L3 c, W itemelem.m_nItemNum = 1;
n$ e D. w2 ~( r" E0 R itemelem.m_bCharged = TRUE;. b! ?) [3 ^. x
BYTE nID;
6 h2 B) Y8 \$ Q2 r. q: o+ I" X
- Q9 }# ]% k' ~' a9 j5 Q if( nJob == JOB_MENTALIST_HERO )+ f y3 O! A3 {" I6 e# {2 O0 }
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) Q% E# q. _0 X
if( nJob == JOB_FORCEMASTER_HERO )
" ?7 o* c: b1 S" M itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; \- v8 H' a& n% E9 K) v) t3 g; q, Q" I! X
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ e) O5 c0 e6 i/ L
}
1 L! n* t, P, V" l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. X! S( \5 `5 ~2 l1 F
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 i/ U+ @) T) H/ Z. x' R8 \" U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 X1 b, q1 a$ T" A4 J- I( M( W9 Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( K0 s, N" t2 B, P+ k8 [$ L7 n; \
( (CUser*)this )->AddTaskBar();*/. G7 H1 G! X$ x I8 I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. C F: A- g0 k% ~4 ?4 L+ |
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 A8 V9 J! A* y ((CUser*)this)->CheckHonorStat();
5 d. a' Y2 ]4 D0 q! ^9 F ((CUser*)this)->AddHonorListAck();
/ A j. i9 [& o: U& `: [) V g_UserMng.AddHonorTitleChange( this, m_nHonor);0 e }, T$ A: w% L9 w: G
#endif // __HONORABLE_TITLE // ′Tà?1 k; r* l4 _/ D+ T
}
P3 H ~9 x( g' n7 z3 o9 J$ ?7 X#endif // __WORLDSERVER# u$ c3 W+ g2 f ^0 S" P8 c; }: D7 c) ]
} 6 l m; K! b- y) e
, K' A5 l4 D/ b
然后你进入functextcmd.cpp并添加以下 O; [7 ~+ j( v3 {2 L) V
2 O6 H1 A) q$ R) |2 R' }5 O代码:5 w! V: f% w6 j1 u; H' T, Z6 c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 p7 b8 B3 J- a" k, K下面插入
( u/ L: N# @, |0 q& lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * V3 {, V1 H1 F0 w( h
x) l1 ?( B6 e# S* e: ~然后你去
' N( K& I( E: @8 ]* D8 _! g! i& |/ j) I7 q2 J% B, d
代码:
: A) I" I: i/ \" E代码- j+ e4 F( U7 A; F: j3 {
BOOL TextCmd_ClearPropose( CScanner & s )
( l9 C/ c# I( N ]+ ^* v. K! i{
; {7 {( R/ V: L6 m. |#ifdef __WORLDSERVER& J3 F; H* w9 y! b/ ]; }5 R
CUser* pUser = (CUser*)s.dwValue;2 r5 L5 s8 s" K4 L# \6 O; ~, i
g_dpDBClient.SendClearPropose(); \0 y& M p4 b# L
#endif // __WORLDSERVER' y3 p4 a* `4 M; j# _
return TRUE;) `7 m$ [( @) R
}
0 s n! u) E% o% \/ j- j q下面插入
7 p! N- s5 f1 ~% U" UBOOL TextCmd_rebirth( CScanner& scanner )0 Y" y+ s1 }3 Q, B$ c9 [1 d q* L
{4 X* \, P4 ?7 [! _9 h
#ifdef __WORLDSERVER5 X$ a" C" c+ I0 f
CUser *pUser;5 z7 f- ]' [! M: u# G9 y! k5 {
pUser = (CUser*)scanner.dwValue;
* t8 O3 O! {1 O$ Z; _2 M- H( zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 R; b* e2 n @. H2 I, XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- I4 |7 S8 J+ O4 C4 B1 o! J, qelse& j! B U$ I4 U9 h: `# t' }( A
pUser->AddText("你还未达到重生条件!");* S* ^( s# A, ~( b7 I' u
#endif( F: |: O5 [) ]1 [3 A
return TRUE;
/ z7 w. }" p0 G: t5 x}
* w% V2 ^5 l' @4 D" N) k
5 p4 C, H) f8 C. l. v% _! q a. d# K2 F( q3 g
8 w# x6 H* f. B3 J8 N* v; G! r
3 I" B* B7 C8 V% H |
|