|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ F8 A( \% C, J q! W1 z* u
' j, r1 T8 V( F
Mover.h
, A k' K9 g0 w5 X( w& w代码:
" G b/ P- V$ w' L4 }$ P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 ^0 e& L9 l) R: H) a* ^9 ?' d0 V4 @( ~5 C0 m+ q: a# x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! }$ R! ~7 [" r0 x6 ~$ T
9 e; V/ n6 p' K" J& u% Q& w) J然后你去mover.cpp添加' J! b, m' S* u, z% K
& c# U% d) o% ?5 R4 j1 I D
代码:
. ^2 f; F& _$ @/ P, Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ E; P' ^( H, T0 k$ X6 T{6 h3 m. M! H7 K& [+ X
#ifdef __WORLDSERVER# g& |6 i: {3 a* f4 {6 m
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 X8 t- ~4 D& \7 ~! k MoverProp* pProp = GetProp();7 b6 f" ^# P$ `! b" @4 s
if( pProp ), S: }) o, B R4 N5 z/ L
{
! |8 I; O5 j A# Y if( nJob > 0 && nJob < MAX_LEGEND_HERO ), s; A" F- c3 l0 R# s3 k. W
{
& c! ~7 G3 {- c+ ?& @9 { AddChangeJob( nJob );
/ {7 U/ D/ U: o7 U' @; y }else{ k3 v/ B) d, ?
return;
3 i7 H9 N9 @0 b/ Y. S& g, O }
% F7 Z3 r e. H S; `- K$ l9 l int nPoint = 0;
* x3 ]7 a" i: e- \ if( m_nJob == JOB_MERCENARY )2 s: K% K; p8 C; ^8 G
nPoint += 40;" E% c: S4 j' R
else if( m_nJob == JOB_ACROBAT )3 Y; C2 H$ d$ ^4 ^
nPoint += 50;
1 y: e |! X' U else if( m_nJob == JOB_ASSIST )
& N. m# T% D6 d( `6 D/ f7 u nPoint += 60;
2 d1 L9 \6 F2 Y else if( m_nJob == JOB_MAGICIAN )- \" U# G9 _5 [3 n
nPoint += 90;. \; [2 t8 C* e4 I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; S4 z, e! e; j nPoint += 120;, L* D( V, p. h9 ^% i3 P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) x. R, @1 X/ {% s0 B d, [
nPoint += 150;
) i6 y* }$ S, {/ m' ^; j. W else if( m_nJob == JOB_RINGMASTER )* ^; m8 i9 l9 e' ?+ x. X" J1 ?
nPoint += 160;3 @9 P5 z* L- j: e ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) P& K+ i( D; W* B" I! X) x- x! V& P nPoint += 180;' k$ s4 ] q, a# ?9 @
else if( m_nJob == JOB_ELEMENTOR )" N1 U- r! I% w/ u3 }1 b5 U
nPoint += 390;
5 R, n2 L, a( p5 d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 ~. i+ y; B' M7 M" ?) O4 o
nPoint += 120;
: u0 }% T: o- g4 ^ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ m6 D$ j$ [2 y9 a9 x nPoint += 150; H+ x0 A# R; m6 |3 |/ s5 j
else if( nJob == JOB_FLORIST_HERO )/ \+ x2 t, f5 }* y
nPoint += 160;
3 U7 C6 B( i( Z7 U$ D4 Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ ?4 t& N, }, F5 E( P6 x+ V
nPoint += 180;5 V0 u& u b% s3 @4 D3 i
else if( nJob == JOB_ELEMENTORLORD_HERO )
" x6 s" ~% P0 W9 Q% H' K* ? nPoint += 390;4 v7 |# W" j1 n% r* y; s" y4 y
. W" ]* P- i0 y! K* S AddSkillPoint( nPoint );
: z M a X9 a# P m_nLevel = nLevel;
$ K) S& E7 J0 p0 q2 M- {. c5 |9 p( K! \- G
SetJobLevel( nLevel, nJob );
, z8 f @3 i [% S m_nDeathLevel = nLevel;2 ^7 C R+ ]- ^( r9 }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ l! k/ l& x7 \6 f: K5 Y" o' ]
if(IsMaster())
* U1 D$ y# c2 E/ | {
* ^2 V, G% m l' Y# C1 ]2 i% ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 T2 d& @4 S, Z1 }5 k- U
if( nLevel > 59 && nLevel < 72 ) q, M6 x8 M; ~/ Y' w& F/ l8 g
dwTmpSkLevel = 1;
6 `" T0 C& u( y6 X; f else if( nLevel > 71 && nLevel < 84 )
5 b, a- G4 [; u3 [+ I7 _& X dwTmpSkLevel = 2;3 G8 t/ a& s8 [2 t* P
else if( nLevel > 83 && nLevel < 96 )
8 ]/ l$ d; h! s3 F+ u% [ dwTmpSkLevel = 3;
' V U( p2 _6 z5 C4 e: Y else if( nLevel > 95 && nLevel < 108 )
4 ?( s. x- Y$ t$ V dwTmpSkLevel = 4;6 W/ j& p0 u. m) G2 b R+ ]
else if( nLevel > 107 && nLevel < 120 )
( h6 C7 f& j4 `& L/ u# G dwTmpSkLevel = 5;
. y, _6 W, [9 `1 k& p1 w7 G3 V+ k0 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( I9 ~9 W+ v. o% i
{
& W; J- v* p9 O% V LPSKILL lpSkill = &(m_aJobSkill);" p# e V: k+ ^9 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% k9 j* {) P7 Q4 k$ p0 p. _ {, m- [4 {2 w1 h) q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ r+ N5 |5 a. _5 D if( pSkillProp == NULL ), K! b, g4 f- K5 f* j7 o3 ]" r+ A$ C) _
continue;
6 L- ^/ Y0 U4 J; d' W R/ t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 }$ m6 s1 E' O- d: e/ p continue;, _/ r, m3 z0 y- k5 d3 \6 J: v
lpSkill->dwLevel = dwTmpSkLevel;" C7 o' e& Q5 @
}
" C. C1 n( D" E5 j+ o0 F5 n }& C. q& L( g- p& y7 R/ r4 X
}9 l7 c5 I# R0 |5 e9 W
else if(IsHero())
1 c' m$ L. h, p9 I1 R- B7 q {# G; t* ` e/ d1 [: W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 t5 H/ J2 m+ R, `, b {
7 q- N2 ?! p5 N9 w; W LPSKILL lpSkill = &(m_aJobSkill);4 X; Q6 b8 I' X, u- @
if( lpSkill && lpSkill->dwSkill != NULL_ID )' X! W1 t: z" L/ p: ^$ d
{) ]9 B7 i+ b! N( E" d% B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- K; l& X! r) Y! \5 I L" e! T if( pSkillProp == NULL )9 B1 t3 d5 M3 m. Q+ o+ d+ X
continue;
# p# l: Q* P4 P6 r$ j1 I+ \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 ^8 c8 Z& x- h6 F
continue;
1 D. c6 ?6 n$ m0 o lpSkill->dwLevel = 5;
. n. c$ g# @' z$ g }
/ c3 q9 o( r3 o4 ^' ^1 w }
6 F9 M6 J1 K! \& o: l }
8 S, Q# A, u3 J: @2 ` else if(IsLegendHero())* }+ x8 ?9 x+ A
{! T! i. l' c1 A2 h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . `4 d8 K$ s8 ?$ @& G& e
{
7 a2 Z# D" \) H% d( n% F LPSKILL lpSkill = &(m_aJobSkill);" y$ b' X) E* j3 V; n) f2 y. |( T( t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
j5 J a3 k5 W/ n) ^$ U5 J5 T6 i {# e7 r0 W1 [) U, L3 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( E' }, p" t3 v7 b3 D" l: J8 D if( pSkillProp == NULL )
6 z# g5 C% R( ^3 n8 b continue;6 t8 `! Q m- X& D0 c' m! _# V I5 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( l2 w( i1 V$ ?2 f g# L
continue;& _2 O+ a) z9 [5 a7 ]9 S
lpSkill->dwLevel = 5;2 P9 C9 ?& T+ \ f
}
* m) M4 M3 t* C }
' o+ S4 Q+ T5 a, d }
; [/ Z4 @2 y% u#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 ^* ]" d$ c! @4 H% C" }$ N, u- r if( bGamma ), `9 u7 ~/ g9 A3 `4 X6 @
{! ~, v, \, P, j: \
m_nExp1 = 0;) O# h# g- m* r; q J' P& `/ D
}
% R1 m# B: a4 K3 P: [5 y/ e5 ^8 l: ]" e8 V* T
( (CUser*)this )->AddSetChangeJob( nJob );* @; L* r$ ]% X; s! n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* ]2 ?! D! l, N3 J/ P
3 K8 R5 q% e& @6 ]
) j- S; t+ P1 u! b#if __VER >= 11 // __SYS_PLAYER_DATA
9 y( e6 H# e7 l g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" P( r7 y0 L' s: y
#else // __SYS_PLAYER_DATA9 f& S/ f0 x8 B5 a
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ u8 q1 q% E$ |% ^( r$ L g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* Z) g, L+ r) _& D! \4 v2 @2 j. x if( m_idGuild != 0 )
, V: @3 m' H9 t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( k6 a" ~9 M6 D, e#endif // __SYS_PLAYER_DATA: h( |& g$ t( P; h; |/ Q' i
SetHitPoint( GetMaxHitPoint() );
8 S& l2 G5 {) g$ T SetManaPoint( GetMaxManaPoint() );) w8 q4 d. R/ ^! a5 G3 j% M3 U
SetFatiguePoint( GetMaxFatiguePoint() );9 F6 d& l% P: x" ]4 b9 a" N4 U
if( nJob >= 1 && nJob <= 4 )2 b$ G4 Y/ ^3 d4 c9 X" l# p
{$ [+ H- t6 ~- T4 d1 D" K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 x" s- D, j7 k( ?3 | m_nRemainGP = 28;) v; D: N0 b9 p/ a
}0 ~% |: I& @3 x, x5 M3 Z. H# I9 Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ r5 r" n! a- R& X- E4 x
{7 B0 h3 d% W9 Y! h* |3 m' H
m_nRemainGP = 118;& h( F; ] `* t; n' o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ A) z3 k" E5 I, |# u( h7 q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. {. H7 D( F9 f! Y- s9 m }9 L. C" B" m" |. g( a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& z+ `. V; ~6 P& { K$ D$ j( I
{
R* r( {. ]. |& }1 b( Y CItemElem itemelem;9 a# N" d9 ~6 z( l7 J3 P
itemelem.m_nItemNum = 1;
$ K9 u6 k$ h6 J( c4 i, Z1 s, P itemelem.m_bCharged = TRUE;, p5 I _7 `. T* n% e+ v& P2 e+ ^
BYTE nID;
: }: Z# |( g. o* K4 ?! y
" F, k: h n# J- o7 d6 y' c+ v7 u if( nJob == JOB_MENTALIST_HERO )4 T4 e3 ?9 n. y! |! w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) H% m/ H g" s, g, ^ P
if( nJob == JOB_FORCEMASTER_HERO )( }8 I. J/ N( Q/ _3 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" L# n O7 j( I* f4 n
% I, o4 F; ?3 C/ @! Q ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* @& [' B5 H j }% G- H) `% h: x: T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( H# Y6 I# o2 {/ a+ y; Y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& B- w0 V4 J0 T ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ u4 S- h, E* E3 Y. W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. V- G2 ?. k% J1 v/ O4 L
( (CUser*)this )->AddTaskBar();*/- K) D2 ]8 x) Q# K2 z) |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( I6 i6 s7 Y/ f* C2 {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 k6 N9 [# s1 R' G
((CUser*)this)->CheckHonorStat();. s: d' A v+ e/ }: d6 x
((CUser*)this)->AddHonorListAck();
) F0 U$ |% T* x g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ |: ^( W' I7 T, B1 Q#endif // __HONORABLE_TITLE // ′Tà?1 t( u2 E/ G7 N7 T
}/ u4 ~+ j& j- Y7 Y2 {1 |, n
#endif // __WORLDSERVER
6 H2 Z* }3 m- e" z3 `}
9 O% l; t% `# l; p* E) q {7 r. @1 h* l. e0 q
然后你进入functextcmd.cpp并添加以下8 Y; g V5 C* ^% \ c: f9 }
! i6 Y$ L# A. p, P% k代码:# a0 R* d$ ~' ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 w& Q) h5 k6 q s6 O4 j下面插入3 {; v4 A8 A+ z& Y2 i- z1 G1 ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 Q0 T# w4 ^+ E/ A7 H0 [0 ?8 S. ^8 Y4 N8 h# ~, v
然后你去
* Y) ^ u: T: y& U9 n) E. j( |& D; R* R
代码:( G* _" t* A1 e0 Z
代码7 S' n8 ?1 u' Y& i" m" O+ \
BOOL TextCmd_ClearPropose( CScanner & s )* u5 U8 h4 X; x f
{
- G$ J0 q3 h" h; b0 u8 D; g3 }5 m0 J#ifdef __WORLDSERVER
0 q% n! C Q$ ?0 x! J- S CUser* pUser = (CUser*)s.dwValue;( T; d1 b; m, q; d5 e- [' B
g_dpDBClient.SendClearPropose();( G4 _% W! p& r" c2 C* j, b
#endif // __WORLDSERVER
5 ^. s+ u2 i; V1 D K8 Z7 u return TRUE;4 r9 Z2 [6 @+ A6 O b1 T
}
1 A: ^0 U F: r9 d4 A+ M下面插入
( C r, N: \, E, A1 nBOOL TextCmd_rebirth( CScanner& scanner )1 u. M. y* Q' j4 X4 V. O
{2 y; U5 |) j5 \# J' X
#ifdef __WORLDSERVER' o$ ^4 O2 C' n. c0 t6 g( k+ B; {
CUser *pUser;
! y, N9 h3 D9 a; E: VpUser = (CUser*)scanner.dwValue;
8 M& U( B, T* p h# H5 r; o5 Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
m7 j& Y7 k# B. A( s/ A jpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; X- ^" Q& k3 t. uelse/ ]2 T/ ]- u) E( A F- \3 b: l
pUser->AddText("你还未达到重生条件!");) z5 n. S: S, @( ^. \
#endif" K$ A( [1 d9 ?. N+ w4 W8 j
return TRUE;
" z: C# r1 M- q# S! ?) y0 L2 F}
" u5 ^4 X7 m4 l
7 e' k1 m% h4 J3 ?2 I. l, S9 g' \& N# r
7 E2 t) z7 T% G" o$ R' A. m
; p C f/ ?2 w0 e
|
|