|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" B4 v7 j! k h' y4 }! a$ s/ B; L3 q' J g8 Z3 w
Mover.h, j5 ]3 b/ {2 B) h/ w3 Y/ e# M; C
代码:
/ F( p1 f [, p( W1 z0 o) P9 O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- ^' V: d/ v, {; q
' }4 x# Y) |9 R2 k- v& E5 X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ @4 E8 m9 |! s# v- d9 h: N6 L- z' F' t6 s$ \. [4 l, }) T; b
然后你去mover.cpp添加: a* E" g* [. a/ x S8 p
7 q: \6 w8 d5 N- N' Z代码:- `% w; k5 ]' K% K
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! }% B( |9 j8 x{
" A4 a& |9 r$ S7 w#ifdef __WORLDSERVER
; o; l) g1 ?" v( o1 V$ o! o: b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 u: r( W0 h0 Y/ d" K
MoverProp* pProp = GetProp();; J- w4 p1 c$ ?2 N6 V
if( pProp )
8 ~6 n. b" }4 B# I5 g$ @3 g* S! r {* M1 b0 T% R; |' }; n0 J6 n3 F. K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 P" @" a& O4 _& t
{3 Y% l- ?' k# h/ p
AddChangeJob( nJob );9 ]/ a5 }& k: N
}else{9 x. D6 O$ M7 s
return;0 [) _9 q4 Y7 b2 t6 D3 q! T
}
# y0 h3 Q, O1 d) A2 ^ { int nPoint = 0;
, J' V/ w- ], ~+ V. Q' } if( m_nJob == JOB_MERCENARY )' T* Z' }1 ?. v3 j& k% O* @
nPoint += 40;
+ }( w, U- W7 \ else if( m_nJob == JOB_ACROBAT )
4 H u8 Q6 h; j$ w nPoint += 50;; V7 v4 u4 G* N7 {; X1 Q
else if( m_nJob == JOB_ASSIST )
, t. w& q: }) O; c6 g nPoint += 60;; u4 I5 q% [ h2 r2 c# k+ r
else if( m_nJob == JOB_MAGICIAN )
- s3 G2 q+ D/ `9 |6 M nPoint += 90;# a! ]6 y4 Q4 a% x* [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& h- a( ]5 m* x! o! U" n nPoint += 120;1 r) E5 l5 v2 t A# d7 a
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), O. s8 x3 N- a& N) K) H6 |. \
nPoint += 150;
4 j* f7 n- ^8 S else if( m_nJob == JOB_RINGMASTER )- {( \+ p9 g) {4 x- r, B# L; M/ h
nPoint += 160;1 B' R8 X& a+ g- m' A& Q4 i3 l) v
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- |5 M# h% q: v
nPoint += 180;/ i7 M [5 t( l! F j
else if( m_nJob == JOB_ELEMENTOR ); w+ {, {6 r2 C5 E7 y- @+ ]( _2 Z- _
nPoint += 390;
" [' Q s7 Y2 |+ A else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 w9 M4 L$ B9 l* A nPoint += 120;
- j n( D8 } S+ q7 u5 Y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) X% b" Q# j" E" ] nPoint += 150;
5 W% d9 C& }- L4 @7 @9 f else if( nJob == JOB_FLORIST_HERO )
; o' h; F+ u+ w e/ g nPoint += 160;
1 E* K4 e$ p2 d b: r" A3 d' }* e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! n, ?$ S! G& j3 l& P- k
nPoint += 180;- L1 U2 x K6 \ ]
else if( nJob == JOB_ELEMENTORLORD_HERO )
& x/ `' d. o5 L! d) u nPoint += 390;- ~% D% {/ T# l5 @# z7 K8 w
! j! c8 y1 O, d- A4 m AddSkillPoint( nPoint );
[7 u3 S+ j6 D m_nLevel = nLevel;
, ]2 z& Q+ D E+ k5 Y
6 o) g5 n! b. `. [6 k' r' P4 R SetJobLevel( nLevel, nJob );4 ]8 Q( q6 S( M8 j/ b
m_nDeathLevel = nLevel;
+ k/ k+ D) z1 J! I+ Q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 ^5 ~0 U3 Q+ O! J- d! J if(IsMaster())0 | M0 O' @# @" c
{
- }4 M8 x u. n+ y5 y: U! K/ I int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: t9 [+ p# y. {% W4 T6 r2 R
if( nLevel > 59 && nLevel < 72 )* A& f8 } _! d
dwTmpSkLevel = 1;" N" W* m' P ^! O1 m% k- f8 S! h
else if( nLevel > 71 && nLevel < 84 )
* B* i2 n$ s W' _& C$ R% h- \: J: y dwTmpSkLevel = 2;
% ^9 ^ e$ v& L! b else if( nLevel > 83 && nLevel < 96 )
_! T. X) j! v+ B; N' J1 |% M dwTmpSkLevel = 3;
# }5 H v1 b" J& v& W1 t else if( nLevel > 95 && nLevel < 108 )/ c' A+ e, U- Q$ I
dwTmpSkLevel = 4;
" a0 i: ?( B2 `7 `& b- R$ G else if( nLevel > 107 && nLevel < 120 )
% C! l, V4 v: G/ j& {; H dwTmpSkLevel = 5;" H5 B# b( a5 z; m8 Z6 d. N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( L; X) J# V$ I) F2 z
{
8 H0 H% h: o- \" S7 I LPSKILL lpSkill = &(m_aJobSkill);: W* X+ j l. X$ V- ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 y/ _2 Q) p, r {
1 |$ |0 ?2 ]0 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 T9 n+ v& }' H+ a if( pSkillProp == NULL )
# |3 g4 t1 ?% ?. e4 c/ d continue;8 J7 p- x: h" t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% E/ D8 s _6 W; n2 I1 t: g7 j continue;; o8 b& L; j# q l8 ^2 ?
lpSkill->dwLevel = dwTmpSkLevel;
/ X' [3 S9 |2 h- Z }! w4 x' I- p. f: t
}6 l" }( |7 v) V. v! ^6 Y
}5 a# c7 U) X7 k0 J7 [
else if(IsHero())
5 z$ h; k& A9 q# U0 p {9 B2 `# F3 Y' i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , Y$ ?0 G( H7 F; L
{
* ?$ `$ [. Y" h& W. m LPSKILL lpSkill = &(m_aJobSkill);/ l# L, V# d8 ]* N- h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ R# f g( ?2 c7 E' G# N" f2 _ {1 @( e! A! t6 y& V% Y/ J. ~" \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# u1 v' E: U$ S* i- ~1 E if( pSkillProp == NULL )
3 [* ^ g+ K9 O. ~% B3 }! Q% C continue;4 V0 e* m1 B |# v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( Q% p6 q3 J& J, R) R6 k" S
continue;$ f" U, k0 j( R! ?, c5 q; n$ q/ ~
lpSkill->dwLevel = 5;
/ g) ~. S' b; f) j4 |) y7 u7 I }
0 a" x. q3 f5 d6 J0 W- o }
( {7 a2 r S# v% Z& c* ]8 J }2 V- w2 N( Y9 _9 U
else if(IsLegendHero())
- H" K7 O) ^/ A0 q {
) P3 L+ Z9 V O, o for( int i = 0; i < MAX_SKILL_JOB; i++ )
' \' ?, F! x, [) M) r- @" ` { * U6 |# z; ^9 J
LPSKILL lpSkill = &(m_aJobSkill);( e! H% p0 \0 G4 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )' t- z" F8 X% R
{1 {5 z+ N2 t# B- L% v" s; |7 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & B/ @5 T. f5 v
if( pSkillProp == NULL )
2 w2 z. `/ o$ M) l3 Z& d( o* T continue;
! o6 P: {+ N2 `- z: ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- D' r: g. q( e* A3 `: _4 e- r
continue;
+ d- w+ P; k5 h4 o3 i. N4 P lpSkill->dwLevel = 5;: w" `4 F) O6 ~+ M, f2 r" b- k
}: S D. S& y+ ?9 Z
}* x4 r& z6 A. Q b0 O
}
V/ n9 N8 z$ L1 v' W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, _4 i$ U, f2 J7 q9 M
if( bGamma )
a) Q* h' O: \: h4 @5 s {& r, U3 @- ~* l( u3 b# [
m_nExp1 = 0;1 I5 y- N. L- U: E
}
6 V8 x2 q3 v" y7 p& }3 Z8 y X6 `* j7 ?( r- c2 _
( (CUser*)this )->AddSetChangeJob( nJob );
/ i+ _+ ^; k. m8 } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 t, C7 R8 y% J7 E% u1 x, l
- {: Y4 s3 J* B. T( l3 g/ v5 |
1 f. |; u' g$ t8 }, H#if __VER >= 11 // __SYS_PLAYER_DATA
, Z7 H0 [5 Z! m" n g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); Q' ^3 u R# b: {) @
#else // __SYS_PLAYER_DATA1 e, q/ [# `: z* w1 U# a4 ~" L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. S+ j; B! b$ {! C5 g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
G; D( S2 P6 L7 i% v& U& Z" t if( m_idGuild != 0 )
( D; X$ W" o9 ~: H. r1 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' ]! g3 _. v1 r# R B# t& i4 _
#endif // __SYS_PLAYER_DATA8 r. I. ]. P& O0 P
SetHitPoint( GetMaxHitPoint() );7 e& C! e ~( d6 \7 n9 J
SetManaPoint( GetMaxManaPoint() );' @" @, ?- o3 I" d6 m) I+ y) c+ c
SetFatiguePoint( GetMaxFatiguePoint() );
5 Q' X2 u* V9 Q# {9 K if( nJob >= 1 && nJob <= 4 )1 _" c I- Z3 S) Z
{
( L ~; M' S: h+ G9 z' _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 h0 L w4 r! L( O4 @ m_nRemainGP = 28;
! T: }- [' S- `5 S6 i }
1 h: i C0 D1 z8 V; W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# y5 Q$ K5 t' k# j5 _! J5 { {* h/ @/ u" q6 u" |5 X3 @( u- J7 Q
m_nRemainGP = 118;
3 ] }9 v) u. k: g5 J% J; e5 J //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ D; n7 ^8 K( a# d) h3 |( _; L7 p9 G m_nStr = m_nSta = m_nDex = m_nInt = 15;& ?# H& j$ U& F' U# P- e: |. \
} S) w3 X. T7 f2 l+ A% m
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 X( L) a* C. {/ Q$ B5 x. w {
. p1 U: |1 H$ R& v CItemElem itemelem;
+ L( |2 X _3 B itemelem.m_nItemNum = 1;% L2 j" ]5 o* M; k& y
itemelem.m_bCharged = TRUE;; H! r6 N( Y% Y3 d. \
BYTE nID;
- T& s$ G/ J( L# g
' k- l! n! `3 g if( nJob == JOB_MENTALIST_HERO )
0 @, m& }+ `- T3 w5 l3 B% h8 W ` itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* T6 [ S0 q# ]
if( nJob == JOB_FORCEMASTER_HERO )
( s" `1 f& t% x, n) p4 \1 a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) T q( H. J: E
9 m+ Y$ d& P c1 \) v. W0 ~7 n ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 X. e6 E' L# |- t* Z }: Y6 N' O# m r7 v2 N. w6 y+ \7 O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) [+ d V7 k& T S6 v' |8 M5 R0 P9 T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! U9 M! A! _1 O ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* n; q8 I3 j3 D% b( X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 C% ~1 N9 z4 T) \
( (CUser*)this )->AddTaskBar();*/
# G* b7 @! n E3 e8 d$ i* T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 k4 b: o7 K* L6 q9 Q p: K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 l* h- A" t# C ((CUser*)this)->CheckHonorStat();% E7 A. V6 i" y
((CUser*)this)->AddHonorListAck();# P9 ^( ~4 }5 f# y
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 l* A* E7 W* z5 n. M2 A
#endif // __HONORABLE_TITLE // ′Tà?) G" p# o# @! c' `7 C5 N! l! R1 _
}: b O1 M; }5 Y4 H4 U! t
#endif // __WORLDSERVER
" D3 n) X. o# n7 x1 L9 k# s2 r} ) }( d: T' [5 @
1 }* j' i$ V( o% Y2 E
然后你进入functextcmd.cpp并添加以下: {; T) r1 X% ?3 D e2 }3 d* ?
3 d* W" r. l% q3 U3 h
代码:
3 n" J4 v: Q4 S4 S! Z& e. gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! `7 S( k- c/ v' `2 U; E下面插入9 P8 t; j& x8 K4 S a% d# a6 c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ F8 u* c" G6 e3 j1 a4 H7 K* q7 x, z) X) j* D) A. M+ ~
然后你去3 v5 V$ ?3 a+ {! Q
3 ]: i/ y' O* U
代码:7 Y# ?3 h$ x- R/ j
代码
# @3 u* X: L! V$ E( l; {0 CBOOL TextCmd_ClearPropose( CScanner & s )
: n$ o( ]( O2 ~. s' \; \: }{9 F, D5 J* F4 ]+ v1 k3 ]7 o
#ifdef __WORLDSERVER
9 U% J t- b5 Q& Y. i, Z CUser* pUser = (CUser*)s.dwValue;
, Q8 k/ P8 b0 J* M3 C- B g_dpDBClient.SendClearPropose();
. d# a0 n. I+ G" F& o7 A#endif // __WORLDSERVER
2 b. c# Z: T- y; ^ return TRUE;4 ?# B6 n9 ]5 B0 k$ V* {8 d
}
1 R8 f2 b7 k4 r8 ^! ]下面插入. E7 {4 {+ g9 [' P
BOOL TextCmd_rebirth( CScanner& scanner )
# A/ `. ]9 x) y" i& p- j/ r{9 ~0 S7 g* ^' q3 U+ E- q% q% k
#ifdef __WORLDSERVER
( w s$ }9 l* Q; F- ]CUser *pUser;, F( o9 M# J4 C- X& }9 w7 U' w7 E7 i
pUser = (CUser*)scanner.dwValue;" q Y: W( S2 m ] c. ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 |" [7 P7 y# V" ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
o! ~# C# W8 ?% |4 Qelse
4 z- s8 S0 C HpUser->AddText("你还未达到重生条件!");
7 U4 V) s( u) S6 [$ }$ ?( T#endif5 |: x* v1 J% b: k
return TRUE;
+ P- `0 w9 l- m1 ~, B2 I8 Z0 X- P}
0 Y3 @* q# U/ G3 f9 k$ ~# e" z+ h* J+ u
# L' O1 j* k2 h# n: R% a2 Y
( y' z" ~7 h6 l: {* ^2 h; g/ l- E+ t4 u3 g/ K+ J4 d/ K4 [9 C9 o
|
|