|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 _* t' t# f; Z5 c X
5 e) t5 T+ S. d' X$ n3 p# ^* IMover.h8 p- O' k! @' s9 [+ ?
代码:
8 I# M, W* w1 L$ p( e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% G) ^" k# G/ Q! J3 u+ f9 k( L+ E2 F' K( R: ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! _5 [0 r4 h1 a( Z
7 D. o" |+ j8 b1 ^! I然后你去mover.cpp添加 s- Q1 A9 m2 h8 k+ h
& Z9 R5 J1 F5 o! L4 A
代码:4 `4 X$ H. Y2 W S. K
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# W! b# G# K" t$ A1 a
{
( C3 T0 l( J* z% I- n: r#ifdef __WORLDSERVER0 k8 x' ] Y1 s1 V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 b) a5 S8 e# m2 z5 w L1 ~ MoverProp* pProp = GetProp();* y+ {& O+ l5 {' Z# T0 O: T! k& l
if( pProp )
& _5 K. j; m' O) F$ v {
; b% K. Q9 s1 P j if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) o. Q" v% B4 }% s( X- M4 ` {
/ h3 m$ b/ Y6 X6 @( K( k5 e AddChangeJob( nJob );
' v( k% y$ I/ l: o O: `. F4 t3 j }else{
9 L3 B& \7 }# S# [ return;8 N4 r% J; [- t/ ?( M
}
6 G# L* ^! J3 K int nPoint = 0;
. }9 _) i) n( ^2 a7 E3 G if( m_nJob == JOB_MERCENARY )
5 \9 R: N) C" m. ^ nPoint += 40;
) e9 R1 E3 ?! W9 a8 Y0 d; J else if( m_nJob == JOB_ACROBAT )% ]* }' ?$ V! L$ {. v$ @$ S o; L
nPoint += 50;
6 n& P. t4 k6 f0 f! X% G else if( m_nJob == JOB_ASSIST )! o( d( e4 Y: a0 E% J
nPoint += 60;5 q0 t4 d& |" I% f6 E
else if( m_nJob == JOB_MAGICIAN )' O+ Z0 c$ K4 n0 z( \0 h9 ~* Y0 `
nPoint += 90;. \' v9 Y3 \5 l% E
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 s1 h% v0 {0 x5 W0 d
nPoint += 120;
! M9 M4 W& l0 a' J: \6 K else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- j" Y- w) h9 X2 F( \& ~, I
nPoint += 150;
1 ~3 R4 `+ v7 i$ q else if( m_nJob == JOB_RINGMASTER )
5 H* F( {0 m' i* H w0 r/ [ nPoint += 160;; ?- k. c; r8 j+ y3 K' S7 u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% ~9 ~3 U+ G$ I5 ~1 Y, a8 d' `$ U
nPoint += 180;
9 ?% ~' J1 W3 ?. s- x4 x1 _( ?. r$ M else if( m_nJob == JOB_ELEMENTOR )' y5 |$ T v5 a. W
nPoint += 390;! p) X7 o* |$ w3 R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 R: m2 k% k6 a. U3 [% i# {: u nPoint += 120;
# L( ^) q5 E; y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 e. y, B$ j. u, i5 I! t
nPoint += 150;4 y% V$ v5 U! ]$ \/ ~
else if( nJob == JOB_FLORIST_HERO )
( ^# A/ w% S* _5 v nPoint += 160;
* V$ x% k7 z/ C! h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: F6 G/ S( e1 s9 P! o nPoint += 180;
& c8 G. S" \; U+ V3 K; H) d else if( nJob == JOB_ELEMENTORLORD_HERO )
6 s3 R& \* K; ]" G | N nPoint += 390;
H0 I/ j$ x2 }- G, ~" P8 @; z2 g8 a4 ]4 S! T- b
AddSkillPoint( nPoint );( |4 T- K2 t4 g( L1 n
m_nLevel = nLevel;& H; \8 Y, U' r) l/ n
+ D/ J( }* x; {4 W& t
SetJobLevel( nLevel, nJob );
; L5 o& I4 U0 ~2 W7 K" _9 g m_nDeathLevel = nLevel;
% u/ \. ]6 c& D* u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) K. b/ S0 @% r: a g. F, c
if(IsMaster())7 C6 g" V- F8 L% w) e
{
3 ` E2 u) d1 u" k, L: } int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' G0 l1 v3 I: L# ^( Y$ l if( nLevel > 59 && nLevel < 72 )% b# x4 s' W0 c8 E1 g" i- U: c
dwTmpSkLevel = 1;
& x- q+ _- e3 k; ]# n else if( nLevel > 71 && nLevel < 84 )
& H1 v4 u) R" Q) F: B dwTmpSkLevel = 2;
9 j( h1 x3 d; Y0 E5 K* l1 ^ else if( nLevel > 83 && nLevel < 96 )! n, n/ T+ x6 r4 z' t
dwTmpSkLevel = 3;
5 H) A$ B. b4 z" y: V+ ~6 ^# i else if( nLevel > 95 && nLevel < 108 )
. x+ Y) Z/ E" o5 i dwTmpSkLevel = 4;
' c8 y* h. I3 a7 t" r else if( nLevel > 107 && nLevel < 120 )
& T: w' w/ ^" E3 d+ y- W" ~ dwTmpSkLevel = 5;( \# Q1 @+ _& U9 }% K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! e* \6 u" i$ ?5 t8 {
{
, y, U7 V& |! A3 y LPSKILL lpSkill = &(m_aJobSkill);# R& c E5 O+ k" g+ [4 w7 I, P: F* e! @
if( lpSkill && lpSkill->dwSkill != NULL_ID ). A, {' t: K' Y% U# v, N0 o
{" g8 G# N- @5 H: r" @7 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. ]' D+ \7 R, b, H. H+ l! l: I if( pSkillProp == NULL ) [7 Z3 n+ M; b& p, h; C$ M
continue;6 @) y% F+ F3 j+ ]5 l) b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 z2 z3 `4 d4 b O
continue;/ b3 M. g% B' N% G$ t1 d$ r
lpSkill->dwLevel = dwTmpSkLevel;
: p$ d) [* ^# ?' k }# d- Z8 }( N* j6 i
}3 ]) ~9 u- U5 `% c. T7 q$ X. ~, s
}9 F+ N. E7 d- r* o
else if(IsHero())6 @. c1 t; q4 O
{
2 O% _3 ~& w& Q& K p for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 K8 }2 [$ R3 k$ H {
" o. _$ ?0 c- K/ v LPSKILL lpSkill = &(m_aJobSkill);
2 q( a6 C3 N6 I) O if( lpSkill && lpSkill->dwSkill != NULL_ID )
( ~" M# r9 r0 S' Y z4 B# z {
( i! k( z1 r2 ~$ c3 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: R2 a" V7 m( P8 { ^, C/ z if( pSkillProp == NULL )( n% N; {4 w# k/ L# m9 F
continue;
+ Y2 W( e3 Z; Y a2 m" o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) e2 S- n6 k1 f! t* g
continue;1 k" ^+ D2 N" z# l
lpSkill->dwLevel = 5;& \, T! K; z6 [# Z
}
3 p2 ~9 J4 Q9 l+ U9 r. o }
6 K2 X7 u% C2 k2 A }
f& R! l* b2 C7 y6 O% }) z else if(IsLegendHero())
* B8 p' `" P+ A% X; C {
, V- \5 `. z( w for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 s( N" ]7 S3 {, m4 ?% Z$ |3 `# e# s { 4 {! s, q2 L3 Y! s: ^2 V/ x6 l
LPSKILL lpSkill = &(m_aJobSkill);" A* N) F% }9 x$ o% W
if( lpSkill && lpSkill->dwSkill != NULL_ID )! P5 r9 w# S- V+ S# ?2 W
{2 [$ H7 s) i- s9 g( x. t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / w) M" B9 X0 h: H' m8 ~2 B; n9 a9 r
if( pSkillProp == NULL )" @/ A2 W9 Y+ I$ q/ S2 J
continue;: K7 K/ D! E2 D( F0 V7 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, f* D0 e7 R G& I continue;
+ {1 i, z8 T1 @ lpSkill->dwLevel = 5;+ ?5 A, U S; P+ a* i7 m
}
$ b' R) w3 s% @- b' t }
9 d% V+ `9 x) M }
0 j& O) A$ f. R& ?3 c& n# ^, p: d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 c! T( i- t% M if( bGamma )
" O# F/ L* |; `% o2 J' L {- t: X7 g6 N/ t/ z4 v- n
m_nExp1 = 0;. `7 U" u: \9 r" z! H# u
}/ L3 Z$ O F$ x: O0 l& z7 z
& L9 G/ z K/ m6 r' y7 z& b ( (CUser*)this )->AddSetChangeJob( nJob );2 T2 \# O: L6 Y2 l% R7 O& U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 L. b5 U4 y4 r5 q: f f& S
, E4 ?+ a. o0 o* Q; H2 H7 f
/ _+ F2 _) t/ u4 [ k
#if __VER >= 11 // __SYS_PLAYER_DATA. _$ X4 @" Z# z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ B/ g, e% P' @#else // __SYS_PLAYER_DATA
. H# j' G& V6 ?& b. R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ W" w) r; c* Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' B E8 g1 }$ s( g if( m_idGuild != 0 )
# h$ R) g- o a' Z; i8 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: q* b5 v" F, M9 d- L
#endif // __SYS_PLAYER_DATA
8 h+ P/ o( E' T SetHitPoint( GetMaxHitPoint() );
* F8 l$ ], I; r$ A e2 j- Q- U SetManaPoint( GetMaxManaPoint() );3 }1 e4 |0 z$ ^, |: D5 P
SetFatiguePoint( GetMaxFatiguePoint() );
0 [9 K% t9 [* V8 l+ e+ H7 T if( nJob >= 1 && nJob <= 4 )2 E4 K: s! V% T' H- k) z3 t4 C
{
1 `/ s* W N$ V, o m_nStr = m_nSta = m_nDex = m_nInt = 15;. w5 L2 j& ~9 K, W
m_nRemainGP = 28; z' y8 l* n. A* n3 u. p
}' v% \! D4 I+ g: w5 Z' z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 w( A2 m5 y) l( f
{
2 j& U7 x& e5 a e8 r1 O m_nRemainGP = 118;3 o. ]5 R! _# \0 M, p! W# m9 X! ?, A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 w8 s$ Q$ k1 x
m_nStr = m_nSta = m_nDex = m_nInt = 15;) a* ~& ]6 U/ c2 Z
}8 }* V; T# ^$ I4 |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; p! N7 E) a4 | j+ n {5 ?- z' c& j) \* K
CItemElem itemelem;
+ r' Q4 m. L& ^/ }* N$ M, }. j itemelem.m_nItemNum = 1;
- _/ E# C0 L5 ^* V3 R% r: c5 H itemelem.m_bCharged = TRUE;) R/ T2 P/ ?- E z8 ^
BYTE nID;% a! _2 u; I3 s
- f! @, b1 k: | if( nJob == JOB_MENTALIST_HERO )* X8 @8 c8 {* \4 ]2 |% @$ b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 v! y2 w* u/ G3 V5 }2 N# d" y
if( nJob == JOB_FORCEMASTER_HERO ) L2 A% t& l; b
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 I" S) O5 ~0 I* K. M
" C0 D" {6 Y1 n$ K3 e$ `1 V% U ( ( CUser*)this)->CreateItem( &itemelem, &nID );
: u, ^$ {% C1 R8 g1 B }4 C) D( j2 ~8 e$ [3 l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) l; x; f" b$ W, X5 A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 y- v8 C+ p3 B' b! U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 n: l0 |7 ]& S0 d( X4 ~
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- j: A* F8 y; t) X$ `. } ( (CUser*)this )->AddTaskBar();*/7 C9 s( o- F7 v# X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 w+ K# _0 e; a' ~+ Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 l. z9 Q9 D- M& I7 ?) ~ ((CUser*)this)->CheckHonorStat();
l# C. N1 p$ y0 z. ]8 ?' P2 q ((CUser*)this)->AddHonorListAck();
% w' Y/ z+ J5 @' k; \# Z# w. J- i B. S g_UserMng.AddHonorTitleChange( this, m_nHonor);' k; w* f+ T) N
#endif // __HONORABLE_TITLE // ′Tà?
- R5 [- m' h5 I0 G* H4 _7 S }
. V( Z0 x3 O4 u( Z: c4 l#endif // __WORLDSERVER
4 H4 w; ?4 e- c0 [1 \}
' o* I6 ]! V0 D8 U3 X
. d. G& B6 w. x' @然后你进入functextcmd.cpp并添加以下
9 A( i/ _+ @# i! y8 J
! p8 y# M& k. [% k6 s代码:* K6 l0 v4 w, g/ c* K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) b6 M: s" D2 ^9 ^, N3 k; c
下面插入- f# b7 N8 p+ J5 I4 p3 ]' Y3 ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + K, [: p% v8 e5 S
* {% S8 y/ D% X0 U0 q然后你去- X7 w5 Y; U y$ ?+ t
; B* j: b7 V% h* a2 Y. F' o代码:# Y, m5 I9 G3 a6 \4 u4 K
代码
8 Y' m, j" n: G* I# k6 X% tBOOL TextCmd_ClearPropose( CScanner & s )) I5 ?9 ^( {) C4 Q- f$ h
{
# d' `6 t) Y: W9 `#ifdef __WORLDSERVER
/ Y- c9 m8 ]% _- o* y CUser* pUser = (CUser*)s.dwValue;4 H% i7 B8 O2 N8 a8 J* \0 F) ]! ^
g_dpDBClient.SendClearPropose();
- g- q8 o# w: E0 P, Y#endif // __WORLDSERVER4 c3 ^) r# ^; Q1 a0 Y' e V) ]0 a
return TRUE;% _- g7 l5 h4 m8 V) |
}
- h5 e- x9 b% H下面插入
) n) o- m$ o% Q+ a4 r' q6 ZBOOL TextCmd_rebirth( CScanner& scanner )
# R: |7 L' b6 O' H' N+ x% f{ ~) u3 p# w% J: x- f5 ?
#ifdef __WORLDSERVER7 Y! R4 I6 G- t6 H
CUser *pUser;" G7 _- G# c+ Q- f6 Y* D
pUser = (CUser*)scanner.dwValue;, Y- x5 ^. W4 S* V; x# E- L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 ` c1 K# x2 IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 u" |# D2 }- }$ _else5 ~+ `0 L. x1 R7 s/ j
pUser->AddText("你还未达到重生条件!");
4 E# f3 d" H( b6 [/ Q#endif
- \5 }: o5 d: B7 {# e: _return TRUE;
" n9 E1 V7 ?. _/ y( w b2 T}
% ^- V* T+ r% ?' ^ B
3 Q+ m# L5 V/ X8 L& n. Y
) I' r2 Y- t- e% U% i- d4 ^: j
n O7 l" ]1 A! K/ |6 B7 z+ g
|
|