|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ p$ G4 e4 }8 C, w' a. V0 H0 I+ e9 P8 h
Mover.h
5 {* E5 o. r. B/ p代码:8 O7 b |$ [7 g) A+ ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ B! ~6 ^) C- I5 m. W2 A% }8 @0 W- G& V# g5 d" W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / M. J2 m/ k* m# @% P" M% w
/ j/ S5 a( v) S p
然后你去mover.cpp添加) d" k, Y, B' S8 e
( Y* M+ G; r" S代码:
, _. k( a# o% {; o/ s zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 L+ r9 ~- o/ K) [" O* f{3 _& Z; [' L) ]" r- w _4 W7 |5 t
#ifdef __WORLDSERVER8 Q0 _, w i w" k* h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 G. b5 H, I, F* W8 X. Z MoverProp* pProp = GetProp();
0 b1 W) D: w$ O$ v$ u& n9 b if( pProp )) _; B$ T* l( U. M6 y4 d5 Q8 ^
{9 o" a3 i \0 u" F6 e! w& r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' b6 V/ W& x h6 d {
% _8 c. x# D P# p' o6 I AddChangeJob( nJob );0 e5 X, W5 F! H! X6 `' F1 i
}else{
2 O5 g! u6 Y) P! M; p" }2 ^% G. [ return;7 I2 H2 o7 J8 m L, M9 s' w
}9 P9 Y; O* @( C" p$ l/ f, t& M
int nPoint = 0;% a. L s9 j E
if( m_nJob == JOB_MERCENARY )
& `: N- B7 ?) F: x" ]! X, X nPoint += 40;/ [$ a# y7 c: W" P$ |
else if( m_nJob == JOB_ACROBAT )3 v2 R8 \( }$ e: V1 L1 T; G. U w6 s
nPoint += 50;( H" A+ G- s8 t! F4 K T" I9 i
else if( m_nJob == JOB_ASSIST )% c& ^2 [; f# u7 K- I$ N& o. J
nPoint += 60;3 Q4 R1 a2 |* L
else if( m_nJob == JOB_MAGICIAN )
1 I' g( K) ~ `/ O! E4 H5 G$ x nPoint += 90;
2 h. j. e V0 L3 K# a" W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ }1 o3 Z: K) r7 Y) ^: {) @ nPoint += 120;2 f6 i- d* T$ [% X' ]" k" d9 c8 G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 M' i p* F2 }7 J nPoint += 150;1 N+ ?) B( K0 o( P' O+ g
else if( m_nJob == JOB_RINGMASTER )6 u8 X4 u w8 g( ]
nPoint += 160;
7 G, G: _( N- j; g% N6 k else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 }4 \- o4 h0 y* G) b
nPoint += 180;
2 ?3 N; p1 G, {! U% O. M) p8 e5 }' _ else if( m_nJob == JOB_ELEMENTOR )6 Q/ G" H% y/ Y8 ~+ ~
nPoint += 390;
7 Q7 A0 c0 U* m, l- z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 R/ j$ W+ m' E2 ?8 l nPoint += 120;2 k4 P6 G7 [" X0 O) L# {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 I$ H+ O! S+ s% j$ J" e) o9 h nPoint += 150;( P# n7 ~& ` W
else if( nJob == JOB_FLORIST_HERO )5 J, U- l0 `' ?6 I
nPoint += 160;
$ O# u( S( R( r* g- {% Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# c4 P% g$ K% `* P, f9 ?" B6 n m nPoint += 180; z& |8 J* \: t% x; N/ E
else if( nJob == JOB_ELEMENTORLORD_HERO )# Z3 a; j5 {& o* t
nPoint += 390;
" ]3 r4 H9 k5 E" q g8 F' A# x% K
AddSkillPoint( nPoint );) ]' f# T$ K: r- Z+ Y/ c$ g7 [
m_nLevel = nLevel;2 C! ^, W5 X, f" u0 E# r7 Z+ I
% t% ], A" {4 |+ p, g+ ] SetJobLevel( nLevel, nJob );
, h- B/ F! K; a m_nDeathLevel = nLevel;5 G9 q/ v5 R& p9 p" I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: S% w" {0 S# [ if(IsMaster())
: l) L6 N! }! E$ g {9 R0 k0 z' u# _6 m# m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 R9 U9 J' T! W K2 R/ |" u
if( nLevel > 59 && nLevel < 72 )( V' r# Y) \9 l' _
dwTmpSkLevel = 1; t6 x4 s7 `: w: n. J) }
else if( nLevel > 71 && nLevel < 84 )
( V2 v( O/ T# c a* } dwTmpSkLevel = 2;6 n: E0 t# j7 t4 o1 q$ \* u
else if( nLevel > 83 && nLevel < 96 )
7 z# ?5 `! d* z: a7 y dwTmpSkLevel = 3;
9 H5 A& p/ ]( H( S, w& a: K+ j else if( nLevel > 95 && nLevel < 108 )
' D2 |# C- ?0 p+ y dwTmpSkLevel = 4;
0 E! Y, r$ p5 D$ d3 W3 @/ } else if( nLevel > 107 && nLevel < 120 )6 D. ]# [ O4 c+ ^8 r
dwTmpSkLevel = 5;
5 D' `4 N% c* f for( int i = 0; i < MAX_SKILL_JOB; i++ ) : V6 c3 o' T% F6 v, Z! ~- ?& b
{ L T, F0 ^* N( V+ g3 p0 `
LPSKILL lpSkill = &(m_aJobSkill);
! x; i3 O* o; C, r- Q& q if( lpSkill && lpSkill->dwSkill != NULL_ID )1 Y: C3 t6 l: U) B3 U0 S4 |7 v. |
{
5 y" x6 f# E5 O) a: K: k! u# Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& W6 |! O( m1 t! t) Z* U4 ~ if( pSkillProp == NULL )9 m0 ~& a9 Q/ @9 j
continue;
$ ~7 T9 ~" j o; \" t" `* e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 I o }; q3 L1 [
continue;/ y4 X5 R( S: N, ~/ e# N( R
lpSkill->dwLevel = dwTmpSkLevel;
% H4 t: z i1 ?9 S" u }
" A; Y! r+ ]" @+ \, X# w. q r }* N8 g. D! X) M. S
}6 u9 M, g& W% W6 b! D
else if(IsHero())
* ^6 G; }: J% [( D/ ?7 q {1 G" q/ J( E- t9 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 D$ n0 C, P6 Y! | { . Y7 F3 U& I* G( t1 K. S* Y+ Q
LPSKILL lpSkill = &(m_aJobSkill);
8 J. {9 ]( ]: z9 M7 O if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 l/ P5 G1 N8 Z L {
* y5 [' ~9 P) y( S# x; \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 ?, `; w+ R& U; Q, M" Q) K if( pSkillProp == NULL )
5 B9 l8 p9 o3 y5 H2 `9 f* Z2 Q: I continue;
7 d6 T ~: k* T5 m" {' d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 [& O6 D$ q& J1 `7 {
continue;; P3 T6 \! \6 G, s" r
lpSkill->dwLevel = 5;
& U+ w7 f( f; `! Z }
3 |9 @4 a$ D5 m- Y1 r5 g# w* _6 _ }
2 X0 r) `' o+ ^) `" M1 ?, Y" K' M' Y } I: ], l, D$ `) Q0 J+ ]0 P
else if(IsLegendHero())
0 n9 Q: k# A4 S {, l. P/ W" C, N. ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) Q8 C4 O4 ?3 z3 _9 o
{
! v5 k/ h! d X, M0 K LPSKILL lpSkill = &(m_aJobSkill);
! n& c- ]* H+ h, i) \ if( lpSkill && lpSkill->dwSkill != NULL_ID )9 F: ]2 A3 r, L. s
{
) l, \1 r" i* H2 C, o6 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ t2 u- K8 _, L6 w if( pSkillProp == NULL )" Y$ Z. |9 O' I" Z2 T
continue;
: N5 d8 b! v4 s0 t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 U( @: B& [' i# V/ R z continue;
; |2 ]+ V; h4 o4 `# V: U% l2 x lpSkill->dwLevel = 5;
k: W/ w0 o, x }
8 c( v4 Y! C0 z: k }. X: O3 {, K# j S- e3 j
}
$ ?' y" j, O) q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; R/ b& n0 p' F$ P/ V
if( bGamma ) z% h7 g# }: N2 }3 G, e7 M
{
/ R* ~) v+ j# M- U/ g4 `$ C6 D m_nExp1 = 0;* ~4 }! E) Z: A) ?# H
}
/ P; B, a: \5 A2 s6 Q5 t9 r$ v$ u3 w- J4 _
( (CUser*)this )->AddSetChangeJob( nJob );2 }" [0 W; D$ r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 l& n# n/ t+ V/ ^1 J* s6 E/ ^& F! E4 W
1 `! k" u: D9 q8 O3 H- k
#if __VER >= 11 // __SYS_PLAYER_DATA
3 n- R5 y( b+ t; Z+ Q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; Z2 }9 @ T( Z#else // __SYS_PLAYER_DATA
4 U5 w, P& s. ? g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
b: i6 H# L8 o( @/ C# E/ _4 ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 w( n& G1 L. M4 X7 D
if( m_idGuild != 0 )
2 P7 S4 D# \9 D1 z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. p2 d9 l4 W4 I6 B6 t) ? O5 K
#endif // __SYS_PLAYER_DATA
9 f+ \+ H* u+ k2 v8 \9 q4 y SetHitPoint( GetMaxHitPoint() );* I$ V6 \# {4 q U2 ]! G
SetManaPoint( GetMaxManaPoint() );
+ s: [' h) L- G0 p SetFatiguePoint( GetMaxFatiguePoint() );( E# V1 p/ U" T
if( nJob >= 1 && nJob <= 4 )
. e# R6 E6 F$ r; _ {/ D. p) t' k( e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. Q- K' h# G+ m- a4 u9 d6 j9 F, ~% Q m_nRemainGP = 28;
, M6 ]4 K% D) \4 V6 r' g }: }+ f W) n: g7 @* n+ v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" T: h7 Z5 R; k5 A( w {
$ }/ o/ t' r$ w; ?! ^% @: f" F m_nRemainGP = 118;$ e' t6 t* z" i A* T. F6 D
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 `7 V0 c6 h- e) c" t2 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* B: {! ?! m" T0 U; ?3 E$ B: v7 X }7 g9 S* {6 `7 B4 z$ @2 V9 x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- C+ Y/ V* }5 H. \ G {: }) m7 m' X8 I( H4 x4 {
CItemElem itemelem;, Q9 p+ h' Q# |* r
itemelem.m_nItemNum = 1;
( u P" @' x& Y; W itemelem.m_bCharged = TRUE;
5 [3 x! n- `0 k; k# m BYTE nID;8 ?) [' X! K, e+ E4 ^% E+ `
+ h G" d) M$ @9 R
if( nJob == JOB_MENTALIST_HERO )' h' Q/ g+ @9 p) \3 Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 q$ x, N0 Q( E$ l8 p5 n3 v# J& D
if( nJob == JOB_FORCEMASTER_HERO )
! T0 i0 H" U. K# M4 B. Z _1 ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
q& Q: B7 m! m$ W0 I: `
3 _1 d' P( U: D0 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );% g0 T1 q4 z# b4 y! S: \
}
5 Q- ]8 H# M; b* N R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' ^0 W/ v7 u. \( B! t8 p7 ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- A: F! C/ ~" ~1 X8 [7 b& T, ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 r) ]7 ]3 A, s' ]1 f q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" z) Z2 f" e; v9 O) Y
( (CUser*)this )->AddTaskBar();*/3 `7 Z* N7 t: X; B7 X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: q9 M& u! K( Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" @$ F! z7 Y% C
((CUser*)this)->CheckHonorStat();( O6 s% l; o f& G0 b
((CUser*)this)->AddHonorListAck();
3 Y* X+ d5 G/ P* U# r8 v g_UserMng.AddHonorTitleChange( this, m_nHonor); {- A" m0 W5 u) Q y7 w
#endif // __HONORABLE_TITLE // ′Tà?
7 ^2 `0 n+ c- U+ @/ o: r+ L$ { }
# k, R- k# }) n1 W& H/ y: ~#endif // __WORLDSERVER3 h: c; I) h+ K; a$ z- n6 T% J
}
1 {3 N; }6 q9 [$ Q1 x; ]1 ^9 I" O, D
然后你进入functextcmd.cpp并添加以下/ @8 p& T$ z* k0 M8 M
3 q) G, A- p7 X% B* }- ]9 M& N
代码:; X0 d6 }1 V( C; H& _) F* S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 @9 y4 |1 s6 d3 _+ s
下面插入
8 o1 ~. ~6 |8 u9 C: b6 Q, }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 R R9 g& B6 q8 O! m: x; e
8 }; N* e; G; X8 R0 {然后你去
6 f- ^9 R2 A/ O; g, h5 [
z# \& u; r' F+ u4 M: t代码:
+ Y6 e; I: p6 `. J0 N- E代码
! C1 ~' A3 I' bBOOL TextCmd_ClearPropose( CScanner & s )
& F( T, w0 ?$ @! r. ?2 G5 l{3 B; z, W2 Y! L
#ifdef __WORLDSERVER
J% M$ L. B) z, B CUser* pUser = (CUser*)s.dwValue;
0 T' h$ O) i4 z/ ] g_dpDBClient.SendClearPropose();9 C5 B U ~. D* } z: E
#endif // __WORLDSERVER
) _) c+ `" N3 W6 O4 E8 ~ j return TRUE;# L' K4 S9 c7 P
}
$ c& x) X* C9 e% a# K; C下面插入
8 P& d+ P2 @$ R K4 n3 S5 F7 wBOOL TextCmd_rebirth( CScanner& scanner )
C3 |; v8 A2 J: A. U{2 Z8 Y+ M% Y- D3 n6 ~
#ifdef __WORLDSERVER
: N! K( ~% w' l9 W, M+ b9 r' oCUser *pUser;
7 {, g" g( q+ M4 ?5 r1 [1 gpUser = (CUser*)scanner.dwValue;- k* r0 n3 z3 W) c* w; n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) A. |( H S+ d. T* DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 Z: H8 R2 `0 x* m- t' `else
8 O( K& S! z) Z+ Z8 jpUser->AddText("你还未达到重生条件!");
; H5 j4 W. q& ~7 U9 X* x#endif
( x4 M! Y( {' V7 H Freturn TRUE;, K7 `6 ?5 L% \: h
}
" ]) s: v6 T4 Q0 @6 g+ O4 x0 s6 }/ h
: p5 ^" \. G: T' S( k
# l) r$ M* r: _7 S! t
+ p% N: S7 }# x5 R0 `' R" ]- @
|
|