|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ b+ l& R8 t) U: e8 N u: Q& j$ `
Mover.h
7 w/ w) t/ }! B" }代码:$ l: J0 \) B: k( b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 W; V* P5 M) H) w/ Q# o
- x. N9 s w3 A5 ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + B* i5 l4 l5 {/ h4 V6 U1 C
) x# M0 C. I% _: C
然后你去mover.cpp添加
& j$ A4 G, v& v; L6 k
9 d5 d4 j2 {$ n8 s4 D- t% f( I代码:
" A1 m: C: A' q2 o/ |void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" Y" n* A! K# I6 U- n& K# |) j{
4 a/ q) o$ J3 n1 T! ]#ifdef __WORLDSERVER1 Q' W+ J, J& [* ?( d
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 q6 ^& q# M6 e" o0 I MoverProp* pProp = GetProp();/ M0 w% m0 c' O* @6 \) N
if( pProp )/ b P( u! ?+ B- b5 [$ q7 c
{1 O: I) z. p5 u$ x, L# w& {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 N3 H$ _: a9 h7 j& M( g
{
* j+ w( ~, _: e, Y: I& K( A% u2 V* q AddChangeJob( nJob );
( Q3 E6 N; [! ~ U* K% }8 n+ } }else{
5 D4 w- z/ M8 f5 A6 F return;
4 |# A8 H( }7 a6 j) } }
3 C! Y; x0 j+ s6 J7 H9 I" W int nPoint = 0;6 p. ?% t! Y+ b
if( m_nJob == JOB_MERCENARY )& P4 |0 i2 x- b2 v
nPoint += 40;
9 @! _! n* E" g8 x' v else if( m_nJob == JOB_ACROBAT )
I; v/ Q5 A5 H8 {6 H6 ]4 P2 G# u; H nPoint += 50;
6 U1 G* ?2 {- k$ j3 b7 h5 I8 Y else if( m_nJob == JOB_ASSIST )
: }3 S6 o' I5 O, ~7 u4 ` nPoint += 60;+ l1 ?9 h3 Y9 c/ F" P
else if( m_nJob == JOB_MAGICIAN )
m$ U" I5 e' v2 ^3 c- l nPoint += 90;
2 g) F- C% L! a/ A/ { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( V J* T% A3 Y7 c, h4 a5 E
nPoint += 120;3 N& @! H% s8 M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! k4 l0 A4 s3 O% K
nPoint += 150;; g3 I$ ~4 a4 f1 G- e
else if( m_nJob == JOB_RINGMASTER ) o' J8 ~6 o" J& B4 r) S5 A
nPoint += 160;" H" T. c; i' j/ u. ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 E+ [$ F' B$ d8 c0 x$ I8 ~ nPoint += 180;
9 R O9 W: S- e% q# C# `) I else if( m_nJob == JOB_ELEMENTOR )
1 t. @# R9 b7 l. n* D+ B) H nPoint += 390;
0 P8 W2 }6 F K- }: \' J& z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 h$ \! m+ X$ I+ }/ w nPoint += 120;
* l3 W6 C* A3 v4 d, c# H K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( V0 ~8 }( g- l* s3 `
nPoint += 150;
& Y1 `. m7 s8 z else if( nJob == JOB_FLORIST_HERO )
# A, F) @3 Z) c+ \/ P h nPoint += 160;- D! l4 F2 {6 Y2 _4 {3 T
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# I' H: S7 s+ g# E( z [
nPoint += 180;
! {) B% _% f! m' V9 p; _ else if( nJob == JOB_ELEMENTORLORD_HERO )2 F- C$ p# y" A6 e& G
nPoint += 390;
% i3 `" q4 ], K8 o' J l+ I* k% ?$ b
. a r! R7 b( G) g AddSkillPoint( nPoint );& z7 `( V% g$ x5 _: ?: x. V5 [
m_nLevel = nLevel;5 c W7 W, B+ Z8 D5 O! W; e
! H; G% t1 o& L+ e
SetJobLevel( nLevel, nJob );4 O3 y+ R) m6 i3 G _3 Y, I* l0 q
m_nDeathLevel = nLevel;% F. h% {1 n4 N: |0 V9 p/ f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* ~6 J) k7 @' f$ q if(IsMaster())( Q% L5 ]! L9 A+ H! [, s5 _
{' o/ y3 {7 I" [6 E6 k$ g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' R( H1 ^% y+ G2 ~ S. Y
if( nLevel > 59 && nLevel < 72 )5 J, x" |1 m7 W5 Q/ s) I1 J' J5 R
dwTmpSkLevel = 1;2 `% H" l2 U2 m' G
else if( nLevel > 71 && nLevel < 84 )
7 U( E2 ^! `/ O; O dwTmpSkLevel = 2;8 s2 b) x; a9 V% m& m
else if( nLevel > 83 && nLevel < 96 )
6 d' \: J" |) N1 B$ G; o- } dwTmpSkLevel = 3;
3 G# u4 A$ S. Y$ h1 E# X5 [ else if( nLevel > 95 && nLevel < 108 )
2 ^! Z, b: v6 F, V8 A/ c dwTmpSkLevel = 4;
& D8 Q0 r6 O4 u. a' b9 v3 c else if( nLevel > 107 && nLevel < 120 )
* u" z- o% ?3 F# V dwTmpSkLevel = 5;
1 [. _: A. l- Y6 p( [; \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) : W8 q: t( v" ]" h: |1 c) Q5 I P
{ 3 N" m; e$ l. N3 }: P6 |* n
LPSKILL lpSkill = &(m_aJobSkill);
& g# d) r8 l9 p7 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ R. U$ `! J0 L( O$ e0 V8 O' f {
* `# @# {/ P6 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 X( C0 A9 S4 |' {6 N
if( pSkillProp == NULL ). m6 i$ _+ S" G6 b9 g' E
continue;
5 D' `9 M: n: p2 j4 \' v K+ w% ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ o- X- M9 p$ b; C" W! h continue;( b/ t4 t. A$ o' B* z5 ^1 h
lpSkill->dwLevel = dwTmpSkLevel;
) p9 T `0 t: E6 _. M }7 L8 w5 V, p2 m; H' r& C E% u2 E
}- ~; ^. _6 E7 l5 p2 F
}
, w* E/ i; q* l* W0 {3 Z1 F else if(IsHero())
& H. ?2 e% \! p ?$ d {6 q* _: I5 Q3 k8 h) R: j# E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, n. `4 p: E$ `* Z0 h* v2 k { 2 D+ {+ a; ~, q: {- Q, x! [
LPSKILL lpSkill = &(m_aJobSkill);
5 ^" X$ g7 T$ z6 J" p if( lpSkill && lpSkill->dwSkill != NULL_ID )2 F) x" q5 u/ g2 r$ G
{
0 n1 \! z* q& i8 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ F! |6 J8 S8 r* Z2 o% ^3 d" E; J
if( pSkillProp == NULL )4 c( F, Z% b) }4 F+ j5 {
continue;
5 s* o- P( t' }0 `0 O$ e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; Y, k! Y, T1 b; |, _* p continue;! o z4 F/ c* q E
lpSkill->dwLevel = 5;
- _" f6 E3 z0 w6 c; l" E }
) N* K/ |0 j" R7 u% ^6 P- n }
& P( n& p1 W, A3 x' C1 I7 w5 o0 s }
f9 |( h% `( Q; R' I( j2 \ else if(IsLegendHero())
. C4 E0 Q w6 [. [) _# [4 ^2 f {
- `; x6 B# K" h, q for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 Q6 u- O- c9 P9 f5 S5 l+ w& B {
( r9 ^6 J: R$ l( }3 I- x. w6 [ LPSKILL lpSkill = &(m_aJobSkill);
9 I1 [$ N; a: N if( lpSkill && lpSkill->dwSkill != NULL_ID )% u" v% o) g3 x$ x. l3 m
{. p# m- i" _1 l" Y; W7 T& j) f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ o- n. \9 v, j. p& h
if( pSkillProp == NULL )
# t8 N4 r$ _; L continue;
8 a* k+ D. J8 N9 W) {* P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! b( k% ]# J3 j9 _$ ]( O" H continue;
- X' Z1 g2 J e lpSkill->dwLevel = 5;5 ^4 J/ X7 A( q! S$ n
}; L+ J* R8 S ]2 b4 L
}8 P* G u* ^3 N' D: H/ n
}1 M; [9 ]* \- J; k) I, I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& d: K \2 i( B; L6 @& z+ {. z
if( bGamma )' B" s, m& p% W% R" N+ w
{' {0 }8 T3 g5 x, V, [
m_nExp1 = 0;. ^; T }% {" d% w/ H. V
}
6 q) ~9 ~( I. j+ [8 ~, b3 |+ C* a6 S7 \, o) Y$ y: R0 o
( (CUser*)this )->AddSetChangeJob( nJob );: q, [- d. `" a( S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 u% ]4 Q, U& ~6 k5 I E& p; X. x) U8 Q; R6 o
! S: |6 `" v) R. g9 d#if __VER >= 11 // __SYS_PLAYER_DATA' J. K: s, u- a W4 k( o$ e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 f4 [ N9 q, j, h* I% W#else // __SYS_PLAYER_DATA& L# N: U+ y8 j) ]0 m# @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 @; p" `* q9 d: H/ C" y/ A9 } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 p, q1 O1 m% J3 h
if( m_idGuild != 0 )
3 Y/ }3 d% w& |6 A5 Z/ H1 G g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 I, R% j1 w: K4 s' R#endif // __SYS_PLAYER_DATA) N e" l% Z5 E' x
SetHitPoint( GetMaxHitPoint() );
+ o2 [8 ^* l8 }7 x9 D4 e, y SetManaPoint( GetMaxManaPoint() );
' r- z4 i, y; V, { SetFatiguePoint( GetMaxFatiguePoint() );
& k- } u, R2 S7 X if( nJob >= 1 && nJob <= 4 )+ X% S2 T# f# k' z
{3 \& m6 X5 J3 _/ v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; P% w; e0 P( O2 y. ~1 U% b& H m_nRemainGP = 28;
# Y" @: I. n2 g& F+ o }
: d& F+ r _; P$ c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) g7 A" n6 ~3 C1 C* g {
* ~ t4 J% r8 h7 X" m+ `8 t m_nRemainGP = 118;! n+ H2 X! l; f: ] Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 i$ s( m& l0 M/ n V4 I1 {8 S7 Y3 Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; T4 j8 `. g- j, g9 y! t }! i2 U5 U% `, [2 @" T8 ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 z; \- {+ W1 ] U/ `2 o { v- f d. N; Z# v, n
CItemElem itemelem;' z; O; T" Y9 _7 d/ j' N
itemelem.m_nItemNum = 1;
! ?' W7 Q! f+ z itemelem.m_bCharged = TRUE;
" f1 [9 p+ U u3 b) c! W BYTE nID;0 o& _$ P, O7 }, m# y
+ F7 S: R5 F7 [ T if( nJob == JOB_MENTALIST_HERO )2 _0 r* K/ _% i2 v2 y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 H! I' z8 m6 z4 J. W& Y' o. z$ f if( nJob == JOB_FORCEMASTER_HERO )
3 O: |7 f2 b2 K2 _5 Q. M itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ c3 z& z- O& C& N) B, B R n' U9 |+ ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% b+ k4 ?2 Y6 `- D* `* [8 h }
1 x4 C( Q3 b! G) i+ K w% x: R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! Q+ q7 G6 u8 e/ ?/ }5 \2 W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ S% W& W! _/ W3 H9 |; r3 z* s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ W% ]& @) H8 s* g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );1 G9 d: n7 @/ G+ w0 k r. W: l
( (CUser*)this )->AddTaskBar();*/. Q3 f% C. O5 ~8 x( B( Q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, n. {$ c" L2 B H, Y! h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 M3 J; Q3 u2 z9 M" a0 s) a5 I
((CUser*)this)->CheckHonorStat();
5 P9 Q% s* [( o ((CUser*)this)->AddHonorListAck();* |) U) r( I9 L0 f$ l0 p9 Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 a' b3 i& H! F3 w" C- R) e! O j#endif // __HONORABLE_TITLE // ′Tà?
" F: Z$ u2 z; v* C }
- J+ N! k2 m6 J+ z% M [#endif // __WORLDSERVER
+ G1 Y: q9 ^6 ^7 E3 J6 G/ T} * M' c* n2 K1 j* ~& k& G+ B
0 @/ ?& u% N# J& U+ ~- `% ~+ P' z
然后你进入functextcmd.cpp并添加以下
% y1 b7 A7 U6 l* T( E3 U
8 E/ l$ X0 M/ P- P" s3 i代码:8 d& B) v$ B" K" B- z6 _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; A' M" u$ l1 a/ y9 t+ K下面插入
" i: G* D: X- O. qON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; d. S" V- }. {/ B7 N& L& ?
5 J; D8 e% o/ e$ B! S' Q
然后你去# D7 S" X% X8 F4 W" A4 u
8 X6 H }% d8 k& [; F: M" u代码:
6 a' [6 u K9 l代码% Y! i8 C# N" k. d/ N
BOOL TextCmd_ClearPropose( CScanner & s ); ^9 q8 ^2 b |2 J8 h
{. M* _- U! A$ w6 A# G6 z
#ifdef __WORLDSERVER4 U3 O7 \* P! V, E* `
CUser* pUser = (CUser*)s.dwValue;
( G: @# O; N- M9 L- x g_dpDBClient.SendClearPropose();
2 r1 W, K9 t$ x. U5 l#endif // __WORLDSERVER+ C: J% h/ b: l3 }- z. ^: Z% C
return TRUE;8 ^* O( X, y. G2 f* t6 p, A* D
}& U9 w5 J2 ^* q
下面插入. ^9 A+ E7 M# i/ t
BOOL TextCmd_rebirth( CScanner& scanner )
8 b/ I: y$ b' P ?( O{4 C7 y% {& R* y( n
#ifdef __WORLDSERVER
: e6 j* x x: ~' d) ACUser *pUser;
# K: W0 h1 t/ X2 ^4 A+ }; z m TpUser = (CUser*)scanner.dwValue;
, ?. @" T8 i- l& {1 z1 Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), E+ w( @' e5 z4 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. s9 E" V2 ^$ e1 n/ i! V" w) Velse( }3 e/ m& ~2 k- ?6 Z9 Y2 \
pUser->AddText("你还未达到重生条件!");
( J4 C" N; u: `+ K8 G#endif
7 j9 m0 g) S- ~& C8 y' ~" [# \return TRUE;1 I) X3 B, W+ d C# W6 K
}
0 {: B. k$ e5 [9 r& G6 J- ^* ]/ Q* v( u& c6 O
' b) \) t1 G# a* e
8 l# g- k& P. @5 v5 l0 G9 p
2 q$ f( Q9 u) B0 _- j |
|