|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: }9 @7 t$ G z. w6 g7 b2 P* `( [4 K8 p6 u9 k. i
Mover.h2 B: Y: d$ z2 \: Z4 _7 i: C9 k
代码:3 p- A' `: E$ z$ s. v' J# s- y/ y% U
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ h$ v! z2 M! Q0 \/ F! Y- n
- u' k# T8 X4 j' W; h5 g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : H$ P( i7 C# [% c4 w
4 S. t6 v3 l2 }然后你去mover.cpp添加6 d, d" V2 s4 @7 C8 a' a H- ]5 O8 e2 F
' \" y1 y* c1 W1 Z) j4 r7 K代码:! @: S3 f4 }! |& Q4 a9 t; k
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( |+ U6 y6 f( J# P
{
( i* F; O3 x i5 j#ifdef __WORLDSERVER
- X7 f. w$ J9 h" o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- J$ D0 d% n1 U
MoverProp* pProp = GetProp();
$ b, J7 P6 }* ]3 X; ]; ? if( pProp )
; N. |% V9 }, ^ {
0 O3 x6 i6 F' j8 \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ [0 X a8 o. J, p! o {
; X- M- B2 Y5 V* C AddChangeJob( nJob );
& b, F8 S* B( A2 Z; y7 E6 c: q }else{
* G; b9 B: M3 K return;* q" e/ M" d- @7 l7 ~
}
7 u7 g8 `% W* I- W* N int nPoint = 0;
, W% f4 | K/ U8 C# i, n if( m_nJob == JOB_MERCENARY )
0 d# e. e* T3 l1 o J nPoint += 40;
4 K) y- B& X3 K/ v, S: a else if( m_nJob == JOB_ACROBAT )
. f* a% Q2 s- G w8 U5 f nPoint += 50;, S; x5 s, e \( J4 J
else if( m_nJob == JOB_ASSIST )
f+ \' ?7 F- v3 M. ^ nPoint += 60;
/ i6 |& z4 n3 p/ N: m else if( m_nJob == JOB_MAGICIAN )
3 H) }. N6 m6 K2 {/ N' q5 j: l+ [ nPoint += 90;
4 q+ c. t7 K- S7 T+ [) f, A else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& l" z& r- U. k$ `2 P7 F
nPoint += 120;6 p) _2 u% m" B( y4 [2 Y# d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ {' I4 y# L* b' t% [
nPoint += 150;4 S7 g; K `- F0 D1 a; q( C
else if( m_nJob == JOB_RINGMASTER )5 J! Z) |% B! S6 @
nPoint += 160;) x! Q' t: w+ ~- U
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
N( f1 u2 X) V nPoint += 180;7 b: m: B% Y" [
else if( m_nJob == JOB_ELEMENTOR )
8 \: i7 e' D+ }' w0 p7 o0 s nPoint += 390;
! ^# q+ r6 P8 s8 h4 m else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* W* } b8 d1 f& ^1 ^- a" R* S" R* q nPoint += 120;8 G+ e! _& o& @! T) k6 a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 ?. l# i- Z' j" u% ^2 m
nPoint += 150;$ w' n0 x, f8 V# w J. E
else if( nJob == JOB_FLORIST_HERO )
- t+ B0 M$ [- x% f7 m& v nPoint += 160;
7 m, V* a: x* X& S; q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 m1 P) f( T- @$ o% m9 _
nPoint += 180;+ F' G) d- G. M8 H( I
else if( nJob == JOB_ELEMENTORLORD_HERO )3 v4 a2 r* B; J6 a
nPoint += 390;* f& p, K& M, V2 p& O
' Q9 | c# s4 r9 l7 g
AddSkillPoint( nPoint );6 @: L" {8 J6 W8 W
m_nLevel = nLevel;3 ~( f7 I+ ? w' t7 Z
X" y8 i% W% O1 R3 Y; e$ Y9 l
SetJobLevel( nLevel, nJob );
! \5 q0 z' O% R* l m_nDeathLevel = nLevel;
0 _' O; m& i! `4 W5 [8 d: t: w+ W5 e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- H0 V. Z7 T9 H- s7 S if(IsMaster())
$ a6 W8 Y- z. m2 h- D- X {2 G3 l+ S w0 A& v9 Y" P6 T! k9 ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# _. F n2 g$ j4 i
if( nLevel > 59 && nLevel < 72 )
( o+ _8 q* _; z7 M2 R dwTmpSkLevel = 1;; q3 `; {/ ?+ k5 f' J+ ?
else if( nLevel > 71 && nLevel < 84 )6 c, _2 u+ S6 n: _& [; Z# `
dwTmpSkLevel = 2;+ J* M( r4 ^2 C6 k% v
else if( nLevel > 83 && nLevel < 96 )0 f! ^; \/ x( {3 H) P9 Q( V5 p
dwTmpSkLevel = 3;) F8 ?. |6 ~/ K3 h5 x S0 `
else if( nLevel > 95 && nLevel < 108 )
$ ?) m) f3 }2 G+ O* c% P0 }* { dwTmpSkLevel = 4;
0 G2 u. [7 L7 D& H% @/ j H+ H else if( nLevel > 107 && nLevel < 120 )
" s- C+ y- A0 S" `% J4 J8 F% F) e0 y dwTmpSkLevel = 5;! ]: c, r, d$ d# u) H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , T0 F: Y0 Z: E
{
0 x* g5 i% X5 g3 e LPSKILL lpSkill = &(m_aJobSkill);5 q; R. J; s/ O& K5 l% q, U
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 F B" Z. l" ?; `8 @7 h2 s
{& k8 P9 Q1 A- V: d4 N; V; s# `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; [5 h- `3 c% B! z if( pSkillProp == NULL )
, L) F' P l$ o4 D/ a% Z7 q continue;3 Y: \0 w8 D2 S2 d. T5 E( I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 V% a! P1 N; O0 f9 h/ e) b- \. |+ F continue;, P% }. M! s, b7 c
lpSkill->dwLevel = dwTmpSkLevel;
& E& [6 m# Z! p. y, F% F7 X" D }
4 Z6 I% O7 F4 ~- \2 m& j }
8 R S% H" l; ~1 [/ e, }2 H X8 c }
; c8 A. h8 \/ K" ?8 V else if(IsHero())& C; t, s& O: x1 ]- u9 s8 A4 T
{
/ o2 L1 [- z4 F1 `8 [+ ~$ }# p for( int i = 0; i < MAX_SKILL_JOB; i++ )
. q! ^1 \1 c+ H/ M7 Q: c$ B, q% R {
) u# ^6 e3 {1 c1 b* c$ S, s1 Z/ v LPSKILL lpSkill = &(m_aJobSkill);1 F, ?" Z4 P' f% X% A( Y7 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: p- d; [" }3 h$ U1 Q+ |; a {
3 M1 H& I5 s& _3 X/ _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , ?2 k {4 h$ Y+ @8 w+ x- l3 j
if( pSkillProp == NULL )+ K2 l. B9 y: u1 n ?* b% W
continue;) o5 y( d) J& A8 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). g( L4 c* H* R- U+ `6 Z
continue;' r# ]7 S9 I9 z* [4 o. g
lpSkill->dwLevel = 5;5 }8 Z# @. {. E& F. {* P+ i/ m3 \
}
2 E! j4 Z& |, C9 u: e7 k( O n) z }
& E! {' B' j+ H' F$ G }
, k8 L% F* b4 m1 @5 C, R) j$ W else if(IsLegendHero())- o( V6 r& i& \2 A# {) P
{+ |' \& `9 {' n T* I* S x. b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - j& h( p( i' p4 @
{ 1 \' J+ ]+ E6 M) S$ F
LPSKILL lpSkill = &(m_aJobSkill);/ \( Q3 Y$ a$ S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% N. g% _: a8 r* | v; e" z {; ?: j# U/ C3 s( \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' e' l7 R* E/ F5 j0 \4 V; R6 q if( pSkillProp == NULL )
: K; L( n$ C/ \ T8 h, A continue;
8 z1 h$ W9 s( R, y& F: T- \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 q1 y2 `2 E6 w5 W1 s% r continue;1 M" C7 W0 Z0 N1 e) M, K
lpSkill->dwLevel = 5;2 o/ y% K7 K% u- G* K" H6 w( t
}
, R. [$ H, h. z }
3 I/ {4 S' c& S4 \9 J' J }
9 K- H! m- C! e#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& r4 }. p- [' U
if( bGamma )
3 t( o. I- B3 }' l6 z% d {
4 t! X) K A7 W. k, D: b8 `6 Q m_nExp1 = 0;
. q7 a. Y8 }7 ?/ X }# q4 A0 j5 [( R) V/ A# f
; \& J% Z# g9 }/ n- N ( (CUser*)this )->AddSetChangeJob( nJob );
+ ~9 Y& G6 [1 Z; K) q% U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. L0 ?) h9 @4 e7 r z; ~8 K6 v) n0 l3 K( n T$ T: G) L
$ k2 X) Y0 ? \0 t' G2 b$ _#if __VER >= 11 // __SYS_PLAYER_DATA9 h. K( F& h0 j# Q" Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- m, m1 c$ D1 z. p#else // __SYS_PLAYER_DATA
% x% `5 l+ }/ B; m2 Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# A* ^$ w7 P; x( C+ U. Y+ m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 U( B( X9 ?! @* X5 d
if( m_idGuild != 0 )
! I% l/ w8 _( t8 W: _6 Z5 J$ i' D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); @+ S" [( c( a' R( c9 F
#endif // __SYS_PLAYER_DATA
, G9 W! G, X" E0 {5 B. s SetHitPoint( GetMaxHitPoint() );
2 E1 H# i' j Z( l/ B' K7 x SetManaPoint( GetMaxManaPoint() );4 W- r9 d5 U( M6 N$ h
SetFatiguePoint( GetMaxFatiguePoint() );
0 [" `/ l' V; {4 {( X [* h5 ] if( nJob >= 1 && nJob <= 4 )
( _9 Z% X4 k2 _+ J {
9 }5 I: v3 B9 c! m m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 x4 h9 }9 O+ i& E% E m_nRemainGP = 28;' ]. I/ N+ D, H- i9 \6 l
}' Y( ]2 Q% J- v7 q F; Z" o Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 s$ N w) J( L: k {* u- h( J1 b1 q$ `9 h7 i+ G6 p
m_nRemainGP = 118; \/ g/ S/ m) N8 ^, Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: L% y7 p9 Q' C; @. V" G m_nStr = m_nSta = m_nDex = m_nInt = 15;
& L1 ]- {/ H" U% g# j! r }9 ]7 o, p1 t* {, W G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 i3 r- \$ S: {/ Q. @: M {
. n: X F* p' _- ^* \& H( _; b CItemElem itemelem;
3 o0 R% _+ d+ r6 R$ I. K. e itemelem.m_nItemNum = 1;
4 \9 T; o! r* \1 r9 Y( ^ itemelem.m_bCharged = TRUE;
; h# b7 Y. [/ ]% ~" E BYTE nID;1 N4 Y' J, K0 L) E* K' s0 X
' V# A; J4 [ v if( nJob == JOB_MENTALIST_HERO )
- [3 x0 C' d$ b# m" o0 Z @' N itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 u, L* m2 _" m# P if( nJob == JOB_FORCEMASTER_HERO )# U% H7 Z3 H. G1 G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 y k% k" m; J) R2 @) o4 }- W D6 z# ^/ X" ]+ @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 n; ^" Z7 H. X+ c }
8 h9 N3 V$ B% E g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& s7 B( C" P% @; j; ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" I( S: z: p: E! f& M: @, } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 N& V& K1 w7 D! | y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. [2 w3 {, P4 Z- D
( (CUser*)this )->AddTaskBar();*/
/ g. n: X4 J7 S ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) p# t+ i1 i6 v/ A* |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" ] |: A& [( N( o6 a
((CUser*)this)->CheckHonorStat();4 O3 w0 t) L$ \
((CUser*)this)->AddHonorListAck();
# H; d& b, {: F7 G+ ^ g_UserMng.AddHonorTitleChange( this, m_nHonor);- C, ~ j; x' Y& T- X9 J
#endif // __HONORABLE_TITLE // ′Tà?: g ` o+ q/ O9 S( U* _ p E
}
5 m; S' f; f+ W4 L4 W7 j8 D; g#endif // __WORLDSERVER3 H) X! ~3 ^0 L( z: N. `( Q% |0 |
} o7 A1 C! j1 k) M2 a
& Q" \, t# A4 e. h, }4 K4 i9 x然后你进入functextcmd.cpp并添加以下
" x. ] ]5 a3 x. K2 G m$ O* m3 J* ?- s2 d$ m4 J' I" Y/ N( h
代码:' O0 c3 F: L2 a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( q4 V( y; B9 m! @* E1 T0 U7 x9 u
下面插入
5 o4 A$ A2 Q9 m. ]5 U3 a# ZON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 w. A6 b0 j! W" u( ?* M3 ~. ]% ]) F
然后你去
H9 ~& Q% u+ {& v1 m, a4 f7 i" [% {
代码:
6 ^' M9 ?) z* N5 q5 C1 {代码+ R, d1 e4 e3 r# b8 B; l/ j+ C" Z. R& O' `
BOOL TextCmd_ClearPropose( CScanner & s )1 n1 s3 I: F9 ^. C
{ A3 X$ o" K, b m6 ~
#ifdef __WORLDSERVER0 K2 V; q q! p) I- r7 U8 c. l
CUser* pUser = (CUser*)s.dwValue;9 \/ l5 a9 u. p7 J
g_dpDBClient.SendClearPropose();$ B+ u- t/ W& K4 r2 K1 `
#endif // __WORLDSERVER4 z) {: U% \1 s% _ q4 i
return TRUE;
/ y4 _ {6 u k}6 }0 E( `0 `5 U, `% u
下面插入
8 ^/ Y% t5 H4 S8 mBOOL TextCmd_rebirth( CScanner& scanner )
* ?, X' Y( k6 A4 s% l{" {: D6 |5 O% q6 F9 h# x
#ifdef __WORLDSERVER$ I# ?* n0 e' _2 ], i
CUser *pUser;
" ~* D, b8 L9 {) ]) y5 d, gpUser = (CUser*)scanner.dwValue;
0 K% j0 M! }6 E0 Mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 Q% S! X Q6 F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 Z- N' p, O% i! ]8 w+ s# P
else3 R) [4 [* N8 M% t8 U9 U
pUser->AddText("你还未达到重生条件!");
& G# _- [* X2 o6 y3 f' E- l#endif
9 F; c2 W' U4 B$ jreturn TRUE;
9 I+ E7 [2 Y3 y8 @) t} * ]8 A [- ^; X
2 x6 A7 S9 c0 a) {3 b# l
' P+ v8 e6 H0 R7 q+ s0 e g* @5 B, T" `% A7 K/ {8 G
4 p( s7 W/ ~# }/ q) k |
|