|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ m; ]8 J' ~- F3 m" `
+ r: z! i: P- k* w7 ~+ E5 d! x9 YMover.h
. W" d4 n* l9 W7 Q7 |: F代码:
- Z/ v9 E: M" ?" p5 n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 j, i" N8 {6 m: U9 U% u, R' |
7 x( Z) Q: Z- X0 E d% S: p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! j7 J- {' j2 Z) I
3 L0 U9 @! S% n" N$ |- s A然后你去mover.cpp添加
8 c, R1 F" {+ h! Y! k% B- [% Z! G6 `1 t/ x+ L2 X+ J) @$ ~/ Y: \0 c6 _
代码:
: E" o- @+ G6 C; z5 c9 Y7 P xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 K& W: X9 `9 K8 ^1 m
{
8 ~4 n5 I6 \6 W0 o3 G#ifdef __WORLDSERVER+ \- k: J5 R! |+ ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( k% o- B! Q$ n- j6 J" n MoverProp* pProp = GetProp();
3 o' v8 W, Y. E$ y if( pProp )
) A& g+ m% [' H( R6 f9 i4 h {( B! H- V' L+ _7 z; W/ p+ P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )# @2 ]% K0 H) R* x4 m
{) O- T- T# e, q
AddChangeJob( nJob );
3 i" K7 h7 A: U5 e* W6 k+ X }else{' l' l R: w, ~: f0 b: v
return;
% V. Q+ Q9 |' Y6 [0 b! u8 e( o }
" l% L7 l3 P3 T1 s int nPoint = 0;
- Z; y7 V5 X; J6 N T6 J if( m_nJob == JOB_MERCENARY )
: ^% |; ^8 _( F v& J nPoint += 40;1 Y( b/ e* w$ j- ^, I
else if( m_nJob == JOB_ACROBAT )0 U7 G+ e" H4 |# u
nPoint += 50;& v- O" X, s; |0 C/ L) n7 j! @
else if( m_nJob == JOB_ASSIST )
?$ u5 Q. ^6 T" G: B- g) E nPoint += 60;
& I% Y. m" M. O+ z' x; H) [ else if( m_nJob == JOB_MAGICIAN )
8 N ?9 A2 J9 p+ ^3 h: y nPoint += 90;
! T! u' N# q" v6 R1 U; ] else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( P0 T; [1 q# `' v) I# W3 I
nPoint += 120;2 h/ N( _2 E" z$ y) f$ S6 a" s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ s# @9 r7 u4 e6 }
nPoint += 150;( K# F% L& `) U4 `4 l' ^
else if( m_nJob == JOB_RINGMASTER )
( c+ ~ F9 G' P* q nPoint += 160;
" |! @0 P0 Y( C$ k else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( c, w7 {1 ]; p& @2 a2 f
nPoint += 180;
) u. Y0 Q/ M) r9 v/ }2 \/ ] else if( m_nJob == JOB_ELEMENTOR )4 g7 A- S, k0 G( \, d0 W! o
nPoint += 390;* s) o9 Q3 K7 N7 \+ h. F; {0 U
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& H6 Z* D3 e' U nPoint += 120;( X* D* ~# u; u) U- z( {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 o& I+ z; J4 V' \* J
nPoint += 150;* T. c1 T4 }% Q7 j( L
else if( nJob == JOB_FLORIST_HERO )
5 {: N' D7 T; h% Z0 r- ~- ` nPoint += 160;
! ^, A; F: m# \1 v$ z( c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 }4 g' ]4 G2 ?& X; l, f nPoint += 180;
4 I- w8 n$ ]* q: ~% e ` else if( nJob == JOB_ELEMENTORLORD_HERO )# F( y2 P+ E1 d; q" |) X
nPoint += 390;
{) a) j5 Z: j4 x" t( N, l+ P$ }
: a4 u3 ^, k. A" b7 U) V- Y AddSkillPoint( nPoint );
$ U4 m- K) C: i" o! f m_nLevel = nLevel;2 ?+ V9 I$ `' V
- Q! G7 p* T0 @0 V/ E) ?
SetJobLevel( nLevel, nJob );
5 v: w2 \" B/ j; I m_nDeathLevel = nLevel;8 k& j6 I8 \$ V1 U8 g I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 d8 H& ?/ e" c8 `8 ~6 r if(IsMaster())
6 Q! J( m8 o% ~2 K0 O {8 t5 D; d+ F9 `" O+ \; t* ?$ L
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
u4 k( q, Y v5 f) o4 I+ `1 W if( nLevel > 59 && nLevel < 72 )( W& [% h9 I3 f- D- e$ K; \$ `
dwTmpSkLevel = 1;5 k8 y, M# p9 c, h" f( T& e2 Q
else if( nLevel > 71 && nLevel < 84 )+ s' l" _5 N* w N) w- B4 ?5 ]
dwTmpSkLevel = 2;$ Q0 ?" R- E% p( ~6 j( h. E. \
else if( nLevel > 83 && nLevel < 96 )- f+ u1 W/ u; o) R
dwTmpSkLevel = 3;
- T. o# R4 j3 v4 m2 {/ s else if( nLevel > 95 && nLevel < 108 )
5 T8 a0 m. k/ h dwTmpSkLevel = 4;) O! v5 L- }8 j: E0 ?' m/ i
else if( nLevel > 107 && nLevel < 120 )2 T. L8 ^1 b o* {5 v/ M& S
dwTmpSkLevel = 5;
& E# P) h2 ?9 J9 K4 t for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( l& s+ y* p& ^2 U- z
{
" k% r* e: w% u' _1 o6 d& _& B LPSKILL lpSkill = &(m_aJobSkill);. G3 ^+ W9 Z8 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 o" Z9 P" s2 N* A {
, X. V6 c( k- k- d/ N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 Y1 _' L6 [: x8 a0 w( G if( pSkillProp == NULL )
9 J0 t, I# a- A ^( W continue;
0 T* c, ?' z: R& ?# h6 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# U- Z$ Y2 v7 f0 Z4 T7 u2 [. B3 R
continue;
2 @& m5 o: p/ B1 R3 N ^' H" C4 e lpSkill->dwLevel = dwTmpSkLevel;
% e2 t$ H5 O" N5 M }' w; M4 i* I9 g K7 ~: r
}
1 ^, p/ u8 H- i" K0 h4 y9 t }( B% i4 ?8 \; T- X: s* Y
else if(IsHero())
$ _/ I% |: P) i' Y d; j, z' y {
2 X. N( q/ [+ z R for( int i = 0; i < MAX_SKILL_JOB; i++ ) , L4 s% d0 }) x% Z9 U& P
{ , ]* q6 a/ i1 \ u) U
LPSKILL lpSkill = &(m_aJobSkill);
6 g! M' S: R4 }! R- }: i if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ t# z5 E0 v4 \& k/ \! _4 i( X: A {
, q4 w! }, [0 v! \1 T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( A' i: O* A G! y/ N+ f- c5 V
if( pSkillProp == NULL )
/ X9 h k. J' C7 h0 t continue;. k, r: r. c9 ]3 G; O# K& K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 l0 O+ j- }* k4 ?% } continue;
9 U( m: B! X, I8 c9 o4 p' P, }! V lpSkill->dwLevel = 5;
- G2 {! A- x' t2 t7 [# P }( m. N! n4 h9 ~% T% ?( N
}
2 v6 B. h4 z. H1 |7 V4 k/ t }
. }. t; A; @# u" `2 g6 Q+ c else if(IsLegendHero())
; g6 L7 U; O9 d+ ^ {
. V- w \9 R/ ~- ?# G4 D9 T3 T for( int i = 0; i < MAX_SKILL_JOB; i++ )
" W2 ]# ~- ~6 n8 Q6 a# E' T {
# A# G- W0 \& H6 }9 x+ {) v3 A: a LPSKILL lpSkill = &(m_aJobSkill);( x7 D. ?& f( A! H) s/ P! `+ v) X
if( lpSkill && lpSkill->dwSkill != NULL_ID )% ^% a+ h5 N# `9 W: `1 b/ B
{
( ^ _1 D2 m, P4 G" ?" B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( n& }; u, x2 [3 s, @2 O if( pSkillProp == NULL )# i8 C' b: M9 B
continue;
, ]/ ^/ y$ u' Q3 i) h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 ^- \6 s- ^; @4 ]9 C1 a8 y continue;
% O- v. V; p+ Q; ~ lpSkill->dwLevel = 5;/ I( F: [, b* h$ ^
}
; g9 o8 R% y$ x6 w I5 ^5 k }0 u0 u+ x' l% K* W( ]/ Q9 h- s
}, i1 _' t$ a! ]# l! Z+ F+ n
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 @9 s F- v" x7 N( D6 M
if( bGamma )
- g4 [- \- Y K' l3 k {
7 W# C+ ^, s Z( J% I7 f m_nExp1 = 0;
' k$ h" n" w o4 I# Z }- ]+ V( p3 S2 }! H8 Q9 l
/ L4 u6 B4 q% [ Z J* r2 v ( (CUser*)this )->AddSetChangeJob( nJob );9 c( J- @8 k8 z$ o0 R) Y& v; M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ V8 ~9 b% w5 v
& L3 d6 k; T7 q6 @9 x; p; S8 {) C5 F4 z% s5 J9 B
#if __VER >= 11 // __SYS_PLAYER_DATA8 v5 t( x; Q; b4 ~; M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( W7 c9 v/ f: d+ p/ b; T; N
#else // __SYS_PLAYER_DATA; ?3 \. |# q* X2 l' K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ K9 @7 K# A5 l3 @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% z3 {9 W$ Q/ T! o6 F
if( m_idGuild != 0 )
* a9 E" ` u9 ?4 Y7 I% M g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! W9 N- d4 e7 b+ {5 h/ n+ X- _/ h; \
#endif // __SYS_PLAYER_DATA5 A4 j# H+ o7 z4 w* |* E
SetHitPoint( GetMaxHitPoint() );9 D! C. k$ J, h0 a( W
SetManaPoint( GetMaxManaPoint() );* V/ _, J0 D7 T D1 w) V
SetFatiguePoint( GetMaxFatiguePoint() );
; h% v9 D" c( R if( nJob >= 1 && nJob <= 4 )! z3 a$ m" s5 h
{# i7 ?# w) i& d8 D: G! U
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ r" j7 i6 V1 ]* C+ l
m_nRemainGP = 28;
2 x3 i- \4 s# i. l- ?) B, f, A }) h6 U" _8 K) t% q! `+ J3 V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# l( E' Z; v- \( r
{
6 {4 X9 P$ y# J m_nRemainGP = 118;( h% l2 I. }( u* \) E; Z& ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' E3 u' S4 z6 w& Z3 B8 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 H1 Q% s. u8 O$ W' F/ {' L }0 }6 o) R1 ?2 |) j( c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 h. @4 n7 g) p/ d
{7 `; o' D* y5 c: X# a
CItemElem itemelem;- X0 K- h) b: c9 s; q& E
itemelem.m_nItemNum = 1;
- G% a" n& Q% c# {7 K itemelem.m_bCharged = TRUE;2 b/ d$ B. ^4 l6 a# i; b
BYTE nID;
; o7 h; h1 B, f: g3 H; p/ `3 K7 f
if( nJob == JOB_MENTALIST_HERO )" y3 `6 W, a) }; M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' ?& c% t3 ?6 _( B$ l+ V: R7 M if( nJob == JOB_FORCEMASTER_HERO )
/ e! i* [% y; t3 z! B+ Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; q, u6 Y- h& m" ?
9 U) w$ K3 x9 h' x
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ B8 p1 Y6 H X0 {$ F4 R }
% T3 S1 X* ?2 }. n, R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 O. h6 ~1 E' X' A d6 F2 ], c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" R9 b T3 _' q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# H) ^6 K4 C4 h3 \5 q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; w9 M2 Y: `2 o* c1 F0 `* k ( (CUser*)this )->AddTaskBar();*/9 z$ h- E' W, ^+ C) V* n' I' U
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 f. \& s$ A$ \; }3 ^! t+ l& A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 T% W j' B& P# `' K$ c ((CUser*)this)->CheckHonorStat();5 [( Z; `8 Q" p) F1 n; E
((CUser*)this)->AddHonorListAck();' o( p! h! x9 O2 r( j! {1 L6 v6 w' J
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 h2 `) V, x- E* `
#endif // __HONORABLE_TITLE // ′Tà?
/ |/ Z! Y0 C6 p- U. _0 Z8 M }
% I3 P5 ?3 @5 j#endif // __WORLDSERVER
7 o5 m: ?1 @* Q5 o} 4 }& W- N0 C5 M/ y# q* W7 |
. A4 u( ?' f, p然后你进入functextcmd.cpp并添加以下
: e# g/ e' U. N1 y& @* ~
2 c# Q \5 i4 a* }代码:2 G7 Z- ?+ n' ?" k3 v1 q) O \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% q) |/ H; c. m2 i4 |
下面插入
+ D8 _& O6 i; b6 k7 e: @9 mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * A: c: {9 w6 e
. T7 M5 \1 P# [+ h
然后你去
* i! l1 q3 Y+ v% s) C0 m
+ J- G) ~- n9 `; z6 N代码:. l) Z g V1 R5 x8 B8 h8 {
代码, `( Z# J v: g- O/ h/ A
BOOL TextCmd_ClearPropose( CScanner & s )0 N1 B$ ~, U- G4 N# x
{' Q: C5 H1 @) E2 v# A
#ifdef __WORLDSERVER- b. r! m' [8 `3 O1 x6 Q; {# k9 U
CUser* pUser = (CUser*)s.dwValue;
3 O$ C8 _0 r; A+ k7 {4 g g_dpDBClient.SendClearPropose();$ r) g. I1 F+ U$ c
#endif // __WORLDSERVER2 Z% b; u% m( I" r5 ]
return TRUE;( z' R! y( @, y/ ]
}" g9 f/ [4 C/ j4 }
下面插入
% ]/ \4 M- n; }9 D/ _9 o& o! ]BOOL TextCmd_rebirth( CScanner& scanner )7 }( v3 l' w& j+ q
{8 V9 n) H& k8 @$ G0 c6 R% U
#ifdef __WORLDSERVER4 C, Z, X! W+ f2 Y
CUser *pUser;
+ H0 f4 z. A% q+ RpUser = (CUser*)scanner.dwValue;; I/ m6 W5 E- t$ y m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! @- q) n* k% Y' I' f/ N# epUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% Q+ n1 c1 E7 ^6 ^else
. p) q" m; t c2 V) EpUser->AddText("你还未达到重生条件!");
5 \4 h1 M* @% t#endif
% t0 y! s9 X$ n. A$ vreturn TRUE;/ C$ l* S- H9 V/ n" ?
} / b' ~* ? |: g8 y8 o
% M8 V' `* H+ U! U1 M! {
9 x0 Z" ]# H5 b* C
4 }# c% r3 w/ g! U9 l3 O$ [* H9 g2 U: u+ ~$ H: w# \7 R
|
|