|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# q5 h& N- B1 y; k3 T1 d
4 h1 j. [. K0 I
Mover.h% T/ z( P- [0 r, M$ W* V
代码:5 ?1 ~, ]5 @" b7 T
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 o7 j1 B2 g7 M
( n. a- L( g7 {; K! h" z X* ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& T+ A) i D0 @) \( X) Q
) D7 X' X4 [4 P# j: M然后你去mover.cpp添加
1 }1 j( h$ Y4 v) | k3 u' d# t: I) N$ L' [
代码:
5 u8 s8 V" ~5 l! Y' g! yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 n5 t7 \) S: _% ^) k
{) G+ q6 b. g# u$ j4 j
#ifdef __WORLDSERVER
" A- g. x5 V3 a. w9 W% O$ o4 E // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# W+ N: C( ~, `$ S1 }
MoverProp* pProp = GetProp();
8 X+ I6 k- p0 ~$ i U, c1 D9 I if( pProp )
2 U% b" g0 O5 h% g {
, I q5 U8 K5 `$ |! q( L, B# Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 s% _+ j3 G# s- N8 [2 K
{2 m' U4 _# B% h; u, U5 u
AddChangeJob( nJob );) @% H5 C7 R+ S$ O
}else{, Q! ]# ~1 Z7 X6 ~
return;+ \ o9 V8 h+ }* n+ [9 U, a& |
}
0 a$ A' _. u" J int nPoint = 0;! H" B+ {, p# \" @& v/ h
if( m_nJob == JOB_MERCENARY )
; @: ]5 x. |% p+ Q( X nPoint += 40;9 z& f8 r) q, z" F: O; U
else if( m_nJob == JOB_ACROBAT )8 J; F. `5 s4 j% W2 A: L
nPoint += 50;
, A6 R" a9 ~+ |$ g5 ^ else if( m_nJob == JOB_ASSIST )
! X+ F0 x) Z6 u/ l nPoint += 60;
6 y3 N" x. H3 b* y9 J else if( m_nJob == JOB_MAGICIAN )8 `' S! Q# n1 b. G9 ], @; H5 [ J& x
nPoint += 90;% X ]; k# m0 {& k1 O. a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- e- j* K$ s9 k5 i) _
nPoint += 120;
' D, }" |7 x& \6 _ a" S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" |* g5 j$ w+ u8 }1 Q nPoint += 150;2 `6 t7 Q# X2 Q; p
else if( m_nJob == JOB_RINGMASTER )" `1 Z1 ^) R- v- j
nPoint += 160;
. R, y4 i0 J& | y! ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 B" W, i( o( X% R* l) z: f( ] nPoint += 180;4 v! N8 |: J5 ]) x
else if( m_nJob == JOB_ELEMENTOR )' u4 ^, H+ m2 \9 A0 a A& ~( J
nPoint += 390;
1 S1 R- a8 H( C: ^# L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" [2 n$ n8 n$ ~% |5 I, {; t+ ` nPoint += 120;1 O) d& k* r$ C; ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 p6 V" \& l8 Z* z* O
nPoint += 150;
( `+ U/ A( B* V1 F1 V* r s else if( nJob == JOB_FLORIST_HERO ). t. X Y$ o' w$ R( Y5 @7 {
nPoint += 160;
/ I& k8 Y O, T9 \+ [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# h- m2 q% s/ ^3 o) h$ m nPoint += 180;
5 Q; m7 h6 x: N0 L, m1 ` else if( nJob == JOB_ELEMENTORLORD_HERO )" Y3 P7 s( V# b+ f6 K. c5 N
nPoint += 390;4 `4 o1 }4 v& l6 n
2 O% Q+ e- g$ S% r! D6 U! _ AddSkillPoint( nPoint );: G7 B1 A1 A1 t2 @9 y% \5 ~4 I
m_nLevel = nLevel;+ y3 I; l' S O
, z: U' r1 a; \& L; l# S
SetJobLevel( nLevel, nJob );
0 i5 Z+ j2 M& D: s( o m_nDeathLevel = nLevel;
: k& s- z8 e) Y; x- p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. u& b- G, w2 I! D if(IsMaster())% H- @2 S6 I: T$ S
{
# R+ l# X' I d& ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 @ I/ d, {5 c9 V' R! K
if( nLevel > 59 && nLevel < 72 )
. B, I2 h7 g$ @) t. y1 N dwTmpSkLevel = 1;
% o6 J$ {+ ]2 L; H/ W else if( nLevel > 71 && nLevel < 84 )
1 @0 ]/ _4 l, h& r' R$ \' T dwTmpSkLevel = 2;
) R$ e* y. y# B8 |# m2 {: Q else if( nLevel > 83 && nLevel < 96 )
F- S- \6 R' J, Z# E dwTmpSkLevel = 3;9 f, L" t2 e: ?8 c6 h
else if( nLevel > 95 && nLevel < 108 ); ~6 G0 N4 o, O. B
dwTmpSkLevel = 4;) f/ R9 l N0 k0 u Q P6 X
else if( nLevel > 107 && nLevel < 120 )4 X) Z4 ~8 A4 C' `3 z6 }
dwTmpSkLevel = 5;' i3 | r0 `6 D7 ?* h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % q+ f" ?% T' Y/ d' s2 O
{
+ l: M6 D2 v# A! W LPSKILL lpSkill = &(m_aJobSkill);
0 U- @9 S1 X. F* J" t/ S if( lpSkill && lpSkill->dwSkill != NULL_ID )7 g+ ^/ k1 r; S4 q
{
2 { I' Y8 k) L: i' |+ n- E1 a: o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 i# n2 a L0 X, G8 q if( pSkillProp == NULL )
. v, z7 v, z# o, U continue;6 e' o" B: d7 r. l7 `" _; ~, u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 E# U+ P7 ^, b3 q2 Y1 } continue;/ W! ]: e2 S) M' p& K& H/ }. W
lpSkill->dwLevel = dwTmpSkLevel;: S a* J' B p! ~% v5 R
}& D7 S, r4 u8 d/ @9 c
}
2 z0 }( R' C# R+ e" i; B J2 ~ }; ^4 w' c* }4 o! ^( @, |# o. x" m
else if(IsHero())& H5 m% H5 E: a( X$ h/ ?
{/ X& ?& \" I7 {3 R+ p- W' D2 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : Z, E! E6 k& m
{
; x* B* L5 u k u7 X LPSKILL lpSkill = &(m_aJobSkill);2 r4 A4 z7 b- ]) V* O
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 I/ M" P# F0 b4 |
{
% g$ P8 l" ~1 u: e: ]0 f i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 q; y" `- C( e# x4 ` if( pSkillProp == NULL )
: J+ ?6 r5 {& H \/ M' ~- w, L3 j. k continue;) X1 a( X7 X' V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 `- _* z9 ]- q. p* F \
continue;+ J& D9 B: N+ r, h) I+ J2 O/ I) |
lpSkill->dwLevel = 5;2 o, C/ [7 e, {
}: d G T) I, w) ~3 f4 f1 j
}
6 b3 P. M7 U4 N; u$ `( h2 C }: _$ j" j+ d% r$ M; Q" ^
else if(IsLegendHero())( K7 H$ V6 b6 ?# u) _+ Q
{
. G2 o4 e) t8 c2 J5 e- { for( int i = 0; i < MAX_SKILL_JOB; i++ ) . F. j& r8 y) G! B3 O
{
+ \5 t9 x0 `1 n7 z+ Q LPSKILL lpSkill = &(m_aJobSkill);% w# e7 c3 D: ?0 j8 O* \% [0 I) _, \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ j% G4 x$ r3 `5 Z( M5 b4 m# t {
4 C3 L6 B2 D3 E9 A% D( ^% b( `1 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / ?% t5 [$ ?& s
if( pSkillProp == NULL ). X; H, ?5 e! Y& G, e( y( K5 K
continue;0 s, g3 N5 U! G1 B% `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 g# `& j; R$ H; s
continue;& t5 f+ ]; x% t: _
lpSkill->dwLevel = 5;
1 V3 c2 T% m8 Y3 w2 \ }
& d* s9 u& h' l% @8 B }
) R& M! `/ d4 v# L6 H; F }
3 R/ Y6 _6 ]. O1 P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 F1 t q; U) L g1 I, |' c, i
if( bGamma )
7 k; W9 D% D" W {
% o8 p0 s. V# s m_nExp1 = 0;( B4 G# ?8 B, U& k m
}4 H& t1 n2 j0 r3 x
2 G- ~0 a9 v' W. W; R' ` ( (CUser*)this )->AddSetChangeJob( nJob );' u0 F5 V5 K& x0 i2 \ v9 f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 R( S0 X& s$ _* q' R& \* r3 b( L. s9 w8 s; ~3 {
, C; ~4 U$ H& K* C$ n#if __VER >= 11 // __SYS_PLAYER_DATA
1 Z$ R. r8 d; u; ^& Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- Y2 x2 r$ r/ x#else // __SYS_PLAYER_DATA! y8 E/ m& X6 k* K5 W6 H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 \7 W, c4 B+ d- O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) F8 m6 l6 F- U) O- y* n
if( m_idGuild != 0 )- G, t5 e. z$ ~( ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- k" ]+ g4 l" c: [/ Q6 a
#endif // __SYS_PLAYER_DATA
& r% O3 A( {5 f' ^7 f3 Q. { SetHitPoint( GetMaxHitPoint() );
! b* r& k+ E* }5 z+ C SetManaPoint( GetMaxManaPoint() );, O% n0 |( ]6 F
SetFatiguePoint( GetMaxFatiguePoint() );* {) t) c1 r* @. M. l& b1 d1 I
if( nJob >= 1 && nJob <= 4 )
7 u% S# K' K' F, ?8 U, T1 [! p9 q {, A3 Y/ R' s8 y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' ]/ @2 S3 }# [0 E, C% | m_nRemainGP = 28;
$ p* X$ J6 _+ b }
# P. @; e2 _/ j+ B6 h7 B if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& z; e( S. q$ u% e, G$ Q5 @
{2 T. \# O$ n1 v5 x4 G5 u B; i& O
m_nRemainGP = 118;
9 Z; W0 n9 e5 U5 T3 s# h+ f2 i8 t //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
e6 ]% ]6 d ~! C m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 v# A; o0 ]* w# l3 n9 u }
$ v2 R. y& O1 @- Q9 \' ], E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* B5 ]( U: r* n6 y
{
; j+ k$ r2 b1 p0 c3 c CItemElem itemelem;+ v! Q" O& F; j) y% {* ~
itemelem.m_nItemNum = 1;% ]& W2 I" h8 L( x; [
itemelem.m_bCharged = TRUE;1 t9 M0 Y1 d9 m, r$ r; d
BYTE nID;
- ]3 W( w$ s/ I" T$ K
1 l, m9 t/ L: w7 l if( nJob == JOB_MENTALIST_HERO )
3 u9 M2 ?5 P$ M W9 S( ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 Z6 e& r1 Z! C3 t* y if( nJob == JOB_FORCEMASTER_HERO )( U: n' q' A6 ], u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 y7 X7 o5 g3 Y/ p
, r$ }( u/ j5 e n. [6 C
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 g5 ^3 {2 R# L! G( Z# v
}
5 |' _7 u& B- A2 r( v6 u$ ~8 ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# Y- x1 H( R% ^* g
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. ^9 |# ^6 K, k5 L. I+ X" Y' t1 _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) z" ~! x/ a; B# }2 H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ i+ V# O& \( m& s/ G ( (CUser*)this )->AddTaskBar();*/
: S& ]5 ]: o* y( f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& x" {* ~% P- V2 _1 M% o4 g#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, }' A* t" U8 x& v o* h
((CUser*)this)->CheckHonorStat();
: _: ^( ?8 w, S3 g7 w ((CUser*)this)->AddHonorListAck();
+ t) E9 Z- }0 r5 Y2 x a g_UserMng.AddHonorTitleChange( this, m_nHonor);
) G5 _0 j4 ^1 r* L#endif // __HONORABLE_TITLE // ′Tà?
2 U) T# n; I% k6 ^0 d+ ]* c. z }
: J9 m* Q5 W% f+ o. K#endif // __WORLDSERVER
1 m: j) O$ S- [5 }$ k% Y}
0 A2 D4 ^5 y2 O9 R
& A4 |: |4 r6 d; f, P/ T7 Y W/ |& L然后你进入functextcmd.cpp并添加以下
2 C1 L' E4 d' u, x q* o9 D% ?" ^2 ^. H" H, X
代码:0 }) @/ y2 u m2 }9 ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ O5 n9 \. m7 e5 o. D* V' r! M8 Z下面插入+ w) }% U+ ?! s8 b: u) H% i3 u
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
P& g5 |. }/ D+ Z6 d- w4 D
8 q3 ^1 ^% U8 r( G7 T) R/ r; d然后你去6 K# G ]) I! l& N8 W
2 N! t& @1 l2 m# \; Z. z+ W代码:
1 d" b; S a: J代码4 w9 z. A1 R( d4 x- |& T
BOOL TextCmd_ClearPropose( CScanner & s )5 V4 S1 e4 g% H! C: ] X
{
7 i/ Z& f" n# `+ }9 e#ifdef __WORLDSERVER
/ ^1 Y. o1 Z) C9 C4 `6 ^* c CUser* pUser = (CUser*)s.dwValue;
/ y& {) J( v! U, L1 R4 D" Y g_dpDBClient.SendClearPropose();# b0 n6 F9 u6 y
#endif // __WORLDSERVER `0 _! a; o6 ~/ b3 v* J
return TRUE;
% A5 Y2 z g/ T* J4 c; i) h}4 L; s" o8 I% v# H* F: h
下面插入
- t k+ ?# f' vBOOL TextCmd_rebirth( CScanner& scanner )
2 k7 v/ M$ M4 q$ v1 K k" F, _{
; {6 v1 }$ }) L% x: w+ e& O#ifdef __WORLDSERVER
5 q9 B" y7 s; e% u0 z3 p9 y8 cCUser *pUser;- @ M7 ~5 m5 o1 m
pUser = (CUser*)scanner.dwValue;
# E8 h5 L0 X5 i# mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& b4 h4 f& _ r) [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 [$ F0 S5 i8 @& M+ eelse
7 X$ X" M% C) T2 K SpUser->AddText("你还未达到重生条件!");$ k* ?' x* D1 L( B* U* O/ ?% H" v
#endif
. @% j# p# {( kreturn TRUE;
; b1 J6 t' q7 i5 I- k; ?+ b}
# v. e0 `! \1 w! p! l/ R+ a; Z0 G) v# m- G
# S7 W4 t2 W2 h' v7 I
( w6 B7 P) b9 s$ M2 n% `) M( b3 q' {1 m) P: @$ ~
|
|