|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 }' D/ K' x: ~0 J$ [6 q/ V, g+ O7 K* g- s$ R. A4 U! A: N9 I: n6 J3 y7 Z
Mover.h Z1 h. e8 Q! N4 g8 C9 R" q
代码:
4 ]5 Z- y7 I1 q: x, {7 a! G& ]& B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. i$ t8 C" P! V
) j/ @) m) _4 e) X. ^ ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " [5 O3 O" y7 W$ R! _7 h2 M0 }' ^
! _( o6 p; X1 w# h2 h* [( Y, A4 M
然后你去mover.cpp添加" O \9 w5 e5 X3 S) X% }; k4 x
% T) Z% p2 c1 S3 K; q, \- w9 ^7 }
代码:% }- |! z; d4 e6 M5 H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# u/ l/ E/ M% b& D& l) C% s# ^( K{
+ f- A* b; E8 x b- ?: ~4 L0 t#ifdef __WORLDSERVER9 n+ D1 P* V3 v# m$ {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: U) n" l# U: l2 M& V. W
MoverProp* pProp = GetProp();
4 K% l$ E( k; J4 a0 ]. l- G1 d if( pProp )$ {" D2 ]( g2 W% K
{( d- D4 K8 y% W, x# d) r7 G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. v8 Z2 Z" x4 s1 o) c8 U2 p {
" H" R2 b- F* c* l3 T6 j AddChangeJob( nJob );
\0 `7 x( s0 `$ o, \: }) V! O }else{
" U* K& ~8 I. y- B4 D return;
% T9 [1 ~2 U/ ?3 h* T }1 k, h) L m$ b& D/ Z& H
int nPoint = 0;* _: e1 @* x8 G# {. P- ]6 F
if( m_nJob == JOB_MERCENARY )
8 G v3 V( v( | nPoint += 40; B H+ l' R U+ v! |4 H
else if( m_nJob == JOB_ACROBAT )3 K6 S2 C4 [$ f& u2 \
nPoint += 50;: U Y) q& R$ f3 _/ \
else if( m_nJob == JOB_ASSIST ) m+ L- `: E9 @1 M
nPoint += 60;. Y9 g7 a9 u/ w+ B! `
else if( m_nJob == JOB_MAGICIAN ): }. d" p3 q3 `
nPoint += 90;& ]& @; ~9 b+ a% L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) T* a9 W+ b7 L# J# @$ ?3 K/ z
nPoint += 120;, a& T9 j+ z! {0 B- H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 X1 g4 r0 Q1 i
nPoint += 150;
$ n/ E' N2 F; v8 z8 L* K else if( m_nJob == JOB_RINGMASTER )
3 G1 M" _" K, U/ ]/ l+ ?' o nPoint += 160;
, S- @2 j2 l2 }) Y v6 m4 Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 ]9 B- T5 J: H0 G nPoint += 180;& r4 [2 [. P% A% u5 h; S& u
else if( m_nJob == JOB_ELEMENTOR )8 |9 M5 A& ?7 N
nPoint += 390;+ h2 P, a9 Q6 Z0 F0 ^9 I2 m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 s( n* h4 `7 V; |0 r7 S nPoint += 120;* y5 Q3 V4 a1 v% X0 k6 i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 u6 Z; g8 y, H. f, ]# {
nPoint += 150;, {: f* g( |0 A0 t! F6 a
else if( nJob == JOB_FLORIST_HERO )2 }1 t; w3 X2 P [6 }; }
nPoint += 160;
' }6 }+ s1 u+ M( p else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( }) t0 @4 ]6 f9 V4 ?$ L
nPoint += 180;0 Q* _, i. h0 J9 Z, ^4 l
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 v* o; W7 ~( j7 d. x" E nPoint += 390;
N- W* w+ n# u) w* H L% h; m' d- l* |( w
AddSkillPoint( nPoint );
7 F7 C- k2 E! f# g/ |: ] m_nLevel = nLevel;
0 n( x8 o! e/ v6 H+ d0 W7 U8 ]: Q! f- L
SetJobLevel( nLevel, nJob );
9 N. {8 ]* @$ U% u9 r m_nDeathLevel = nLevel;
/ D* M J G3 f* ]8 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: g/ n2 s) B$ l4 d! _4 s
if(IsMaster())
" |* y, s) d* L% J {4 Q e3 y4 T3 I9 S! [: ^6 _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( _2 d) h2 u2 |$ R- N* t+ Z$ j if( nLevel > 59 && nLevel < 72 ). S* P7 [1 O5 }- j0 F. u
dwTmpSkLevel = 1;& b* ?! t: K5 ^% D- R F7 n" Y
else if( nLevel > 71 && nLevel < 84 )+ ?6 g3 `/ }, b5 L
dwTmpSkLevel = 2;' P, n/ ?1 }- b: l7 T" a+ t
else if( nLevel > 83 && nLevel < 96 )
) t+ P+ H1 F0 D% T' {6 b! y dwTmpSkLevel = 3;1 n( ?- V: }, |% B' t' E: Z. N) g
else if( nLevel > 95 && nLevel < 108 )! w) g; s7 D2 g- u& n `) c
dwTmpSkLevel = 4;
% C* b% x! v6 w3 i else if( nLevel > 107 && nLevel < 120 )8 Y3 V7 I% ]" i
dwTmpSkLevel = 5;
% ]+ S3 d' ]5 N for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 L, |: m) j% I
{
: g* @" k6 N5 n# I6 j1 K6 I LPSKILL lpSkill = &(m_aJobSkill);3 e) A# k* f) o- g& | X$ H# _7 ?1 j; W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
Y! C( S% [- m( _ {4 J% E2 W- H3 H0 m1 w3 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ H6 y! D! O0 S
if( pSkillProp == NULL )- T4 y" h X8 _$ n9 E/ \) A
continue;
, r/ m, t1 i& i. ^: c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" N% Q) F$ }, Q# U/ t0 ~% e# c' \, w continue;) {7 U7 {; V9 b9 S6 \6 t# s
lpSkill->dwLevel = dwTmpSkLevel;
, C8 b4 p K: m0 v; y2 j! I; K }2 Z4 R( ]7 X7 Z g0 u% m
}
) ~1 |) ]( h% f }
2 e9 Q. O* ^' c) J8 I else if(IsHero())
+ M+ P+ U4 m: }; H, S {
0 n. c' _/ z* }7 P/ T for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ w& N* l, A/ _ { $ x" Q% q" _; ^1 M$ [9 n
LPSKILL lpSkill = &(m_aJobSkill);
% ?* l6 T" z) {, @8 X! W0 {8 g( ] if( lpSkill && lpSkill->dwSkill != NULL_ID )* i% [5 d: o' R: ^
{, B7 V2 _: [- J' a* u/ |4 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* H$ S( k1 {* m7 f S if( pSkillProp == NULL ) w; U; q2 D- }1 e! N
continue;
& y3 ~8 j' {& }% X# F$ o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 Q1 ?5 J0 i3 G! k continue;
' Y& T4 S3 Y5 r- @. u6 z lpSkill->dwLevel = 5;
! r1 x2 _$ o0 }- s% r$ {9 | }
! u+ X$ K. Z# ?* D7 ` }
/ P7 e, [/ n0 l. k: W }
) p/ U1 l* k" n5 Y0 s* Y% N3 x" m else if(IsLegendHero())
, A7 U5 ^- d* Q7 r* H1 L! n* X {5 i+ U# C$ k( r9 l# R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 l4 L( l+ ~# l+ U5 H {
5 t. r4 { W! P# W LPSKILL lpSkill = &(m_aJobSkill);+ z# ~2 O2 U9 a1 f" k! M
if( lpSkill && lpSkill->dwSkill != NULL_ID )( Z% h& h& H1 B/ I: s
{( A# M2 x- T; }* w- I% ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( T. S8 D# r! \" G6 s4 A, r
if( pSkillProp == NULL )
- k" Z2 {8 p, O- D" y" H S0 R continue;
* n6 A9 z6 H8 H9 P N% A( | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! b9 C4 n0 |* ]$ F- a# u5 R1 G
continue;
% F/ K$ m8 t: M1 O lpSkill->dwLevel = 5;
: e% |. h1 s! T! P }& q: i$ ^, T: J3 ]8 b
}% l% h2 k7 N" W) V$ k* d) I. h
}% t9 T; r- \1 s+ z4 u# q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; D' _8 O0 ~" f2 v" ?- O
if( bGamma )
, R* F3 R5 U9 l4 L- C) L4 Q% l {$ |) a. U; @) T- Y
m_nExp1 = 0;$ V% y" Z+ c1 y2 ]7 y
}" \# |3 _8 x4 Y' A
2 B$ n: A! G0 @
( (CUser*)this )->AddSetChangeJob( nJob );* g% ]$ j/ R) Q1 R7 i) a) ]& z% L$ Z$ {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& r/ R: x+ t' |3 P
. `( _4 d1 H- z
/ f% P! G7 C) p; z4 _2 o7 h#if __VER >= 11 // __SYS_PLAYER_DATA
L7 \' r9 L% {. ]" F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 F6 E# Q# V+ W2 {! W
#else // __SYS_PLAYER_DATA! |5 i+ [0 z/ R' D4 z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 w, e: Y- H! |( m) X% T g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( U/ L2 e0 [! e; c( z
if( m_idGuild != 0 ): Q( y. n6 f8 n ?, F2 ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; {- N4 ^: Y# G4 I. P#endif // __SYS_PLAYER_DATA
: E6 b" G) |$ l+ B- L SetHitPoint( GetMaxHitPoint() );
* o6 `% J) S9 d1 h/ v/ {& Y& b* h SetManaPoint( GetMaxManaPoint() );
7 x S+ R! I2 F- U: h; J SetFatiguePoint( GetMaxFatiguePoint() );1 e$ I+ [) | p: j8 d; P1 o) y
if( nJob >= 1 && nJob <= 4 )" d5 E" Y! @! ?( m* M& k& ^
{+ z2 L' w& P4 F8 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 {5 k, ]$ j6 o. N/ L r/ p
m_nRemainGP = 28;9 C! I, E- M: s9 t; h; ]
}
b5 q, }+ Q+ D- B1 K if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ }: a) E. }$ D9 K6 j: P. W
{! J: J. A7 _9 C/ ]5 e. [
m_nRemainGP = 118;
4 D, O8 k0 w! t1 o6 |& `' ?! @* z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! `% I8 k8 R9 w3 h. S m_nStr = m_nSta = m_nDex = m_nInt = 15;1 ^7 ?2 A8 l' g7 {
}
- G% r6 l) ^! X2 F, ^* { if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 H9 u7 y5 l7 S# z. q+ {/ q {
8 t' C0 g* c# ^& y8 D# l+ D CItemElem itemelem;+ B4 V T' w$ ?2 f' p
itemelem.m_nItemNum = 1;
, e- R+ O4 B$ r- M itemelem.m_bCharged = TRUE;" c4 x9 Q$ s* o2 Z" t. c2 p; G
BYTE nID;
* c+ Q2 c, r0 }1 ^4 j/ b4 ~ a" D/ k* v7 k, p+ D
if( nJob == JOB_MENTALIST_HERO )
4 e- r% D0 T( G J4 w: ^5 s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
i% F% S) e1 i: C if( nJob == JOB_FORCEMASTER_HERO )
6 L( R1 ?7 Z0 Q H itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;0 G3 R( u$ {; Q$ a- _, n
/ ]( p- O( X9 R ]" }# Z" b. b ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ m2 G6 d' O6 w) O' u }4 r) J- Y. n0 w5 J$ G' d, c8 B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( w8 \6 t0 ?. O3 H; U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 a6 O' Z4 p0 S: x, x7 u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 B+ F: r2 B5 k! O: n* C" M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% G. `" w- C: b: b0 t
( (CUser*)this )->AddTaskBar();*/
f }% R7 k: N8 ]# a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ c) y" \! A2 E8 A" _ o9 M- r* G#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 `, T' h1 L% }) x ((CUser*)this)->CheckHonorStat();" l$ j8 A% Z; R! r O
((CUser*)this)->AddHonorListAck();
3 k4 `3 q# g9 F3 j& h, D g_UserMng.AddHonorTitleChange( this, m_nHonor);- U7 y; a% O* t7 D$ l
#endif // __HONORABLE_TITLE // ′Tà?
4 J2 c' c! Z3 _, m( H" \9 h }
6 C; d4 B V! y#endif // __WORLDSERVER" F( G5 s) W" b8 ?2 u/ E0 W6 D
}
8 d9 g! d8 A4 \( f h! Q' @2 e
0 y! j$ K4 F- K3 G2 h/ \! T然后你进入functextcmd.cpp并添加以下
1 R! V0 ~( h* G6 c3 v, m) Z5 `: t% v# l
代码:" p6 {% P4 F$ Y+ h6 _5 |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 { j9 k1 Q% f4 a; z下面插入. v- @& E; { }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 t. u9 D" h* E4 y8 e+ m1 Q- W' X8 {1 [
然后你去3 A& \1 y0 z a1 @2 e! c3 I& I' L
; w x/ H8 S) Q9 Y. l; f
代码:! B' I* ] m2 S5 X
代码
$ g. \; u3 B; O! z: dBOOL TextCmd_ClearPropose( CScanner & s )
$ F4 X! D. j6 \{ C8 q3 [: J+ I [
#ifdef __WORLDSERVER
M- e& b' R2 d$ }5 O! q CUser* pUser = (CUser*)s.dwValue;
$ p4 P/ \4 f! s' ?8 }. S g_dpDBClient.SendClearPropose();0 L2 a) a: S# v0 i! E
#endif // __WORLDSERVER' {$ ~5 z8 ]$ `- _
return TRUE;$ [; I# b3 }; w6 f8 M# x
}
9 q: |: m" f" O% o下面插入) Y. [ G" x4 \7 w/ @
BOOL TextCmd_rebirth( CScanner& scanner )
6 L$ r; r0 Y0 M! P+ E{
4 G- Q0 C8 x( s, o9 h1 i#ifdef __WORLDSERVER
0 K2 t' ?( b7 XCUser *pUser;* v/ U7 M: B3 B: K' j8 K, `
pUser = (CUser*)scanner.dwValue;
3 _( d k2 @# J' X2 Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 d" k7 T) M; k9 g% w7 U: m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); r* P% I+ |2 e& D) r
else" ]" Y) N {& Q/ B @6 V1 h
pUser->AddText("你还未达到重生条件!");
$ l2 W9 P) t7 j2 j6 q#endif
. U5 m; G, r' V2 B) F; \- Y" Creturn TRUE;6 ?* j5 [0 d4 J1 \5 ]9 E
}
4 k, J: p. |& Y2 c% \$ q& L* t1 |2 V$ l, a
1 o: f+ n6 R$ |* ]
% J( l9 P( C% k% u8 M# A( y x9 H9 L; s% i$ Y& n6 O/ {1 q
|
|