|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 u# r1 s- b+ ]3 B" O
6 r3 T! P6 j4 g! v( Z' r; z7 DMover.h
% F( p; q# B2 R/ G, X4 d代码:
/ @8 K8 w, z \& E( w4 S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 b% [$ y$ |) U, y/ X; P+ k
$ d1 o. { P: C' |: R. s. V6 b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( [2 L7 S0 k8 K1 ?) w j4 v' g
9 X6 k* \/ y& K! r! m
然后你去mover.cpp添加
0 ]8 ^0 g4 ^0 H/ F2 d( A4 b' I9 E/ v( J: [) P
代码: D4 c9 W% x, F5 r' U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 T, O0 s# R/ O9 T3 m{9 c7 M) A" t; W( q( K' g& p
#ifdef __WORLDSERVER7 s/ [0 ?1 W! U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& }4 m1 ?5 I" B2 o5 b
MoverProp* pProp = GetProp();
0 y( @7 |# C! B/ A C if( pProp )
: j0 e2 [: d6 D {$ M0 {/ N& T6 K4 e9 J" `
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( W' p6 n/ [. M# s9 x, a
{" p0 l' {# P/ [+ e& b9 s" E
AddChangeJob( nJob );
9 L" \" A2 v/ z. k }else{0 M" k! `4 U0 X0 L) \/ d
return;
$ _2 v; A& [# [4 } }; V: C; f i+ d% o8 i+ Y3 Z# K
int nPoint = 0;5 j. Q0 L( x7 z
if( m_nJob == JOB_MERCENARY )/ `. V) ^) `5 `& C
nPoint += 40;
- F/ ?3 M- t. Y4 d else if( m_nJob == JOB_ACROBAT )( t" G2 x* `& h
nPoint += 50;
! o! f: o/ S3 W- v/ g# @ else if( m_nJob == JOB_ASSIST )
) V X: x; _8 V nPoint += 60;
6 ?& G5 l6 ]6 B8 P% i else if( m_nJob == JOB_MAGICIAN )
5 k0 \) u8 ?: v/ d- Q2 m5 k nPoint += 90;
- y% `9 V& K% R8 V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& `7 _- I7 F; K9 c6 d4 P7 J
nPoint += 120;
* C1 b1 m6 c: l/ s/ j( v- w7 J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 V1 U' {0 x# U: T z nPoint += 150;
! ^' |8 x& V n) \, X else if( m_nJob == JOB_RINGMASTER )
/ Z6 y; c G2 Q- g nPoint += 160;8 n7 \) M6 S. ~) q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! e6 d$ n( ~& w1 e. x
nPoint += 180;
! G& x# v) P* p8 a else if( m_nJob == JOB_ELEMENTOR )
3 H$ M. v R n4 X2 c nPoint += 390;7 t, A) e i2 U5 m) i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 [& ^; K) {! f1 _7 ?
nPoint += 120;
7 x3 X) n8 q0 M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) ^3 g( j$ F; G* B' s- v! ?
nPoint += 150;: m' t. }# @& K1 R! [6 ?$ G
else if( nJob == JOB_FLORIST_HERO )
4 {% x7 J/ Y4 g) } nPoint += 160;9 s, v, d/ T4 ^& ~" H l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* J+ R3 i9 z, I% Y' L5 S4 w1 B# l7 S
nPoint += 180;
+ D" c6 J1 s0 U' {' V, O% F7 r/ f else if( nJob == JOB_ELEMENTORLORD_HERO )
; {4 n& D4 k d# X nPoint += 390;, |5 r/ o) R1 t% U+ Q
9 ]; f1 U5 }7 r# _$ @ AddSkillPoint( nPoint );9 O, `3 _( ?+ h3 k ]
m_nLevel = nLevel;1 {' j2 E- i' J8 [* {
1 p( Y: A3 Q9 `; y: _0 f5 r SetJobLevel( nLevel, nJob );4 t5 O) M3 n! u2 I
m_nDeathLevel = nLevel;% B+ v$ ]: p$ k7 U6 `/ K4 G( V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 `- @) e, J: o' B# Y if(IsMaster())+ E- m1 e0 a2 F8 ? N% d9 Y9 x
{
L3 x6 H! x3 c' ~% G, e5 [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 k0 ]+ T" L3 f$ s+ u, F3 l if( nLevel > 59 && nLevel < 72 )
, L" \ n: t: E1 \4 Z- A' v dwTmpSkLevel = 1;9 g! o7 q4 Y' u, b% ~
else if( nLevel > 71 && nLevel < 84 )
, i% ~4 W! B' b' d# U dwTmpSkLevel = 2;
( F/ i" c+ a8 z else if( nLevel > 83 && nLevel < 96 )
/ y( _1 t+ v, y" e- t8 J dwTmpSkLevel = 3;
5 u3 V: {9 F2 R$ T% E K else if( nLevel > 95 && nLevel < 108 )
0 ^$ F8 `% c6 J* h2 l5 g dwTmpSkLevel = 4;
) I* d% U/ b. u4 s" P) |3 a. @: a else if( nLevel > 107 && nLevel < 120 )* m4 Q6 D4 N& q, [$ @6 L
dwTmpSkLevel = 5;
) w8 E/ D9 X" Y) e$ C( n for( int i = 0; i < MAX_SKILL_JOB; i++ ) " b4 \- B9 j# R' X: ^+ |2 P* _1 l
{ ! o' R5 ^% L3 A* |1 O2 z
LPSKILL lpSkill = &(m_aJobSkill);) D3 W, M1 ^1 l, o u* m
if( lpSkill && lpSkill->dwSkill != NULL_ID )' d; e2 {9 l& i8 z7 O& \- W
{+ @! x0 O) F+ D7 \# k2 P9 y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + [' E6 A, B" G! |, v& s
if( pSkillProp == NULL )
3 }& _& V n7 C continue;3 N0 s" W. l z+ q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ U* y- [: L8 ?# U7 I: X3 m7 G$ j+ w
continue;
: L2 w0 a7 a+ P lpSkill->dwLevel = dwTmpSkLevel;6 O* M F: Z6 I$ E5 f7 `3 P5 Y
}5 l5 I; M, m5 O4 Q+ U% {' V
}
' \5 x* O N' L5 I) {" u }
) o' E( g0 h6 Q$ Y' ?, t! S; h. l else if(IsHero())% M ?- R/ S8 R' ~. [4 X
{6 j+ P6 N* }! y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % o% U" ], a4 Y
{ 9 A2 _2 r. a- c
LPSKILL lpSkill = &(m_aJobSkill);
0 a2 \' J2 ^ i- g if( lpSkill && lpSkill->dwSkill != NULL_ID )( Z T8 _1 U: r& F# t# W
{
- U* [+ `: n' h' Z, C$ a2 ^ L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, \6 w- o% w* q: d* x* r if( pSkillProp == NULL )
4 h, i x4 G+ H0 i5 c! C2 C- [ continue;
2 d/ H! r4 B: ~3 z: |9 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ }# c9 u9 |% ^ continue;4 p: {$ \1 y e: b5 h" I" y
lpSkill->dwLevel = 5;
3 m# E1 q# o# A( {, v. s }
5 `3 E) O5 m- _9 h8 U' O }: u* Z0 Z+ b. l
}$ O3 q% W3 Z1 Z$ U2 o! [. J* Y
else if(IsLegendHero())
6 Q3 M' a# G: c+ @% Z# ]% \2 k {
5 G# K7 ^; K; y- c4 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
: M1 b) u6 R, J6 G { 3 F2 P$ p% ~* x3 e* C! U
LPSKILL lpSkill = &(m_aJobSkill);" E. ^( j! k3 H! n% P
if( lpSkill && lpSkill->dwSkill != NULL_ID )( P! l; t. E8 P# e
{: ~1 r) ?0 B6 Z7 }& |# r& m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ c p. Z) @; O x
if( pSkillProp == NULL )
% v6 o& ~; K6 @8 w" k. G6 R6 M- g continue;
( C1 Q( E2 |: a7 r- O' [3 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 N: B* x% ^: b6 P
continue;
6 ?7 E& E4 X3 B& n, M lpSkill->dwLevel = 5;6 T9 q% f4 L4 j) q
}
9 m. B1 q! N$ g) N }/ `& ?1 t& S; x! Y
}. C4 M6 m. F2 Q- G0 J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, H6 }& {% L6 w
if( bGamma )
+ P- m! [: A4 j. t% v; S$ S: ? {3 `1 A- w( E" D
m_nExp1 = 0;0 z' P j) W2 l
}
8 B8 Y1 i( z. |0 F( c
3 n, W" J' u! E0 ?; }/ p0 N ( (CUser*)this )->AddSetChangeJob( nJob );
, V2 o+ y2 P9 |1 W% ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); k/ j8 |! C9 V3 G2 g
2 t( M0 q6 E' H b: m. r- J: l, @4 `+ K y5 J, h" Y/ i# y1 \' ~
#if __VER >= 11 // __SYS_PLAYER_DATA
( {! C9 S. F' a% i g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); ~. y9 J8 M& z& G. i
#else // __SYS_PLAYER_DATA. L2 B8 e) T0 d9 f2 Z. j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) }" |! K% q9 N7 Q$ W" F: R! N* l/ ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" w3 w/ F3 y0 T ^ if( m_idGuild != 0 )
* ^# F: B0 o0 W* d5 M g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( M. m8 g: a' K5 F
#endif // __SYS_PLAYER_DATA
7 K7 m: [/ W# c- {' M SetHitPoint( GetMaxHitPoint() );8 W2 s/ d+ P+ `9 s8 A- j" B
SetManaPoint( GetMaxManaPoint() );# ^, u# O) |4 Z2 u- T
SetFatiguePoint( GetMaxFatiguePoint() );
& _, X: c! q: Q4 ]: Y1 L if( nJob >= 1 && nJob <= 4 )# X1 l8 u8 y5 q; q; ^; {
{4 w( g0 y, ~3 |: |/ a, b" O, L% ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 D& }0 f, p G' h
m_nRemainGP = 28;; A( B( a" Z9 L4 T6 k' w
}% w. [1 }, Z z2 |$ N4 l r: v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 C2 F5 i$ }3 d {
4 m4 b1 I$ G( S/ S* l m_nRemainGP = 118;
% K7 G. P* X9 N7 m2 h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 n/ E3 n8 I( f; y0 W3 r. F
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ C/ Q1 d4 ^* B
}2 O4 T0 s) [: A3 l( P+ c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 m% t- \% t( r {, y# D# |/ d0 t3 y
CItemElem itemelem;
! W! e, N+ J1 M8 _2 e( J. ^1 T itemelem.m_nItemNum = 1;/ {4 B% s9 D; I0 a% k# p$ @
itemelem.m_bCharged = TRUE;% T; ?, ~: i1 e3 k
BYTE nID;; U" w3 M7 ]% \
/ E( C# m/ n7 x$ X5 o8 O- X: b if( nJob == JOB_MENTALIST_HERO )
4 b+ _# ~' H6 d7 P itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, I9 d }5 \1 p' |; @ if( nJob == JOB_FORCEMASTER_HERO )9 A' o$ N( ]/ ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 G. T: u& `6 g0 N
* {0 u# N7 m) X* ? ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( N: x v7 i+ w7 l( L% x3 { }
6 l) R2 H0 D! z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 D8 M# {/ p: Q3 U4 B. }9 g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 N" j8 K/ n# |# h. o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 k" x, M3 h/ U( Z3 g5 Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ x' a1 L/ X- N/ z9 P. x ( (CUser*)this )->AddTaskBar();*/" @7 E3 S! u2 w* n/ F
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 s$ y7 P6 f. `' B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% u ~/ M* s( j S+ r
((CUser*)this)->CheckHonorStat();; z5 y4 X* N( v. `) m" D
((CUser*)this)->AddHonorListAck();
. ?' b* q4 A0 f* w g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ G6 U1 U# S* q% w#endif // __HONORABLE_TITLE // ′Tà?
& [% f+ o7 ?# n. z }
8 w* I! n8 T C% F6 R2 J% y5 f#endif // __WORLDSERVER
) Z0 Q3 t8 ?' {) H6 H} + x" M% @. H+ p! j# I6 w1 f
! M& E8 |& I9 ]3 e
然后你进入functextcmd.cpp并添加以下
8 _; w( u/ D" K4 [6 ?! O) L4 B9 j8 v$ w2 _0 Q# O/ ~. @
代码:
. m9 `5 f2 N' w! ` A* V N( LON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 k. I3 ] D; M3 y下面插入. X) i! h3 @3 j3 ^0 R! H4 W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( V0 `8 j' K$ y2 ^: |3 ?' x
5 i$ g2 N' H: U" y: w3 J5 t- d$ \然后你去' c% a" ], Q- z. I5 |. ^4 o( u: v
- y$ g( s# V |! n
代码: e, }/ e8 {" T6 p) x) C
代码
! s8 U7 D( t2 w0 VBOOL TextCmd_ClearPropose( CScanner & s )
' c, R5 ]- G; ]9 R{
( [% c& {3 k7 V( U/ A, A#ifdef __WORLDSERVER; \. a& l7 \* I! O- ?5 ^
CUser* pUser = (CUser*)s.dwValue;" v- w+ Z" E- P9 H
g_dpDBClient.SendClearPropose();
& V: n/ D/ @- V& K1 F. D! q( a#endif // __WORLDSERVER
7 u* S2 p' w) E+ @6 ^) q return TRUE;
- y8 M0 w' L. @0 B}4 T# {: N, H7 y# [+ K5 x! c
下面插入
' c* P8 @: N+ v0 e5 U( `: e4 |BOOL TextCmd_rebirth( CScanner& scanner )
; b2 z) [$ g% G I* Y{( P' U' x+ P/ V
#ifdef __WORLDSERVER4 m4 Y$ U }8 d& _5 d1 g9 G. @
CUser *pUser;0 @, i( [3 ?, Z) h
pUser = (CUser*)scanner.dwValue;0 `& Y5 ^* r/ u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. [+ N4 G3 F* J; M# f% m$ N; lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 _7 r, b9 r$ R$ ^. w* @0 o
else8 d1 F' S( u( i" a1 l; u( M
pUser->AddText("你还未达到重生条件!");6 A3 D. T- t8 c. e% }
#endif
8 }4 l" O6 W v o& h b1 ureturn TRUE;: j% g' B: F0 o
} " e# @! Z1 }" {7 l2 l5 T0 M
4 x6 G; i) q2 A! o: b
8 t ^2 i3 I; _6 [/ g
& L, D5 }. }- S! ^" m+ o2 C$ {5 i7 L& j
|
|