|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) A8 r9 t J* ], q) h1 h
9 i/ v5 M/ Y& O, n- \3 qMover.h$ p j1 Q# d+ P6 w5 V, K
代码:; R Z6 B- k1 Z4 E1 I' }& T" U
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 w$ |# ` ^/ [
% c- T+ J& n2 D2 L+ h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ q- A9 J- p' `- r( w& J) N
6 E' y8 V1 ~/ q+ H3 a4 E; X然后你去mover.cpp添加9 f8 D+ |9 l3 K" r; W
$ y" W1 e0 m' |, N s- W2 p! Y代码:
. T: ~/ W7 b% @1 ^0 Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ l9 H# }' J+ t/ U{ X' H% Q1 V6 ~
#ifdef __WORLDSERVER# t2 _) U' U% S* P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ u' {& B& ]1 R6 ? MoverProp* pProp = GetProp();2 E% P% p) F* t6 z! X4 F
if( pProp )5 [& R& D' o+ O' i, o. g; @: ^1 Z" M
{
! n& k. [3 Z( U+ I2 r if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 M; u" P1 t) C Q
{
! D \$ Y2 ^. v; `( r0 M AddChangeJob( nJob );7 \8 q$ V" k, @+ }$ ~: K. O
}else{
0 P$ E& ^. D9 C6 \ return;
0 U% ?% }7 V" G7 u$ E' T& K% } }
, ] w) b7 m2 h1 f4 l* {! [) C int nPoint = 0; L& E8 ~2 |" O$ G' |( T
if( m_nJob == JOB_MERCENARY )( z2 E3 O4 p0 z. ^: S
nPoint += 40;; M, t! a* k# _( U1 k, [. E3 W
else if( m_nJob == JOB_ACROBAT )+ C. r3 |" ^+ B* j9 P3 n% q' @5 |+ ]$ x
nPoint += 50;/ n8 d0 @! g6 I3 U. h6 ?9 S# O) r
else if( m_nJob == JOB_ASSIST )9 D& E9 |; X/ k+ P \1 P1 B- L, t* q
nPoint += 60;
, D5 X/ P# X7 c9 V else if( m_nJob == JOB_MAGICIAN ): @8 I8 U, s) q ~" C4 ^ f
nPoint += 90;. c' v: w1 T% E( Z# }1 D# r
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ h% N8 B' i* k* e F+ E nPoint += 120;
( ~6 H% c- e& l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& f6 C0 Y/ g2 Q
nPoint += 150;5 v& u5 x: a: P1 U
else if( m_nJob == JOB_RINGMASTER )) }, X+ L2 F7 M3 J. U/ _" z8 L
nPoint += 160;
9 w+ M k* w7 Z! ]0 W else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' X/ Z8 p; w) `! I
nPoint += 180;' g$ \: P' p( R
else if( m_nJob == JOB_ELEMENTOR )! \: {, Q0 O" e+ W/ t" Y
nPoint += 390;
# j$ `/ D0 ]. b+ c# s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
s! s( ]7 ~3 r2 M _* H nPoint += 120;
: A: ^) W! e3 k8 ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 t8 k! N+ S7 v0 b6 t6 G2 w9 g nPoint += 150;& B0 @. l* T- j' x' r1 e' [
else if( nJob == JOB_FLORIST_HERO )% R! z- ^$ x! ?" {/ b/ A* \: C- Z( G
nPoint += 160;
" h5 q; m5 K, o; e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% E0 P/ [3 p+ b9 C) U" ?; p8 |
nPoint += 180;
. s+ i! M1 V) z6 _6 o9 T else if( nJob == JOB_ELEMENTORLORD_HERO )2 a# ]5 G7 x. z0 y
nPoint += 390;& ?1 b* U S0 G5 P7 m% O" H& A. Z+ U
# e- P; ^ S: p5 x6 j
AddSkillPoint( nPoint );
4 m! r. `; p) |2 f# Q m_nLevel = nLevel;
- K/ Z! }1 k( L1 F' t
. P3 j6 p4 }$ u9 c SetJobLevel( nLevel, nJob );
8 c9 V$ B4 e/ k4 ?2 M. n m_nDeathLevel = nLevel;( e S8 T/ r7 c7 |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- I; C: N1 P) w if(IsMaster())+ k: e: m7 ^) s! R
{
3 S2 Q- e/ @1 d8 q+ D5 K int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% W: o1 Z$ E- m9 F& O, C6 Z$ x |
if( nLevel > 59 && nLevel < 72 )
- u' S5 Z) a) c dwTmpSkLevel = 1;/ A0 q. N5 w9 ~7 ]$ c& n8 y
else if( nLevel > 71 && nLevel < 84 )4 G I" g' n q" J2 i8 Q1 q2 \
dwTmpSkLevel = 2;
- w. G+ W4 g4 E6 ? else if( nLevel > 83 && nLevel < 96 )7 x: ]& n, E1 J
dwTmpSkLevel = 3;
) M# ]# ]+ L6 ^* l/ R. U2 O' v else if( nLevel > 95 && nLevel < 108 )
( J6 K& \3 D4 o2 o% m. X dwTmpSkLevel = 4;
: w+ ?7 L) Q4 s$ x3 {2 D- t else if( nLevel > 107 && nLevel < 120 ): h, M- R( A1 m- p; g7 k5 U
dwTmpSkLevel = 5; y$ k( W! [8 N+ n, A* {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / W9 X% z, b* H/ K* |$ A/ \
{ , s: {3 |" _4 `& r+ ?; ? @
LPSKILL lpSkill = &(m_aJobSkill);5 R; T( |: Y# g5 M' p$ P6 E
if( lpSkill && lpSkill->dwSkill != NULL_ID ), G( h. G) \* S1 i1 E
{8 z7 |9 Y4 X+ V& M9 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 {$ ]+ O% [9 y% `) L' K% {1 x: X6 Y if( pSkillProp == NULL )9 N+ b) f0 C3 r- j0 }" `( h
continue;
; i; Y3 p6 D; f& q if( pSkillProp->dwItemKind1 != JTYPE_MASTER); I' H7 o' i/ ]3 A/ r
continue;. T. A: C1 [: L9 b! d; b" K+ W4 h
lpSkill->dwLevel = dwTmpSkLevel;1 b* O ?. s. _- P% E7 z" b( C0 I! {
}
* d! q3 L/ k/ F! w }
: u* s7 G* q3 t- ]* o3 L }
& {+ r2 d+ }0 X) Z else if(IsHero())+ m4 g0 t* }+ R, }3 Q. J
{" u$ h- E! d1 W% B5 ~5 i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# ]" X: ]3 F$ k1 J {
% L+ ]: [" H; ? LPSKILL lpSkill = &(m_aJobSkill);
" M5 Q' _& C6 m if( lpSkill && lpSkill->dwSkill != NULL_ID )
) i( z) B) w+ S; y' X) K: I, c {
1 g; q6 K- V' w* R f7 O% Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 v; V0 h5 V2 g% r
if( pSkillProp == NULL )9 ~0 o: Z- q- j0 O4 W3 e
continue;' n: X* z" w7 x: v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 @7 b) T) @( p: q
continue;4 Y& I. {! G; r1 f! u3 q+ D
lpSkill->dwLevel = 5;
N3 {* [: `: F/ M# Q& P+ \. ?/ b }
u. R. @. |8 m }
9 w+ w. i2 K: @; H+ ?+ A0 W; z }0 Y' i" g! [- Y; f( j) U, o
else if(IsLegendHero())8 t' _1 h5 N3 \! Y. F. ~; t. I8 b& J
{
/ A3 D5 |9 r8 `9 `, v6 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) _0 N. u* Q4 d+ ~$ A( \2 T6 X, h4 ~
{
0 L; A4 u3 d. h& a5 U LPSKILL lpSkill = &(m_aJobSkill);
& `) T8 c0 A2 j V1 Q7 j if( lpSkill && lpSkill->dwSkill != NULL_ID )
# V3 t( J6 D3 w( c. X1 E( G. G {
, P/ I/ F* S$ z. {8 W: V% O/ s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / O0 I$ G8 H! Q. N$ ]
if( pSkillProp == NULL )4 c! L6 }, j1 L- Y
continue;% ]" z, F1 }5 \: ?0 \: I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 a# T0 [) f+ n U' x
continue;3 w ^# V6 I- P* ~8 t L
lpSkill->dwLevel = 5;4 L' e$ q5 v2 N) r0 u8 m
}: _! }! @4 ]$ A
}
, t, b T2 c' e* _' p }
! k) j/ [: K* _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" B( L' \, k$ {$ _$ ?9 [" u5 V
if( bGamma )
, q$ a+ }$ O% ^7 O# V) l {
; @3 r7 p1 W! y m_nExp1 = 0;4 d0 e0 E; [7 w% P) A
}
& Q/ ?" y8 v2 x& b j+ G0 ^# z, k5 n; n6 L- r! b
( (CUser*)this )->AddSetChangeJob( nJob );% @, q5 t7 q% K3 [9 f# X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 ~% B. R5 r2 c
- p% C2 r1 l1 C& I$ q8 Z9 U8 E% l/ s; [' t
#if __VER >= 11 // __SYS_PLAYER_DATA
- M/ r; S- Y7 n$ H2 K8 X g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); A. T$ I( {8 r: \4 b$ Z
#else // __SYS_PLAYER_DATA
, H& N- ]3 m3 V( N X g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 G0 E5 N9 s$ u1 g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 X8 v0 Q% M0 Q9 E
if( m_idGuild != 0 )- ]% z1 w. z0 N2 J. y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' }5 f2 w. |8 O* C! Z) R
#endif // __SYS_PLAYER_DATA7 n' X2 L; o# E$ K9 {8 }
SetHitPoint( GetMaxHitPoint() );
! U6 |/ L0 n+ O1 `8 H! W SetManaPoint( GetMaxManaPoint() );2 h0 h1 V- b# Z9 l
SetFatiguePoint( GetMaxFatiguePoint() );
. Z, n2 C0 ?( H8 |. Q/ Q if( nJob >= 1 && nJob <= 4 ); ]! ~/ S) n! q
{
4 Z' U A+ h e8 G m_nStr = m_nSta = m_nDex = m_nInt = 15;
" d. x _% l/ H2 N. i) H m_nRemainGP = 28;
' C6 q1 V S: v( G; a) C/ D }+ q, K- V6 @3 H3 |/ w1 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& d" X9 j) x4 k1 @0 u/ z j. t- v, ^
{9 N, S: b. |" |
m_nRemainGP = 118;
, o* _, W3 S- S0 E3 f! f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 v$ `* F, ?7 ?$ p# v" E- w0 n m_nStr = m_nSta = m_nDex = m_nInt = 15;8 n; L4 h. ~6 z, _" _' i
}
8 g8 ~2 W( \7 V, h1 |9 F8 K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; h4 d6 V j6 X- w4 K4 O& R3 ` {8 j5 O. _ v% R ^" }9 r1 c$ V9 }
CItemElem itemelem;
+ c: V4 ~( I! A# E6 H+ A: `/ A itemelem.m_nItemNum = 1;, c$ c/ X, ]% j# }
itemelem.m_bCharged = TRUE;
" b, {+ L1 \$ L8 r: `3 z BYTE nID;
; J' [9 _. O4 q5 |
+ c3 y A) G, f( \' |% w2 y if( nJob == JOB_MENTALIST_HERO )
: ~+ e- l: D! O" U+ E itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 t# }, i' p6 ^$ v
if( nJob == JOB_FORCEMASTER_HERO )
5 |8 p# T' f" Y8 _( G' A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, G% W7 p1 x+ H% B" D( N9 y
( D1 p% j! C( ~, f3 A
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 ?* C9 c& c: h1 I5 S( [
}
; o1 g' V: D" E* ^8 C4 s g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 P4 j- I( J) z1 t1 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# E. r: H7 n- k+ ]4 J& n1 J+ U: Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 `$ `6 I D0 ~: v4 K2 E2 B$ S, X+ K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 o: a% V6 k$ T0 p ( (CUser*)this )->AddTaskBar();*/. g* a3 H1 |# p, h( }# e$ k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 y; |; m. j# h/ g7 d$ O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 @ @) I* m2 \ ((CUser*)this)->CheckHonorStat();5 {# A* W/ s5 ~
((CUser*)this)->AddHonorListAck();& [3 c3 e( J! y' L2 U- s
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: E# H# ~/ m1 f0 ^#endif // __HONORABLE_TITLE // ′Tà?+ C+ k; H5 z8 P# X
} _/ o3 o1 B6 o2 Z0 k! }$ v
#endif // __WORLDSERVER
7 j Y; q* f7 s* g8 g} 1 j" E7 B. D8 r n9 O+ m: e
3 d( e1 t$ s8 G7 o然后你进入functextcmd.cpp并添加以下
/ J c5 _ s3 Y' ^4 D* e* {* B1 y& N# `* j8 w4 p7 B1 o8 C* q& Y
代码:
* q1 ?# S+ s: b( wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 N6 \, ~$ \' V, t1 T( n下面插入. X+ }2 \( w' t0 \4 q) \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; A% n& R; p; T
! ?" |# t- q+ l# g7 P s: v. c; e+ ~
然后你去
1 @) R& q- o: a: Q+ T. [
* d0 y1 m' l7 Z G代码:
" \2 a' z) ?3 ?3 }8 v- ?1 Q代码- x- @0 r/ `+ Y# u! ^) N
BOOL TextCmd_ClearPropose( CScanner & s )
3 {8 N8 w+ ^( b3 z2 I{
6 [0 ?4 p& y: W" D1 E" s/ j#ifdef __WORLDSERVER
( W# e# w9 [7 I0 {( B CUser* pUser = (CUser*)s.dwValue;6 m- h. m- Y, A. ^2 I: D' b
g_dpDBClient.SendClearPropose();
, R. N3 Z- n3 T4 N$ j#endif // __WORLDSERVER
9 x9 `3 C% R" E5 U return TRUE;2 F0 D. Z4 c# t; Y- B3 P9 Z
}, O3 k( ?2 _' b! q* o& e
下面插入
2 G4 [( q- r5 _# FBOOL TextCmd_rebirth( CScanner& scanner )
- A! }9 [: a% J0 G' ^{
3 e% T1 T; B( {0 F2 `7 s7 [#ifdef __WORLDSERVER
3 L5 o$ b) G, d& c$ @! TCUser *pUser;. t" [9 ^4 O1 ]' p; b) [
pUser = (CUser*)scanner.dwValue;4 H% F# h* Z/ z2 l- J8 R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, q% ?: a, Y$ U+ d& V+ QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ X7 b `( `1 g% @' Q1 D) G. b) U
else
/ o- w, s- Q0 F( M9 rpUser->AddText("你还未达到重生条件!");0 N) J$ d( m. X+ s) V
#endif
0 {# \) J3 N1 D5 w2 k6 nreturn TRUE;
2 x" k& c& D% W2 a6 I9 j( n}
6 ^. S! `8 p" X7 o7 i! K3 ? ^) J/ C ^* m0 I
6 F( _/ w- ~3 \: J) p& d6 e
' V+ W0 ^( Y9 z& }, y
/ I' _. r6 F- D7 M J |
|