|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 Q7 G. p- N u8 |; S
3 H+ N2 ]$ B! h% u0 \Mover.h- V. i9 u7 a$ c" u/ o) w
代码:: d% w, v' s+ l# G* b1 _' C% P h
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" R/ B! D n J
! G! t' G" w( x/ Z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( a' ] d$ ^# O1 ^+ t* q* W
, T, c! [5 i. p3 u$ h& s然后你去mover.cpp添加) l; |$ i0 X; S t: W* N6 \+ U
6 b L6 x+ d4 t {# C
代码:. x1 r% [0 F6 g2 J5 B; i) Y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 D" W/ H6 B* \{9 M: _: S& i9 G* j W) D
#ifdef __WORLDSERVER
7 j+ j7 f" w0 G // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! C# F& k) j; }5 ] MoverProp* pProp = GetProp();
/ A8 i/ s. O1 ?, w \: K7 P- W0 n! Q if( pProp )
2 f4 [# w' k4 o+ h b1 t {
% _5 ^2 R! T2 m7 O9 q/ q, f! ~ { if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! ?! C7 n B% Z4 z7 o" E+ s {* h1 f/ i; l4 Y! Q5 I
AddChangeJob( nJob );
$ j5 J0 q1 l% J5 H* E; X: ]- } }else{
( G; _+ Q4 J9 r0 f0 | return;
' X1 B0 |; H+ I- W& c" u4 ? }9 g# R" T- l' ?6 K. }2 W, g
int nPoint = 0; I1 }4 d- F$ a
if( m_nJob == JOB_MERCENARY )3 l; e4 J5 p) e9 C1 [1 X
nPoint += 40;
- P% A: _; K0 H) W else if( m_nJob == JOB_ACROBAT )
6 u( s9 @3 f- e$ r7 x nPoint += 50;4 D) q0 s7 w9 C" b) |
else if( m_nJob == JOB_ASSIST ) Q# d6 A. r) h: N/ v
nPoint += 60;
' q- D! I1 p4 j7 a else if( m_nJob == JOB_MAGICIAN )9 `! j% K) Z/ V$ W4 q$ ^4 b+ ]
nPoint += 90;; g8 D; O q' s( d6 W, i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* z0 U+ Z/ f" p3 X" `4 Z* y
nPoint += 120; U3 H- h0 e* P g2 p8 z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& o( q! n# g4 V2 b$ t/ j
nPoint += 150;/ x& O3 m2 N7 j: u' x/ I7 [
else if( m_nJob == JOB_RINGMASTER )
$ M4 V7 D0 N" f: E. d* u nPoint += 160;
4 h" ?: n4 {- c) h" A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) a) \: s, }3 R, T. ~
nPoint += 180;
! E+ _6 ?: q( ~7 _8 l else if( m_nJob == JOB_ELEMENTOR )( o, V! @) V( G
nPoint += 390;2 l: _9 d" _+ c" _. Q( G$ V/ X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* ^! \8 ~% F9 k nPoint += 120;: Y# B( Y( x% k' ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 e9 }$ w" |5 f$ g2 {8 Z" F nPoint += 150;
- A3 ^8 P' G2 P9 M0 [3 b9 Z& t else if( nJob == JOB_FLORIST_HERO )0 |6 D6 o* m0 O/ w0 n) J
nPoint += 160;) j2 y4 k; G5 K% @2 i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), r: }, n) [- L. `
nPoint += 180;
5 a# ~* |% d& _/ p- L else if( nJob == JOB_ELEMENTORLORD_HERO )
! d$ D* b2 [( P9 k nPoint += 390; @- s( ^& W3 [* |
3 {, |! M8 e7 ~4 V5 H AddSkillPoint( nPoint );. I1 K7 g- H* m% b3 y# ^
m_nLevel = nLevel;
8 i1 D. P' n$ z& i+ n2 g7 {3 x
! n8 \% g# `# q5 A6 D k SetJobLevel( nLevel, nJob );
' ^ V& n8 X" j) ^) [' l m_nDeathLevel = nLevel;5 `" L/ y1 X9 M! w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 J( c, ~5 P( A; O7 K3 G
if(IsMaster())" v' Z2 D+ C, T& a2 F5 }! ~
{, d9 o5 Z) D; g: ?1 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 y1 |$ ~4 S% @$ P, k$ ^# V
if( nLevel > 59 && nLevel < 72 )
$ t$ ]+ U( ]8 U _ dwTmpSkLevel = 1;! W+ y/ {4 ?' s: B
else if( nLevel > 71 && nLevel < 84 )( M$ I% A/ {+ d5 I% m
dwTmpSkLevel = 2;
5 D5 F: @! P; A6 B4 l else if( nLevel > 83 && nLevel < 96 )0 W$ E: g3 n& L' U
dwTmpSkLevel = 3;
. ~9 h. ]5 z8 Y; `2 Q( g3 v else if( nLevel > 95 && nLevel < 108 )/ \; X y# N0 n' s- F
dwTmpSkLevel = 4;: h# a7 R( T9 q
else if( nLevel > 107 && nLevel < 120 )! o6 o$ c$ g% b6 b6 M
dwTmpSkLevel = 5;
% r6 P. N7 d! V/ A1 ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 d- z/ J2 o' K. B6 V8 {! i
{ % h5 t3 l* B! i" V) M
LPSKILL lpSkill = &(m_aJobSkill);
& E& t, x. J/ E4 z4 }/ J; z if( lpSkill && lpSkill->dwSkill != NULL_ID )
( \% y" d% c; q1 o {
6 B- i4 Y. c: e$ W0 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 D3 d* A2 L4 t# c" |6 B% d
if( pSkillProp == NULL )
, v7 E D3 a* V9 j6 c continue;
( S$ Y" v# @0 e3 V1 }; k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' M1 S p8 ^2 }0 I- e$ S
continue;8 _8 r W: g$ ~6 r9 u6 |
lpSkill->dwLevel = dwTmpSkLevel;
9 Z+ y; D4 n6 T8 g" C! ? }
. p& E+ O% N4 j3 k0 J C2 x }
: V, p( S% U% p9 _4 m( ~0 r w }
* C4 V* U" d' T- P$ N; ^, k else if(IsHero())% f2 R8 I* C& S
{" F8 ^) ^% |6 z9 S b. P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 B8 J- h2 |* u {
2 o; Z( n8 G8 W( z$ f LPSKILL lpSkill = &(m_aJobSkill);. j6 S/ X) i, z( D. h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ b3 q) r6 b, q! y1 [- s9 E; x% ^. Z {
) x: E$ I* |+ K9 D) Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ A: x( T, w- W, s# \9 B if( pSkillProp == NULL )
( v$ }+ ^* A2 {9 X( y$ \2 c+ M) E" [ continue;
! `! A9 H' m& ^7 `# I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' a9 b) P3 P0 C) O/ B. Y5 G
continue;
$ m# F5 d' Q j2 Z lpSkill->dwLevel = 5;/ P! ?! a Q( C0 H
}; l# ?* F9 U; M/ E' S9 y' F
}
/ {# _* c& N7 X+ N$ F" v }7 \' |3 H, b* @5 f" ]4 K! C
else if(IsLegendHero())
' X! l7 `1 q# H7 j; Y# O, A {1 {% F' u# @& n; E; I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - k8 I, E; A; i4 R+ c, P
{ ! |) ] c+ d1 J2 N
LPSKILL lpSkill = &(m_aJobSkill);
6 q, K2 E2 V3 m( d5 @ if( lpSkill && lpSkill->dwSkill != NULL_ID )( n* D. _# d+ Y0 X! w0 x7 P
{
& f* t' X4 T1 Y! x% M. H& R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' W0 Y1 g' R. x* H# | if( pSkillProp == NULL )
- y. M! D7 N0 U continue;# S' @7 F$ g% j1 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: w. m1 z+ w& s) a$ f- G B continue;. C" N" m( O/ I; G F
lpSkill->dwLevel = 5;# q( p& q; C. E/ V& ^" |. m
}/ w* b! v7 \/ C& P, l& }
}
( {% }% q, ?; G" p6 ~$ ? }# \4 c( Z( l: O/ M) D- F# a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; k! Z& c# {$ d- s }) j
if( bGamma ). C' S, X! i# Y' ?' K0 r3 x
{/ ~- S- W2 l% D7 O" g) b' j
m_nExp1 = 0;+ e/ z1 ]/ T# x- G
}
* s' B6 @) ?* v; N" v4 z' {, a8 z: ~: R( v" W* V& w* H9 m1 f9 ?/ [# a: v
( (CUser*)this )->AddSetChangeJob( nJob );5 {5 n9 D% x; d, G) p2 `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: P- C! J* |1 L! }% h1 [" [! U Q8 N- G" G' y
5 p% X$ {+ s/ {' D2 f#if __VER >= 11 // __SYS_PLAYER_DATA
3 p& H; b4 C1 l$ ?. `% c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( v \# n; F6 [: _1 w$ \#else // __SYS_PLAYER_DATA$ y( d6 v- o" l+ W, a2 ?. n
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) k& f! A% M% z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 h$ N, h; E# k* \! s- v if( m_idGuild != 0 ) U4 Y5 M/ ~4 d! Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: \$ A4 Q9 c$ f( v2 J#endif // __SYS_PLAYER_DATA
4 [; Z1 b9 m6 S. M) l SetHitPoint( GetMaxHitPoint() );
! o' H7 t. d1 O9 E; y SetManaPoint( GetMaxManaPoint() ); x* O0 Q6 S2 O% {' I9 H8 ^
SetFatiguePoint( GetMaxFatiguePoint() );
/ c% x# t7 u! t3 {/ E2 m- [0 o+ G if( nJob >= 1 && nJob <= 4 )
O& W% D7 l$ ~% i; e3 r# t$ [ {; T. Z# C& B6 m6 q( D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 {( c+ ^0 v2 R: ? O3 N1 ^ m_nRemainGP = 28;, H; R7 w7 f+ F1 H& ^
}
8 @4 u. T( `8 Q# Z4 }% u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ b s. t$ C. K7 U7 d/ k
{4 M# u5 e6 Z( ^/ p% J1 A2 H) a" @. a
m_nRemainGP = 118;
) [" E9 [" O/ s* Y0 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 K$ b& @: M1 T: L" d& e: B. e m_nStr = m_nSta = m_nDex = m_nInt = 15;9 c5 Q. m( N; R9 N/ m+ w
}8 W) b& P! m j# P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 O9 R. Z( R n( j# C, r {7 u, a5 N7 q# H1 y9 L
CItemElem itemelem;/ f9 b. B7 a7 ?* `) Y: a- w
itemelem.m_nItemNum = 1;
9 j1 Z, U" q) Y, j5 l itemelem.m_bCharged = TRUE;
5 P' m( }# p) u& d BYTE nID;& {& `5 I, g3 u- J) k# e* }
# w5 p0 t( V- J6 N if( nJob == JOB_MENTALIST_HERO )
# B* x+ r' _3 r) n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 k, k' _3 @' ^# a: n2 ? if( nJob == JOB_FORCEMASTER_HERO )
& @: b2 q1 s9 t4 i: P k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) U# U; p6 e* G9 L$ [8 d
# O6 h& j0 N4 b7 `$ N- S6 L ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- \4 R% [6 V- u' B }8 R( ]* @; C- s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ F: C" p3 t$ z' e! w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 t1 }! G: u3 s0 n7 Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ J) U/ r7 r" V8 T /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: F1 n7 R* Z1 C# s# Q: m
( (CUser*)this )->AddTaskBar();*/
, W8 P3 @ i6 z, D" i7 F ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; O4 w# W7 D6 i; M# g' `2 d* K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, ?" g9 Y4 B/ F6 ] ((CUser*)this)->CheckHonorStat();; L1 T2 F4 G2 r" \+ O3 \ L" A* r l
((CUser*)this)->AddHonorListAck();. T. Z$ l' t7 O4 m+ i5 l# }
g_UserMng.AddHonorTitleChange( this, m_nHonor);, Q& _2 ^, {: a" k8 C
#endif // __HONORABLE_TITLE // ′Tà?9 Z5 F& i" x2 c0 v3 O
}
4 O8 M1 a, ~/ e3 k3 ]#endif // __WORLDSERVER4 i/ D/ g# g: u! B* a$ X( @
}
8 c! F+ _: u! u: p6 w. X9 V" ]" X s- c+ A9 C
然后你进入functextcmd.cpp并添加以下
3 J9 C; Q- l( k. S% \
" o3 Q* f$ Z7 D, h% W: a! s5 } Z3 d代码:- I) g0 Q( ~: n, a/ ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 ^4 {$ B# Y5 w/ s. J5 X下面插入* |+ f4 l( M0 [3 a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) ?9 e. t, o4 s5 t9 Q! z- w
3 \$ B. v) R+ o E然后你去
* ~- P M" }! ~$ ^1 [- n/ s' ?+ k# j8 X0 ^9 \2 l4 a. C/ ^
代码:
: N; ~) g- w7 T代码
* X) E& a+ a# z# O! \& D7 {' `4 U* rBOOL TextCmd_ClearPropose( CScanner & s )7 V$ G9 x& Y: W
{" s; O: I7 k# ^5 P1 I, {0 Q; ?( ^4 D6 U
#ifdef __WORLDSERVER4 Y8 A. Z2 m7 A( w
CUser* pUser = (CUser*)s.dwValue;
/ [& U0 e9 J* O g_dpDBClient.SendClearPropose();
/ T y& t9 `. m#endif // __WORLDSERVER
8 U. s) m& e% D- {$ G0 _2 h# w/ O return TRUE;' n+ z. T! P; L
}
9 G) d! T/ f; L& S6 |4 H/ S下面插入; \0 _' R" F4 c) H% O/ F
BOOL TextCmd_rebirth( CScanner& scanner )
& Y* l- [2 t! W6 h3 B{* S" q1 G4 K. a# C
#ifdef __WORLDSERVER4 M0 H7 A% s% z) J/ W2 s! O
CUser *pUser;+ L- K9 |8 A1 g8 \) e1 Q
pUser = (CUser*)scanner.dwValue;
: b8 b C% g- q H2 }1 M4 B1 Z/ d% q( dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 n, k2 {) T. v/ b% N: O" R% wpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 m* ?- E6 p6 p$ o- V% F$ Helse! N/ B. R5 s% w6 O
pUser->AddText("你还未达到重生条件!");8 |, v; t# {/ s- P& f4 k
#endif
- X) ]4 X- a# G8 {+ [8 Vreturn TRUE;
( k$ k1 ~$ G; d; x} : V! d6 Y9 P! `3 `
1 e+ Q* X5 @1 w2 ?$ P& u6 @" p; v/ Q2 r9 `
2 r: L! C. I! }3 g6 n, l& y8 J. j/ Z7 ~9 G! ~0 k
|
|