|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 I7 {( s% m& c2 J3 S
. n; Y0 m' N' I2 E5 z6 W6 O; @, }& \Mover.h0 V( ]# L$ u3 ^* q8 R3 E
代码:
0 l! h% d a7 B+ |& X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 ~. r- u" r& }0 u" I3 o! Z1 x0 V
: `- m" Z3 R T3 F, y# v, `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
Q0 w+ U. E! k/ q) b8 R) P! @ [0 j5 ~) U0 c
然后你去mover.cpp添加$ [+ Y+ Y) e7 _2 G
: u$ I& M0 A z& y+ J3 J8 L, A
代码:
, u. P* W; N0 O4 b; G; {7 {void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' r/ e8 n, [* _0 n{, p0 n0 U. x9 ~4 I. e; \
#ifdef __WORLDSERVER
1 s7 Y, {' ~! h' H( j7 X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ ]. u) q' x( `6 n' D7 P8 S
MoverProp* pProp = GetProp();
! A! Q/ W' O, O7 I$ U) l$ ? if( pProp )
$ j9 }4 e& _1 R: T2 J {2 D( L$ t% n7 a& d) q- y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! |2 ]3 }: D$ P; K! J2 ?% L {/ |+ u) y! j* I7 @8 C, U% R2 g1 O% D+ O" J
AddChangeJob( nJob );
. Q2 z; y1 z; T! W4 y }else{' P/ ]+ a6 e! P: n; W
return;
U3 B6 ^3 f4 h& g" [+ Y; D }# W+ c9 o$ c- W$ R
int nPoint = 0;, K9 z6 M+ `. u7 L
if( m_nJob == JOB_MERCENARY )0 R: K2 D; z o. l/ z& _1 G
nPoint += 40;
8 j/ F9 n) |* K8 Z0 A. _# d5 t else if( m_nJob == JOB_ACROBAT )- B& G$ n- [' d/ m
nPoint += 50;
, O: o. ^, Y- p else if( m_nJob == JOB_ASSIST )
! P2 }' n& H) c8 ~- C: `) G nPoint += 60;
' o7 Y# E: V8 ?/ M) M" d1 \# Y y else if( m_nJob == JOB_MAGICIAN )
# y5 G* _$ v7 f, c+ @/ v( G1 X nPoint += 90;
2 V0 |+ x6 E1 F& q( @$ k- q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 F" q; H, E( ~) p& U+ L# U; `+ i
nPoint += 120;3 G% k4 [- p( m
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) o; Q8 Y s& l0 A) u7 d) b6 C
nPoint += 150;
, s/ U" O: m0 C% P, J1 T% P$ r else if( m_nJob == JOB_RINGMASTER )5 h+ j0 F7 P; j& n1 \8 n U v m
nPoint += 160;
L' s: }) @0 W, z, U3 p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). F2 O3 j" H' R! h
nPoint += 180;
) T$ h {6 K! F0 _ else if( m_nJob == JOB_ELEMENTOR )% A# W2 Z8 q" E- t& a! X4 s1 D
nPoint += 390;+ d8 Z; H8 r. {! D# I2 ]' V3 O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) P. q0 n# ~' n& X( k: B% v2 z7 {6 w: R
nPoint += 120;2 `8 u0 C- {) X! ~, k ?; I! ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ E! q V& X6 ^, d6 K, V; L
nPoint += 150;
+ q4 k, e1 Q$ b5 Y( x: `2 } else if( nJob == JOB_FLORIST_HERO ); F7 D8 K* g6 M8 m' |. c5 ]5 G
nPoint += 160;, h8 v }$ R* J( x
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 p: }" A) K! r
nPoint += 180;+ P+ V' Q2 L- }1 O
else if( nJob == JOB_ELEMENTORLORD_HERO )9 u4 { }8 q* O# I. o0 Q% v
nPoint += 390;8 G) n7 d8 e& D% T
: g3 d9 m9 m+ k
AddSkillPoint( nPoint );
6 f2 c$ n$ s) N/ s5 N; d: f m_nLevel = nLevel;& Y$ a% D7 U4 q# A4 ^; k% B' [
9 j, e! F$ B/ h SetJobLevel( nLevel, nJob );( W! D0 P6 t$ _2 I0 @
m_nDeathLevel = nLevel;
) |; D! H$ }" u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% e# ^) [! ^ l9 ^' E9 B if(IsMaster())6 b& E! d) J: f9 `4 C
{
8 V7 {3 x( I6 c$ N Q8 ]5 K int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ e8 U8 u" }4 H8 r4 ? h6 U if( nLevel > 59 && nLevel < 72 )$ A8 w1 x* x6 D$ O3 C0 m: m4 x" C( g
dwTmpSkLevel = 1;8 ?1 l0 g1 z9 t2 I
else if( nLevel > 71 && nLevel < 84 )' w) D6 U; x* Q! n
dwTmpSkLevel = 2;
& T0 O0 R# f# ^ else if( nLevel > 83 && nLevel < 96 )/ w+ E* V, d" H7 W3 C% Z, a' G& d
dwTmpSkLevel = 3;
: A" q1 a, j: x% J else if( nLevel > 95 && nLevel < 108 )- V1 V4 ?, I' W7 i& v
dwTmpSkLevel = 4;' e7 z! Z- e0 s/ M5 F
else if( nLevel > 107 && nLevel < 120 )- n* `: C: v0 D6 R
dwTmpSkLevel = 5;
3 L. M! t( E: `- {1 \1 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 @" X; Z3 f6 G
{
1 a2 }) { L- q' r) a! ` LPSKILL lpSkill = &(m_aJobSkill);
6 |# B. ]$ T2 L6 S3 I if( lpSkill && lpSkill->dwSkill != NULL_ID )+ b6 R; B. _( |
{
/ k$ X% l: q3 O% r [7 \% |: Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) C& k* u" L$ g- _7 b; B$ m" A if( pSkillProp == NULL )
% e: S/ f, q/ T& v- e& h continue;- E7 H p: l% h: f1 L( O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' o" C' Z( q4 _) K" f4 t w: R
continue;
$ S% H8 Q3 X+ j0 g9 v7 a lpSkill->dwLevel = dwTmpSkLevel;
g ~7 p0 Q0 p; k }( G9 F. h4 r5 E5 Z% N+ U
}9 S6 _ g" D% \( }! p: e
}
8 A( n) v4 [! |" P9 b else if(IsHero())
% [ c5 f, \9 Z+ l; y {4 S8 o3 I5 ?+ W: z0 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ `, h' r+ [. r* m/ d+ z* L { : G/ Y: }% ]# }+ M/ B
LPSKILL lpSkill = &(m_aJobSkill);
. u# M9 }& Y: O) x3 N if( lpSkill && lpSkill->dwSkill != NULL_ID ) y7 e; d8 ~7 j ~
{- d) W, o6 Q7 b# S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / ~. ?- f& M0 A' }: K
if( pSkillProp == NULL )
$ `# E* `8 ]( Y- q( @ continue;8 A. h/ D* a4 f6 }( A5 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ V' l8 G Z# p" W$ m" u
continue;8 b7 v2 |5 q) ~# d+ B7 n
lpSkill->dwLevel = 5;
; V4 ?7 e1 ^* {& ]0 n }
7 F4 H: Q e3 V+ e& ` }
0 a- Q5 X! [0 o( c# y }
. N4 A0 m$ Q" i+ k else if(IsLegendHero())
( M. a0 B( S2 X {
& m0 H. a! k; P for( int i = 0; i < MAX_SKILL_JOB; i++ )
; T. U4 s' _; v! [ {
- J; `: [* R1 U8 t LPSKILL lpSkill = &(m_aJobSkill);) n0 s# N v3 G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' X1 T( g' Q: P2 O. y6 h {
" |& b& ]0 y' O, R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( _2 L, Y* K5 |5 Z, A. [! h if( pSkillProp == NULL )
" z, o- q' }* ? continue;
0 G w5 {! Y$ R* ]% H' S+ f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" y5 g. D! ]' ^! K7 Z3 F8 e
continue;/ i$ _# J X9 ~
lpSkill->dwLevel = 5;
! z' b( H! J, V( @$ n% e! `8 h }: d8 r* c f! i I& ^; K2 P6 S2 Q8 I
}1 d& p9 [) n7 g. ]9 t% x* f4 b
}- l& S& D( F8 F$ C8 k D* T5 q- I5 z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 K [6 _) t% X4 ]: S, W( q6 ~: F" H if( bGamma )
* b( L3 }9 E' P {& H! z% o0 ^' z5 u4 d
m_nExp1 = 0;5 i% {' S# Z' T- n3 ^5 ?
}! m, {" m3 \" g
" b2 A; w- i T2 t' _% l( D3 N ( (CUser*)this )->AddSetChangeJob( nJob );
5 z5 c( ~2 V. N' G3 ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 P4 h2 [8 g* S# {5 X
& E# M3 u9 Z% A2 e" K
; ~0 w8 _' V# T% c. | I4 V5 c#if __VER >= 11 // __SYS_PLAYER_DATA
7 L1 Y" N* n. q7 v9 V/ A# O/ E g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( F$ c- D. k1 R9 ~8 k& J
#else // __SYS_PLAYER_DATA j- W- _. H4 ?: F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 l( X% K5 P3 Z9 V( E2 X g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# K" s6 k2 A& K$ K if( m_idGuild != 0 )
2 w4 p* g' @" H' n6 a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 i& Y' w/ m5 H4 {& z
#endif // __SYS_PLAYER_DATA7 j( ?3 r! d! j+ e# ^( e
SetHitPoint( GetMaxHitPoint() );8 M5 L4 f) q" K- ^3 d, _, U- T; b# o. E
SetManaPoint( GetMaxManaPoint() );
, x1 l% b- [6 l! w( c SetFatiguePoint( GetMaxFatiguePoint() );, h$ ?: v) X4 P5 z3 H
if( nJob >= 1 && nJob <= 4 ), [% ~9 N4 @& k6 ^
{
3 l& B; [2 T+ w& A2 Y0 b" m' D m_nStr = m_nSta = m_nDex = m_nInt = 15;
) `5 s7 G ]3 v& Q3 r m_nRemainGP = 28;! G ?; i( J! N4 ^2 {! q1 q
}
/ k8 L7 `' z& b7 D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* U$ w# W8 ~1 o3 k* K, O: q/ q7 v {
$ k) O% \1 {2 p |3 y$ |, P$ e8 | m_nRemainGP = 118;4 J' v, d4 Y( e! x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ a0 {; I; k8 l' O* [ I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
n* @4 _0 R. a* d& Z" { }; }0 d2 z: D7 k8 O* w( \" z$ ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 p5 T0 T1 {- m8 H$ H' [
{
( k5 [: Z# y: n0 H& Z5 M CItemElem itemelem;1 f8 ^8 h9 ~# |: N' [
itemelem.m_nItemNum = 1;( O) K6 w/ X3 ]
itemelem.m_bCharged = TRUE;
! @+ [% X3 z/ s5 Q5 [- v$ t BYTE nID;
/ Y; y5 x3 f4 w2 U6 u7 X: @1 l/ a9 j* L6 p
if( nJob == JOB_MENTALIST_HERO )
2 K: x. x! D0 v* e9 ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* _8 R5 @* b, A4 z( Z
if( nJob == JOB_FORCEMASTER_HERO )9 u) B9 l- H! A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! f5 a; o8 _6 K& x a f+ d
' b: x: d1 ~$ X. `8 U2 S6 N8 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- B, Y9 I+ `8 d+ G( D8 Y }, u7 s+ H' _( b' Y( C2 z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: c/ j+ \/ x' |' a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ Q" p. H3 Q- M4 r \1 K4 O4 K1 p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' ]2 U/ a* O; H0 T) S* p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 d1 h8 C; d4 n1 [5 N! i ( (CUser*)this )->AddTaskBar();*/
# Z* P6 V, R+ ~# M1 R, X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& b# x( n4 k% w4 Q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 n4 J& F( K* Z7 Z) ~, A+ B
((CUser*)this)->CheckHonorStat();
/ `) N$ J3 B) `, K* f! n1 R# a! ^" v ((CUser*)this)->AddHonorListAck();5 x8 [4 N: o2 I" U5 b0 h
g_UserMng.AddHonorTitleChange( this, m_nHonor);- K B' S/ V2 s2 u. l. @
#endif // __HONORABLE_TITLE // ′Tà?" O3 R( \% k9 `: ~5 M
}! `5 Q6 o# O" Y8 U
#endif // __WORLDSERVER* V2 P l1 a$ r
} ( N' `9 ]6 p3 f' l
, R% X% j# N H' t' \9 I. x
然后你进入functextcmd.cpp并添加以下) O. ?' x0 J H. `
4 N% y" _! K8 v1 Y' P t
代码:7 |) k! E$ X- ?) K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ y+ T6 g- r1 K+ _( a下面插入
* ^: F. s0 s' ? j. L AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) i2 u1 P" |5 N% I# a
O) |* W9 O r# z, d: X. y9 [+ y6 Z然后你去
7 E4 E0 t' A1 R# j
/ e* n( V% r9 a9 [! q代码:
$ W% ^- s6 n) k% A3 J/ u( l代码. X) R2 v" ]1 m, X) P: p
BOOL TextCmd_ClearPropose( CScanner & s )
0 ~- I' z5 i- a1 X{
/ y' A* r8 R4 \$ y1 a. y#ifdef __WORLDSERVER- b/ A" G" m* X. {- c
CUser* pUser = (CUser*)s.dwValue;
) a* Y9 H# Q' d0 o- p g_dpDBClient.SendClearPropose();% g( k/ b- g+ _. @: z* Q
#endif // __WORLDSERVER
/ L* Y: A7 {, I# J; a. y1 w return TRUE;& r) [- {& t* w$ k/ @. n
}
k- O- I7 F- @& h: a1 @下面插入
4 A# @. E$ O6 U# zBOOL TextCmd_rebirth( CScanner& scanner )$ Q* Y/ b6 [/ B% k, ^6 b# ]
{
]3 l1 i) v9 Y! {' p/ o+ H @#ifdef __WORLDSERVER( q6 V3 b3 Y2 {6 J& t0 ?9 z; q
CUser *pUser;
) M9 r* B" o2 r4 m9 ^5 K5 [pUser = (CUser*)scanner.dwValue;
& B- b# F9 U6 w' A; Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 T7 p( t' {4 B+ x6 @6 }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 ?% M' q3 [- {5 t0 C
else8 D7 g$ D m3 F+ y9 M: J& R
pUser->AddText("你还未达到重生条件!");
- X" M/ z5 e$ {/ f# c6 Z#endif
- n$ h7 y: g3 v. |& o' j( F) preturn TRUE;, x) M J* g0 A1 G7 g6 |* r3 |; U
}
. s% F' K& }% d, _+ B# M' v, J m+ g, s4 X6 q5 [0 C1 a& C
+ c7 a& ?6 ?% R/ N' E
9 A( d' Z) q# ?! M6 \0 j
; W; S1 E% k2 u |
|