|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ {0 s2 A1 y9 u
) w* T" [- J9 F" }% c7 z8 ?& G6 v3 vMover.h
3 c. @: }: @) m! U. L代码:; y+ z5 p$ m8 b1 `% P' X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 J6 ~1 O: _. m
$ i+ T, [' ]! Q2 O! i9 U4 W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 a0 @, Y' V1 J2 F: ~" S
! h- y% P& M/ F o* e% F4 A* C然后你去mover.cpp添加+ e; g) z: o1 |
$ H& D' t# r9 m8 D" W: m) h. z代码:8 b7 i! y* ^% G4 v* |& l& j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ `/ x9 J; F( q. v5 n# A' }; v
{
9 V( h; r) V# R#ifdef __WORLDSERVER( b, a' F) V; J# b \, ]. z5 j! E9 d
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- F$ E n2 P/ _3 t K) t MoverProp* pProp = GetProp();% T+ e5 a. j. ^5 g8 t: R6 A
if( pProp )
* K/ ~& ~; s' ~/ C: a. O4 x F$ I {% c# r' S/ u1 I' Y. Z3 x
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 X4 c3 ?1 m8 I& }. f6 T. `
{) a+ t+ A% i1 n: P4 u
AddChangeJob( nJob );
, p3 V8 u1 _1 |* C: [* R, B }else{! T. q1 J$ X/ J# M8 u6 i v G
return;& [( ?, o G- H6 Z3 P
}7 Y% g1 O! ^( Q6 u3 l1 b2 t, v
int nPoint = 0;# f, L* Z5 `. `' v% Y w% F
if( m_nJob == JOB_MERCENARY )3 s' }7 H9 U9 I+ h/ z. l8 p
nPoint += 40;
! r# } }. u8 B7 L4 T else if( m_nJob == JOB_ACROBAT )! t. K& N1 O1 ~7 {8 \
nPoint += 50;: v1 W' f& ]7 E; ~" m( E
else if( m_nJob == JOB_ASSIST )
" a* A m+ l& p2 ]/ L+ K; A nPoint += 60;
; k! L3 b3 Q3 b" E3 Q/ K else if( m_nJob == JOB_MAGICIAN )
+ F$ u3 X" L; _* Y& t) n( ^ nPoint += 90;4 T* l- S) m/ R& P. P' V3 P$ o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 N! M6 x7 N A; c% g/ q7 {3 o1 Y2 b nPoint += 120;
& L8 f* F% W- n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); U k) s+ u% }# D$ x4 l
nPoint += 150;
" h* h; f7 ^/ W+ {% S/ k3 m else if( m_nJob == JOB_RINGMASTER )" M Y7 L3 u' R% C& y6 e
nPoint += 160;
6 S: N& E- i6 U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, |0 z8 B8 k1 p7 ]! w$ Z9 c8 C nPoint += 180;, D/ W+ f* ~. W
else if( m_nJob == JOB_ELEMENTOR )9 a- J5 h3 K. r9 \1 l) s
nPoint += 390;+ g4 w5 I: P$ y! g9 t9 N- u V8 V- \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ Z% Y9 w: i3 K4 u4 f# ` nPoint += 120;# D* @6 x' p) ~5 U8 E
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ O* A' E! [- ]) q
nPoint += 150;. n, u% ]( ?2 b. P9 t* _# ~
else if( nJob == JOB_FLORIST_HERO )7 f( l0 r& q6 b" O* r
nPoint += 160;5 V4 O# u+ S+ t h- a! c+ `
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 D: {: k, i2 L1 q
nPoint += 180;
3 V" \$ O" b6 n! ?, h6 f else if( nJob == JOB_ELEMENTORLORD_HERO )( X5 z3 V4 u, ?+ I6 U
nPoint += 390;
6 g+ u- I$ a4 _# w% X& B) J) R& `: X# x6 P
AddSkillPoint( nPoint );
+ J! A7 B- H {4 t m_nLevel = nLevel;9 H( Q: q# q: [9 x
! e* F# x& }6 d% P SetJobLevel( nLevel, nJob );8 [: t. t1 n, }- F: i5 {4 |
m_nDeathLevel = nLevel; L) v+ k7 t' P- K$ x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# w' N5 Z* \1 ~' t' m if(IsMaster())! q: m% o4 s' S5 H
{
8 l ~4 R) n2 B7 M7 w/ ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. x& K- N& M, E$ N if( nLevel > 59 && nLevel < 72 )
2 Y6 b( H( p- G# e7 S4 o" W' }$ R3 s dwTmpSkLevel = 1;# X- j5 l. v7 Q4 q- i/ o; R
else if( nLevel > 71 && nLevel < 84 )2 Q# }0 M7 l4 ]1 A4 a* w" [
dwTmpSkLevel = 2;
. ?4 t; m \( f- T$ i6 Z else if( nLevel > 83 && nLevel < 96 )/ e1 o: @# b: U' }" g+ f- I, }
dwTmpSkLevel = 3;
- |& e0 b$ L! } else if( nLevel > 95 && nLevel < 108 )
2 G+ S9 p# q/ W/ U% v; q+ m dwTmpSkLevel = 4;
1 w& ^5 |7 T8 g1 r3 N else if( nLevel > 107 && nLevel < 120 )+ d( @) w; y' Q h5 ^2 `
dwTmpSkLevel = 5;
/ \# w5 i/ k" q+ A* O- G for( int i = 0; i < MAX_SKILL_JOB; i++ ) + Z$ T7 ]* a$ J% L
{
) U+ r8 W2 n( N: w! {# v LPSKILL lpSkill = &(m_aJobSkill);
8 b! E. @/ O0 z, [+ [# j5 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID ); X: n9 U- B+ I6 |& J* Q" X
{
! a4 \4 L' W4 D# e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" L$ E2 R! z, g if( pSkillProp == NULL )& W% H4 M; ~% ~8 E2 H( t
continue;+ J% n. { i& }1 [. e: q4 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' x' K% t! v# e% |( G continue;
' W+ w! i$ D3 c# j lpSkill->dwLevel = dwTmpSkLevel;
, z7 e+ K5 l' P }7 g# s# d9 F, t, I8 `
}2 V l9 b. }5 J3 ?/ c" f" s: L8 o; L
}
( ^9 H* K, j( X% S$ { else if(IsHero())1 L v" [* ^9 L8 F
{5 q% k& Y# C( X8 m) o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 V/ W$ J% u' S5 b4 W6 i5 _7 }( L$ p
{
$ P; [' R$ M+ l9 K LPSKILL lpSkill = &(m_aJobSkill);$ j8 u' g2 ^; t# }% O& _. {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; O/ ~5 b- f3 g$ O# j {
, i6 D o1 i. O$ l/ o! g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 ^$ h9 R7 y3 J* ?' i Q( P& l" P if( pSkillProp == NULL )0 B6 I! g, |2 G2 W
continue;& {! e) @: ~8 }/ [' J; j+ B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ T! f8 [% [, a5 Q
continue;6 K# j9 z- C7 G( Z$ @
lpSkill->dwLevel = 5;" O" i# B3 G) n6 }
}
! g' x5 V" U/ q, {) L9 o* U4 Z+ w3 _ }
4 y8 m2 d" f* h3 K9 M }$ T; I% g% R/ f& o& B+ `. G2 H" F
else if(IsLegendHero())
. @5 i$ \0 ?3 u3 | ]4 p8 l: \4 F; [& u( j {7 [7 Y- i2 f- v" ~* ]5 \. S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 O" ~& b8 |. N* |, ?# k
{ 6 V) \- y% v* k0 v. I7 v* K* Q
LPSKILL lpSkill = &(m_aJobSkill);+ N6 Z9 D: Z1 u: l) R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% m8 _4 U, ~; _' \2 ` {
' C7 e" W/ O" j" _+ {( G/ H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 D T/ Q+ ]0 T if( pSkillProp == NULL )2 Q6 _& ^+ ]# r0 z0 G( V
continue;
' z$ h, Y" F6 s; j& P, Q% W# f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ D* a# p' W6 I
continue;9 y9 u2 [! D5 X4 ^
lpSkill->dwLevel = 5;
7 Z4 m7 E/ D/ C$ [* \" Z }2 K( m+ c3 S6 K
}
( O, S' T5 p# o6 \3 d4 q3 ? }
) Y1 b6 \: }% A$ }#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 }& a" ?, d( F- i% ?- P if( bGamma )
5 ^* t+ {6 A: q {0 F2 N2 v, p* r( }- |: K! \
m_nExp1 = 0;# l' l. |: d3 ~6 [% V( `
}
/ i; Z: G8 d3 `9 M E4 K9 ]2 Q2 B& [" g7 @3 `
( (CUser*)this )->AddSetChangeJob( nJob );- f: a4 U! @5 w0 G2 Y z$ `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* m. \% s2 t; M/ v6 i' [- A" o2 Y9 W0 I/ z \0 k2 ~8 ]7 Z# i
/ f& s2 d# J0 c' M' _ I! Z#if __VER >= 11 // __SYS_PLAYER_DATA
9 O! l$ `4 S5 i( b( o- ? g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 R g7 I( j1 r#else // __SYS_PLAYER_DATA7 Y; W# j! w( Q5 k8 n
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" D1 F/ R% a- g) E$ n# ~( W z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 U7 Q) R& Q$ q
if( m_idGuild != 0 )
" K8 g7 c- X6 [9 o0 L2 N$ l5 u. y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 T9 n7 Y4 g( U: ~, _3 l#endif // __SYS_PLAYER_DATA
) O) c" j& @1 Z; V9 e) k SetHitPoint( GetMaxHitPoint() );, {8 {+ p3 M! q1 y2 r; Y0 X
SetManaPoint( GetMaxManaPoint() );
8 c( P4 E, z9 J9 o% G8 e SetFatiguePoint( GetMaxFatiguePoint() );
. A3 U- S4 z. k. I if( nJob >= 1 && nJob <= 4 ). I r6 ]. M% Z# S
{
' q/ c" {; C; {, z m_nStr = m_nSta = m_nDex = m_nInt = 15;
' J1 W/ ]+ r/ u m_nRemainGP = 28;
/ g8 c* \8 X0 Q8 I0 N: L }. D5 j0 E4 V6 o1 c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! |+ g# z" E, |) G0 E* y
{7 M! s/ k1 z/ F5 H: `
m_nRemainGP = 118;
/ e+ i; ]1 _! Y7 k$ y' w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; [# C4 T( c$ c. ]5 X, I5 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 W4 }9 _9 Y. I+ c; ` }
5 P* j1 b% y+ | if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ d. s& B8 l5 \" f7 k! x {! I" s7 l. z* S
CItemElem itemelem;* F' b: }4 [. b2 Z ?
itemelem.m_nItemNum = 1;. F& x0 X. w- L6 o( z' J! n
itemelem.m_bCharged = TRUE;
* H3 R2 b+ h$ X/ A/ O/ f# P. ~% } BYTE nID;' V6 t: B5 h7 S& F2 X: x
8 m% I/ p+ x' K% a. v
if( nJob == JOB_MENTALIST_HERO )! E6 t; K8 V! p$ d# a# ]$ s
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 `+ ^" q0 O3 S- ` u if( nJob == JOB_FORCEMASTER_HERO )2 A- l+ r5 f _3 O( V1 |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 z9 V b2 g4 G! w
% T; Q7 k' m( G% K3 T( L
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& V {( R$ F9 n7 T' O& ~ }
$ Y% u+ k5 l. X, y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 g% L. `# H1 W Y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 u7 L) x8 n8 T% n" }) X ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 q1 ~0 ?( [3 D, p% E; x7 U+ W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' M4 ?, I/ u( Q+ }. F
( (CUser*)this )->AddTaskBar();*/5 a) A4 o: x7 B# O3 q9 G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. v8 u; W$ Q1 K8 ], Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! f4 M0 b7 A2 [$ I2 R( }0 |! y" o1 U+ n ((CUser*)this)->CheckHonorStat();
. D# Y' k# ?5 o+ A! w, X ((CUser*)this)->AddHonorListAck();( r# ? i1 I2 Y% K. v @$ [4 z: Y
g_UserMng.AddHonorTitleChange( this, m_nHonor); c- ?* [! }4 G8 t' c& u& R
#endif // __HONORABLE_TITLE // ′Tà?1 O2 \/ i3 _+ Z; k* Y Y
}
* S* U9 {5 `) @' }9 Y#endif // __WORLDSERVER
6 |+ h* l2 k4 r( r' H0 T/ {} . k, X; s7 n b2 X# b
$ H2 u1 u: d6 k然后你进入functextcmd.cpp并添加以下
/ H' b& s" q3 F1 s0 U4 p' h; C( k1 x, P" P/ c2 K, ~
代码:1 K3 v7 r/ M. {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
T2 c; V# }+ O" \下面插入
2 v% H/ i3 I' n2 k2 h9 h' JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) W6 }& R% n1 K$ z9 C: _& }" X6 \
% {$ G* j) `6 }* @然后你去
; c- u" L0 l; \' T8 e5 `0 ~+ t1 C: e' i+ T
代码:. `+ L" ~/ }3 i/ k& W. M
代码* M' x1 U/ N; P& q2 Q O( V4 `
BOOL TextCmd_ClearPropose( CScanner & s )& o; `( m7 S9 z- D# v
{
/ |; Q6 y9 b' H+ x#ifdef __WORLDSERVER: E4 ?: l. H% s: A+ }
CUser* pUser = (CUser*)s.dwValue;
. P/ ~8 K8 O& M. e. a+ d: M g_dpDBClient.SendClearPropose();
! H6 `' A4 E" b#endif // __WORLDSERVER
8 S: k) v% @4 d, ^ return TRUE;: i4 x- v, g6 E. ^
}% _ N O, o3 n( G# A7 H( a
下面插入8 \+ }1 t- v/ a# H& d, U' g
BOOL TextCmd_rebirth( CScanner& scanner ). Q5 h/ f7 Y( Q2 h$ M5 s2 X
{
9 j( t" j5 l5 Y) l, w#ifdef __WORLDSERVER3 O6 k1 i0 D/ O
CUser *pUser;4 V0 O' ^6 E" H" ~, \/ d. Q
pUser = (CUser*)scanner.dwValue;, }& z0 c2 L8 W/ Q B: B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" P) S! b" y7 a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" o: F* n( `: y9 N2 `; X4 l6 Zelse# U1 h/ {6 u8 \ `
pUser->AddText("你还未达到重生条件!");
7 g# @! b% x. h8 P( u5 ^0 g4 s#endif
. r' E) K, W0 n0 z' M: I& j- P9 @return TRUE;
_4 B( P* Y0 ^' U7 X}
I" @4 q9 x( [! k8 E T+ y# @5 t1 H5 A( z" d, B3 e6 e! O
" Q; D1 T5 L$ Y* v0 L, L/ R0 l t
@* B. c" D! L3 u8 z6 X x
$ J# a/ R {3 \* N
|
|