|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 o2 ^. K5 J# A. K: Q# k1 @4 N9 x# o4 M
Mover.h4 Q: q5 n0 i; t0 K
代码:( g1 Y5 N9 h# ]+ ^ q& w6 n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# u# H) R2 r8 j3 A$ L% N7 B# J8 `$ ^# H3 A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" k+ i! X/ ~) ^# q" _1 }
! F' a0 x/ f/ A+ g; T. l) \然后你去mover.cpp添加
5 g, A7 E% Y" Y' A. p9 ]6 o9 j ]& T {+ ?
代码:
% X/ i( `$ r* M; E% d$ q) Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ r- t. w r5 I" ]
{; D% W- h, a4 B! R: |2 u8 j V
#ifdef __WORLDSERVER
$ R6 a) V# }- r1 s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; c8 v) b1 L6 r( Z" b. U
MoverProp* pProp = GetProp();
' \# S+ L B J) Z5 a- I0 @ if( pProp )3 F ^6 g" g: t; }0 Z* E' w7 F9 a
{
0 x; J. u5 E' m( ?0 R5 ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )* s; N2 g' N6 Y' }5 _2 b4 }8 i
{ P0 m! k& ^- l& r, {2 ~
AddChangeJob( nJob );
8 J5 g) T/ q2 V( S: Q }else{
! E4 W0 k! L4 v: [' u* C0 T return;" N5 Y7 ]8 @% @: g2 q: w/ H
}4 A' A! u8 I$ t4 \/ g
int nPoint = 0;7 d7 {% a4 k; K/ K8 d% P( R
if( m_nJob == JOB_MERCENARY ); S; ?; @3 r! G' _( ]9 m, j
nPoint += 40;
' f8 W$ G; g. W- ~9 S- L) Z else if( m_nJob == JOB_ACROBAT )
9 e7 _- t7 H& f6 s0 z ?. O9 J nPoint += 50;$ }6 C8 I2 Q4 r( G6 p6 H
else if( m_nJob == JOB_ASSIST ); b2 h' F3 B" h8 X: z
nPoint += 60;$ a) p4 H7 j2 w: J3 D; ^/ n
else if( m_nJob == JOB_MAGICIAN )
' i. v. `; j' Q0 {3 V4 T nPoint += 90;2 V9 W2 m: G; S3 v" r& m6 W% m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( \- t6 {7 e- h' \4 l# f$ C$ V nPoint += 120;8 |6 B# |/ h! Q! C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); E/ u8 Y, ^) Q$ {' @& A
nPoint += 150;# x7 V: _" G# C& P3 t( w
else if( m_nJob == JOB_RINGMASTER )
/ ?* i: c9 c9 b nPoint += 160;, I1 ]# E/ v( t4 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! @7 A9 K; r+ c+ D8 y/ Q. D0 _* P nPoint += 180;4 ?6 m v7 N/ h# V( H
else if( m_nJob == JOB_ELEMENTOR )0 K3 y$ ^/ j9 T7 {) @7 K2 Q
nPoint += 390;5 |( S0 M+ ]( q) v) `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ V* ^, }( I8 n s$ p& G
nPoint += 120;, T; ^9 ]4 |& _
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 B# Y: |. f9 F8 c" x7 H8 [* n6 f
nPoint += 150;
/ g$ |1 ~' v- Z$ t, `, C- ]. K else if( nJob == JOB_FLORIST_HERO )1 o) H: ^3 v/ s; u. N z- ]2 h
nPoint += 160;
( ]! E% |5 Q. ?; Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( |% `6 A& u- r, _5 i nPoint += 180;( j4 n. a" y. K3 r2 o. o9 f
else if( nJob == JOB_ELEMENTORLORD_HERO )/ }3 f- {" R& z
nPoint += 390;
- K F6 g* V7 g) b, x; ] @! Y% m) E- i! M L; \/ [0 X+ ]1 K
AddSkillPoint( nPoint );* d( B: s/ O" T
m_nLevel = nLevel;" {7 ]& C' I/ u/ u
/ K# c$ c$ l- y1 u3 B' R* O6 a
SetJobLevel( nLevel, nJob );
! }; X* I: K* A! B2 P+ U m_nDeathLevel = nLevel;' [7 H& B7 S3 `" R4 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; V* m, }7 y1 y if(IsMaster())
% s# u1 [$ F; }8 R J. c5 T6 q {
4 b3 r6 f$ C% R; x$ y1 _ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 x7 v! C1 T, m& |) B+ v
if( nLevel > 59 && nLevel < 72 )' G; r: \4 J3 x/ Q, {7 U
dwTmpSkLevel = 1;6 y4 ?0 w6 t: \( m' E
else if( nLevel > 71 && nLevel < 84 )# o0 j# A* y# }: |) M2 [
dwTmpSkLevel = 2;
- g; E. O: @$ z else if( nLevel > 83 && nLevel < 96 )7 }6 ^9 \" ?. t1 v$ S1 N! f, [1 }
dwTmpSkLevel = 3;
! k) O5 y) ]; r) k, Q6 J5 R- d else if( nLevel > 95 && nLevel < 108 )* d+ T3 i( |, E, K( Q" p
dwTmpSkLevel = 4;2 n+ Y. f2 A* `8 M
else if( nLevel > 107 && nLevel < 120 )
9 a, R' D" j/ K& S# B- m/ @# Q5 } dwTmpSkLevel = 5;
. T' v. \4 G) Y# M; l/ J- Z/ K for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' s: A$ C9 c2 i' C, u
{
" v7 j& ?( `/ W7 Q LPSKILL lpSkill = &(m_aJobSkill);( f4 Q' Z" [; ^6 X1 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )% Q# a) Z. r" \2 D$ x
{, ~- _* M/ M* t; ]1 \7 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; p. b1 {" J8 K. ]; x$ n) g) ^
if( pSkillProp == NULL )) B+ i6 x u$ f' @
continue;
B9 i+ q4 R. Y3 \$ c8 V. o! E. | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 b; G4 q6 I/ y" e* } continue;
$ t; S% }; P# n. s lpSkill->dwLevel = dwTmpSkLevel;9 \1 \4 W# b0 d# L/ ?1 h
}
2 u, k- a D% ^/ X2 Y }
% z7 x- C- U# P }" }, K) |- p G* s# m( _& L
else if(IsHero())
2 m& V% v7 x% _# b {* P2 }3 M, [* e! h+ c" ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - u5 h' |' ]- C t8 F: j/ K
{ 4 r$ q* }: Q1 E7 @& z
LPSKILL lpSkill = &(m_aJobSkill);" w' V0 f* X3 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 b2 ]+ o9 Y2 K4 x, g7 G {' n- {& m& R" d4 c) D0 G$ } W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 @; a4 B6 S9 n; |6 G Z! @: q; [1 j
if( pSkillProp == NULL )& w* Q$ W2 W y
continue;
) ~/ H' Z1 A" d" A5 o3 g& \0 T" y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ `; G) b3 B% Y" M3 w6 y; _ continue;
) c* x- E9 N) N lpSkill->dwLevel = 5;
( x% a$ T0 t8 f) x }" s0 I F ?1 Q5 B+ a& M) d
}. F+ ~/ X& |" |4 A
}
! E5 }- h L9 D8 c: T% Q9 E else if(IsLegendHero())) z9 t" j9 |2 \$ s: K* f/ e4 k
{
k' P. v5 S0 f- X5 U0 d; K for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 {9 |* J) Y$ d" e, t7 q! f2 y- z
{
- G7 F6 e% i1 p2 S! E: ^ LPSKILL lpSkill = &(m_aJobSkill);+ O! k* ]! \# S4 J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
h4 F9 o8 }7 u7 F: j; ^' C {
# l/ N8 {, D) O& s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# }7 b# X5 n. z0 e6 ~* F if( pSkillProp == NULL )
1 K, ]9 u& E. ]' M0 m7 g8 i continue;& p4 _& V( w( g9 ]8 S, J" B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 d7 c+ w- a1 ?8 c1 ^ continue;
+ S" i5 J4 O, | lpSkill->dwLevel = 5;
* g" B W$ O \ }
+ a/ L+ D0 E( b* }% ~0 J }
; q' q p& g8 }* R }; d4 K* W" N2 Q7 ~4 n" e) o" b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: Z& K& G5 K$ d: G
if( bGamma )
1 y' g6 S O, q& O8 T {
/ L$ M" ~! K) A% j( m* d m_nExp1 = 0;
4 I9 z! Q" O% b. g* [ }9 n4 Y7 S# V( v4 {3 @
, q" Q' q @4 R1 p6 T& E# l6 s. X' q
( (CUser*)this )->AddSetChangeJob( nJob );1 f) a) L2 w% L8 H/ @9 ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: W4 T. a" C6 p
( P: j6 Z( i. u% X1 K* F% @
9 E% {: e) z( d, U6 u/ n7 p#if __VER >= 11 // __SYS_PLAYER_DATA
|5 \3 K# r0 N3 C8 {6 w8 Q; O0 [ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 v5 ~* L* A3 x#else // __SYS_PLAYER_DATA
s& w3 q' H& E$ i1 ^ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 S2 R2 T4 _9 B# P; S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 B( O' m# ?% C3 R3 x* K: r
if( m_idGuild != 0 )% ], Z3 h1 u5 I: \2 p7 b; P, d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ ^* |% W2 `- a8 O2 V& T
#endif // __SYS_PLAYER_DATA1 U+ F0 Y) ^" _. X; M
SetHitPoint( GetMaxHitPoint() );
3 D0 j1 o' V+ L n) M: J9 F SetManaPoint( GetMaxManaPoint() );
1 {- L) L8 H+ i* |4 r SetFatiguePoint( GetMaxFatiguePoint() );
, X) ?4 v4 M1 M5 c& e if( nJob >= 1 && nJob <= 4 )
1 V9 W; ~0 E& I5 P) z {6 S2 a7 a8 [* U( s' c8 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: d: A$ W% P0 n ?! a$ S m_nRemainGP = 28;1 R |0 j4 U- b* _: A
}$ G+ }- j8 M: f# n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ J$ e1 }4 w$ ^& F% [
{3 P+ F Y; g% ?
m_nRemainGP = 118;
9 m: P) Z% C# i" d x //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' L9 X/ J) y H3 O4 h! G+ [8 o/ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 _* ?' D1 l" f4 |3 p }
7 ?+ c2 B! v3 o( q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 U+ v8 s$ W, K$ f
{/ t4 q2 z& T& C8 m \: s2 c
CItemElem itemelem;
; ]: N5 X+ j$ `8 j l% y/ I itemelem.m_nItemNum = 1;
$ f, t7 Y6 L/ ]" ^+ t9 [ itemelem.m_bCharged = TRUE;
) J& r8 [9 \4 y: ?% o) b BYTE nID;
8 a( Y$ q( [% E: R0 r7 W. q- y! }3 a5 z" P( X7 W% j6 }
if( nJob == JOB_MENTALIST_HERO ), {0 j# v, g0 x e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; O3 `/ u$ @% S# G! B6 P
if( nJob == JOB_FORCEMASTER_HERO )3 u! i, T5 K0 \! r) U ^5 B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: D2 w+ F$ |8 X/ v+ n |- N
% U+ E' I0 f/ ] ( ( CUser*)this)->CreateItem( &itemelem, &nID );, ^3 P S6 C+ }. _9 c4 `
}
" m8 P" M4 T+ m% x9 z/ m9 Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ q9 y% T6 z+ x) b4 _4 B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; O' r3 S! M, O# ~. q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ h* h1 `3 a# M ?1 A: b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
f5 M; h' Y4 u3 |8 @ ( (CUser*)this )->AddTaskBar();*/
* j! W: [4 m, R5 p, j# |* v ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: W2 f9 X/ [* w. i# V/ b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% j0 E/ k. G6 e
((CUser*)this)->CheckHonorStat();
& R {: M6 o8 Z6 }6 Y ((CUser*)this)->AddHonorListAck();, v4 n! Z5 D+ H) ?7 y7 a
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# X0 w1 }! E3 L#endif // __HONORABLE_TITLE // ′Tà?! ?4 `( i3 g. k; ]) i7 V% w
}; {/ t2 u8 S& i# F5 N
#endif // __WORLDSERVER
4 D# w) Q0 e7 f9 T} 1 e1 `" S! |3 U; n+ c' k' |1 a
2 v- J3 V3 n& i9 f% v5 n9 a* w然后你进入functextcmd.cpp并添加以下$ r) Q2 Y' ^& _% @0 s
0 W1 a3 B) F5 B代码:
$ p" Z4 `. y( G4 ~/ n. }. |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 r- }* ?; n3 c' B3 o# i
下面插入
+ Y3 h2 M: U& _) P, fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: m, o7 z0 B0 r6 K" R- F# ?
3 ~4 z) B" B _8 v+ O然后你去
8 {, F9 l6 l" b9 `% q
4 k9 N$ p8 ?6 q代码:
8 S: m1 f* ]. {7 J$ }代码8 U% _( ^: N+ }
BOOL TextCmd_ClearPropose( CScanner & s )- m2 W; U: ^* a) z
{
8 f7 F- v2 ^3 N' ]#ifdef __WORLDSERVER/ s; _9 f! q) ? m& x# x; D+ t; |
CUser* pUser = (CUser*)s.dwValue;5 z. }* R# @3 p( o
g_dpDBClient.SendClearPropose();
) F; J: p7 K7 k7 z#endif // __WORLDSERVER% `7 \& L* T) ~' M& h! t! K2 z
return TRUE;% j& s, W! ^( Q
}
4 _% M6 i9 X$ |$ E8 A. o2 }, ?/ L下面插入. G2 l. V( x4 \& D) E( i: v: u. s
BOOL TextCmd_rebirth( CScanner& scanner )
' e- f) ]8 R4 X% k7 h( d2 m j{ ]4 s. ]5 d7 \1 z2 K
#ifdef __WORLDSERVER" M! \' ]1 C9 G. |6 p( i" Q
CUser *pUser;
! W+ c( t9 e3 QpUser = (CUser*)scanner.dwValue;
4 E. t8 P) v! X( P) l2 ? b$ o* Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): }; o' ~0 B6 ~0 s# w/ C& U! }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
j$ F" M9 L# X( ^+ Z" Qelse
1 R- r. t' M* f% D, D$ |0 DpUser->AddText("你还未达到重生条件!");* d0 v8 x$ r% x" R( }5 o: y8 {4 c" _
#endif: y) C) @8 j! ^0 p7 [
return TRUE;2 V7 K: u" Q/ ]) Z: W2 s* }
}
0 g+ {2 T% k" b% s6 _! f# h
6 \0 s- U' z. v: `' J2 h k: r" c% a
: e2 w8 @& f; @: z: F
" u" C3 ^. Q! ]/ D- }$ P* q
|
|