|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 A2 z i% O5 c) G5 {0 E) t
- e6 U m4 ?7 M4 c; ~Mover.h4 u0 Z% G% j" o, @3 S6 }$ h
代码:
0 {3 I7 n0 ?( b! o$ a& ?3 E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 g$ D. h Z1 }' B: I; ^( z3 ~1 i
: @' N0 f8 }) l* e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" ]; E: Z1 J) M3 M4 V
4 [1 R* t6 q. ~7 S- m然后你去mover.cpp添加
# Z$ O4 A$ u5 o* S: p0 C: q) {9 o+ p. \' B& e% w, @" d# z
代码:+ e- \7 N, t H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): n0 b; k! w7 Z4 V4 f
{' @/ J+ T3 r9 g. d" V: |
#ifdef __WORLDSERVER
4 ]2 z' F! J+ O6 l7 O/ n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ {0 p# q5 M O- U0 g' S w% I4 L
MoverProp* pProp = GetProp();: R( G2 ]8 \4 U2 p4 g
if( pProp )
' ^ C2 g3 C6 p$ j {1 J- ]* w- U1 J' y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
u) M- b% c3 p! } {6 _ C& a- v5 T+ k& j0 l
AddChangeJob( nJob );: e! G; A' V3 Y! n/ a6 i& p3 f! p7 E
}else{1 F6 l0 `2 a& Z" m( L& u
return;+ ^) K& j# E* x; V+ d2 Q
}
* x8 N7 S4 w! H' ^ int nPoint = 0;& f8 v& \- D- e ^ m ~- }, v! {5 Q
if( m_nJob == JOB_MERCENARY )# Q7 p: |: d% _$ O& q- ]7 P9 R; W
nPoint += 40;
: C- @8 |" |" r else if( m_nJob == JOB_ACROBAT )
* }+ O, ?8 e7 z nPoint += 50;/ e$ ~4 b9 E w8 B0 B6 k
else if( m_nJob == JOB_ASSIST )
1 n* W9 g, T% H l7 y% x nPoint += 60;% T4 J8 V+ U; I$ E& B
else if( m_nJob == JOB_MAGICIAN )
( m/ B2 _, V' E! [! E( o0 _) N nPoint += 90;) E; I% p$ r" X" P0 e0 s3 c; d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) g4 G2 \* n4 _: u% @6 ~1 T
nPoint += 120;$ A. r& W3 N2 [6 g! O" a M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% L# K9 p' r, j5 P% V2 S nPoint += 150;" e1 G+ {2 \2 s% r& N
else if( m_nJob == JOB_RINGMASTER )
8 b: |$ H0 ?+ S& g) J0 S8 n nPoint += 160;& B. e# ?% H7 W; ]2 [( B; W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' |# ^, S u/ R+ i4 d
nPoint += 180;
! R% u/ ]1 J h, [) u0 p/ u1 Y! P else if( m_nJob == JOB_ELEMENTOR )
7 B8 } i8 i: F# g nPoint += 390;# B* q1 ^9 X1 L: a- F9 R- ^: K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) l4 ~5 W6 O; A5 q- l6 W
nPoint += 120;
# d9 e# z- Q% \' \" ]# u: a, f else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): e% W; H0 z1 ?' l, @
nPoint += 150;4 J) H9 U8 B3 S! }) I
else if( nJob == JOB_FLORIST_HERO )
6 H1 K5 e4 L! V- B, r6 u8 o0 Q7 q; @ nPoint += 160;
2 d. w& C4 a$ j0 s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- I4 c; I; S4 m nPoint += 180;
- }- ?8 {+ s$ n/ Q else if( nJob == JOB_ELEMENTORLORD_HERO ); i- f6 ]+ R7 M) p& S
nPoint += 390;
: o! G8 y. H/ V, v! F/ T& Q* i7 k5 K) ?7 x4 _
AddSkillPoint( nPoint );
( K; h- D8 G- ?1 Q m_nLevel = nLevel;% g+ F8 A$ ~8 U0 B( d
: t' m2 a5 R/ i! ] p* L SetJobLevel( nLevel, nJob );
5 m; H! ?% K3 a* N4 q: m6 _4 |) a m_nDeathLevel = nLevel;8 e# d# M6 l2 N6 ?7 U: h$ w3 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 P- q% L u1 U. l5 P
if(IsMaster())
0 b3 C% A# V% q6 V2 A4 B {/ M! _* b* {( g. c0 k6 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, s' F- B. {% x- O if( nLevel > 59 && nLevel < 72 )0 i% s8 E4 Z! u
dwTmpSkLevel = 1;
) x% q* B4 Z; t& `% Y+ z3 Y else if( nLevel > 71 && nLevel < 84 )
# p+ ]6 w& }2 ]" f8 G/ w. K dwTmpSkLevel = 2;& E3 _0 M T* e# c( y' q
else if( nLevel > 83 && nLevel < 96 )
6 t3 S9 x; n3 m3 h1 g' g* _ dwTmpSkLevel = 3;
6 E" d B% l0 V, l# i0 W" U else if( nLevel > 95 && nLevel < 108 )
; _( I: W3 @$ p dwTmpSkLevel = 4;% U& f8 Y- a6 a5 R4 W" N
else if( nLevel > 107 && nLevel < 120 )
, E) @0 [* i( x/ p9 u dwTmpSkLevel = 5;
4 P7 S9 q8 |" P5 E for( int i = 0; i < MAX_SKILL_JOB; i++ )
* {# P1 x* ?3 b0 O) y4 m% O6 ?6 t { 6 u* T8 j A% U0 Y5 W
LPSKILL lpSkill = &(m_aJobSkill);
( |5 f2 x, C4 K3 t- @& N% x* h if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 W: U! n9 R0 C7 P* r" Z& V) b) K {
( ?+ b: H* [; `: x0 O) V* z- ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 O- H. ]; J$ \. f2 ]- y! m% m( C
if( pSkillProp == NULL )% x+ R* H+ A3 Q" _8 A6 j
continue;
) \* U& x t* G) j+ ~, w! C" t( r, H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% K: H. W( o2 V# p/ O continue;
% J7 S7 o; g6 w- D8 ^, H lpSkill->dwLevel = dwTmpSkLevel;
1 ]7 K9 s- z+ @1 v' v }
! y2 A5 B% r- c& [5 f% k }: r/ Z0 }% ~( P
}
3 |' `. Q$ l4 A4 q' v3 V else if(IsHero())6 n9 h" T7 O. t/ d" S) r: Z/ ~
{
' Y* m2 g' p; x- E. J# l8 i. I( c for( int i = 0; i < MAX_SKILL_JOB; i++ ) # W/ }2 P+ n# \# m0 X2 n& q
{ $ [8 b: a- A# R
LPSKILL lpSkill = &(m_aJobSkill);
: I5 D( q; S- @) Q& Y9 H2 N if( lpSkill && lpSkill->dwSkill != NULL_ID )0 D8 L6 X3 X% X; L
{
. I& ^8 z ^5 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , t! q: ^" J- T9 ^# N
if( pSkillProp == NULL )
( H4 ~) U* i' [ continue;2 i- t* C, a- q& J1 M1 m G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); }4 a; x3 j; c
continue;
& f6 m9 w& `, M+ n2 l e/ L6 ` lpSkill->dwLevel = 5;6 d/ @" q; ?; \2 f9 a
}" [* y3 \+ w) T- o/ K6 i. W
}
+ {# W/ V5 j: F$ @% S( m }1 x/ z0 l4 g9 D0 V& N; i
else if(IsLegendHero())
/ m) L; N' u/ U" D3 Z# @6 d1 o/ ?/ y {
' S; R: A0 J* y( u& J" [, c: o1 m for( int i = 0; i < MAX_SKILL_JOB; i++ ) / x- \, }7 U3 k% o. H. v" s2 d' P
{
) n$ D4 C* G" Y. R3 ~- x) T! i LPSKILL lpSkill = &(m_aJobSkill);" t& j9 O6 G% X, A# Y Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )- J7 R% t2 E' H3 N8 z
{
: S# s# R- z+ e7 p: ]! V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : J+ A0 u+ C( l2 K# a5 O
if( pSkillProp == NULL )
' P' M5 L9 H: [ continue;5 N7 ?# q$ g. |8 L( h: A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 j. W1 @4 v" ?* w
continue;! }, s$ R$ p t( f! B- D0 W) R
lpSkill->dwLevel = 5;
" e. ~: U# j" o }
$ m5 }0 i' j$ u% b+ P }
7 K0 k' {7 u( X" h c }
+ ^2 h9 K- l1 ^/ @) w9 D# y8 H" b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ [/ x( q5 i+ @) Q
if( bGamma )
' b s# o: u8 m# f2 L& h/ G$ z, z# |" h {
A7 Y5 z5 J, K7 f/ a m_nExp1 = 0;
- G% U: J" {! x( y- ~ }( P, c+ O- K8 h- K4 g& W2 e! i" ^
) x, d! ]% b1 ~6 ~# N, i' o! P8 V
( (CUser*)this )->AddSetChangeJob( nJob );
& z) D/ t, Q" m' E$ ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 b! L5 n. |/ P2 }/ \
1 e- r2 y+ l* x1 m% M M& z+ [
% c% H6 x4 ]4 Q7 U3 @, r: A. P#if __VER >= 11 // __SYS_PLAYER_DATA
. B2 U, p' n$ P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 y2 `# j5 M, e#else // __SYS_PLAYER_DATA" g4 |0 |; u5 C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' n1 O; w# |" c# a& X- s/ m, t5 E; z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% ~5 ]. i8 Z4 c) Z4 @ h: U if( m_idGuild != 0 )
6 _: a4 ^" {) p' W: H4 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 u( A4 p$ @* O+ t# f' i#endif // __SYS_PLAYER_DATA. ^$ L9 V4 a6 y3 _
SetHitPoint( GetMaxHitPoint() );
0 N( c" Z- o+ V+ A# `0 v SetManaPoint( GetMaxManaPoint() );
1 p! o* G5 e U# I4 x. {7 _4 s SetFatiguePoint( GetMaxFatiguePoint() );, S1 |/ M0 g/ y# w: ?9 T2 N
if( nJob >= 1 && nJob <= 4 )
9 H9 |( F. ~. f( @0 Y/ q) f {
- ` i% K$ o/ W5 J- A) f m_nStr = m_nSta = m_nDex = m_nInt = 15;8 X. q2 n8 e! z
m_nRemainGP = 28;
; E* j9 O) Z9 p* @) {4 I$ g- s* `& s }
+ k# x& E8 X: _% z( L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 M7 i5 d) q' n
{" n1 l/ O6 q: f2 a1 n) m
m_nRemainGP = 118;# ]+ T9 i) K# A; ^7 j! O4 c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, r# X% m6 E$ y& F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 l3 T, z' F, p7 z s }
# i( ?" Z; Q# D { if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: o8 w& n) ^6 @% H, ?; p0 J {
/ `! K- N( c7 `) d5 f CItemElem itemelem;
* H: c! A5 h$ }) G0 ?' d itemelem.m_nItemNum = 1;
9 G, `) q. q8 d" V* Y* F* H) r- S4 t itemelem.m_bCharged = TRUE;9 t U- N6 a' c# F/ w" {
BYTE nID;, {8 w4 ^2 s! o" I* X# M6 n; W
- z9 D, P% H% V- n5 W0 B" T$ C
if( nJob == JOB_MENTALIST_HERO )+ {" _6 t* g4 C! b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% }4 Q, |: r: T5 ], H2 d
if( nJob == JOB_FORCEMASTER_HERO )( K: a! {3 p! ^: s: j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, K! q7 C" Z( l) X5 a$ U @- K$ F/ W' U& \' R* @; j f
( ( CUser*)this)->CreateItem( &itemelem, &nID );! Q/ f' e# S" x6 e4 {, u1 ^
}
4 P- o0 D& Y" y" i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, L6 a. \4 |; z# O# N9 H5 s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% h- g9 B0 W" h' b2 R) ~
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, ?( c% a1 w/ ^) t m
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* L4 d4 }4 R6 S1 Y% r# H ( (CUser*)this )->AddTaskBar();*/
- @6 J+ @ C+ F, ?8 T4 V! h" o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" a. e/ g4 w# Z# E A" L; k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 {6 ^4 l" y' T# s6 U/ y
((CUser*)this)->CheckHonorStat();
9 J5 f. o/ y* l7 M ((CUser*)this)->AddHonorListAck();
( Z# h' e! V9 I5 d, H) s' A g_UserMng.AddHonorTitleChange( this, m_nHonor);' d# f7 j9 |3 C6 x
#endif // __HONORABLE_TITLE // ′Tà?
& p) v: _1 v' o2 b* y9 G }
" b. R' c+ n# \* u/ E#endif // __WORLDSERVER2 A% O) [2 F/ a# ~
}
; i; f4 G& ^3 X9 C' @
8 M/ ` h; G% K. b. f3 m4 a. ^然后你进入functextcmd.cpp并添加以下
4 z; ]4 p0 ?: g8 H$ J( S3 U1 z& [" q$ x& M
代码:
Z' X$ m. _ u/ AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). A# S% W5 m. k& K
下面插入
- ~7 y/ c- C9 G, `8 N+ X; q) p9 tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) m, q5 g# J9 X* G N# I7 L9 \ ?. `" [; a+ b' e1 g3 p& L
然后你去
* B6 f) b3 W! H3 M6 i
2 g7 a/ ^5 ~, v0 p: P7 G* D代码:: r1 H* u8 R: s$ K
代码
2 |( }- c7 S2 V7 l+ MBOOL TextCmd_ClearPropose( CScanner & s )- @1 m0 S; i4 ^
{( T" f2 F8 N. V/ n0 C. O
#ifdef __WORLDSERVER
2 A2 [4 Z0 | y/ }' ~+ Z CUser* pUser = (CUser*)s.dwValue;$ \# @* ~4 h' r# z3 N- p
g_dpDBClient.SendClearPropose();
- p! H1 K. O/ Y1 z& F#endif // __WORLDSERVER
5 Y& j8 u! j' x5 U- O# i; ] return TRUE;) q* |( K- w, R) y" o, Y- I3 y
}5 b3 V( v4 O: h
下面插入
* S# ~- t" H% z# C( _; p0 VBOOL TextCmd_rebirth( CScanner& scanner )1 ]" N- m# P' U8 w. D
{
6 I' {* `9 I* e#ifdef __WORLDSERVER
l4 x: j; a" O; x+ G; j; qCUser *pUser;
! Z6 Q+ x, P* ~pUser = (CUser*)scanner.dwValue;
' R5 o- b+ e$ |! r" _2 m1 Fif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ E; b1 S. ~* {6 b7 o8 Q- `6 ~0 z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 j( h2 U1 q! ~( p3 ielse' H1 {8 G0 O3 ~+ A" C$ a
pUser->AddText("你还未达到重生条件!");
" |' V$ J2 Q4 P1 [#endif3 d* l) o/ H% m1 [, v4 ]/ T, F: R
return TRUE;' o" s2 r' J9 i2 N4 X
} 7 b x4 ^, I$ \
) X. l4 b$ {1 I! C: H( H1 y) m9 K+ O5 v/ ~* G+ a! J" z# s, u
, Q* T, V) ^" w5 F1 t5 }' B
! f, F+ K! r9 E7 E1 C0 P0 N |
|