|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 c% J& c# v, Y
- M; }; ?, K, g3 cMover.h
; K& _# ^0 Z9 g! A2 d( j代码:
% G9 v' C4 R& T找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" C9 P" ]8 g2 R+ J$ A
' n& h# h2 n0 ~: ]. T0 J
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + r& ]- W. } `0 y4 Y4 l
" E; `7 B' u2 o+ j/ O1 V, ~2 A* V k然后你去mover.cpp添加
) {) K% |3 f. e0 i* g/ P* U4 G9 ^) e
代码:
6 Y5 z9 \6 n1 @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): I/ S& C/ G3 e. D t, }
{) h: w; O0 |- ~ A; k& W
#ifdef __WORLDSERVER1 u7 `# c: f& _ ^. U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. A. U6 k0 p4 H5 `) ~8 ~
MoverProp* pProp = GetProp();8 s% w" m6 {- X3 j$ z* P
if( pProp )7 X- v& \8 r; s, e6 V
{
: R3 y4 d4 d: ^+ p3 R# v: Z if( nJob > 0 && nJob < MAX_LEGEND_HERO )) ]- p1 j0 _! J0 u% y
{
7 j% U# j+ w3 t" l AddChangeJob( nJob );
' ]: U0 Y$ h3 V! _3 | }else{
, j( i. x1 B) F& C3 h- q5 S$ v return;
+ [% ~3 a& L$ Y }4 l" U4 s; B& g8 N+ p0 b1 x
int nPoint = 0;
' N! A, v4 w8 w1 T) w [ if( m_nJob == JOB_MERCENARY )0 m6 n/ ^' `, b
nPoint += 40;
7 K" R( l0 {" ]0 r7 S h7 o$ `5 V else if( m_nJob == JOB_ACROBAT )
: Y- B2 i4 E3 f. U" Y nPoint += 50;# A" j( b5 D( b/ k. j) o* U
else if( m_nJob == JOB_ASSIST ), V1 e( A) O% Y$ L
nPoint += 60;
: E" Q) K& Y' O& v, y( o9 V+ T else if( m_nJob == JOB_MAGICIAN )
# @% _- k# ~4 I$ @ nPoint += 90;/ Z8 K$ @( J/ j: M; W* T5 c9 Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% f9 `/ q3 `7 C1 ?" Q
nPoint += 120;
- [. F/ [6 v, P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 l) l- w8 o1 p- H4 i- V% c nPoint += 150;
6 N- p+ E8 T; S* E1 T* q7 \+ k else if( m_nJob == JOB_RINGMASTER )# l5 _" N$ Y: O! h7 z
nPoint += 160;6 Q& k0 z0 K; C' O! A& {* Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 t. [: O; z7 U a! x" _
nPoint += 180;
9 _" ?' P) G' B: d. k- z else if( m_nJob == JOB_ELEMENTOR )# k' @; w, L/ a; E
nPoint += 390;# m3 T$ [- q9 T1 P5 W1 {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) K+ v: L6 o; V/ }1 g2 S2 z nPoint += 120;
. }0 Y0 j, h4 _0 D else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* p9 S0 l$ c: R. r7 }% Q nPoint += 150;
' s" t+ Q, J) N7 ` else if( nJob == JOB_FLORIST_HERO )4 |& K9 u4 [0 }* ?
nPoint += 160;
) x. y6 W4 M; M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( A/ h$ ?9 V" \# U0 ^; C
nPoint += 180;
% b" T3 h3 m5 z! a* U else if( nJob == JOB_ELEMENTORLORD_HERO )
. o7 Y% F2 f A nPoint += 390;4 w8 U2 j: A+ H9 J9 `* ^' V
$ n. a+ U: a, y' p' p AddSkillPoint( nPoint );
7 M; K+ N- R* g' z9 W; `8 x/ K m_nLevel = nLevel;
7 g& t8 R! m, C, t
! S( G) v0 ]+ v$ s SetJobLevel( nLevel, nJob );" X6 F* l# R0 o5 t. O2 E: d1 ]% A
m_nDeathLevel = nLevel;
7 L3 }8 Y$ i' i3 d7 `, t3 _, h8 F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- n2 X) h/ r9 J8 h) I- C5 J. H" b% K
if(IsMaster())
: M/ Q9 A7 g* v1 P2 d* P/ y1 b8 n {
8 A2 d3 s' K+ I7 x* N& C2 Q! q0 x; a int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 c1 f0 O) q9 i+ j: D" u; W1 v
if( nLevel > 59 && nLevel < 72 )* u' s! M3 V+ t+ V1 v
dwTmpSkLevel = 1;
- O7 x7 F' G. \7 ` else if( nLevel > 71 && nLevel < 84 )
! \( Z6 @* Z. x5 V dwTmpSkLevel = 2;7 c! v0 n4 W& i$ a# T x$ D" G
else if( nLevel > 83 && nLevel < 96 )
! C) z% S* r4 u Y8 R3 J dwTmpSkLevel = 3;
# c) C7 Z- ? r% r5 K else if( nLevel > 95 && nLevel < 108 )
3 W: x2 S# D4 Z5 q5 |9 W( f dwTmpSkLevel = 4;9 s2 m1 b, G" K, b
else if( nLevel > 107 && nLevel < 120 )/ ^. e+ t; ]7 U- V5 Z: O0 ]
dwTmpSkLevel = 5;
9 p: P$ s+ D$ D( u9 M' j for( int i = 0; i < MAX_SKILL_JOB; i++ ) " B% v' Z; q) ~- @' [2 A/ e2 Q
{ # ^& F% E- p/ A+ X
LPSKILL lpSkill = &(m_aJobSkill);& u; _; O t& H% R2 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )# E# ~2 E) \" h/ t' I% M8 I! F
{8 F9 l& U7 a5 k6 h4 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( Y: L5 z4 F3 A if( pSkillProp == NULL )- t& A7 M% E3 C9 d
continue;) a2 Z3 f4 g: _; ^! |. F1 r6 o7 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). ^) U5 D& B* @* n$ x7 W9 c8 h0 [
continue;$ O7 b! O' l. n" E A* E0 ~0 L
lpSkill->dwLevel = dwTmpSkLevel;
+ @0 R( b$ S1 b3 F/ N L l" O! v }+ S: }, Q' J+ i; X- p- V# }
}
5 o/ X/ o- [( I# ^& J } d8 w- y+ z" r S3 |
else if(IsHero())
8 o! S4 h* F# { t+ D2 } {
3 l' {- N1 q P2 I for( int i = 0; i < MAX_SKILL_JOB; i++ ) / m w2 x- _' k3 f4 U0 [
{ 2 L, y$ s. d. t
LPSKILL lpSkill = &(m_aJobSkill);1 H' I7 Y( o/ _$ X+ e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
W$ ~# J Q, B0 W! z' q# w3 w {+ L/ M3 V4 @0 s d3 D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) f5 K2 s2 C( o8 T7 U if( pSkillProp == NULL )7 ]: r! Q% L' ]2 B3 L% X Y- W
continue;
0 w, {1 j/ l* Z1 L5 h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 b/ {* S( t' W i continue;
+ @& H3 D+ X9 \% q# V1 F' y lpSkill->dwLevel = 5;
5 Y7 u$ K* P# `2 ]: ?9 u8 T }
# H" H1 Z& [5 g6 ] [$ V: T }
& y& C* w' Q* r1 N; C }
' Q" [" L. ^$ v( Y, i, F& b3 { else if(IsLegendHero())0 }. v3 f$ N: Z; B+ `+ P
{% A" n( s; P! a( B6 O9 u# Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
x& f6 E! k0 i% k) f { . G4 U. Z& \; v$ k# S
LPSKILL lpSkill = &(m_aJobSkill);8 J3 i8 c& e8 T; C. B- j/ W$ S
if( lpSkill && lpSkill->dwSkill != NULL_ID ), c- @6 S: t- A, `8 W0 `
{
" B, D$ w, [" u. M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' @, k+ x+ D/ w) X
if( pSkillProp == NULL )
# x0 l: _4 K8 J; w, V# q; O continue;
1 r& d4 o8 S% I' s8 b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' \7 p# u. ^' S7 b
continue;
0 M4 {; X- c& b& B( n) p1 J lpSkill->dwLevel = 5;
0 J; g3 g9 e# E; d }! B5 N# z( r9 W) J( X B- I! x2 u/ h& C
}
3 m; m4 w/ M4 } }
) y# h q6 t2 r2 o8 c' S6 z" z _! f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# Z. K+ J- N6 s& s
if( bGamma )
, f4 _3 ?/ f# \: p7 ^" E4 v { S- J1 j$ ?' `9 C8 d6 S
m_nExp1 = 0;9 O6 S0 y& V" K
}$ c% ~& U y4 k
i2 f1 O3 S9 x: _* J5 W ( (CUser*)this )->AddSetChangeJob( nJob );! S5 O" _4 `) I9 U L; S) M* r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* _- h6 e5 ]1 u- w2 w1 F
5 Q# a: R6 E7 w6 k' e/ |3 B2 G. o' f9 {! E6 o
#if __VER >= 11 // __SYS_PLAYER_DATA& V7 Y) j/ ]; n, P; x+ E) c \/ m' P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; o8 w% J: o& T2 Q$ q [
#else // __SYS_PLAYER_DATA
) V( Y, U/ U( n; C1 R8 b5 N g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 c" U, u1 ^( }; T0 ^7 o2 ?: D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 v2 W ]" ^5 _5 B
if( m_idGuild != 0 )2 g6 E/ C) E0 l- r) T! x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 d3 B; z4 X% X5 C: W
#endif // __SYS_PLAYER_DATA
& O% d. C) ]* u SetHitPoint( GetMaxHitPoint() );) I9 @& B5 |* D
SetManaPoint( GetMaxManaPoint() );
9 ^ n: B* V/ { SetFatiguePoint( GetMaxFatiguePoint() );
6 r- f! D. P: n! C. \ if( nJob >= 1 && nJob <= 4 )
4 E' Q% R5 ~4 e% j! h {
0 F$ P2 o( q% q! h n5 i% Y m_nStr = m_nSta = m_nDex = m_nInt = 15;
! S9 v% z ~+ E+ H) m m_nRemainGP = 28;& J0 ]# L4 v8 y) X* x
}( T; A* `! q" a$ C
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 C; A1 W# B( Y! u1 d7 W, Y1 }: G {+ ?1 F o% W! E0 t. B' [
m_nRemainGP = 118;$ l* ~: e) o% ^1 q Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: }+ E3 D7 x! I6 k8 D, q) `+ Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! U. |0 G, u6 f" g }7 Z; \( L w, l2 t. N& d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( J* G# F8 M8 I2 K8 u8 `! w5 k+ V {! H) q8 O! ~. I% m6 l: L% ~
CItemElem itemelem;
3 Y* h8 T/ ]2 t6 d2 F- ^ itemelem.m_nItemNum = 1;
6 i# J( f3 Y9 u; o! W3 F itemelem.m_bCharged = TRUE;
J6 B/ n* r3 S& r1 D" q BYTE nID;
1 C y8 `* ?' K; m9 ^/ f, h2 C6 G* W
if( nJob == JOB_MENTALIST_HERO )# ~+ d7 |5 ?# s/ S4 G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, `8 T- d; \ P! b% a8 ] if( nJob == JOB_FORCEMASTER_HERO )) _4 E( y' X9 N n# p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ `) D) ?( N" W: n/ k8 R% x6 t& c+ [8 _% u+ y! P2 f8 o6 Z5 s( p9 R
( ( CUser*)this)->CreateItem( &itemelem, &nID );. W1 I; q; N2 l9 e: h" p* d
}+ G$ [' \& Z6 `; @0 I6 |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; _9 m/ w# w8 Z* J) v ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 M7 K2 P. _: t$ K+ [/ {
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); J& w* |, P3 p8 I2 l. q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( C/ K, M$ [* H! `, p
( (CUser*)this )->AddTaskBar();*/
& J `1 x8 p$ A6 I- h ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& x3 x$ ^5 S6 \: P% j/ a' T& g6 h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. n- C; a: L0 S' {* b
((CUser*)this)->CheckHonorStat();
# w" x w( Z& m7 w' I& N ((CUser*)this)->AddHonorListAck();
4 D } n0 e) a4 |% {; P g_UserMng.AddHonorTitleChange( this, m_nHonor);
; H) b* Q4 ~/ o#endif // __HONORABLE_TITLE // ′Tà?2 z2 w$ R6 z8 F K
}3 @) k9 o% p) \2 b
#endif // __WORLDSERVER
+ } E3 ^* ^; Y% f} ! w* ?. t0 ]1 r) Z9 M2 v0 J4 \
+ [0 A4 f3 x7 O/ _8 m. D2 I3 P
然后你进入functextcmd.cpp并添加以下
5 |! z% S: i1 r7 ]' d# I6 }2 p0 J7 m7 \+ i
代码:
/ K% g. D8 p) b6 e6 ^. L8 a) _ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" o& @9 ?; N h. M6 H下面插入) \) @% K) I9 i2 J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * |( n, Q* n9 L9 R1 f0 F5 N6 P! F; o- q4 b
0 k8 P4 R# j3 C1 l- X
然后你去
2 @$ J2 n) {: e9 x1 D* {' o; O: U6 W5 E% l4 |6 J
代码:: O( L7 a' ~- l9 D; |
代码3 z) H- r* |# ^, ^0 k; o J0 \9 G
BOOL TextCmd_ClearPropose( CScanner & s ); J4 s m' q1 D2 u$ J: u: H
{4 p( h* T3 O2 p9 @6 j# q# g- i
#ifdef __WORLDSERVER
8 r: o" [$ u! c5 ? CUser* pUser = (CUser*)s.dwValue;
9 q. [% l7 J( G$ d) }5 C g_dpDBClient.SendClearPropose();8 P* I* o3 F% E5 k* S
#endif // __WORLDSERVER
; F$ F- g; u9 J/ v5 w return TRUE;# U( M5 \$ Z7 v9 R% M
}
H' z( \1 L5 C6 p下面插入
# i& g1 Q* U4 q1 W$ Q3 g% i" [BOOL TextCmd_rebirth( CScanner& scanner )( c; h6 o, n/ X" o# |3 m. ^8 j2 @
{
' ~* X* T6 m; F0 G; o) }( Z" ?#ifdef __WORLDSERVER- F$ N; X& W4 }& |
CUser *pUser;
1 g7 w5 x2 c, g! _' F) jpUser = (CUser*)scanner.dwValue;
1 u2 m$ }& \9 t6 y9 tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ y: E/ y; {1 `7 ~5 N A; ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 X& H3 H- P# O+ z. V( V
else# b2 P+ Z, H5 L
pUser->AddText("你还未达到重生条件!");
4 P4 W: H# Z+ }#endif
2 l( W8 Z% y- g: _: }( @2 A3 Kreturn TRUE;8 K3 g) @" g4 ]) Y' r( w$ I7 e
}
. Z2 |: g8 F. x$ d, ~1 T x9 U+ |1 C# M J, _/ t! i
8 i; J! l, i& l. Q& @/ u! K$ `1 H2 w/ y6 T6 d7 Z* r
1 x: m6 `% q V6 u o# H |
|