|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 E( r' U7 j* T7 P" i" C1 v% u! [' f
Mover.h5 V( E! P% r! N0 R }& M
代码:( a6 T6 D) ~6 }* }& P. o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. F: U# H9 Q7 }# z1 x o f) v& [, e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! \3 g( ^- S u6 r/ ^0 v0 r1 M7 u
; D$ P) M, E) q! X2 p
然后你去mover.cpp添加8 e1 F- ~0 }( X( y" Z1 p2 b
% a5 d; q; P) Z% e' `
代码:9 \( Z6 a' `8 [
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
D( f. ] {: m4 w3 p- S; ~{
4 t M. J, S4 z& q9 A( Z5 x#ifdef __WORLDSERVER1 d! i" R0 |& x- y0 J8 F2 e* i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% {: r( g" t: r8 Y# M8 O7 L
MoverProp* pProp = GetProp();
( W% X: a: H9 L# F1 F, M* n if( pProp ), _/ J) _8 K/ s5 }2 R0 D
{
C1 V& q7 F8 u0 N; f3 [ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. I% p/ x+ I8 K, U {
/ j( }' r g2 s% S8 B | AddChangeJob( nJob );# o$ W0 ]3 R/ _
}else{
9 |; x1 ~; S K, d1 Z% D) ?% F5 M return;2 l" {* y9 k6 B, N
}
6 v0 R+ B, B+ l8 c. d int nPoint = 0;
' w+ e% y/ n4 {& A2 E) V c if( m_nJob == JOB_MERCENARY )
3 I- V; X- P/ X. c3 _3 [1 d! C. X nPoint += 40;
' C9 U# y% V$ `% \ else if( m_nJob == JOB_ACROBAT )" ?9 ]" J) E0 l1 b ?: o
nPoint += 50;
' b$ y# V J! ?9 g$ A5 t0 [: f else if( m_nJob == JOB_ASSIST )
/ Y. \9 Q; x8 \/ Z# K/ d! \1 M nPoint += 60;
! p' R* U2 g/ U1 p4 J% Z! U else if( m_nJob == JOB_MAGICIAN )
b$ F" \6 T) r) _! |. ?* T9 j6 V4 s6 e nPoint += 90;
; n0 [; _: c7 d6 I. ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) f' u+ C; N1 Q/ D* ^( U
nPoint += 120;: U; D( o0 r0 Q+ H( ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& ~- K* { Z4 d/ q& Q/ a nPoint += 150;
* C7 A3 z0 _; H) I# M else if( m_nJob == JOB_RINGMASTER )/ e& P8 f5 o! e. p3 Y8 O
nPoint += 160;
9 @2 o4 z1 ~" p6 J1 M, R p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ i) c' E" u% W4 Y nPoint += 180;8 V5 y: G. ?+ V& F3 g
else if( m_nJob == JOB_ELEMENTOR )- @: G- K9 B* G" e; J
nPoint += 390;
$ Y3 E( M& M: |$ @6 r4 ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 z# x( Z' R: b; n* W, z0 `
nPoint += 120;* C. u D6 O" ]$ ?. D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 M& P3 L- s& |: n; u! E" ]
nPoint += 150;0 N. o7 V5 j- T
else if( nJob == JOB_FLORIST_HERO )
! h/ |4 N, ?! W9 _) t nPoint += 160;
5 \3 `! g# N6 H3 Q) }/ g# c" ^/ A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 l8 v3 v2 _0 S% P6 q; r& m$ ^+ s nPoint += 180;! f; P7 t% f' B0 K
else if( nJob == JOB_ELEMENTORLORD_HERO )3 ]1 m. w+ Z% W
nPoint += 390;. V4 A6 [ U( u2 ^; r2 A. s
: W) d& X, e9 |; l) l
AddSkillPoint( nPoint );
, F% k* V: k# M* \. { m_nLevel = nLevel;' n# i+ M W& O- Y5 Y
1 R3 v/ ^# @( j- w
SetJobLevel( nLevel, nJob );
$ \$ N. Y \- g$ \3 H1 B5 U: M+ f m_nDeathLevel = nLevel;/ w0 |; p( N0 l) d+ G- j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans u- l1 V7 Q e7 I3 n# y
if(IsMaster()). j1 e/ r8 s& B, p, v9 A: V6 x
{
+ \2 H) ]1 V! I, i: d8 f2 }8 y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 F8 z/ H: O( o" Y5 o7 V if( nLevel > 59 && nLevel < 72 )
Q( u6 P7 ]* L1 \ dwTmpSkLevel = 1;8 k+ c0 g m% o& f
else if( nLevel > 71 && nLevel < 84 )$ `- Q1 q7 A* g) F
dwTmpSkLevel = 2;8 d% t# }9 |$ T( [4 J9 J
else if( nLevel > 83 && nLevel < 96 )
6 x, x* J( [9 R# h- w dwTmpSkLevel = 3;/ m( D' Y; n2 T1 z1 G
else if( nLevel > 95 && nLevel < 108 )6 F' z' I2 f _, ] ]" z
dwTmpSkLevel = 4;
8 {" k* P$ ?$ E1 j# [) J! Z else if( nLevel > 107 && nLevel < 120 )6 n Y5 r: l* h( R5 `
dwTmpSkLevel = 5;2 f1 k& L6 c& E) H0 F7 |$ a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% y; ]* }3 `6 o { # a4 X7 O u4 S" L% z" @. q
LPSKILL lpSkill = &(m_aJobSkill);
4 S' b- S% s g* |% @; m8 z6 N P1 A if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ ] i. j7 e v( U2 F- e$ J {7 _( A4 A/ K3 K, F v8 L" [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 I# J/ Z. u( E; Y if( pSkillProp == NULL )
7 h W* {- z& o) W8 z continue;* v) ?; f# p* Q5 U9 O9 n6 P _5 {1 l3 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# Q( M0 n0 t! w4 B3 Y continue;
- [3 b, X3 d* B- C' B& } lpSkill->dwLevel = dwTmpSkLevel;
1 d Z% Q9 f) i3 |0 i }
) w. Q* Q1 t: S: C9 d% ]2 z+ Y }; E4 O* N Q* p7 w6 f* A/ p* f: J
}
& [! L# r' [4 v! N8 N else if(IsHero())& S0 }% {( h+ f& @, [$ i# S
{
$ O+ U* N$ t0 T/ L/ W for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 H& r) F& ~ m {
% N8 a! g* b, f LPSKILL lpSkill = &(m_aJobSkill);
* T$ F( A& y- e8 B2 @ q+ F. C if( lpSkill && lpSkill->dwSkill != NULL_ID )6 W4 D5 Y5 k, h9 M7 r
{
@- ~+ O6 X$ ?1 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. H# a0 M3 |' f |4 [; u1 c2 S if( pSkillProp == NULL )
& r1 R! M7 G# x continue;
% Q% W. L- p- o( H! x' G, w, Q+ F5 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ F, a' @$ o* n' w9 F6 p! Z continue;
% J2 q( X) ]/ j J. [$ c. F! ^ lpSkill->dwLevel = 5;0 m; I& v o% H' r- n9 O
}
m, a$ v: W; C2 }4 C+ R# N' \ }# U+ t% G6 K+ e9 @4 g# d9 e- n$ q
}
+ Q6 {- ]/ ]- ?8 j$ I else if(IsLegendHero())
s# ]' @9 }' x' {: y C7 R {
: X0 D5 S7 Z9 C, B% W9 S for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 ^- m7 ^: ?" i" m
{ : l+ z; Z8 F/ G3 n3 d% ^0 v3 b t
LPSKILL lpSkill = &(m_aJobSkill);
: Y8 _# W2 B6 | if( lpSkill && lpSkill->dwSkill != NULL_ID )4 E) c4 T {% G9 U! s
{
" l3 u4 w% Y, j8 \5 s; T3 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; m$ ?( R0 e6 i K
if( pSkillProp == NULL )4 v' h1 p ^" W/ C3 k% u
continue;9 N+ {5 t4 v1 J) o5 `& A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ l$ X* x% D0 G0 t6 n continue;, } y: O3 V8 Q: B. q
lpSkill->dwLevel = 5;+ O* F- V1 U! C6 j# P1 W" U' U
}2 R# Y- T. `8 i+ q( n/ g
}# P; g. ]3 D5 g8 _2 N1 L J E
}
1 L( E; k4 |2 {" R0 U h8 ~$ ?1 N/ U3 A#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* g( |- C/ F' o+ t if( bGamma )
( ~: }( ]7 e: y* d {4 J; X$ ~/ B/ @1 i
m_nExp1 = 0;: u5 S/ G0 T3 Z
}* W) G5 L+ G# A8 R
1 R( l9 ^' g L. N9 A- `% \3 k" K ( (CUser*)this )->AddSetChangeJob( nJob );% L7 y: X+ |: e* v( U5 G/ y8 m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 s2 H5 Q2 }$ Z9 N- J
* `9 N9 i6 j) \( @/ M. L' U
5 R' e# Z2 v T#if __VER >= 11 // __SYS_PLAYER_DATA
" X# ]( Q, c! Z" w: b: Z K$ A/ p g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% b0 X1 h4 L) U$ D- d( Q( J3 h#else // __SYS_PLAYER_DATA
N |9 n2 Y+ [$ ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 ^( p/ G# ?. n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ ^2 T$ ]0 G0 `/ r L5 x
if( m_idGuild != 0 )
3 s5 D2 Y. R! l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 r/ i' s% ?) @4 C' o#endif // __SYS_PLAYER_DATA' X7 R# Z9 Q3 l# x- L
SetHitPoint( GetMaxHitPoint() ); N3 v0 r5 V" t& y2 Q
SetManaPoint( GetMaxManaPoint() );4 I. U1 b8 r5 P! a+ l: D9 h1 j; R
SetFatiguePoint( GetMaxFatiguePoint() );; t1 x) H- N$ h4 m& Q
if( nJob >= 1 && nJob <= 4 )
( T; F2 B) Z2 E/ z {
7 j; y6 M1 O0 u! X! r m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 O5 o# y/ O/ u( ~$ l8 A m_nRemainGP = 28;+ h$ y6 S; L1 R/ p
}: B( u- \: {/ v9 G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 z) ^. K* R- c* f, H
{/ V: w/ u6 _, E9 H' ~2 {1 c1 H: x
m_nRemainGP = 118;
9 k4 R8 J. R; q) M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 J6 C4 O! D+ x5 U0 F3 l H- J m_nStr = m_nSta = m_nDex = m_nInt = 15;; d; L! Z% g2 k* n: v: V e7 l
}1 e" G1 w7 y) A" z5 g
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 G" T$ B/ ]$ P" E {
8 Z8 @; z( x+ w& y CItemElem itemelem;
7 t. N' q* F5 R* c; |/ J itemelem.m_nItemNum = 1;0 h- U% T, C* O, s b
itemelem.m_bCharged = TRUE;
5 o2 L- v, H* Z( v& i! _0 ^- n BYTE nID;
$ |. F5 j% i) i7 y* z
' a& D1 _% ]+ ~( V0 R7 q& G if( nJob == JOB_MENTALIST_HERO )
* K2 ~ b7 ~& I8 P itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 }/ y8 X8 a4 H6 C2 ?8 @; P) } if( nJob == JOB_FORCEMASTER_HERO )) m* Z# }7 r1 j. C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) B5 f+ }1 _' k& {* c
0 A" O+ U" ^; V ( ( CUser*)this)->CreateItem( &itemelem, &nID );# I9 o9 N. o( h+ q7 t1 b* {: x; G
}+ d: e' U/ w+ s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: V4 a g) W* T Z+ ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 S f+ S( d8 n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 K) H; M( ]+ ^" `5 y- A) \ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ m6 }4 t% [5 d) G+ f8 l
( (CUser*)this )->AddTaskBar();*/- C, m' u2 _* ]) m" {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: b+ |- L2 |5 d+ J. ]3 P) i$ x#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, `+ R( [( X2 x ((CUser*)this)->CheckHonorStat();
9 F+ G! t4 S, G0 b/ j' D0 ` ((CUser*)this)->AddHonorListAck();! m7 M1 S6 R2 i! k: {$ z) _
g_UserMng.AddHonorTitleChange( this, m_nHonor);; Q; Z$ B1 X/ Y
#endif // __HONORABLE_TITLE // ′Tà?9 s& P' \) H3 w8 Z6 |4 t
}# a. ]+ c5 | \8 V% x2 y% A
#endif // __WORLDSERVER' ~; z; q% j2 L+ w. }$ E3 C
} 3 k: o% N# D4 M" D$ v$ a
/ V6 ~1 g" y2 J! F% M6 q0 R9 P, {
然后你进入functextcmd.cpp并添加以下
' ~8 u! M; t2 b
. A7 o, I/ C( c& V8 y5 Z$ G8 z2 D/ N代码:
, U# M# v: E4 p; e7 e& I( Z: y) j. lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% {% _6 ~+ N B; e6 b6 q
下面插入8 V' M0 b" |$ g0 I8 h; v3 s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( R6 t1 ~* W! p2 C. @) `4 E3 q+ P. s
然后你去7 q' R6 Y S$ q2 u3 S
* O# F& H; w0 p; `1 m1 d
代码:
' S" a& |7 D1 L/ f- F& b% G代码
8 a0 R9 _+ k0 ]3 WBOOL TextCmd_ClearPropose( CScanner & s )
$ Y' p' i" _2 z7 o3 Q6 e{
+ e! G- ^% O+ l#ifdef __WORLDSERVER
; T( B) w f' A: D CUser* pUser = (CUser*)s.dwValue;' O4 T6 K" N9 w: S8 Q$ `2 q4 M
g_dpDBClient.SendClearPropose();% `' Q; v' N c o& b
#endif // __WORLDSERVER4 u# \8 v% y' t: \/ K
return TRUE;
) W+ M. Z9 {6 a f' ^$ O}4 q! X7 t, \# G$ S; M( F8 v" f
下面插入
7 R" L1 Q. G/ N3 h7 ^BOOL TextCmd_rebirth( CScanner& scanner )4 p0 P/ {1 E1 n- F& Z. k
{ s7 g0 d8 w8 S3 L$ L4 O1 @0 r' D9 c
#ifdef __WORLDSERVER
# ]5 u( A0 Q6 QCUser *pUser;3 b# E! R/ E. w+ K! D' c! D
pUser = (CUser*)scanner.dwValue;
! L0 t: O3 J9 n1 u: Wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); t4 X. p" N# y/ ?) U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% Q% m9 B. Z$ j/ e% w2 t U! velse
# `: H5 j) e- ?pUser->AddText("你还未达到重生条件!");
e3 y/ d# @* B% N5 Z8 V#endif
1 m9 x" U0 L, m; V5 m% d7 Areturn TRUE;
8 H3 [ A: M/ M" U9 |6 q}
1 j9 @2 L& b+ Y8 B, i9 ?# j4 O5 t5 l8 Y1 q" S3 h, }
5 T. C/ ], E6 L% c/ e
: k: M3 |/ r3 j+ \, l
$ ~, |1 w+ W/ W& e2 J; T2 b/ t |
|