|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# N* Y3 d$ W I5 L; A# n7 v1 g/ M) G1 k& w |
Mover.h
2 S" I# u; Q' @# m( k3 w" j+ a. e5 d代码:1 J: H6 k7 B8 d5 f8 y6 \
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% w$ J2 M" t0 ~- R" }" S- c: c
" Y( S# w; P# f& v# B* f9 r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 L6 O! d4 U7 Q
# F8 s8 b3 L1 P8 r1 O然后你去mover.cpp添加* `8 b1 R$ Q7 i# i
) G! i. U5 ]( s+ q* M6 T, X# p( t
代码:
6 C; D! |% `2 u0 c- Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ u8 p$ U4 A& N, O4 e0 N{* c+ Q) I" h( e/ y0 d& G9 T9 c
#ifdef __WORLDSERVER- d! M$ K& k" R2 K* H! h" H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" f6 l& m9 F$ f
MoverProp* pProp = GetProp();5 N8 l! ?5 s$ [6 f3 `. `
if( pProp )0 A: B2 p5 a6 r. e6 B
{
# y: H2 I8 t# e+ D# ? if( nJob > 0 && nJob < MAX_LEGEND_HERO )
L4 f+ R8 _ v# u0 N; l {
: {3 P3 n# S0 M+ J6 n2 `2 l AddChangeJob( nJob );* _6 _/ }" z3 R& o" i5 h5 ]* K
}else{
0 B: S& r& ?# Z& G0 o! } return;! [% b% v' h( }* m& I( c
}
3 X! r5 V1 E) T- X& g! i int nPoint = 0;
! ^% E$ E# m6 J if( m_nJob == JOB_MERCENARY )6 U) w' A" P0 Y+ n( q! |* w" v
nPoint += 40;
; o- F$ `: F' }: W/ ? else if( m_nJob == JOB_ACROBAT )2 ~3 m1 S8 o& X
nPoint += 50;
( S6 a7 k. X3 r/ i/ Y- ` else if( m_nJob == JOB_ASSIST )
`8 X2 }: Y. U$ D. u% v3 t nPoint += 60; s8 }- E% A8 s+ w
else if( m_nJob == JOB_MAGICIAN )
! e! L$ a2 r2 p% C7 [7 h nPoint += 90;" _1 m6 g9 m! J/ d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ I4 N; V: w5 h, k' q X$ e2 _) T1 u nPoint += 120;
1 j7 ?: G9 T9 x, `7 J" S9 ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 Y9 B& d) L& ~+ Z" Q o nPoint += 150;0 }- l8 {9 Q% r" `( J7 l
else if( m_nJob == JOB_RINGMASTER )
5 K) O/ [2 m J nPoint += 160;
. R3 A7 Y; t0 B3 }. R- _# o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ D# Y2 n7 c1 }5 ` ^7 ~) H
nPoint += 180;: X! e0 u" k* O
else if( m_nJob == JOB_ELEMENTOR )
& A5 S8 g7 Y& U h$ z! O nPoint += 390;
* O# {2 Z# _% ~" l: _3 c5 v: c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* {* m/ d% e0 e( Q nPoint += 120;
0 g3 y- ^; g" Q# h r: [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 O0 k- c8 E& u2 N+ W" [" _& [+ b nPoint += 150;
- D& ^% Q8 j) Z$ @: l else if( nJob == JOB_FLORIST_HERO )1 i8 e! |! v: C5 |8 o5 q' x4 L G
nPoint += 160;, b: c$ z" y4 D; R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" x2 B! @6 r3 U. N1 ~7 v' Q nPoint += 180;
. I6 N9 Q) G0 D# C7 f( h. c else if( nJob == JOB_ELEMENTORLORD_HERO )
) q" w& ~+ E1 s5 P* d1 T% C e& W nPoint += 390;
7 F! u( K& \. X/ U( [! d# |' E/ s
3 q8 b9 z" A6 v" z4 ? AddSkillPoint( nPoint );/ ^, u1 N5 s4 s. _ A0 U5 t" v' M
m_nLevel = nLevel;
3 G8 o2 V* R* i9 E' {0 ~
- v) g8 O! M e: D8 I7 t8 H) u, i SetJobLevel( nLevel, nJob );6 ?5 S! i& F7 E! ^; o
m_nDeathLevel = nLevel;
k, z4 w0 {! u: R$ `; o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( p& `+ T6 n7 _
if(IsMaster())
+ l4 W: ^8 K( @( b. h9 w/ L9 B3 w {
$ j! ?( S! j- r* n8 E# f2 s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 _: H8 n) {5 \( z7 t
if( nLevel > 59 && nLevel < 72 )6 H0 M& e- ]1 }( l* s. y1 [9 k
dwTmpSkLevel = 1;; Z9 @( ?0 i1 f( }6 H! z; B; Q" t
else if( nLevel > 71 && nLevel < 84 )
& }$ q$ D( V" F! r$ Y dwTmpSkLevel = 2;
& I1 N8 r* K4 Z2 m else if( nLevel > 83 && nLevel < 96 )
* a5 ?# N/ L6 J0 v6 D# U dwTmpSkLevel = 3;8 q$ M* p1 \* k1 w) @8 w
else if( nLevel > 95 && nLevel < 108 )
0 w" N' ? V! j dwTmpSkLevel = 4;
! n T% ]7 ?" }9 s else if( nLevel > 107 && nLevel < 120 )
. B: J2 D) A3 y7 k2 V" ` dwTmpSkLevel = 5;
; f' L( l0 C" h5 h1 |4 W for( int i = 0; i < MAX_SKILL_JOB; i++ ) Q `9 i4 d$ u i; l+ h
{
+ l2 E* B) t& s" v LPSKILL lpSkill = &(m_aJobSkill);
! U/ Q3 n* o _$ s2 P, t! n if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 X- A$ f2 {1 k2 ?$ |9 v {
3 X% b- u; Q9 e' P |6 i! X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* I% w. S$ I6 o" J% H3 e% V if( pSkillProp == NULL )* A8 ^4 x1 R& l, v7 B
continue;
+ p; _2 I8 @7 u2 ?" c8 }% k7 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# e5 V2 _ B# @' E8 k
continue;; k; l/ Q, l8 u5 @2 a5 W. l
lpSkill->dwLevel = dwTmpSkLevel;
2 {. N6 Z( ^; j" }& n }
e, B6 ? i" r/ h4 m }; _( Y; H- Q; M- X% ^
}5 ^0 R! f# V6 |% d# v6 C
else if(IsHero()), [7 L/ C; G8 b9 h
{
* d+ d3 x/ f+ M for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 o; [8 R- [( e% h$ c5 v7 U
{
/ c- L' r! l, C4 l LPSKILL lpSkill = &(m_aJobSkill);% A* Z1 V B6 w, L, B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 t# w# m$ x9 f" c2 ~ {
5 V* x2 i6 S) ^9 I$ F+ @: N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" v ]' z0 o* X h7 T$ f6 i: T if( pSkillProp == NULL )/ J) ~" Q8 N, ? e3 \6 x [% S
continue;
: d& g; w6 L$ k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ w: Z( [$ D$ ^8 s4 X5 k( T continue;% h z: [. Z# g* `# i5 [
lpSkill->dwLevel = 5;
7 B$ t! ]( E- `! P, K }
" F* O/ a8 S" o; x* m }* D' M4 t% F4 q0 Z
}
8 t, l% D) s5 \& U& Q else if(IsLegendHero())
9 G8 b# s! T' m; C- P2 V) s) K6 D {* I1 k& `: e# v2 X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 S% R/ `" ^. K8 J5 [7 I: b2 C {
9 N' ^6 H# Q3 X2 I0 }# Y0 ? LPSKILL lpSkill = &(m_aJobSkill);
@- r* Y0 z( | z9 @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 p( F8 n8 Q. V9 c {
7 H9 ]2 j, Z8 l' H5 T# j; |" C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + P4 J2 K/ F( g% V% F' H% R
if( pSkillProp == NULL )7 S: e9 U1 ~' u3 e; U" h" B/ K
continue;
4 F% b3 @4 X* d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 q1 k1 m {- I- ~) K4 v+ M6 x' n continue;7 \; L7 b4 {$ K" \# ?
lpSkill->dwLevel = 5;% {8 l0 Q8 ]) I3 p' C
}
+ k( g0 v1 X$ i( D }0 H7 ^( h' H3 m8 E
}
3 p8 ^" D% ~# r% R$ p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ ?) w6 t8 l- z7 T% Q
if( bGamma )2 l7 u9 R3 R r. ^
{
) j+ y2 J( f3 a& U0 S m_nExp1 = 0;& q o/ X! [% H E
}' N& \! I& Y! n# @3 l( R9 C
" l# U; t4 o8 U9 R, W$ l! [6 v7 E ( (CUser*)this )->AddSetChangeJob( nJob );* \* n- V5 J& d2 `1 |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 h+ O; ]; X2 C& d/ V2 ?) s
% P8 g- f# X/ L: e
0 h- K; Z$ V7 f#if __VER >= 11 // __SYS_PLAYER_DATA
0 F# w& |/ i- u$ a+ A1 ~ O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 O; y, s9 x( Z( q6 W1 k
#else // __SYS_PLAYER_DATA
( A- d$ b3 V* S$ y! D g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ y" ^2 x: Z$ S0 j: Q# _/ r: v+ s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; e3 Z! R' l4 r- h @
if( m_idGuild != 0 )" H( E8 T$ }& y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% i1 k+ M0 p2 ?$ w3 g5 o#endif // __SYS_PLAYER_DATA( s5 V* M/ H4 ?' L- V
SetHitPoint( GetMaxHitPoint() );9 S, Y4 O: u: n! [8 V0 f
SetManaPoint( GetMaxManaPoint() );/ @, x7 ~4 d( f2 s$ k- q
SetFatiguePoint( GetMaxFatiguePoint() );7 Z' u3 n3 e" m; D7 l
if( nJob >= 1 && nJob <= 4 )
+ w, u% Y3 Q4 N) b {' o, _7 ~0 x3 h# _" V7 q" i
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ U {3 K0 q5 U1 S
m_nRemainGP = 28;; m: M4 R; h2 _$ t% c
}
; R w% U$ `+ f( w if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# L, l: `1 N5 V& I! D
{
2 V5 F1 s; b6 G/ D m_nRemainGP = 118;7 K& Y0 W5 z% p+ r* j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 Y' {5 Y: R4 n4 ?! f% O/ D) x9 B: [+ h5 I m_nStr = m_nSta = m_nDex = m_nInt = 15;
) b, W/ X ^3 b! g }, b$ `3 e( h/ I- ~& Z: d, `4 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- l0 c. o. _( i
{
$ L. l1 {( m8 N$ z( h CItemElem itemelem;
! T6 v3 p' T2 v, h$ f itemelem.m_nItemNum = 1;
; y7 i6 \; N6 _7 d1 a! A itemelem.m_bCharged = TRUE;7 J) a+ W6 I" y8 I$ Z8 W9 b
BYTE nID;: g- a Q7 P; e/ R! W) y
1 H# | N+ R1 y! t+ b
if( nJob == JOB_MENTALIST_HERO )
2 `" K; J% W2 P/ i/ z7 ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 N/ n3 J' g; O: l
if( nJob == JOB_FORCEMASTER_HERO )$ ]5 u* M" e4 s a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" c* S& J# K, h1 K1 U
0 u2 k) }3 N2 h% }
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, |& V& {* V; S# g }
! s9 b. e; o# |! x: ?0 v2 V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, N5 t1 u" h: s) S. P! U: C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( w' t$ E' u/ ~* \8 A0 E) R, h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 k( T( I7 u3 i
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 e p( \+ g2 K! E+ F" ?9 ^& |
( (CUser*)this )->AddTaskBar();*/
1 m, z) r$ S, X4 Q0 q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ w; T/ E+ u; v# R' C5 k( A( p3 R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 ?' x# n! y: c
((CUser*)this)->CheckHonorStat();. |" u. s0 ?, s( R6 v- O
((CUser*)this)->AddHonorListAck();
) |, [( n6 o2 u& ]; _) P c g_UserMng.AddHonorTitleChange( this, m_nHonor);
' T7 c$ |) }5 e1 a' J#endif // __HONORABLE_TITLE // ′Tà?( V9 r" L8 C8 j% }; r4 ^: ~, s
}9 f' U' j, _* `0 O- Y+ U* O5 n
#endif // __WORLDSERVER) ~/ u& P6 N8 ]' d0 q
}
3 i, j6 _$ y K) {8 e# n
3 }' Y! C5 H9 q2 Z# o然后你进入functextcmd.cpp并添加以下/ z2 F3 R$ F- n, c7 f+ Z# p
& t- x% M: [- y1 ?# U; V
代码:
; C4 l% W7 W/ f! X5 i. m# P# i l: YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% T/ P+ D8 J1 f( H+ R- S4 k
下面插入
+ `: w6 t1 w, z5 D% l# GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; o q! P# D$ x, \% t: G8 z/ l
; Q; \5 f3 L) ^ r. o' S0 q, I3 {: @$ C
然后你去
$ U% {) n8 }9 z, _( i
9 V( D+ m5 e9 V& l3 X( y+ M$ }代码:
5 b0 }) ^. i% v4 Z8 M2 W代码
. O2 e# I2 R" Y, n: C& FBOOL TextCmd_ClearPropose( CScanner & s )- S l C" T* A: Z4 Q
{: P1 a% H/ \# T0 k* ]9 X P0 A' k
#ifdef __WORLDSERVER
1 ?* G, v0 u( ?# q1 g: f CUser* pUser = (CUser*)s.dwValue;
. |* k2 K7 c8 l+ a; Q" x; l: v7 S g_dpDBClient.SendClearPropose();
7 i; q6 e4 a: i#endif // __WORLDSERVER3 }5 y6 G* m- Q9 _6 J
return TRUE;
9 E& Z" H1 Y9 Y F% q1 J4 ^9 S( W}
7 A+ I h$ C9 [2 ?6 v下面插入/ B2 D4 P8 p* G) X4 Q: m$ C* _2 K) g
BOOL TextCmd_rebirth( CScanner& scanner ) @ r+ a9 H& H% Z# N
{
' ?; ^( u( m/ ^. q6 Q- C#ifdef __WORLDSERVER3 Y* p4 O. y& ^8 j. G2 Z# X
CUser *pUser;
& l! G, h6 ~# J7 p! |$ _pUser = (CUser*)scanner.dwValue;( ], C5 A1 d0 C3 b5 W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): p# N: T9 v* m: C' J* z! k0 J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: i+ r! e o- u g$ [else/ F% S+ s$ ~/ u+ {
pUser->AddText("你还未达到重生条件!");
+ E+ M; F1 k/ m#endif+ | y; Q0 G( X" ` G4 ^0 \
return TRUE;
+ w1 P2 f- v' g3 E}
; f3 `' W9 M, n0 z: Q2 Z, `+ x( T; e+ ?: C* ]5 p
H5 K8 J, ~9 p5 ?. C# y3 g7 t/ l8 t5 w
) |+ f7 l" |6 U+ A |
|