|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 A7 p$ D( `, R, K( Z* {
& ]' @9 r8 Q6 t+ C! G. R; G; n0 s$ eMover.h' q* {6 g9 O' D& U' @
代码:5 ^/ `: m& X- u: j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ u& {: O. |; ~" w
0 K. G3 |/ `. [/ j3 q8 i3 G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 s# R. f* l0 u! U0 ^! A
3 S. o u7 U) @* T- X! m* q- N
然后你去mover.cpp添加% v" J9 q+ B- v% |0 R0 V* E
4 @9 A% E% |+ L7 Z" k( E; v, S% g
代码:/ d8 p! Z e. I5 o$ |8 C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 j( }0 f8 G% D* s- W# f9 E7 d
{: {9 B( h% z' i* B+ L" |
#ifdef __WORLDSERVER
& @! c3 | w e/ t4 J3 s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó n3 D$ m3 a" y8 _1 o
MoverProp* pProp = GetProp();2 q& s+ D; z) v2 L( p( e! O
if( pProp )
n; m6 d* P g% w# s {6 v! k' A+ r* ]8 X
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); J) M& N' B7 T$ r
{
" w3 X# k) ~" k1 h AddChangeJob( nJob );4 Y( j6 J! V4 v* e, P' h( A& b
}else{+ ?/ P8 o5 {% Q. D0 p" N
return;& c, E; p4 I$ w( y
}
: K/ \$ A" M7 h4 x$ S1 t5 ? int nPoint = 0;
8 X7 P: r L" K8 s" A# f3 j) V. T8 V if( m_nJob == JOB_MERCENARY )
$ P( ^8 l; g' A% y, Z) G/ v5 ~9 O z nPoint += 40;, h- `$ r2 y# }5 @% {" K9 V
else if( m_nJob == JOB_ACROBAT )5 [9 l- S1 z2 A; v( A
nPoint += 50;8 w0 C5 t7 z' E
else if( m_nJob == JOB_ASSIST )% u. H% G2 ]; v4 z4 d- N3 p
nPoint += 60;
# w; |. X7 S* V/ T: a s. L else if( m_nJob == JOB_MAGICIAN )
" ~$ j7 Q# ^0 n- q8 e) T b nPoint += 90;
5 ]9 U4 `( z' \" i% W; `. R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ @9 I! X7 m( K9 z7 f nPoint += 120;' W8 }: n4 d' P+ q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 v3 f/ v; b& K( |7 W
nPoint += 150;
! N, S% R" c2 U: J" f9 @* o else if( m_nJob == JOB_RINGMASTER )
& Y' a( N: g2 E, G2 H) \8 W nPoint += 160;
- X& N. g$ P% }+ D$ _; ^ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): l) L1 ]$ ^( S |" F& S+ `$ v
nPoint += 180;
8 V1 M7 N- }) F+ _ else if( m_nJob == JOB_ELEMENTOR )
; F) K* ~: n9 H* ^ nPoint += 390;
" v0 x: u. X( n- ?1 i' M4 W4 b. v else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- d5 A6 E3 E! B+ n9 V* t2 q4 d nPoint += 120;
5 ?# }+ M- J7 e. T4 E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* l2 w3 G4 Q& l/ f' d" l2 a* ~5 S' l
nPoint += 150;
9 @; c- Y1 j; f else if( nJob == JOB_FLORIST_HERO )
( y1 g1 p! y: a' k/ X nPoint += 160;
; x5 V; t! a) M6 j, D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# Q! N2 {: z [" g+ \
nPoint += 180;
. ?9 x7 |+ d# h, w, u5 p9 ~3 {8 k else if( nJob == JOB_ELEMENTORLORD_HERO )3 \0 O" n% l* N3 B; h& m3 c2 ^
nPoint += 390;2 B6 t' X! _9 T' l! v2 ]1 }5 k
5 \. x; b% S Y
AddSkillPoint( nPoint );0 k4 D& P7 L5 Z: r
m_nLevel = nLevel;
0 V. v- B+ g+ \" I* q' k2 q+ B- y7 l% a$ r- J# [3 u) @& g
SetJobLevel( nLevel, nJob );
3 _* z9 z( }8 N2 x m_nDeathLevel = nLevel;5 }5 ?" ~3 M" ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. K9 Z8 z) w3 p; k1 S if(IsMaster())
- j9 ~* k' r* T6 p; S! ` {
$ P7 ?; ?, i; p. \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' B3 x( B* U# C' |4 T7 F' y2 O if( nLevel > 59 && nLevel < 72 )
. m8 Z1 e K# X4 T3 Z/ _ dwTmpSkLevel = 1;4 a3 L0 ~- e' Z6 c# o$ W! O; ~
else if( nLevel > 71 && nLevel < 84 )8 B- q+ n6 H- ^. R/ i
dwTmpSkLevel = 2;
' i. h7 b4 A) C& ~# P) E3 g else if( nLevel > 83 && nLevel < 96 )
1 E3 n" F h. a8 j6 w0 E; j2 l1 M dwTmpSkLevel = 3;, V% }; p1 h1 @1 O/ q3 e1 c: o
else if( nLevel > 95 && nLevel < 108 )2 B5 [! J: n. D
dwTmpSkLevel = 4;
/ {7 B5 ?# O3 j else if( nLevel > 107 && nLevel < 120 )+ y( l* j& [. w8 q
dwTmpSkLevel = 5;, M K! X, D+ b- L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . I+ A7 D! w7 y6 x
{ 4 ?7 z5 B0 w! `+ y$ [
LPSKILL lpSkill = &(m_aJobSkill);
$ x+ S7 _" c9 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )* N# D+ D' E% y1 i' n0 C1 ]. a
{
1 ]+ e4 O- E& S2 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 R9 T0 N7 f" x( u6 J, b if( pSkillProp == NULL )
+ }! A9 K; T% B; u& q3 N& B6 [# f continue;3 K4 I( g2 ~ a9 N/ X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). a2 \% Q( ?# x
continue;
# s9 T# S& a: | ? B lpSkill->dwLevel = dwTmpSkLevel;
$ R. Y6 i/ f0 [5 m }( v; n5 h% J, G' S6 S; ]9 i
}
% o2 X! [6 m. i" D# p4 E0 ~ }
8 L7 H P1 F1 M6 Y! z& X) m9 | else if(IsHero())3 b2 `. e3 C' P; L5 ^: {) J
{, ^3 f! P* J* b. w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! n: k# R' v2 v5 v6 u$ g! G
{ 9 y$ H2 h8 r R- b" T" ^9 c
LPSKILL lpSkill = &(m_aJobSkill);& }: N& ]8 y( e$ z* r: p5 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 @1 t/ t# q. j {
$ t X! E- k# W I3 \. C6 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 J( Z/ a( X. t4 S5 {
if( pSkillProp == NULL )
8 d5 N L4 P/ O3 k1 p! S, T* @ continue;: _ W* T1 I- A( i0 O7 t/ U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* g% r! M* C* l: W/ a
continue;* X7 A" E: ?% H: h+ z( c
lpSkill->dwLevel = 5;
. b& O, g& d5 j7 U }' L, @1 j5 y2 P7 s
}
. R. P6 M: M9 l4 i }
7 {; N7 {' i& T7 x" q; s# ? else if(IsLegendHero())4 E9 F) C( S# k) I( b
{
) H: {! \8 k( I! @1 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( n3 v! ?+ P" h; D
{ 3 d" U. L* U: e0 F
LPSKILL lpSkill = &(m_aJobSkill);9 d) T- v& V& n2 ?7 p1 G9 d, T8 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; F) |; W; J' ?3 o. S- E! K {
. [1 {8 u6 \+ o$ _4 b3 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 t- G8 }+ ? X: f+ E) j/ B
if( pSkillProp == NULL )
" k0 B4 G0 m* \# d continue;
5 e7 b5 o" {0 ?* I* L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* t! i+ } a% X8 N+ u continue;
* W- B; l# k: I1 F5 g lpSkill->dwLevel = 5;
5 G O. U+ J2 P' z4 z }5 N5 s5 k- Z' `+ D5 Y% k' X4 C' o7 @
}( J4 f. |/ P" J
}
+ y5 [8 z& o& e8 v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' e, a8 h% f' R+ s if( bGamma )
! I4 K# }4 V! G {3 ?. f( s3 z# a+ Q
m_nExp1 = 0;
& ~$ M/ R$ Y5 Q* E }8 w1 H) P4 `7 \8 n
$ w6 A2 o3 d- k& S2 m% g6 E
( (CUser*)this )->AddSetChangeJob( nJob );: l/ b- ^6 j9 c+ x7 c- F+ C
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 x' d& W/ p0 `
# W! b9 O2 y2 Z9 ^9 n
( ]3 w$ b5 k9 b% x- c4 H#if __VER >= 11 // __SYS_PLAYER_DATA
" K5 m; l. L) Q8 n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ M/ E; B% j1 j3 k9 ?0 c#else // __SYS_PLAYER_DATA
& J) r' z8 ]8 @" n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 l- F# q) W+ |; f. P# M* h' |; f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- \; L% E6 q8 o5 y: j0 X$ {5 O
if( m_idGuild != 0 )
. W5 ~# @' S3 Z7 W' U! ]% ~7 d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' P8 ?! ~2 P7 B, ]( j
#endif // __SYS_PLAYER_DATA2 x6 U1 Q6 a5 s8 e: D/ i
SetHitPoint( GetMaxHitPoint() );8 a$ O( x! H+ w% m# r2 f# ~
SetManaPoint( GetMaxManaPoint() );: ^! W- a8 z3 A" s m3 e( t9 A
SetFatiguePoint( GetMaxFatiguePoint() );5 J( _6 i' o* X E, m
if( nJob >= 1 && nJob <= 4 )
% _7 O: _* T8 m; ^" s9 p {
) k7 ^3 R2 y( [0 A* ^% C; z0 I& U$ J) S m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ |' }1 a5 y; |- |5 O. w m_nRemainGP = 28;: l( N. z: h# t
}
9 \' z. G$ d/ m- I if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 K" |- t8 N* g3 l0 _1 j
{
9 ]& j2 D" d- c! b# y m_nRemainGP = 118;
6 X( i2 J0 v/ a x) L //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; L' ?& ?1 ~3 }- J6 O
m_nStr = m_nSta = m_nDex = m_nInt = 15;% ? M9 m7 p/ M3 V" Z% q0 L
}, R% C8 O+ @/ _7 P8 \
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* N M- H9 @6 n2 c1 c" \4 o |) {7 i
{
$ R! [0 w+ \ q# j$ t CItemElem itemelem;
( T: a4 |* U9 m' s itemelem.m_nItemNum = 1;
& i1 X6 h' x6 p# e* f itemelem.m_bCharged = TRUE;2 N( V& r' j7 A: O' V& P' e7 ]
BYTE nID;
, y: }2 ]6 o5 u7 ?7 F/ ]
7 ~! j# F( f2 J- e6 l' Q3 j if( nJob == JOB_MENTALIST_HERO )! n Q' Q9 q, R/ u( }5 O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 U M: m- K" | if( nJob == JOB_FORCEMASTER_HERO )
/ e+ p7 g+ S4 F9 ~# j0 ~% M8 z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* f: |. m( _& _) ?. f2 ~' N3 z: b
& d2 C0 k8 B" k8 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );) B$ @2 s7 S+ @0 c5 W
}
% X3 O6 L; w5 w0 h. y0 I, L3 w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; _9 V$ v( T2 M2 ~4 |6 r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; h( t5 A1 h' u" r+ F# a; M9 V6 O
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 I! h5 x) V6 s% ~7 U9 E0 B: F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 L* _; g& u n; F, { ( (CUser*)this )->AddTaskBar();*/% w3 U1 S% ?+ X' {& T" p0 l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. \) d# E- }( d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" u3 M C; X1 W8 O8 C ((CUser*)this)->CheckHonorStat();
# }6 F$ ^/ }8 I) D6 w+ H+ [ ((CUser*)this)->AddHonorListAck();' n/ c& N! f8 d) T3 r
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ j1 E2 K! u: j7 m
#endif // __HONORABLE_TITLE // ′Tà?1 T0 [5 V2 }5 \
}( S# D" W& Q3 N
#endif // __WORLDSERVER
% r n! r& V: t3 P} 9 ?, `9 J; ^) ?2 Q3 y. r( P
/ _4 e% D2 Y7 f# O% O/ K9 |
然后你进入functextcmd.cpp并添加以下/ p2 } E# A! d
: Y3 j2 }; e+ U3 ]" \. i; I代码:
7 d2 m* B9 p; T' M9 N8 d8 EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- C& _' N! ?3 j) e P* |2 `
下面插入
# F4 `1 y2 s; t5 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' P; F) }3 X1 [; G' ^% h& b: S }3 D
2 n7 H4 q; w6 E: j然后你去9 G; e% X; T2 R6 p6 u& Z8 c# L2 Q
6 ?' L3 V; ?+ y
代码:; A7 E4 J0 U4 @
代码1 I) k" N; r8 x( z" |& P
BOOL TextCmd_ClearPropose( CScanner & s )& U" c) O6 i5 Q3 p6 z: g
{/ m1 c* E; j( Y$ e
#ifdef __WORLDSERVER
; N& @( S2 \( J# \' f Q. O( | CUser* pUser = (CUser*)s.dwValue;
8 q: C: Y, z& H( V) U" f2 T: z g_dpDBClient.SendClearPropose();
. N9 p, e: G# v; A1 a# b, t: r#endif // __WORLDSERVER
$ K9 c) D* o4 P, P return TRUE;
1 Q ^& Y7 D" E8 y$ e) U! F- w# X: c}# B: P9 P1 \; _1 z
下面插入
; N0 {/ K5 A- l6 K$ b' xBOOL TextCmd_rebirth( CScanner& scanner )7 A- |& ] Q( v
{7 _3 g4 X7 x+ x p* ?
#ifdef __WORLDSERVER
" I" L, a/ R4 u5 zCUser *pUser;
7 U* u) z: M0 ypUser = (CUser*)scanner.dwValue;) A) r5 x: ~( y. F& ~5 a, f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 J. N! t( x# k6 w- a, T- s+ z8 TpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ K& S8 @0 K+ h& u! relse- S6 e% H! z: Z
pUser->AddText("你还未达到重生条件!");1 r4 R6 p0 H7 C! V' W4 G3 H4 d
#endif# b# L! V& V# G
return TRUE;) d/ `8 H' H8 S. o) W
}
: o4 x, o( o& @) e: g1 @9 [0 i; b$ o- D9 d2 s4 Q. w6 Z& T
4 f+ } H+ a2 |3 B& S
0 S6 O2 f- o6 j0 I2 @( B2 Z1 W" b1 D
|
|