|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 l l% }3 G. K2 J; t% \1 H
+ q" V# O3 [. H" w( AMover.h/ ]) q# |, q0 J6 `& n
代码:5 u/ ~8 o X2 _3 H6 |0 \ u u/ o' D
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: z( N: Y& g$ N: G [7 L. h
0 T" ~% V6 _ z5 k: ]9 H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - R' G' @4 D9 U- o( m' w4 ~; q
' e% x% k3 @/ b' a4 O, z2 {! m
然后你去mover.cpp添加
: P3 y q9 x0 }6 a
5 ]- C" A4 P7 c: u& V代码:
$ b" K' z0 ?! ?9 ?) i0 ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 ~" M2 Z9 H% b1 U& m% K{* D8 F Y& ^- C2 |
#ifdef __WORLDSERVER0 o6 ?+ i- w0 H8 P/ G6 N; E* C6 |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" b/ |4 R+ \5 j MoverProp* pProp = GetProp();3 Q4 K6 ?2 `3 z6 v) ^2 G
if( pProp )
* K8 v7 M/ t) S3 a; J1 b5 x {# J$ j1 e, I4 y9 E+ ^0 W' v- B" V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 P. e, h; e# q! C {- g: u3 b' z9 f" K
AddChangeJob( nJob );1 ^, A$ _. {( ?3 K2 j
}else{
$ q# X8 N, h9 d( z4 I return;
& @: J4 [$ E( O* o$ N }1 [4 p) E& w% Z& l8 ^9 Q
int nPoint = 0;
m, s: w; v! f if( m_nJob == JOB_MERCENARY ), D; r7 K5 D/ B- b' x @3 U2 m" W# B$ W! p
nPoint += 40;
4 C5 _! O# t, D8 U else if( m_nJob == JOB_ACROBAT )
8 f# c9 y# P& w1 Q3 h' y. W nPoint += 50;2 p0 D3 n2 i8 T W
else if( m_nJob == JOB_ASSIST )* c. v1 O6 Y; A! H, R1 P- u
nPoint += 60;
: W: h4 @" N" R else if( m_nJob == JOB_MAGICIAN )$ J- b3 d3 j, e9 Q* u
nPoint += 90;
; \6 o' A4 N4 l3 A+ i; e+ P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* B- c0 f" z. d% T J+ G nPoint += 120;2 I. }( U( {: Y' c/ [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 o. ]- R1 y# X& z! V nPoint += 150;* a9 R6 o% h- x- j7 Y
else if( m_nJob == JOB_RINGMASTER )
' w+ s$ t: l0 f4 E5 |% p nPoint += 160;
4 B6 C* B9 t6 x% ^ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) y8 U* Q/ Z5 R2 v9 p/ E/ {0 ]! a
nPoint += 180;
, b7 B4 S* e7 }& b( l4 `; {; [: l else if( m_nJob == JOB_ELEMENTOR )$ z" H1 z3 T) b3 D+ m/ W6 G
nPoint += 390;
' Z1 z( g" Y: ?+ V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: M+ D3 U+ }8 k# h6 j nPoint += 120;# A) X$ q$ l- S2 c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& X- _3 ]5 q' X nPoint += 150;
5 H# K- m/ r8 m+ x, I4 G- Y9 C+ M else if( nJob == JOB_FLORIST_HERO )- L& ]/ T- q& I0 ~
nPoint += 160;
1 o( ?7 P- v. V4 }# m. A% ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 Q+ o: [0 f; M |* M* T! Z1 ^$ N nPoint += 180;
# I5 [4 b! p* M8 F/ r2 j; m8 ` else if( nJob == JOB_ELEMENTORLORD_HERO )4 c& U. s/ p7 F2 C/ h7 ^
nPoint += 390;
. l: c$ h$ f J; T/ ^4 ]
# C/ V: E6 S3 S# {" H1 Z6 { AddSkillPoint( nPoint );: x* {1 A* O1 b2 f! q& [
m_nLevel = nLevel;
4 x! G2 F2 [' @6 y2 `4 d4 ^) i- C W' c5 c; P+ Q- y% A7 X5 D
SetJobLevel( nLevel, nJob );
( _ s+ V4 E0 i. z H2 C( Q2 X m_nDeathLevel = nLevel;
4 X$ v, ~( v; S. J7 [' m: Z' i+ G#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans f0 t6 A" a' R) Q4 \/ X
if(IsMaster())
, ` \: b8 g. u: z3 d1 K: M4 Y {
+ s. }5 Y8 F* Y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) @1 v; ^7 f% L- R if( nLevel > 59 && nLevel < 72 )# ^) `2 V8 t5 r4 ?
dwTmpSkLevel = 1;
' q( F2 \9 N/ b- t( ^( |( A, i else if( nLevel > 71 && nLevel < 84 )5 j8 J' B, @, Z( X! _9 v
dwTmpSkLevel = 2;4 \7 L% E; H! M( z, B }( I
else if( nLevel > 83 && nLevel < 96 ). @; b0 Q5 V1 L2 h4 V
dwTmpSkLevel = 3;# z: q0 g$ R; z7 o3 M9 C1 o* W
else if( nLevel > 95 && nLevel < 108 )! [9 B7 o. L5 v% [& I
dwTmpSkLevel = 4;* S0 Z$ q6 {) J% f I7 U
else if( nLevel > 107 && nLevel < 120 )
# g, G2 {* t+ y' {6 j2 d dwTmpSkLevel = 5;
5 Y: g$ l- U5 b+ Q. ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
' e' @6 P, S s7 z" K* b {
( ~" W0 u/ ~6 C7 b4 s! b# Q n LPSKILL lpSkill = &(m_aJobSkill);
3 q# N2 R% i7 s" e& L if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 P4 T7 z7 Z& g! J; d# x {
7 l$ a( a5 f9 f3 S/ D1 `) i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 Q! e& \7 o% K if( pSkillProp == NULL )2 s, k* A. d& K& Y' W; a
continue;
/ ]! u+ w7 |, h; c: i. r5 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
B5 E" K2 P- F* j5 ^: n2 A continue;
) V, k3 A7 I+ o1 T) s lpSkill->dwLevel = dwTmpSkLevel;
" \7 T* h6 s0 s, G4 x* T7 z U }) N. u9 b# l/ q' W, U
}& {( p) U$ o, m8 e$ X8 x+ m' X' i
}
# P+ r3 e+ V. i j4 a else if(IsHero())7 k% l, X8 k" O' u8 `( R. x o4 j" V. K
{
8 H# v) h. R: E7 F2 u/ O for( int i = 0; i < MAX_SKILL_JOB; i++ ) % W. {) q% o5 [' C; z
{
: V6 M# X! w2 `4 C8 v) ]" x6 u LPSKILL lpSkill = &(m_aJobSkill);7 D9 m, b- P6 U! f* Q3 P9 x) W1 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! I: a2 O$ n- }( _* d {* o1 {2 ^! A- B2 f' _1 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 J! q3 r; u4 A6 K& ^7 L
if( pSkillProp == NULL )
1 U: e1 L- m4 E( {% Y: I3 d. A continue;
8 i o2 S: i% e# d' [& R s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" L2 t1 r6 q8 v& b continue;) u9 ~3 B: p# f3 U4 \. d
lpSkill->dwLevel = 5;
! I% I8 O2 \6 ~2 }' ~ }1 s8 r5 `) ^! q* ~0 ~, p
}3 F- Q7 }5 }/ Q" V( q& v
}0 H* ~7 C% z& H2 q
else if(IsLegendHero())$ S5 U5 Y$ [) J) T Z7 N2 Q
{
* W3 S. o- s$ Z& j6 }# ~% H% y V for( int i = 0; i < MAX_SKILL_JOB; i++ ) - ^. i) K2 S% N4 R
{ Y* E% C& F- q7 J4 y7 J u
LPSKILL lpSkill = &(m_aJobSkill);
! V2 u( q. v8 _& Q2 Y; r if( lpSkill && lpSkill->dwSkill != NULL_ID )0 h% ^" l* p5 P8 j( L
{) c( c- {5 a1 H! }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 B6 f1 m# N4 e: j, j
if( pSkillProp == NULL )
* |& f6 q% u' L- Q- m continue;# ^/ ?5 M' N# N/ n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* z. m0 B: {- B! I$ I continue;
( { c) y0 o, S- x! ? lpSkill->dwLevel = 5;6 v6 j% z4 M1 g! E g" o
}
/ C2 V5 `! W+ D) I }
1 P, ^/ `, U, W4 @" ~! l$ u }- i0 ^; b* M; C+ e# U4 C
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* f& I7 N( S0 u4 B
if( bGamma )1 q0 B8 ~. X2 k; @3 R4 P' q8 M0 V
{8 M7 J) v/ d* c! p
m_nExp1 = 0;$ _# _, V" O+ ^! X
}* M' x% B' X" I$ }6 J7 ]% R5 X7 v
( ` T* {2 ?$ n& L) o* H! U, L) m
( (CUser*)this )->AddSetChangeJob( nJob );
. `) {- ~: S# }9 F1 R; Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 C" c" N% B7 a* Y/ y" X+ X9 {4 n+ B! Z( V' Q9 m( _# }
1 s' r; i5 x9 I8 T$ `3 Y#if __VER >= 11 // __SYS_PLAYER_DATA0 I* O; r/ x: N1 N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' B& ^$ V4 c8 Y: ]* k ^% k, T#else // __SYS_PLAYER_DATA5 ]3 f: P: x( W q3 u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, s/ g* V7 ^( E8 _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, P% S( v3 }8 ?- B1 x
if( m_idGuild != 0 )9 j8 i5 { D- m1 @3 Q$ I! s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 J1 J* n% }8 d- T9 L; R( c7 W2 z b
#endif // __SYS_PLAYER_DATA+ q9 O$ |+ s+ h! k5 X- ~+ U8 h- J
SetHitPoint( GetMaxHitPoint() );
0 @) N: D# z5 x. Q+ Q, e. v: T k SetManaPoint( GetMaxManaPoint() );
8 k# w7 Z, A( f" @/ b8 P% B6 F3 o; N SetFatiguePoint( GetMaxFatiguePoint() );
9 H2 v: @3 B; F. |, m6 n if( nJob >= 1 && nJob <= 4 )
# A6 a, b u- g# }+ ]. o% ]' q% Y {
7 t( P) a2 P- i+ `4 d* N( f: w+ Z m_nStr = m_nSta = m_nDex = m_nInt = 15;1 |3 A9 O: L* H
m_nRemainGP = 28;
+ T6 l8 m" C/ l }/ W( G4 `' T7 \: p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 C6 W( B8 j2 g) u/ ^
{8 b, g6 R) e1 J% x: k
m_nRemainGP = 118;
5 s# Y0 D& l6 T# f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" v, j. q- e1 _, r$ w6 }* M1 g4 [ m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 y2 }9 [4 R: N3 R% J' p3 P8 x }
0 i' e0 q( j" ~; d: j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 [+ \+ x$ D! }9 h {
6 J# m2 e9 z4 e7 a' g( o+ g2 ~4 \ CItemElem itemelem;1 I( a9 _/ l8 O) @" l8 q* }) O
itemelem.m_nItemNum = 1;' J! r& ]" I6 A
itemelem.m_bCharged = TRUE;
7 T9 F1 d7 ?4 }0 ^' D3 I BYTE nID;) J4 O2 l* w9 T/ f
! \2 a+ W, }% n5 O, ~ if( nJob == JOB_MENTALIST_HERO ), J$ w3 i$ Y/ C
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ I0 F9 k+ {4 f3 a( P2 ?
if( nJob == JOB_FORCEMASTER_HERO )
; k2 E6 S" J& q- w |* v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' R8 G2 d6 `, \& L" w% }7 m/ u; z8 f4 b# h
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& U- c+ b5 Q9 U7 F* ~ }# Z+ s! j- Z/ R4 _1 Z2 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 e# t8 E2 E1 }
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& N: Q: n! v* w7 `/ o7 X8 W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 w6 ^0 B8 e0 e3 |6 f$ [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* S; @& |2 ^- v# `+ @2 g" G ( (CUser*)this )->AddTaskBar();*/( A J v' u6 x/ _# j! B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* k/ ~6 {, M. D6 N1 r& L2 v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& P9 |+ r& p0 y2 Q+ H. b ((CUser*)this)->CheckHonorStat();9 w( f/ f( p& E
((CUser*)this)->AddHonorListAck();
b T0 [9 R: W7 W! Y g_UserMng.AddHonorTitleChange( this, m_nHonor);- e! v9 B" E6 i6 T
#endif // __HONORABLE_TITLE // ′Tà?3 {5 K* T O7 S+ l
}
/ ^/ y/ ]# R/ g8 M \#endif // __WORLDSERVER: V1 N3 D6 b2 ^! a! B* o
}
! `9 i9 U' ]1 a t7 E
6 d; h ^; Z% K0 j- R: p% v然后你进入functextcmd.cpp并添加以下 I. a% C" d* C7 Y
& W* O. X( M3 I2 f8 _7 w代码:6 o$ i" ^* I$ ^' K6 [4 X& T3 `+ r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): L R) F. r$ G& q
下面插入
7 G3 a2 `0 j. H" F I4 @ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , l- ^8 A& ~1 r. _7 q9 J* _# @
& Z8 M2 |' M5 k; e6 k1 J- h+ U% d; U然后你去
2 l& Z m& L! [6 u, w, V" }& H, b$ Z8 r6 a9 G
代码:
" p( o. N* B% e7 l3 A+ o1 J* M代码9 ^7 Q" C) c$ F9 N: ?
BOOL TextCmd_ClearPropose( CScanner & s )
! H* l; Q5 b3 l- E{
# H6 `- V; e! h3 T( |( M- O#ifdef __WORLDSERVER! t( B4 a2 Z# z& t* _
CUser* pUser = (CUser*)s.dwValue;
5 _0 ]8 m! o# J% b; w: T g_dpDBClient.SendClearPropose();
- F. @% S& d8 d: J0 x9 ~0 T#endif // __WORLDSERVER* p6 `: b. G4 @' c" a2 y6 N, _
return TRUE;. ^4 l. w; ?, D; t# _
}! Q* l8 w! Z! d
下面插入; O0 `: l! V) h$ M4 y
BOOL TextCmd_rebirth( CScanner& scanner )
0 H0 U: P/ R$ a{7 ~0 g: h- S* `5 I6 w
#ifdef __WORLDSERVER8 p; b" }6 |/ Z
CUser *pUser;
' Z/ b7 I2 V+ \& q4 GpUser = (CUser*)scanner.dwValue;
8 D0 h$ m0 U8 |if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( E# v5 G+ O. J7 ~" Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ D( l2 K' R0 Y3 s" t8 t) Z% y1 r/ Zelse- v" a& P# l ]
pUser->AddText("你还未达到重生条件!");
( r/ p7 z0 [4 t0 l# q#endif
/ ]; X ~; E2 z& _return TRUE;8 {9 H( |4 X; G. ^2 e
}
& r1 z: i. H4 M* d6 A) N S X
R" E1 Y! ~; ?4 P# L* U
6 Z m2 {/ D; S* O7 p3 B- L/ e; F0 f
. [' i. u! v9 m& r
|
|