|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ b! J9 C7 X( d
* f! A) t: c! Z! ?1 _+ B D2 _Mover.h* u& o5 N$ d1 A- Z
代码:# _% W. e1 ~1 w6 G$ f) @, m: j. r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ s$ r K0 r. v& R" r; {
1 `% l" |1 T7 \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 t) d ^% a: z; { g# ?) ?" r6 K; ]. @/ V
然后你去mover.cpp添加/ f8 [0 |) S# V4 z
3 |/ z' D: r v4 n0 d8 S9 |" ^代码:0 `2 ?7 X# E0 i4 v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 W: ^8 V7 I( Z
{) ]; O5 E, r8 w. S1 B( Q" l
#ifdef __WORLDSERVER2 v3 A9 a8 R" i0 D, Z7 L
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 i5 }) K8 H) Y0 W( T& Z5 c
MoverProp* pProp = GetProp();
5 H( ]4 K/ X+ {4 M if( pProp ) ~2 R7 H0 w7 w! L8 u
{9 h% ]) s! d% I
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 ?: H2 D0 _" f/ H3 a% A
{' X. Z( L9 K6 P' x; J9 b4 A9 j
AddChangeJob( nJob );+ p+ s5 U0 j; K1 r/ L$ @# D6 Z
}else{% H. g4 |$ ?2 a/ T
return;
6 J! r5 `- p$ |7 c1 M }3 N8 ~4 p5 v8 S* B5 \
int nPoint = 0;* m) C3 h: v, r! j/ f2 N7 m0 f
if( m_nJob == JOB_MERCENARY )' g1 S, I, A! x( i' X4 F
nPoint += 40;7 y [4 }2 }- w4 v3 N, W: \
else if( m_nJob == JOB_ACROBAT )
A/ e3 ]6 C! i nPoint += 50;" M' W" m6 N! ~/ J' \6 j
else if( m_nJob == JOB_ASSIST )" r' v; o+ E: g4 ?) w
nPoint += 60;
+ z: P7 {' j3 X: q else if( m_nJob == JOB_MAGICIAN )2 a# H! _2 j$ X4 }# f3 c7 v
nPoint += 90;* T0 [# x) F- y W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( W8 M0 {5 F! K h
nPoint += 120;
6 g5 {- r- N; F8 l/ Y" k! N, g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( s8 Y% f( ] |; T
nPoint += 150;
9 a- F1 i1 V- G# b) u8 D _ else if( m_nJob == JOB_RINGMASTER )+ c) Z$ g$ ~* R1 Y5 F" b
nPoint += 160;
3 f8 T& W; T3 n) p4 Y! } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 u2 K' V, A J3 c nPoint += 180;
. ]; Q7 i* N+ x* R. {8 [* ? else if( m_nJob == JOB_ELEMENTOR ) S+ U) Z9 v) K5 {! G4 f
nPoint += 390;
G0 Q; P8 \/ V7 t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" {7 L2 r! N ~ F
nPoint += 120;
7 J- K8 r6 e. \; }, U) y' a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, {6 Q& p/ n) Z+ V3 @ nPoint += 150;" X) a2 v; F6 e
else if( nJob == JOB_FLORIST_HERO )
" |" n5 u1 u% N3 q* p nPoint += 160;
7 K1 B7 e# G* g5 }* s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 n! M7 v" V. V8 g Z+ g$ y' S8 } nPoint += 180;
' C+ l7 A/ s1 D) v3 Z0 d else if( nJob == JOB_ELEMENTORLORD_HERO )0 u% C x) v4 m$ T
nPoint += 390;9 m+ {$ p4 p' k! `
; H+ a' q/ D2 r! ?4 K" i6 S/ B- `4 \
AddSkillPoint( nPoint );
2 U9 z& m$ s5 Z: \& s5 ` m_nLevel = nLevel;) K( `; g: l( e$ ?3 A( x
; c- O' J/ x% w SetJobLevel( nLevel, nJob );
( t* h) K6 I/ c m_nDeathLevel = nLevel;$ \+ N3 n3 s0 z2 |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 w3 }- r/ s% j+ J if(IsMaster())% j% R. J$ u0 a7 t
{
- V# G$ [4 h0 ]! O& B) D2 q$ o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* @# w4 E0 U" p. t' z% Y: i6 z
if( nLevel > 59 && nLevel < 72 )2 ?: ?7 D# T/ @; _2 ^
dwTmpSkLevel = 1; ~# a2 p% s+ B1 N" X& S& N9 N
else if( nLevel > 71 && nLevel < 84 )0 j, y1 r& C( |) V3 }+ D8 k
dwTmpSkLevel = 2;, j5 F( U! ?; z# z8 p" O% l
else if( nLevel > 83 && nLevel < 96 )9 E' g% g$ B1 u$ V- m
dwTmpSkLevel = 3;& b. t0 o5 F9 R! R* ^- d- V9 p8 b3 r
else if( nLevel > 95 && nLevel < 108 )
8 R: ^- | c" F; j- M dwTmpSkLevel = 4;" w) S5 A+ c: U
else if( nLevel > 107 && nLevel < 120 )
1 C% b+ v2 P' M dwTmpSkLevel = 5;
# J! d7 i' `8 r3 U+ {; X* G for( int i = 0; i < MAX_SKILL_JOB; i++ ) + I% ]1 [* ]7 e6 S
{ / f8 ^3 E! X: Q: M
LPSKILL lpSkill = &(m_aJobSkill);7 T. j2 o6 S% \. ~8 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 [! Y7 a4 p: a' t0 Y$ p0 f {) e2 t" ^" B2 Z0 @" }9 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; U7 [0 ]- |$ d" V if( pSkillProp == NULL ), S* Z2 j) x9 V& i1 o+ j
continue;
5 ~4 K5 J- I- P% G( T0 A0 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 T- [2 ^0 p$ c1 ~1 _& @ continue;
3 U- v7 P1 Z% L lpSkill->dwLevel = dwTmpSkLevel;
6 ~5 T) O3 x1 o( D' r! R! m }$ N& V4 Y0 ?. N, }
}
, @! {7 r W; D; n }
, }( b k$ X, V- j) m) W else if(IsHero())
4 M& h5 q8 ?: e0 [$ V {
9 M" H% f# t3 ]6 W! ^ H& A2 B for( int i = 0; i < MAX_SKILL_JOB; i++ )
: l( y E; u" A8 } {
- Q- ~! _. q n* C9 K1 K LPSKILL lpSkill = &(m_aJobSkill);
5 W) n4 N+ r9 R8 X r+ ] if( lpSkill && lpSkill->dwSkill != NULL_ID )& p, b4 o7 E. `: t8 [
{
+ v/ {5 W, V" E' K% T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " @4 G) b0 M' P0 y; a
if( pSkillProp == NULL )
6 D2 z7 J" [% ], [' Q continue;
8 {* y: V) _- u( F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ l, D9 z: d: p8 B' y
continue;
2 G, Z% X4 h$ z2 f lpSkill->dwLevel = 5;" r9 R; e# C/ ^: R9 n
}$ o1 L) v4 E5 a. w5 r+ o
}: f. J9 l4 K- L6 Q/ m6 l! D; ~ X; `
}* A5 a" X7 V( O) c8 i/ s
else if(IsLegendHero())6 \! s& B+ g6 B) N: |% v# ?
{5 M- m7 s6 d& s$ m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. C7 i5 L+ P; l# w7 Y# f# c { 3 r2 [: |" z+ p# p) _
LPSKILL lpSkill = &(m_aJobSkill);9 u8 O9 j; T/ i, s1 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 C- Y2 }; k. e
{5 Q: ~8 i2 b6 F2 _+ i3 W6 G' u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ J) ~+ m0 }, J7 z
if( pSkillProp == NULL )& O0 M* g, v) r0 h2 A
continue;
! l5 c, a! P- P9 k$ q, a if( pSkillProp->dwItemKind1 != JTYPE_MASTER) @7 l/ u: _0 I3 Y' l8 h' T# L
continue;1 I# O$ h Q/ ~
lpSkill->dwLevel = 5;4 K2 ?5 a: s. @. {0 T+ P& o: D
}
4 ?7 z+ }$ e9 B* L }" W: |* X1 f! A. I* w
}
, }; p J. I0 d0 r: V% q- ~#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" C+ `$ }1 Y/ B2 G
if( bGamma )
4 d: R8 X' Y; M0 K! W4 d& W& U& y {
! f8 {9 u- f, ~; I6 P" c m_nExp1 = 0;
, n/ b. s: X+ H4 o( D9 V2 ^ }, I4 t. Q0 @" O; F
- j, b4 j8 `' a- ?1 A
( (CUser*)this )->AddSetChangeJob( nJob );* I; [7 e% D( p, a2 E! J' v- A/ Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 D1 R9 y8 o- K0 {& x! B e
+ ^$ l4 H m8 }: Y* X1 B7 n/ p2 _
( h# o9 t2 z6 B6 E$ ~! I
#if __VER >= 11 // __SYS_PLAYER_DATA) F2 M- G# }: [1 A3 K1 o p0 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( I; k$ Z, F! U/ i @. w) z
#else // __SYS_PLAYER_DATA
7 I1 y9 J. m+ Q0 Z: W8 M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, L" d( P! u# H' y) u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" o' p: i M4 ~! \
if( m_idGuild != 0 )4 X" C7 I! D$ r% ^" o" L# Q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: b) c: T) J: S4 D' c! y#endif // __SYS_PLAYER_DATA# K+ ~- H# z- q4 ^4 d
SetHitPoint( GetMaxHitPoint() );3 D/ }' D: r2 {& x' A
SetManaPoint( GetMaxManaPoint() );' q0 f4 V! p4 ?0 ~( Y. q) b% k
SetFatiguePoint( GetMaxFatiguePoint() );! }( j! e- i6 a; B$ _7 V
if( nJob >= 1 && nJob <= 4 )6 V9 G1 \* }2 l# g! z- v' B# F
{
; q! K7 F% X: F( v7 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
) M% a5 Y Z; E% K2 f m_nRemainGP = 28;
" r g# k4 J5 V, D }3 P$ p9 r+ _8 \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ d) h5 Y+ |" D& W4 v( x
{
, }+ n2 f0 q, a& E. ` m_nRemainGP = 118;! U% B1 m6 H$ M ^2 A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; m4 N! B- w/ F! M# e( }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! X! v4 I X! k! Q4 ^; i }; Q4 W% K0 C& {) g+ q5 ]0 ]3 [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 [( W/ j) x8 t2 b {
* h3 y7 N% m6 r3 e: d1 q CItemElem itemelem;" H8 l2 s [) `7 L1 o; w
itemelem.m_nItemNum = 1;
. f0 f4 h! k1 Y; d itemelem.m_bCharged = TRUE;
% q( Z' z+ r. O1 l6 P% \* O BYTE nID;$ K- P1 M5 `* \, P1 C
: o6 I9 j5 g4 P9 _ if( nJob == JOB_MENTALIST_HERO )3 b. ]! ]6 z; {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' t" S, l# ?; G) O4 L2 O: w/ n6 y if( nJob == JOB_FORCEMASTER_HERO )
( h0 W! k. o0 C8 \- Y4 X0 Y" @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 T1 [5 F$ p# }* N2 K; D
6 @% Q( v6 N+ ~) e ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 h, F+ f" j- }$ S8 p
}! K7 L% G% x, R. K8 D. R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. _8 C( t3 `( }# {. g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ a0 T7 \; s" V: n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 V* b; ~$ S7 }+ ~' l7 }- \/ X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* K" n6 z8 e) O2 T ( (CUser*)this )->AddTaskBar();*/! n% P" J' O3 W1 l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ s$ K6 v# r1 `- @3 G2 K+ n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 H1 d$ i5 a! C! t6 M
((CUser*)this)->CheckHonorStat();
2 v6 F# _, ^+ @, M( Q7 g3 p# ^0 t ((CUser*)this)->AddHonorListAck();
: |7 J. M( g+ K3 f# z) T g_UserMng.AddHonorTitleChange( this, m_nHonor);
; }: `, G$ t: w: v5 q6 O _" Z: N#endif // __HONORABLE_TITLE // ′Tà?
0 L" Y( j4 U" y8 I$ j6 y }. s4 X B$ W6 {
#endif // __WORLDSERVER. T- x" ]4 q, c& }: _
}
4 N l- @8 w7 V; Y; ~( G8 T5 d' i6 I1 t! w# `+ Q2 M0 M, o" [. Q
然后你进入functextcmd.cpp并添加以下( j Y2 Q* Y( P9 a/ V/ ?
; {% Q0 B5 `0 Z. e, n) t
代码:
" ^9 L, l0 |% r0 d+ \/ v3 W& TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). A8 Q {9 q$ j5 [" A0 D# n* ?4 F
下面插入
* h9 A" n! |' hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 [9 n* A8 d; ~, m. R3 X; a- @
2 w' X6 M# [2 v# e1 ^3 t( V
然后你去
9 T2 w( q a, D6 ?+ U
7 ^5 L; `6 G' H1 k6 X$ d+ @& g3 m代码:
5 q0 f/ z' o5 u3 \7 c代码
3 E7 ^' c$ }! I8 t- LBOOL TextCmd_ClearPropose( CScanner & s )
}0 q& [2 x9 c5 P+ x# E{
, w9 F! T6 w* ~ R* n#ifdef __WORLDSERVER1 \' r7 v& E% a+ \% u7 I2 {
CUser* pUser = (CUser*)s.dwValue;
1 V9 z- x1 U9 } g_dpDBClient.SendClearPropose();! q# _! l% i1 H# o+ x% w; W) A
#endif // __WORLDSERVER
+ v4 U1 e4 ?: d1 o3 | U return TRUE;
& t8 B* L( J" l V" C& ^}3 X B$ ?2 a9 S0 O# B
下面插入
" G% G+ J1 U" N* s/ S" Q+ I+ ^BOOL TextCmd_rebirth( CScanner& scanner )
* O4 h( M: A" B- p4 f G' Z{# P# e' _4 o' Q
#ifdef __WORLDSERVER
6 t* w7 ^6 n8 O( E: M9 uCUser *pUser;
4 ]. [3 G1 E. P4 V4 f7 t2 p3 T4 mpUser = (CUser*)scanner.dwValue;
2 c6 X% A6 W1 `$ m2 o" }; H. ?) z' s" Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
Y; \. P8 c+ y+ z" [/ A( U" BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 [0 O/ z: K: o; z1 selse8 x, j2 f1 Y$ h. c) ~" B
pUser->AddText("你还未达到重生条件!");. n8 {: D3 P& {
#endif( o, X/ X% g n
return TRUE;9 r+ ^- d' k" ^& i, @
}
% c1 @8 q% z# }7 z# ~
" p/ C# k% }4 e& h4 o' m+ C& p; h; y, W: u8 T6 a S5 c9 x6 u
2 M9 G! m6 y) x7 H W# ?; N) M/ X- G6 G, w. w% b
|
|