|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 j* T+ t5 X! }. g7 e) A. \0 C k: e: J% Y% ]1 t% r
Mover.h
* U/ d8 W8 t& L5 r3 l5 G代码:* _- t; l# U# Y& [8 W N+ N1 R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ K6 Z$ H6 W6 l A L; ^& q/ b# `2 l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 v! J. `$ X K! c3 L/ v2 N
1 F3 I. [0 M" y% D2 Q然后你去mover.cpp添加1 N: |1 P% x* Q: [ S! T8 v
8 p" G& I2 _! R& ?2 l代码:: e; @ S' {! Y" b8 r( G
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 s2 l* L7 ^9 I! \2 S4 Q{
% s6 E8 O* l5 O+ k& U+ o ~#ifdef __WORLDSERVER6 Q. b; `. [# ?) B! W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ H+ g1 g/ P4 h, k$ R MoverProp* pProp = GetProp();0 `1 F+ J4 [4 k6 n1 }7 U5 \
if( pProp )
, |" F3 E* q+ I2 Z {
) ]8 L7 D, ?( @9 J5 J: o if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 P5 J/ m1 z. @0 u( v5 q5 \; Z) m {9 \5 @4 C$ t7 q; ]( q5 T9 `$ ]6 d
AddChangeJob( nJob );
8 t9 \- f4 A" `7 ` }else{; n2 w" y- A" ]9 j6 h# R
return;7 l: p* u9 ]: [$ b
}0 N8 }+ r8 s+ L
int nPoint = 0;
* E( ]/ Z7 {' p) l% S if( m_nJob == JOB_MERCENARY )7 y- B) `5 \' T
nPoint += 40;
o* f$ O6 Q" b2 e else if( m_nJob == JOB_ACROBAT )" e0 B- h& `0 P6 A' ?
nPoint += 50;
# N, Y$ f# C; }, }' k' V# p- I else if( m_nJob == JOB_ASSIST )( M, o3 ^: _- a8 n
nPoint += 60;
& M3 ?5 k3 ]; ] ]0 @( Y else if( m_nJob == JOB_MAGICIAN )* {9 @) P4 Z. z# D4 Z, e
nPoint += 90;
0 w; M: `% [ X- f$ u else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; w" u: t3 X1 y0 j2 z5 a% L nPoint += 120;
7 ]4 ?$ {6 \! _' L7 s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* j& e* I: |& W8 d( V
nPoint += 150;
1 i# D l1 K+ S6 j1 i# N. Y' k else if( m_nJob == JOB_RINGMASTER )( I$ v: f9 o3 | ~" K3 k& B
nPoint += 160;
7 v8 b# z1 n: X" @, H+ j9 } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 U1 ^1 V: E8 X: X/ t/ w2 ^ nPoint += 180;, `0 i+ k2 q1 W/ [- Y, ]; v
else if( m_nJob == JOB_ELEMENTOR )2 L9 X! @4 m- Z, E0 E# ?
nPoint += 390;, S7 E/ O9 V$ h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ Y! A; w* U) j+ T) h- d nPoint += 120;
# l; C4 F2 ?( N else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ l$ q5 |- N2 h3 O- _' Z- b ] nPoint += 150;/ @+ n% }8 u r5 C3 ^9 h
else if( nJob == JOB_FLORIST_HERO )
& I. m1 k) M E" s | nPoint += 160;. s( x5 ]9 d: C, Y& g- B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# ?* n: L7 D# Q" d nPoint += 180;
9 l9 q/ Z5 m- D else if( nJob == JOB_ELEMENTORLORD_HERO )
7 E& `8 P1 ?" @1 Z8 ~) q6 g+ U8 i nPoint += 390;
4 T8 ~3 e+ S1 }5 n7 ]+ b
) H3 Q3 V) Z, W3 i2 q+ h: g; @7 v, J AddSkillPoint( nPoint );0 i* S! a2 x9 d, h7 A8 ?0 S
m_nLevel = nLevel;
) k* y" y N( W0 k, N3 v3 J0 {2 h6 ]& e. v( t! U
SetJobLevel( nLevel, nJob );
- { z t4 ^' A$ F5 b/ l: { m_nDeathLevel = nLevel;
3 a/ e. T$ Y- B2 T% ?9 {/ n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 d5 E) d. @3 B( w
if(IsMaster())6 A/ M1 U3 [+ n& e1 w$ w; Y8 i6 Y
{
# @# t' r; z5 v; e! Q5 ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# n9 z( i) t( T- U8 R- `- Y& Q! d
if( nLevel > 59 && nLevel < 72 ); P* o2 ?* a0 b9 m5 |
dwTmpSkLevel = 1; i; L& H4 o4 d* m5 y8 T1 \3 d+ v
else if( nLevel > 71 && nLevel < 84 )0 J* l5 d9 ]: e! @1 D5 \ A
dwTmpSkLevel = 2;; g: ?- }; c: y- w6 \/ t
else if( nLevel > 83 && nLevel < 96 )/ Z1 a8 ~$ K- W6 d
dwTmpSkLevel = 3;
: v- S6 T) s6 L* Y8 V+ { else if( nLevel > 95 && nLevel < 108 )
+ {* f& h) l# _- Q dwTmpSkLevel = 4;+ o2 e" m9 H E4 N1 X, o5 t
else if( nLevel > 107 && nLevel < 120 )
1 w& J5 [$ C! W* @$ W/ p7 X dwTmpSkLevel = 5;
J" E4 _$ b2 T: Q5 w# C9 ]# O4 t for( int i = 0; i < MAX_SKILL_JOB; i++ ) & }6 d8 k- H- S7 c* ^
{ ; e! J/ A8 O( N, i. ^* u
LPSKILL lpSkill = &(m_aJobSkill);
1 U: ]* V: r" x if( lpSkill && lpSkill->dwSkill != NULL_ID )' y! Z9 }# @" }- \2 D: n
{
& }. a8 e: a: j9 L: } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 Z# M) C: E+ H3 l2 E
if( pSkillProp == NULL )
5 u0 C( a+ X- V( w continue;. n5 |9 s' l8 Z! k$ @9 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 Z0 U6 K6 x& i% m continue; u( F( @+ k; x* m1 ^# B. c
lpSkill->dwLevel = dwTmpSkLevel;- O" @! Y. l) F; T( A9 M
}
" D9 B- p4 ]( b0 o0 X7 o7 `! R }
2 {- q/ n! h: K% O8 i* K% [ }
/ ]( K# x6 v4 E7 s2 x else if(IsHero())
2 G: _1 c3 s0 j: M' X. Y {
7 q0 T3 _8 Q; K/ V( }4 g: ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; y* A" D% q! d$ \" a
{ 4 d0 D/ m4 r1 w0 W7 v
LPSKILL lpSkill = &(m_aJobSkill);7 e- G$ t+ u b+ Q2 B! Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )! r. o+ x& [+ M1 B
{; s& @: j) J7 {: x l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 Q% k+ G3 f/ S3 v/ v1 N if( pSkillProp == NULL )7 j4 g3 G+ i q% R7 G/ n [1 a
continue;
+ I/ N0 S. n, E, @! z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) P5 B j+ g. H) T+ A continue;
3 z8 H b* y' {2 ] Q lpSkill->dwLevel = 5;! c' E1 X5 x' h
}
- Q" H4 Y0 ]0 e5 n& P$ ] }+ V2 w2 P- V% x* G) l4 `
}0 ]8 Z2 h# L6 H% k# P* k* \. `( }
else if(IsLegendHero()): b* S/ X. [9 w' }0 \# `6 s' z
{
& {9 k* h+ C+ z O* V, ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
, p0 K' k& Y- m! C7 x( U { K8 T. ^$ X2 C8 S& }1 u
LPSKILL lpSkill = &(m_aJobSkill);
8 B2 v7 N* _/ k: o if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 N+ N4 C/ }2 g3 I {
0 ^: g7 u; N0 O; v ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / n/ T j `) ]6 P; @/ c
if( pSkillProp == NULL )
. E, c! X E$ y continue;
9 {' j% t& K/ ~2 @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 ~. N. c- R! z; O- y7 P1 I continue; p+ u# E# ?* M( `
lpSkill->dwLevel = 5;2 I- h0 ~' {5 c0 h0 F; y
}
6 y( P2 j/ T. J- S# @' e: e3 { }/ d2 [5 \5 K: l& T. d& B
}
1 g7 P% ^8 m# t# f5 O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 [' `$ [( b" E7 |0 e0 a* j4 H
if( bGamma )
; ?# P2 a' O& ~, |2 W& \ {
; X& m6 Z7 k7 O' b0 b/ S m_nExp1 = 0;
- H) c# _6 y( c9 e- m C }# _5 _9 x2 I( g0 i$ \: J$ I
/ y' k! U Z' e0 r* l ( (CUser*)this )->AddSetChangeJob( nJob );; n3 k( q ~: y& i( Y$ \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; A; _) ~+ [5 h! {# p5 @8 E. ], M3 ?- B4 g7 K/ l
( h, M, \! a& [+ `. ?* `: z#if __VER >= 11 // __SYS_PLAYER_DATA ~. i6 w9 `, x6 a: c4 X' V2 z4 i4 |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( N% K) Q3 |- a7 I' Q3 Z5 |
#else // __SYS_PLAYER_DATA1 e1 M- @8 C0 H) ^( \9 X
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
?! r( Z+ L+ a% A/ I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" c8 y5 ~4 j6 P- O8 Z3 \% A! F2 { if( m_idGuild != 0 )$ d! b4 k6 ~3 A8 ~) t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- ?- F6 w6 S0 P7 i/ b+ ]( g3 S#endif // __SYS_PLAYER_DATA* l# I, t: h" m& k ^# q" X
SetHitPoint( GetMaxHitPoint() );% H/ C4 `0 r+ W' J* I. b: s+ m
SetManaPoint( GetMaxManaPoint() );% Q* d7 x- r8 t6 F$ v4 x i0 {( ~
SetFatiguePoint( GetMaxFatiguePoint() );
+ W5 N3 E% K; b& @7 C if( nJob >= 1 && nJob <= 4 )8 r& ~: ~* Z( |( m' f8 M
{
2 O" c$ f, F! o m_nStr = m_nSta = m_nDex = m_nInt = 15;+ F4 ^: E7 H+ K
m_nRemainGP = 28;+ o' N3 K0 Z. ]+ i) ~) U
}9 e. w( I/ Y- c- h; d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, ~8 Z1 h7 t) n0 N% d+ Y {9 \1 U2 {5 }* H4 ?" Z+ ^
m_nRemainGP = 118;9 j2 v. S4 e4 s) @' p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) p" C$ c- n) J( o m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 k5 N8 v1 m4 h o% { }& b( `9 N- J1 |4 N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) S: n9 c6 I5 k
{
* v S- R, U% b& k CItemElem itemelem;7 b& u' H! c" ?8 {
itemelem.m_nItemNum = 1;6 s! `/ W2 A: j0 N
itemelem.m_bCharged = TRUE;
6 C U; L; @' d% g$ i BYTE nID;$ }3 f. {4 q0 s# U
9 m/ H( F# a6 m
if( nJob == JOB_MENTALIST_HERO )- w& y. S3 E/ l; ?/ ~ u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 x+ F, v1 U: k2 K; l9 P) j2 ^ if( nJob == JOB_FORCEMASTER_HERO )3 n3 t7 f4 k4 b7 i" A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' |0 M( g( C1 ~* U/ N
$ f, Q% g: F) x- @2 B ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& ~+ z6 q9 N. n, j$ c% p- o }. n: k2 H! \! c& K, r5 E$ u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 d. P$ r& \9 y+ b* p ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, r- y/ w) D# x$ \ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) u* Q1 N' D2 Y2 m/ i8 K7 H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 L0 R+ x c5 ~0 S& F. C4 f7 S
( (CUser*)this )->AddTaskBar();*/ n9 E5 i, L6 V8 C3 E, [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 a; m. u8 }2 c. ~#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% |2 }/ h9 ]" \% W% U
((CUser*)this)->CheckHonorStat();
9 K1 i+ o% S" [4 c$ H ((CUser*)this)->AddHonorListAck();! ?" j6 W" Y, i3 M$ c# H
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 _2 m# X: ^( l0 m4 ?#endif // __HONORABLE_TITLE // ′Tà?
$ s) s# F0 h" n1 v% B# ]1 O& v }
7 i/ r; i' Q* H! H! N% Z#endif // __WORLDSERVER& w, T8 C5 _& M" I2 l! n' J3 e" U
}
" a8 h, b3 y6 y/ X4 I% G
9 ~2 t! O# Q) k$ K0 e8 ]9 l然后你进入functextcmd.cpp并添加以下+ \* N0 i% p4 n* ~3 z! t# t
* O! w; d+ I2 I( X. G4 E& ~代码:3 S7 u& B. ]6 s) {) ]8 ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. z0 z0 E+ J) b下面插入
+ U, D4 g: c! ?4 Y SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 \% B- m9 k/ G# L7 U; G
1 r: F/ b# g% t z6 X# Z+ `
然后你去% R. p- R# {& Y9 ~
8 R9 C1 ~6 i3 K4 d8 i5 {
代码:
: v. L$ G L% D& ^) B$ V代码
4 k/ |* z5 a, x8 Z* H! [7 _BOOL TextCmd_ClearPropose( CScanner & s )3 l W3 R- d1 N: N$ n
{. C4 ^% A# e& F, `. A: k6 K6 H
#ifdef __WORLDSERVER! X/ E4 a6 k& u! g& e& _0 E
CUser* pUser = (CUser*)s.dwValue;
% X, f h+ i; u, z* K g_dpDBClient.SendClearPropose();: m; e3 L1 d$ h& d2 T: s
#endif // __WORLDSERVER
3 Y4 y0 @ O) B; u/ K return TRUE;# O& [. b+ Y# Z. V$ i0 J
}
4 i7 n2 d, o- D! y下面插入
! g# ]7 \0 U/ f' p7 IBOOL TextCmd_rebirth( CScanner& scanner )
. R4 m! {0 N% l; D' B( p! Y{3 f8 F/ N5 L* v6 `& v3 o
#ifdef __WORLDSERVER
; W h7 d- T8 s- k- K4 yCUser *pUser;
- F2 `' |/ `$ S6 d# u% D& ?* zpUser = (CUser*)scanner.dwValue;+ L3 O" p, ]% z( |: A- [$ Y7 U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ X: f; L. c( e& MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ X& s) G5 D3 n6 ]" o
else6 x2 z6 G6 Z1 d( T
pUser->AddText("你还未达到重生条件!");( J7 y2 f+ v3 y
#endif1 Q4 Y3 {1 a s L9 O/ f$ A" A% ^
return TRUE;; m. i# X; F4 ^6 r; Q0 W1 W
}
9 d1 J7 _8 k$ j0 P
$ e) g4 ~5 z" K4 Q1 K7 Y1 i: q. K6 N& p# q+ G9 o& C$ y3 N
9 I" d C9 Q5 m- Y! d; G! R. {* x" N4 R* B
|
|