|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 J1 Z0 u: M$ ]! I8 Y& Z, p" I
* c2 V5 q1 [! B3 hMover.h {( C. n A0 I& x m
代码:
. z4 u, A; I3 R* O3 F$ A找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# k' e. q4 N- I6 @6 Z5 D
2 N% U7 H1 V+ I$ ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 w7 ]2 [- a" c: O7 @- ?. q2 {/ Q
然后你去mover.cpp添加
1 H' T5 i) Z" C1 @
( w/ S& @7 \, L" g4 K代码:2 |0 G# t2 N% e
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% H. {: J/ v o5 I{7 o+ x& n- `5 z- h3 o7 O
#ifdef __WORLDSERVER- T+ [. J( ], L& U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! X' `6 d$ ~1 f* |. V
MoverProp* pProp = GetProp();6 c. ]1 [6 L2 ?( W: s' o
if( pProp )8 c% v% v. h. n6 x
{
- }2 I( `: c z. o if( nJob > 0 && nJob < MAX_LEGEND_HERO ), v6 A1 R1 Q3 F- t
{' s G, j# S$ h+ G& k; i
AddChangeJob( nJob );/ R5 |* f! d, v+ t! l4 M/ \3 M
}else{) ~0 j7 U+ b4 L5 o' X
return;
8 J4 U7 v. K# `7 U6 u- j }6 ~! E% v0 Y( ]6 r: i3 `. s
int nPoint = 0;
4 F$ G/ z/ o0 h9 K4 J% b if( m_nJob == JOB_MERCENARY )
+ y7 x! Y2 C" |4 C7 t+ u$ {, ~ nPoint += 40;
j6 ^5 \; d5 F; u% I1 `8 _ else if( m_nJob == JOB_ACROBAT )
1 F3 L: w( Y( d5 o; T nPoint += 50;
, g2 U' B" p9 U6 S: D1 `$ }" i8 c else if( m_nJob == JOB_ASSIST )
: x2 r1 }# X- p3 f8 I4 M nPoint += 60;* C V. I- N" g! @3 ^- ?' ^( _) |
else if( m_nJob == JOB_MAGICIAN )
* w" \5 ?7 G7 g3 w0 X nPoint += 90;3 E5 o4 Y. Q3 p* k9 L" M2 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ l6 g. X, b1 Y' X, g% k8 G+ ?! j9 U
nPoint += 120;
/ h# g6 z" h" W3 c( ?2 k else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 @% t4 _0 t( o c, b& D c# e' { nPoint += 150;
0 y8 C' d. p: f! \1 e$ r5 I* A else if( m_nJob == JOB_RINGMASTER )
6 [5 n- B, S& A2 n nPoint += 160; m3 L6 A! B- O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* t8 X) t. f8 H
nPoint += 180;
) c1 A7 K8 Y" I- K) O2 L. u) i6 ] else if( m_nJob == JOB_ELEMENTOR )
! Y) u( m! k" W5 S( m# r nPoint += 390;' ?' U* A5 v5 {" w* y% o% F9 m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) L% t* b) O3 d, g J; h, I8 L( `
nPoint += 120;
4 ?% i/ {' Q& P else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 `" I% N0 @/ P
nPoint += 150;: u( a# @/ J2 }: N6 N8 l
else if( nJob == JOB_FLORIST_HERO )
7 M9 J4 Q4 I2 ^! Q nPoint += 160;/ k+ Y( w6 y4 v. t+ k8 _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: O4 t' y6 j Z | ~3 R# ` nPoint += 180;
" i5 q+ _9 ?: w else if( nJob == JOB_ELEMENTORLORD_HERO )
5 k4 V& g6 R( A" |9 j nPoint += 390;
) H: g! {! D5 Z+ D) m
6 f/ [ B p6 K AddSkillPoint( nPoint );+ O- _# `9 k; _* e% A
m_nLevel = nLevel;! \, Y( K6 D0 r
1 m$ S' h# ^* j- }8 D; L* ^
SetJobLevel( nLevel, nJob );+ Q m1 b6 ?' I9 Y: _' T# k# g! M
m_nDeathLevel = nLevel;
! c& c+ i$ E1 ?% z9 e+ x7 d& f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ Q1 `1 x# I; G9 i. h if(IsMaster())
4 C! ^' X1 P0 C {
5 T! g8 I6 C v' `2 O int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ {+ W' B( u+ q' k& _ if( nLevel > 59 && nLevel < 72 )* k. V* B j. f% z; V
dwTmpSkLevel = 1;
4 N5 K* ?0 _8 C/ ?: F else if( nLevel > 71 && nLevel < 84 )
) r7 C9 [/ r2 E i dwTmpSkLevel = 2;
* i' J: q8 `+ P else if( nLevel > 83 && nLevel < 96 )
& ^1 l6 r1 [1 G! y5 w5 F dwTmpSkLevel = 3;
/ R$ x3 s+ [$ i6 S+ L& T7 A& y2 X S else if( nLevel > 95 && nLevel < 108 )
2 y \! t3 [, K: C: W" S dwTmpSkLevel = 4;3 @( Z" d3 n- A. V
else if( nLevel > 107 && nLevel < 120 )
( Q4 F) D3 j5 k' K' e, v dwTmpSkLevel = 5;, `: c% a- w5 Z( T/ s) X+ `5 u$ ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! E {2 T9 g+ o% y {
7 b8 \( x( @+ @0 B( Q LPSKILL lpSkill = &(m_aJobSkill);
1 u# P: F A- k if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 j* T; Y) q3 P {
; m- b: U+ U, _5 v. K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ }) a N, K; h* E% {# H9 F" G if( pSkillProp == NULL )8 H% x6 W" q* @: H7 p
continue;0 D" G- q! Y% }3 i' ?* y2 k& ~' s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 n2 T9 |3 \$ p: M/ K
continue;
5 B/ x/ B2 c# y; X2 E3 Q lpSkill->dwLevel = dwTmpSkLevel;0 `5 Y( o$ G; H/ R; f# }2 J' M
}
; r4 E$ x }+ D8 ? }; `; w: S; Q4 M8 g7 x# x. V
}
, x$ n, v( K* i& F" T4 _# B1 H else if(IsHero())
* u4 u: R& q9 s. \. |1 S {+ Y" V6 E7 J( B, Y$ }% Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 A1 ?# L4 b& a! I; `6 g { # [$ P K- e& Y1 l
LPSKILL lpSkill = &(m_aJobSkill);
1 O$ i. W3 T/ M3 T2 I4 C+ ] if( lpSkill && lpSkill->dwSkill != NULL_ID )# t; @: }5 D% o5 Y( u! {( Y
{
8 x6 v+ N# v* L# \" m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 R* M! N% W3 Y4 z; g5 X5 Q0 F if( pSkillProp == NULL )
$ S0 d2 s0 K, H3 G; @ `- M8 Y1 ~ continue;" L7 s, u! c$ x# x. M, `. v# F# Z0 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% k# H$ C, X% l6 w7 Q continue;( {" f% ?4 L9 }% Z& H' G
lpSkill->dwLevel = 5;* L& I. y- h. K% H# p
}
! ^: e8 B0 E% X5 k0 W# w8 @ }3 E4 C" u2 Y. y S# L9 N9 ^ V
}& E# D& z. c2 Q
else if(IsLegendHero())
, F5 I9 _- n/ ]9 y8 R# R; n5 w. W4 _ {
( {$ D1 \, k. E1 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) % J% P7 x& m; v# @6 o+ N! x0 r& F
{ w: }- S7 ]* A% ~/ j7 b
LPSKILL lpSkill = &(m_aJobSkill);
) D+ [7 a8 m9 a* t if( lpSkill && lpSkill->dwSkill != NULL_ID )( o% W2 D. u! |* l
{
: U4 u) n# O* F- J8 Y) [/ O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 z3 w }; K3 p, {$ S1 l if( pSkillProp == NULL )
: g: |0 B7 d) j5 O2 p" | continue;; E. x( ]5 c* g. w% O( J7 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 r! X3 M3 v0 J/ {4 M- F3 M continue;, b' t& i+ A+ e7 ?, C- ?
lpSkill->dwLevel = 5;
; d t, n: n4 ?: W& x1 s) ? }, \, P: W, ]& B
}! {3 m" |$ V( G2 K9 J; `
}
. G$ `1 j0 f: n3 e5 @8 {1 c#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- E v4 l1 G0 ^) Z
if( bGamma )
# D' v7 D9 ~! R8 N( G8 Q* I {
* \% f. R% h5 C! A8 e" r& { m_nExp1 = 0;% ?9 T' @* |& m. x) f9 C
}
/ H) g, \' Y7 S/ {! h8 f% b
6 Q5 R1 t, J& i D! N ( (CUser*)this )->AddSetChangeJob( nJob );
8 _( H) s$ N* ?6 K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 W/ ^6 R' Z" T2 @" f( @3 u% {- o; C& w: q
* c. }+ n3 z3 W5 ^
#if __VER >= 11 // __SYS_PLAYER_DATA
1 Q8 i5 `' R9 q* Q4 @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# Z7 i5 l; W( m/ Q& L
#else // __SYS_PLAYER_DATA
9 |/ C# o, C# q3 F2 @- c# i9 B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 n/ k2 w( T/ L7 h3 n% k( a, U/ |: |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. ~- ?7 g/ Q& H& L* U' D3 V
if( m_idGuild != 0 )
# ~* T0 A& l9 s9 [) x& y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! J5 `: Y# B, i; ~3 e( h
#endif // __SYS_PLAYER_DATA5 Y3 `6 I+ c9 k4 x" u4 ]
SetHitPoint( GetMaxHitPoint() );
! T1 K7 H7 k- }( c3 c' B SetManaPoint( GetMaxManaPoint() );/ C) U2 n5 f6 p/ T6 V0 Y
SetFatiguePoint( GetMaxFatiguePoint() );- }% J5 |- v0 u1 _; F% H8 c
if( nJob >= 1 && nJob <= 4 )3 I3 k) J! j" X/ S& J# @. E
{9 V3 c. ]% R" x8 X# u' p! r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 p$ U0 z, C% C; A7 [( K m_nRemainGP = 28;
7 H& w; B5 p& B9 f, _3 T0 j ] }) |6 k! e: S( o* @/ {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): b9 a) c) ]6 ?2 D# B
{- @( m* e6 _. B8 ~
m_nRemainGP = 118;/ @3 B4 s0 ]: m- N; C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; c$ z5 f; q# g5 w m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ [; |/ i. S- n( C; Y* c+ y }
+ e& L& G* n3 ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 e& s2 A) {' f( A+ {# K- D- e
{5 p' k+ |+ p& f" P. o! g% p" {8 Q
CItemElem itemelem;
2 G; ]! V# o4 V itemelem.m_nItemNum = 1;1 e n2 q) S( S2 `: A, G* e" b
itemelem.m_bCharged = TRUE;
( h3 _) Q7 T y BYTE nID;2 t. q# }- `7 x# K2 y6 I
5 h1 E' E$ d. l' Z7 A& s& \ if( nJob == JOB_MENTALIST_HERO )
* X: W0 m: F8 _2 L, q7 m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) a" `9 E- I& ?2 N3 ?1 ~- X
if( nJob == JOB_FORCEMASTER_HERO )
( j. F! m: @6 v) S) n _0 ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, {, A; N. {! w! Z; s
, D# f+ P: D" ]1 B- D& J
( ( CUser*)this)->CreateItem( &itemelem, &nID );( l# T8 P' q$ T( l& X+ c: e$ _
}
) }4 b# T# H* x+ D/ a! X, V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( t7 h, A5 D! O) r/ W/ J ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; l$ D6 G" |6 J% H: d) _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 E0 }- r' @$ H* G" f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ s$ J+ V$ X9 ~4 W8 W* m3 s ( (CUser*)this )->AddTaskBar();*/% s5 K& D, b6 \6 k% O: f: g& F
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- h6 m4 H, M! k" i. _; j0 r#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# \8 ]6 x- F7 j! K+ w
((CUser*)this)->CheckHonorStat();! [" f4 L; S8 E2 i+ [7 Z+ a
((CUser*)this)->AddHonorListAck();
4 x+ [ z5 K& B! m& N9 ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);
! F$ F0 N3 `* @: f+ A1 Z0 h#endif // __HONORABLE_TITLE // ′Tà?8 P; C9 p# S1 N$ u
}' v1 A* I/ j+ G
#endif // __WORLDSERVER
; z4 U, r+ s5 P- L9 T} - _( X' m( l! R! u& X$ L2 k2 T _& ~
6 A9 U+ M/ T( z
然后你进入functextcmd.cpp并添加以下: u, U8 R3 D+ H7 A, S
. S( b. x# f6 H* _
代码:) M- Y2 t; s+ B& {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% f: C1 F7 p! |6 _0 w2 S
下面插入: [' a, N7 @$ D+ u5 \/ U- C1 _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# R' O% p$ C k% d+ t
% K1 I' Y- l8 j$ [) L, g然后你去9 t% P) Z: n4 F- Q
+ _0 {3 w+ L# f
代码:4 O6 K3 N+ t5 U( M$ B, g
代码; a4 W& b9 x0 B4 R% Z
BOOL TextCmd_ClearPropose( CScanner & s )' U7 y& ^; L/ V
{
% l, Y6 Y5 e/ [; e#ifdef __WORLDSERVER
0 |- p$ |+ r/ b8 f4 r4 ]" O1 Z W CUser* pUser = (CUser*)s.dwValue;
, e1 t8 [3 f: S g_dpDBClient.SendClearPropose();+ z' `. n. ]0 x; h) B- x& Y* m
#endif // __WORLDSERVER
6 N/ I* y2 Q- }, y' I return TRUE;
+ V6 Y- ~( O, ?/ }}5 R& E9 }5 ?9 ~/ n) d& b5 _" F# |
下面插入
& _( P5 [2 D# h; O/ h* M \7 `BOOL TextCmd_rebirth( CScanner& scanner )# u) k# a* u! U2 M+ `; Y- F
{# D/ \: B& s9 w% N7 i" ]: |
#ifdef __WORLDSERVER5 [2 l9 f- g! z9 }
CUser *pUser;9 u7 w5 ?$ R8 a& M# o5 `; N! W
pUser = (CUser*)scanner.dwValue;- T* I3 r$ a, E; h4 c9 B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* a7 a( |1 {* i( X7 F: M& F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" J5 |, G+ V7 J; _7 relse
1 g" X4 E+ m/ a6 F" FpUser->AddText("你还未达到重生条件!");
K$ S" N& @3 E/ u% O#endif' y6 m# ^5 i4 H$ I0 l! s
return TRUE;1 n2 B& W9 P {8 a" l2 p
} U0 ?+ c+ ^6 Q+ N6 h
# [" F5 M J/ i4 v6 c9 v" {# v1 z( Z0 {5 E+ w
, u. }: \ J; [# S1 [
3 r- Q' @! j3 Y# M |
|