|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% L7 I9 T# E1 U+ l( S. m& Q
5 |# e% b2 S+ P( a- l8 A) ~; B, SMover.h5 D% J7 p! |- a8 }0 J- W
代码:: Q$ T$ V$ {6 e* e& z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( g# d% ?9 W7 ^7 j/ S- u" u
1 l" {1 Y( m# i5 V下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
b8 p S' _5 O% @0 e- N2 v4 a/ W6 M$ G2 q+ }: \; J
然后你去mover.cpp添加
7 ^$ |' l0 u2 S: p9 h2 i6 \
$ P9 e& L# U1 e+ z0 q9 P& `代码:4 {6 T& C1 x' R! [* r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& g0 |3 s' f) |) W) G9 D7 S4 @
{
; M% \( \8 H1 p y2 w#ifdef __WORLDSERVER
& i1 }3 O) c" ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, E! C b/ Z) }/ t" y
MoverProp* pProp = GetProp();9 D5 E% m5 l" Y. L5 e. P$ N1 M: U7 J
if( pProp ); Z4 P) Q( m9 {# X- s
{
3 t6 P% W% e" E0 ]& R) ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 a- I1 F/ B' u; ^2 z# t
{! K" P* r+ I7 n: {1 X1 c
AddChangeJob( nJob );1 D. z- m1 R3 {2 H7 [& M- E3 j3 o
}else{6 w x: `) W% k6 v
return;5 p" d5 y6 b( G: _; D/ X
}
5 R7 k+ O$ C6 r' X [" k int nPoint = 0;+ z# g, T& j! w* n2 ]; E4 P
if( m_nJob == JOB_MERCENARY )
, K7 K. J' _; k' a! f nPoint += 40;
$ A+ I! C4 j7 g! b/ ^' B6 T* | else if( m_nJob == JOB_ACROBAT )
1 k& N' Q# M8 f; Y( A$ a nPoint += 50;; S- K2 q# C& Y* c) @5 {0 U3 d5 i- x
else if( m_nJob == JOB_ASSIST )
6 E( N0 t; k1 n nPoint += 60;
/ t: L2 T/ k. K; u+ h8 Q( m7 r else if( m_nJob == JOB_MAGICIAN )& l- k3 I9 X+ I
nPoint += 90;& w& U5 J K. M5 u% p1 o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- ?; E# ^1 \+ J3 f4 T0 u2 I nPoint += 120;) b. M- a1 v# M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 e& j+ }; Y5 i2 h* \* S
nPoint += 150;
7 c1 R, f3 R ^' ?: c else if( m_nJob == JOB_RINGMASTER ). @# E* e0 G7 {3 z
nPoint += 160;$ g, Q+ Y$ y" Q" C) Q% O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 x2 q7 _* P! ~- @ nPoint += 180;
) \; {. h9 \) g# _7 J. i% {7 _ else if( m_nJob == JOB_ELEMENTOR )
: a0 M/ s8 t Q) \/ Q nPoint += 390;0 L7 V$ v9 Z( \2 F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 N! T0 u' ~; F6 Q
nPoint += 120;
$ Y( v# j; @! V* r; t- j; G1 z; N" O6 G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ N, E, n0 \) `) t& ~1 A
nPoint += 150;. b- |: q5 q' n/ a" t* {3 M- Q
else if( nJob == JOB_FLORIST_HERO )
) q* p% w8 y+ s; X( R) C nPoint += 160;* g9 V* A9 B; A% l P/ Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 i8 U$ q( }8 i9 G6 {
nPoint += 180;' f' x" G2 h6 r3 t2 V
else if( nJob == JOB_ELEMENTORLORD_HERO )- f( H/ J4 B, v2 R6 c _
nPoint += 390;! ~' g' L* o$ u# @4 t
, J v. ~* i' k: s' @9 `
AddSkillPoint( nPoint );9 N* {) |8 x$ k0 y$ o( k
m_nLevel = nLevel;
$ U* }( a4 U' i9 f( L: t( N' [, p+ E% }% u+ R4 k
SetJobLevel( nLevel, nJob );
: I3 L+ C( ]; ]3 G% _" m# X m_nDeathLevel = nLevel;
; K2 k7 C5 Q( M ~$ \! x#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ N6 j( V. x# b" U; S0 p* u" F& s
if(IsMaster())
1 ~$ g9 Q& Y# q# \0 e: t {; p, }4 q' ~+ Q, `; ^; k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# f+ |; P) n9 T1 q if( nLevel > 59 && nLevel < 72 )) I$ k0 A: s( m# h
dwTmpSkLevel = 1;
u" r1 V! U% p4 [ else if( nLevel > 71 && nLevel < 84 )' Y- P) U/ y3 t9 `' S+ V; B! L8 b
dwTmpSkLevel = 2;1 Q& X" ?2 r. [# j4 k# t' M# Z
else if( nLevel > 83 && nLevel < 96 )
7 A( N; g9 \& \/ y5 ` dwTmpSkLevel = 3;' v' a( k, G, z! M& {: ?3 o* i
else if( nLevel > 95 && nLevel < 108 )2 |5 o% o% y& g) o- Z5 d' A2 I
dwTmpSkLevel = 4;
- ?6 k, W( E# } else if( nLevel > 107 && nLevel < 120 )% [ R6 {" J9 O2 x1 e; o
dwTmpSkLevel = 5;
4 U2 _' n7 ^8 j for( int i = 0; i < MAX_SKILL_JOB; i++ ) : g( f' @0 r- E! B- o
{ 2 c, a( ~: R4 B
LPSKILL lpSkill = &(m_aJobSkill);' [4 U8 x# `% ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
Q" W8 O, e. a6 l6 M2 o$ s {
7 g6 ?0 H# E& e* | S1 a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & ^2 f* Z1 S- X- P* i: ?, o7 o
if( pSkillProp == NULL )
* N' V9 j8 O+ E/ f continue;
% h. e* n2 \0 r/ ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 o- [; h4 X2 |6 |* D3 S
continue;
4 g+ T! A! d& ]( }* o. @$ K lpSkill->dwLevel = dwTmpSkLevel;/ t! n m7 ]! r' s5 H, D6 A
}" J2 t+ n, }, m
}
& l3 _/ j0 P6 P$ T) e1 {. N; p }
- X! Z7 Z9 {5 {. X else if(IsHero())- z2 r% U9 ]. B( J; V
{" i( R9 p' k {4 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% E# J3 `6 O0 O4 ?# q& Q {
) j7 Z9 R! j7 k7 I- z# n LPSKILL lpSkill = &(m_aJobSkill);
2 g: C& l4 g% w- W% t) V if( lpSkill && lpSkill->dwSkill != NULL_ID )8 f+ D4 h0 e$ h/ _$ T
{
; Z4 |9 [) x3 F, b- m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 G7 B- q- p+ w0 l
if( pSkillProp == NULL )
/ m8 G9 o3 y1 g, E7 m' T continue;
8 t# O1 H! b) L if( pSkillProp->dwItemKind1 != JTYPE_MASTER); c- M: D# i% u4 P
continue;
& {. S! p& \% A3 w+ q# B+ I lpSkill->dwLevel = 5;+ O& u, W+ Z' \
}' ^$ v/ i" J" B# a4 w6 K z& R
}
+ J6 K) J9 y8 V% y9 v. t" q }
% w" M: G3 f( e# a+ D0 c& O9 n else if(IsLegendHero())! C) a D; m+ }" [ g3 L$ @
{
; Y s( k. J/ }& O/ b/ m for( int i = 0; i < MAX_SKILL_JOB; i++ ) # z" C: l8 b P) C! [
{
# W) r& i& u& C0 P LPSKILL lpSkill = &(m_aJobSkill);
1 z& U& g1 O) c- q if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 C2 F& E7 S" x( K {5 n6 F$ G) B( @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 b* g3 S5 U$ A
if( pSkillProp == NULL )- j0 Y& t, s8 E
continue;! i/ C9 T% z- u9 L! O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" T: ?7 a. {9 h
continue;) D" W! Y$ m; T4 [; c+ [
lpSkill->dwLevel = 5;
* a0 [* Q$ N; B7 v/ ~ }
6 H! k( |, D6 C9 |1 I4 [ }
6 E8 Y8 M" Q9 m- l8 F+ m9 u }
3 K6 v6 _9 ^* o, [5 K M! H#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 ]& z9 o9 z4 V; p, _6 ]! w+ q& A: c if( bGamma )) @6 H4 V7 M \- _' W; r
{
5 ~. n/ t3 \3 R9 C+ N/ L m_nExp1 = 0;, a @/ v$ ~6 q- M; C) `4 z
}2 ]3 m/ C/ v E/ a3 v! s" v
5 h9 y: u1 P4 f) U+ Z% W; w ( (CUser*)this )->AddSetChangeJob( nJob );: D8 y' b1 i% H8 {+ P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& Y2 {1 v0 N7 |. Y/ F+ s4 ?
* D" A6 p o4 r/ v# S
$ W. L9 d' W0 ]7 \: m/ F% F# ?' E#if __VER >= 11 // __SYS_PLAYER_DATA
7 i9 _: e4 E9 ~+ U( K g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. e" E+ E, t. j
#else // __SYS_PLAYER_DATA! {. T7 r0 Q' A! O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); W' c N( J& X+ i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 \4 Z( n) L* s9 ?4 }% `
if( m_idGuild != 0 )$ X W! z+ `+ H9 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ @2 g) Z" D4 o* y
#endif // __SYS_PLAYER_DATA
4 d. x& E L9 B0 K8 r8 O SetHitPoint( GetMaxHitPoint() );$ ?# ^( G# }; Y/ G
SetManaPoint( GetMaxManaPoint() );
* j- s$ a2 I0 K# H9 \6 {. | SetFatiguePoint( GetMaxFatiguePoint() );/ b& j& U- o8 i: F5 S% N3 ]1 w
if( nJob >= 1 && nJob <= 4 ), D6 i" e$ Y! K1 Y4 G
{
. t! Z, }% i5 e; }) M m_nStr = m_nSta = m_nDex = m_nInt = 15;
& d) s5 x' P! o m_nRemainGP = 28;
0 [: v# C. j2 O: D w3 F- F& z }: y4 O' m4 `- {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( \+ F1 { r. n! V2 X1 S {
/ [) Y1 H& v, x) v' a( b& E m_nRemainGP = 118;
* V2 O$ `. j9 t9 u! d8 d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) G( x" {6 T" i. T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: \7 h T: A: ], }, q }
( Y3 ^: S* d5 p. c" ~) a, f+ J- x if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% ~% U! ]( r5 [8 m& C8 G t w {
, M. y8 o4 X: Q9 X/ H CItemElem itemelem;6 Q# o5 F" M2 H
itemelem.m_nItemNum = 1;
?& S8 F, C. ~ itemelem.m_bCharged = TRUE;
, y6 w B9 Q8 Z BYTE nID;! n* m% s# l5 C# H9 D6 x
7 [7 S' B8 q7 K0 t1 A% y- e7 ]; x8 ~( u2 [ if( nJob == JOB_MENTALIST_HERO )6 S0 y3 R1 s; I6 v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* C; V4 d9 |1 C* b7 t
if( nJob == JOB_FORCEMASTER_HERO )
2 Q! _- w" m; T, |* e9 `9 | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, f; N$ F$ F7 w9 R. e7 J( g
: j8 Z( K6 b- C7 E7 u4 L ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 n7 k7 Q/ P% O3 R1 v+ P
}* Z$ ?1 P& @2 F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! Z: u- P1 ?7 V7 t. ~9 y" P' z+ J- u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 B; s F% F F2 @- i, t
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- e* S1 h1 H& V7 S" ]6 f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 k0 O- h/ E1 ~/ ]- A# f0 C" i
( (CUser*)this )->AddTaskBar();*/
3 r. z% _ ]( ?* j, d& w& f0 |- K4 C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 h# F c. G( c: s9 R9 F
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, q# g3 A; y0 h ((CUser*)this)->CheckHonorStat();
, W4 K* u, [- ` ((CUser*)this)->AddHonorListAck();
6 j( V4 x8 H" n: d% J8 y g_UserMng.AddHonorTitleChange( this, m_nHonor);7 h2 ~ u7 U/ [, V
#endif // __HONORABLE_TITLE // ′Tà?5 g; e! C7 w' W6 ]
}
# f# e9 m3 [, r* \3 j7 ]+ n& G#endif // __WORLDSERVER' B1 g+ W! [. y. d$ R
}
' g7 j& O o$ i* k. e/ g" [) x2 f
8 _1 q' S- O( ^然后你进入functextcmd.cpp并添加以下
n2 @: u; b3 Z7 k4 |/ b8 [3 @& c$ a; C6 Y4 Y: x5 ~
代码:2 X7 v5 o- ?0 P$ I4 n. R6 l% V ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 H- q7 w) s) t6 a) M4 V% c
下面插入
3 c+ W7 N1 Q7 SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 c' Q: x( |% s; ]7 G* k6 \8 w5 f1 O- _. S; F% m7 Q" ^
然后你去# p3 b4 h9 ?7 D: K" e9 c
. O# d8 ^$ |9 p& o代码:4 l) ~1 M' g/ }
代码
: f* c! c! f5 Q: C3 R" QBOOL TextCmd_ClearPropose( CScanner & s )( ?( f1 M2 ^0 Y( u
{8 g- G5 Q! z7 y n
#ifdef __WORLDSERVER) Z' \; d$ a9 U; E
CUser* pUser = (CUser*)s.dwValue;, y# |0 E8 Q, D% }8 \" q: {1 K
g_dpDBClient.SendClearPropose();
& R% j, }8 ^7 i4 D8 @) v#endif // __WORLDSERVER
( G4 A5 v) x8 v! l; z return TRUE;
; ]: u% p! C' B4 M8 L}4 |* }* E: D0 n+ M/ u
下面插入
3 c: {8 t8 ]$ G) _+ _1 Z, cBOOL TextCmd_rebirth( CScanner& scanner )2 P8 `- z# N# Y. s
{7 B- ]# Q) B; M1 F3 @# q
#ifdef __WORLDSERVER8 {. [' o) S+ j& O& p
CUser *pUser;
- Z* j. Y' w% _* t5 K6 TpUser = (CUser*)scanner.dwValue;- x$ J9 k# l; l" M" l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ a( v; N7 z: e% r( R! V5 E/ Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& s! |; _ R1 p- E* i' Z
else" @+ j8 |7 T5 L- ^
pUser->AddText("你还未达到重生条件!");6 P- d! w7 `- J" h
#endif
% Y6 ?. D# {7 V0 E' o' Treturn TRUE;
1 b' w! ?* Z3 c6 h0 d1 k1 [1 w* g) _} ' g( D2 ~9 F# e/ Y$ N% c
4 S" z, ?: z2 s5 F w! T/ X7 j2 v" L% S3 c4 j
. j A% r! D6 R0 k+ d/ W3 q
/ Y& |) h: m' l) D5 P# Q |
|