|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& D, s; |2 a- L/ l3 m8 q! J# M* Y/ w3 O$ k1 Q
Mover.h( V" G b& G3 D
代码:
7 z; N! ~8 Q2 i P- ^找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 h% h7 {! \8 \# f
6 M5 @/ s$ h% ]# G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: E2 m0 J4 Z7 x3 r5 ~
" g3 C. ?* f9 @% v% G1 w% t5 z; c然后你去mover.cpp添加: a3 q7 N( ?1 B, |+ L' y0 t$ a4 |
( i$ }# U! _) m6 c: j, p3 R代码:; X! G. @* t% k; `% D# [9 C6 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ A1 O2 B: @+ N
{. l5 e5 n& l4 o6 X. d0 Y+ O, {2 ~
#ifdef __WORLDSERVER
4 n. e" u) j* H( M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ Z9 f2 \9 v2 m& Z
MoverProp* pProp = GetProp();% N; t/ ?7 v4 Y0 J
if( pProp ), i9 _, s7 c$ |' s: }. ^8 O9 m: u
{# \" g' U) L0 F i1 g% ~) l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 ^8 n! I& R' _1 j/ J0 B! H5 k f {
% t/ e: z3 K4 D, _- z( P! ?7 g AddChangeJob( nJob );
" ^* u+ L! k3 X& k1 b# a9 C }else{
/ d: j ^# u# h+ C9 F. @# o' K return;6 A6 z( ^* N$ Y2 _& u
}
' u! b j' u8 o: I, I* D5 @- q int nPoint = 0;
0 C7 u4 [4 W# H& {5 [& B6 _ if( m_nJob == JOB_MERCENARY )) x4 B! n1 X; r- w. A9 |* p
nPoint += 40;
' o! A" T! R$ \* B# e$ l2 ]5 \1 N& v else if( m_nJob == JOB_ACROBAT )
* i" u3 |" U l" o nPoint += 50;" ?( m$ P# {+ O# G( ]' v! b% S
else if( m_nJob == JOB_ASSIST )
* z( L$ u( s0 | nPoint += 60;
8 _) k1 K R9 o: v/ n8 e* l else if( m_nJob == JOB_MAGICIAN )
' X3 A3 V* R! F* ^! ^- M. ` nPoint += 90;
7 ?/ q% s' T: v! o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ E5 y- g% w4 t# C/ ] nPoint += 120;/ G9 ^5 I ?$ ~' \4 ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 B. O x6 \+ i Z nPoint += 150;- }8 V5 Q$ X; p' e! F0 n6 \* n. v
else if( m_nJob == JOB_RINGMASTER )
, l# d1 Q& K @, z9 [# U, g/ n nPoint += 160;
' I# L& B) E5 L9 Z- } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ V2 B: A3 y* u# h* y2 H
nPoint += 180;
e) F4 @+ x' M else if( m_nJob == JOB_ELEMENTOR )
4 F1 v, O# L0 q; d4 {. S9 U e. G nPoint += 390;
; V9 V5 f( e& O4 C/ I: M( f1 k else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), u1 S I* {! T: J2 y ?4 o$ ^
nPoint += 120;
) b1 m7 {3 ]) z0 G) F) a0 A$ F else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
u) L; F5 f0 c: c8 Q4 X4 ` nPoint += 150;# d" P; l* i% i8 @2 f, A
else if( nJob == JOB_FLORIST_HERO )( ^0 W! l/ F) s% S% |
nPoint += 160;# B/ H6 s. d2 X) X) z& Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, \# L3 ~. o; i6 `2 K nPoint += 180;" b8 a5 x1 u, w4 V2 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 R3 O) z0 o) C! U! i nPoint += 390;
6 {5 n+ f2 D1 ?: s4 S3 H/ q, P, ^" c4 G+ B" ?1 s
AddSkillPoint( nPoint );
' \$ M* N/ s% Y- F m_nLevel = nLevel;
" _) s0 b8 \( N* Q( D+ G" C
) ` A5 l- Y9 p9 n S5 v SetJobLevel( nLevel, nJob );
: b2 [$ u( z# i% `( k' w m_nDeathLevel = nLevel;
s% H3 p; z {6 N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- X% s$ `( a& l8 c$ c/ }) R3 ^ if(IsMaster())
8 ^6 E8 L3 }: P- N {
F+ N; K! B( R9 x& ~; N int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ N0 \2 o; ]. l5 i if( nLevel > 59 && nLevel < 72 )- R- S7 y0 R3 z ^! d
dwTmpSkLevel = 1;
2 @: T" ]4 A8 r7 R$ \ else if( nLevel > 71 && nLevel < 84 )% x3 ]- W' F% ~( c* p) L6 j; A( K
dwTmpSkLevel = 2;) w* Z- e. r) a" s5 e
else if( nLevel > 83 && nLevel < 96 )) e9 Y' T6 u8 z v& y1 T) C
dwTmpSkLevel = 3;1 B! t$ B+ C2 b* E9 p; V
else if( nLevel > 95 && nLevel < 108 ) ^$ g! w5 B* C0 Y0 z. @" p
dwTmpSkLevel = 4;6 e$ ~+ f. Y& q
else if( nLevel > 107 && nLevel < 120 ); v$ Q9 `9 f. k$ N8 V* [7 c
dwTmpSkLevel = 5;
4 _' W1 R; i I0 D( ?% m. B# u for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 G% J# \3 J% i% B$ I, I { / L+ F2 R1 j& T+ ~2 C% y! O
LPSKILL lpSkill = &(m_aJobSkill);
, U3 k; M% |( v5 I if( lpSkill && lpSkill->dwSkill != NULL_ID )
& a9 ] Z$ V9 m; Y {
* L% n- a- w$ X; s3 ~6 e% z1 h( k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & |! H+ _9 P# h% z' s
if( pSkillProp == NULL )7 _9 _* n" m# E5 a
continue;5 L+ L. r% c4 T: u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* r7 Y+ H( {! I* c continue;
% o4 t) h/ A' ]' W5 |" e lpSkill->dwLevel = dwTmpSkLevel;) l, E: M+ ]8 N+ ^9 P
}
2 R* {/ j3 ~! T/ ^ }
5 V6 x1 S% e/ s; ]* d }
0 z( f7 _5 N3 E, w( ]: V, G, T else if(IsHero())+ o) A6 r% ]1 T
{/ C! ?3 G% @2 y$ D" }" L, s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- r# u2 G, a( f1 }" O { 0 s; e5 |) x* z4 z& e7 {7 N7 o) ^$ o
LPSKILL lpSkill = &(m_aJobSkill);9 Q2 J* Y1 d4 \- S* G
if( lpSkill && lpSkill->dwSkill != NULL_ID )* N' s$ S) v" X6 O7 n
{+ p. Z' G( j9 [; Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 {5 d6 |% e0 \' o1 b/ E if( pSkillProp == NULL )
- n/ {9 ]: N; n- ] continue;
/ Q: q/ I- p; W5 g0 I- g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* ?0 s/ \( t# h. h
continue;
0 H3 t3 k; k5 w R8 R$ y; g lpSkill->dwLevel = 5;
) N {" ~0 i* Y# f& n9 {5 G r }
0 i" j8 }: H% o" K }" a* J7 s& T) B
}8 o6 f; n1 }- T4 o8 j# y
else if(IsLegendHero())
; ^0 \; k2 y0 R( T# e F {- z |9 w/ E3 b4 a/ _7 V$ c2 f3 j4 B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 `, z; t( E9 R* T9 I& Y8 F- a
{ 7 e; k+ \2 M8 E$ H) ~- t. _. y5 M
LPSKILL lpSkill = &(m_aJobSkill);
, W9 X7 e+ c! j+ [$ S4 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
, b+ `6 j( @0 q z% I. c {- g* {4 m, u ?/ a. m5 {9 \* I1 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / ?1 D8 O5 t+ Z
if( pSkillProp == NULL )
3 O6 I% u. T) T1 d0 X2 {9 C- Y$ l continue;6 i, X) p s$ _$ `4 t$ ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* I7 O$ m }' U j
continue;) _' c/ f! s+ y x9 v& T" T
lpSkill->dwLevel = 5;
' a1 X/ Q6 I! h8 c' [5 l$ e* I }
; _9 c" U( R4 h5 \ }
$ e# o5 y' Z: U; D) q }3 o% }; c' x3 x" h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, J4 T, }4 m" |4 R: o) P if( bGamma )+ i" h9 N3 p, @ B; ~
{
9 m# k4 V# t1 T5 p9 x m_nExp1 = 0;: _+ [7 @6 [, H _ d3 n [3 G2 f A
}
, n l% {, a% E2 b
/ e8 K% _- W. z2 ?- V5 `& c: k0 B/ ~ ( (CUser*)this )->AddSetChangeJob( nJob );
- x/ I8 |+ p4 R0 e7 ]* h+ F. d/ p g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 G" N$ t6 l) [+ b q* T+ [$ L+ R3 N
4 S6 N) w' k7 n' a- i. R8 Y$ _
# q1 D6 n/ {" o5 H# Q
#if __VER >= 11 // __SYS_PLAYER_DATA' c8 K, }8 I4 t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* ~! W; T4 t; {. r9 q9 w, {: L4 m! M
#else // __SYS_PLAYER_DATA% z* c# @4 D6 K, e8 e6 i* ?, q- t
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 F J1 M' T7 D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( F: S! |2 x5 {' {" r9 R
if( m_idGuild != 0 )
3 d7 x" N: c: q6 `+ E g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( S: _% }, C) E& F8 m K8 o#endif // __SYS_PLAYER_DATA
5 H8 a7 t v3 p# B/ t7 v; X SetHitPoint( GetMaxHitPoint() );4 U3 |7 A) r( D) ~
SetManaPoint( GetMaxManaPoint() );
/ C1 y9 [! S1 F$ X' v X& `6 H SetFatiguePoint( GetMaxFatiguePoint() );" o# v: s4 k+ \5 f2 l
if( nJob >= 1 && nJob <= 4 )( {8 V8 a) d% t! I; s; R
{
+ v: u" g5 ~1 [0 X3 t m_nStr = m_nSta = m_nDex = m_nInt = 15;( }+ U( p9 j- W" w2 [9 Y" f6 E
m_nRemainGP = 28;
' j. `: S* n0 u }9 L& a, T( A( a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" p8 D7 X. q" ~3 F2 I0 d
{/ S! c4 |, E* ~; B5 I/ Z- o
m_nRemainGP = 118;: x2 u: @. P1 z8 }1 R; x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) A- K2 ?& O! G+ U" h
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ m* e+ r1 |' d9 y9 u7 Y/ s
}
: Y/ B1 C" {3 G. {6 l6 W) a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 E4 i6 I# [$ d) ]
{
9 p* u, n3 k2 D3 U' u CItemElem itemelem;1 G& M) a( L; I' K2 h F4 ^# M
itemelem.m_nItemNum = 1;
# P' c" e3 U. ?7 M& D n itemelem.m_bCharged = TRUE;
: ?9 x O- V- {2 A0 r1 F9 _7 l BYTE nID;4 y6 Z `, i$ F
8 l' ?: K6 r( K9 @ if( nJob == JOB_MENTALIST_HERO )
" ~$ V5 d3 e- i* Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ j( m) f' O: G# ]. k
if( nJob == JOB_FORCEMASTER_HERO )
5 i: L4 A, C5 T P" b! u itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. A% w3 E( n6 P( I
# T& P" A& C( }3 a( H/ e) w+ }+ ? ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. j' m# {/ f) c( W8 W D) W% y5 g$ x }
& f. v- H5 I. @# n, n2 F g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 U/ B/ q) d6 L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# N4 k( }! t. t; P+ x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& i# i K& C5 B! x2 X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- L; F W+ I1 N! t# r! x
( (CUser*)this )->AddTaskBar();*/
2 E+ X9 R- n# ~ n a3 N( O Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) d1 P- G0 W7 O; z. w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ U ~2 i% Z8 q9 M2 p; `
((CUser*)this)->CheckHonorStat();2 q$ C' s( s( b& k0 I* l1 M" P$ t
((CUser*)this)->AddHonorListAck();
, i; S9 ?* l! Z; I* M+ p g_UserMng.AddHonorTitleChange( this, m_nHonor);
" r/ }) U. r1 R" O0 y#endif // __HONORABLE_TITLE // ′Tà?
$ Q" ~* e' W/ O* m$ Z& q }9 ~1 M' }1 I" i
#endif // __WORLDSERVER4 F, T2 c6 O! E
}
5 t+ R' _, a# ?% h( G/ e
" |7 b/ j5 }3 x& X然后你进入functextcmd.cpp并添加以下
# Z- W4 Z9 W9 c# k- v8 a, f3 q/ [
代码:
9 g8 ^, I! K t; u: k! C" J3 w% YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 t0 c% t* i u" ]下面插入& `, K4 ]! W7 p* Y5 |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. R; U9 _: D( r% D4 { H6 f9 l% U! j7 f
然后你去
+ F; L3 r C/ @: {& Q( w5 \% c; l* ?' v' r* O/ K3 j6 C; c2 u
代码:
! w# `" @/ Y' D- z; C% z代码
; N& `' J8 P. p0 d& n3 ^BOOL TextCmd_ClearPropose( CScanner & s )
# o5 r) }& n3 y- k{
) @& F2 ^# E5 Y1 Q0 g#ifdef __WORLDSERVER
+ u: i- ^2 B7 U4 t* ~3 t" G8 X CUser* pUser = (CUser*)s.dwValue;
! c: h( `9 t1 J g_dpDBClient.SendClearPropose();
% r, |& t+ `. E0 Q+ M8 m+ d#endif // __WORLDSERVER
. u3 b/ I' b4 J/ f3 M return TRUE;$ x, q0 Z5 Z; G F% K
}/ v: _6 G( D: j2 E
下面插入
7 K2 |9 R% W4 Y- F# K5 `4 fBOOL TextCmd_rebirth( CScanner& scanner )
5 ^6 q( s1 J( W R4 w E3 Y9 f{! R; E( d1 S, K6 f# X' G- k
#ifdef __WORLDSERVER
# ?7 v5 B: h( gCUser *pUser;
1 O6 g. ]. t. T1 c' Y8 FpUser = (CUser*)scanner.dwValue;) x- S0 a8 g& a$ f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 \; y+ s4 {' r! X& T! N, g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* d/ w7 t2 i9 a. ^0 welse
2 d3 \2 x; F) Y7 h C5 j; G3 rpUser->AddText("你还未达到重生条件!");
% {0 F0 I4 N; v3 c#endif
' N# [8 b3 F+ Z$ P! e8 m3 ~return TRUE;
7 F2 l2 ]7 k/ `}
' ?) u0 b4 M7 |! w( u$ ]7 c- y8 A+ u4 O! Q7 i
& k/ `+ |6 @( x9 x
+ r) P) t8 a: ]4 z! T* _1 w }& e! f+ F/ V# ~$ c& Q0 ~' ]
|
|