|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 s6 o; y- L( S
! p7 @" Z2 a* a0 n0 l
Mover.h
# X$ i* \4 v X0 m f代码:
7 H+ G; T, O, o+ S' A' ?, k找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; _1 d7 Z* h# }! p* Z& a
' w" [( h" A8 S% j$ |) [1 \$ u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; r" s( w# r" T# z' V# x4 {9 w1 A8 l9 W5 j5 b, i/ ?9 K3 ^/ m
然后你去mover.cpp添加
0 o7 m7 c) x2 ]6 G- R `4 p* G
代码:9 @7 i/ H- C$ I! h& z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 u& B$ d! }1 b7 P! s9 r
{2 e: U( H% W& _, R/ F# U4 r
#ifdef __WORLDSERVER" ?: V6 q6 U1 [, u N( J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ W' Z. i6 S7 w: _; s" Q$ f MoverProp* pProp = GetProp();
/ I) ]6 d6 b; y4 z& D* W: ^ F' g if( pProp )
. \8 [( J) z6 M" Q: _ {
# u4 u+ y- D+ N if( nJob > 0 && nJob < MAX_LEGEND_HERO ) N1 ?) _+ s; b9 d
{
3 ~7 r# n! O Z3 B2 y5 \ AddChangeJob( nJob );
" X+ W% S3 w* P+ h1 d }else{6 a2 g9 q: y" b2 [' `
return;3 J+ K+ w. e3 r+ j) C, ~" W+ Q& `
}9 n, I* J& L! i' c- n8 _
int nPoint = 0;2 r1 M/ {( X! Y9 ?) B- Y
if( m_nJob == JOB_MERCENARY ). U* E' N O; e1 l
nPoint += 40;/ q' I- S; V+ o# |6 R* k; a
else if( m_nJob == JOB_ACROBAT )- R `) m/ G& c
nPoint += 50;
* c7 m! n: \, W! K3 f$ n else if( m_nJob == JOB_ASSIST )" l1 y1 T$ b C0 H8 }/ b: D# `# f7 u
nPoint += 60;
. d7 V: P3 e% X1 { else if( m_nJob == JOB_MAGICIAN )
" d5 m; q, A8 }$ z0 d; t+ V4 a nPoint += 90;) E1 Z% w: `+ L, k) m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 ~) |) C4 u/ `$ w
nPoint += 120;* b' g3 o. C; y2 t" D; N$ Q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 T. z& r4 \1 u' @' h# g: d$ a nPoint += 150;
9 h! X' ]- a+ T( N* d else if( m_nJob == JOB_RINGMASTER )
$ M! o+ T6 ~0 H- c3 m nPoint += 160;
3 L* W" l- l) `- q9 J% s+ X3 K else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, }; h% u9 E: G nPoint += 180;
$ b2 b7 D* x* K, o& _ else if( m_nJob == JOB_ELEMENTOR )# z; H6 n5 o$ @$ i0 q
nPoint += 390;
# [6 J9 y# ^7 L6 N2 C& L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! Q+ v" c8 U( B
nPoint += 120;
$ D* l4 I* i+ ?& r9 [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* {# L! G6 t7 c
nPoint += 150;
6 |. X" C6 w9 z* ~* x else if( nJob == JOB_FLORIST_HERO )7 W. H5 Y0 {' I+ g2 I& h+ f$ S V
nPoint += 160;
9 Q7 ] {" Z. s9 t9 d- y% x2 f2 C2 C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* Q; W3 D0 a& [, T, `* \# N7 d
nPoint += 180;: z6 x) m0 }) t; m# G8 y5 W
else if( nJob == JOB_ELEMENTORLORD_HERO )2 [- J/ f/ X1 n6 _! r* o l
nPoint += 390;8 F: y2 s0 u6 r" t' A" B: s
" v; C. d$ v6 ^6 n; C' t8 b
AddSkillPoint( nPoint );! P8 S2 g6 R3 Z$ q" W
m_nLevel = nLevel;
# S/ A. r+ B4 _3 s$ t8 U2 D! ]4 V$ {# y( g+ } D0 c4 K: Y
SetJobLevel( nLevel, nJob );
) Q9 l [! B. a* \ m_nDeathLevel = nLevel;: ` T1 [+ z2 {2 Z4 @) c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% D# e* b/ V% { q/ q if(IsMaster())0 E! }* w3 A6 \$ W1 p
{/ x6 U: H8 k6 D4 l) T% S% _9 V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ f$ m+ E3 ]2 ^; U/ x- i
if( nLevel > 59 && nLevel < 72 )
. I! U9 r7 E' \; q9 W+ F" j dwTmpSkLevel = 1;$ c2 a9 D h' f$ j
else if( nLevel > 71 && nLevel < 84 )
: q3 @2 L) h5 z dwTmpSkLevel = 2;$ g& j* e$ h1 s2 Q J$ v
else if( nLevel > 83 && nLevel < 96 )
" M) p; ?9 g7 q8 @; E dwTmpSkLevel = 3;* M4 {/ y2 ^7 Z4 K& R) L
else if( nLevel > 95 && nLevel < 108 )0 N, N& t9 ~: [3 z S7 f
dwTmpSkLevel = 4;( K" M: D7 n$ o8 Z; {! W
else if( nLevel > 107 && nLevel < 120 )
' I' P3 P' r( {7 v& D% J dwTmpSkLevel = 5;
% `" a, i1 [$ T4 I( Y5 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
' @/ |& O+ d3 |! P* ?% f {
+ R8 B9 l- h/ ]) f( u$ G LPSKILL lpSkill = &(m_aJobSkill);
9 ` W$ j R# B( y( m5 r f6 k# | if( lpSkill && lpSkill->dwSkill != NULL_ID )/ ^2 {# g+ L( t8 m2 p
{
% w$ i- l" D$ V3 A" |! N5 r% x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' H# o, p( h$ w if( pSkillProp == NULL ), K! I6 A( ~; I" f2 A
continue;
7 f* `( j5 S2 l' R" m: I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ g7 Z0 l' s7 |; X
continue;
! y$ g U3 O( u4 c1 Q! d6 _ lpSkill->dwLevel = dwTmpSkLevel;+ x7 F: x- t9 W5 M6 ]
}
- X! j* i+ s' P/ f- J. t9 J }2 {% U; P2 H0 r' Y2 J& S. R* h
}
4 b8 n' m, j- g+ i; j2 b else if(IsHero())1 {. R6 ^5 | z6 ]
{
9 u9 `6 X) b- d4 A7 a% E6 a for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 G; _$ j7 Y; H( E, Z+ G { 2 G8 Q9 K+ f5 C5 w" \
LPSKILL lpSkill = &(m_aJobSkill);
" Z2 r8 [9 a3 Q8 W3 b0 h if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 X! O% D9 i. G; t {
/ m) x) l0 j2 ~2 L# ~4 f" B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ x" b- j. B) g( O* u+ M/ u* \/ V if( pSkillProp == NULL )
2 I9 `6 `; P6 } continue;4 d# k, E$ n) P' r, X7 D. B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ E/ p, [7 s8 m4 F9 l
continue;4 K* F$ t/ k: j3 |
lpSkill->dwLevel = 5;) | X ]* S/ ?5 m, N
}: h8 L- ^$ K+ B4 j+ R
}7 Y) a+ F- _+ t! n, a) Z* C0 O
}. N: {) t# w4 O) w% ?
else if(IsLegendHero())! l4 j, l' b" @8 _* b
{
+ s7 a6 L) @+ K$ n5 w( S1 m for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 p4 @; X1 Y7 R# y {
e" w, c6 u0 F1 t LPSKILL lpSkill = &(m_aJobSkill);
3 d& o2 B% m2 |( S- [ if( lpSkill && lpSkill->dwSkill != NULL_ID )5 t2 l i9 K2 G- ~
{1 V1 a( I1 e! i" \# N4 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, |6 M3 C: T9 a1 v if( pSkillProp == NULL )
8 H. a$ `+ T) X4 V3 ^+ W* U+ X! ^8 X continue;
; Y* Q4 p+ O- R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 [9 \9 w9 y2 T" {* `- d continue;2 `: k+ T* c u+ p* W6 w& R
lpSkill->dwLevel = 5;! t! k0 H* q \2 q1 G7 L$ R; ?0 l
}
) }$ e5 y x, I }8 J- o- M+ L: m& z0 C
}
: b0 e7 h) K+ N3 H5 y) `1 r+ R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ i- L- \' l* \0 ]9 D M2 F7 V0 I if( bGamma ); m" [( d# `: |' ^% |
{. u, {7 v/ {. S1 w- g( F
m_nExp1 = 0;
; M! F) @9 y6 _ }
! Q- |2 b- h/ D! z
2 D0 y5 y7 d/ `- v5 k; j ( (CUser*)this )->AddSetChangeJob( nJob );
- R) ?. Q$ n5 c* O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ b6 F* \* M, ], M& V: n! A, c
- p0 j# E7 o( a) o' S7 h6 v9 z8 L( ~* z, J6 K5 M5 r/ ~
#if __VER >= 11 // __SYS_PLAYER_DATA
6 B& F2 u0 n/ M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 C$ @3 Z3 F- x \9 y- _#else // __SYS_PLAYER_DATA) u5 M1 T6 Z1 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 l/ `2 J; f. w; y! w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! a3 R3 J2 L2 S3 a% R if( m_idGuild != 0 )% y5 @1 v8 ^4 T. B, ^" R) t* N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! C5 }& A' y4 i1 m' }6 {#endif // __SYS_PLAYER_DATA) K" s9 I1 n' n0 k% }3 o1 }
SetHitPoint( GetMaxHitPoint() );
% w) d9 f6 \7 V" ^+ T# A' G4 t SetManaPoint( GetMaxManaPoint() );
/ ^* [# U" j. ~ K/ e' t9 r SetFatiguePoint( GetMaxFatiguePoint() );6 H8 k$ E+ o6 f& g# l: v
if( nJob >= 1 && nJob <= 4 ): u' ~+ ?+ Y9 h
{
# I F9 P1 S( `/ r$ O m_nStr = m_nSta = m_nDex = m_nInt = 15;7 M& x6 J7 {& [6 n
m_nRemainGP = 28;
* V8 { r9 E3 m( {7 U! f, g }& l! ]! U/ t! J3 ~! c! f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) V% s# Z+ Q0 H$ x+ ^
{4 W: c" Z( h8 M0 n0 p+ `" v
m_nRemainGP = 118;
0 v3 N( A; P( a. h7 i* p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 S. A6 A/ e* q# J; ^ m
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& m& E1 w; {* I' V* o% U& d! S5 s }
0 I2 l! }& P. c4 o- d; R% l if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% w/ d9 k8 j- \6 Y
{
' K+ v4 _5 f) X6 v" {- n CItemElem itemelem;
: C3 U- e/ V0 M _' i$ i! _ itemelem.m_nItemNum = 1;6 K+ v& D+ ]: T9 }2 w% T' C9 N2 l
itemelem.m_bCharged = TRUE;- @3 W- v1 P/ ?1 P! P9 Q, E
BYTE nID;
: v a; ]0 e' F" [
; S4 ? ]* K( J' n if( nJob == JOB_MENTALIST_HERO )0 z2 Y- r, K7 A ^ F1 z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 E% ?1 \7 T% n if( nJob == JOB_FORCEMASTER_HERO )1 e# m; J) o. F9 \' E7 z5 [9 j: e* z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 u- s# }$ y* R: x, C
7 L7 G: ~+ S' P3 e) [; P0 F J7 t
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" t0 p$ s9 F2 X( s }& z/ M+ O$ [+ ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 D! Z5 W" P. `- V( i4 m+ { ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; J$ H5 L+ t `" `- g& q- [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 w5 m9 d# {, T) Q% V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* B; c- c P3 A3 g ( (CUser*)this )->AddTaskBar();*/; \3 B/ A% ^& \4 `3 J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 }! I m2 k8 [. v#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% Z z- W! |. ^
((CUser*)this)->CheckHonorStat();
, k _% H8 C: F( e ((CUser*)this)->AddHonorListAck();
+ U/ h8 s+ v/ p( P g_UserMng.AddHonorTitleChange( this, m_nHonor);5 a6 @ o5 G, }( p
#endif // __HONORABLE_TITLE // ′Tà?% p% M8 ?/ X1 f# w+ d
}, ` z% A9 Y- G2 x' R
#endif // __WORLDSERVER
8 { V+ V- L! D3 I. |}
- v/ {: r, r4 o# T: h& p/ d; x
) N, y' H( S6 ], E0 W% b" ` K- B然后你进入functextcmd.cpp并添加以下
7 h4 K( O& ?; J6 w. F) g- F" V2 P6 S
代码:7 a V1 Z8 V) J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- E8 R4 N6 ^1 z: U) J2 A. F. v下面插入
4 L" r- F5 u- Y: m/ ^7 [! y4 tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- L: i: \/ U) F
# t" A/ p: _" x! L2 z+ q: q然后你去% w0 s$ Y4 S4 I* K* W/ Y
) A. ?2 r& r$ m% q
代码:6 L& B6 v" }+ s- n- l1 V0 l% p- Z
代码8 r. x7 O! Y# N k$ V& z0 {4 t7 q/ k
BOOL TextCmd_ClearPropose( CScanner & s )
1 U+ I$ y, f8 J; ^{; G1 R3 F: h1 O4 Z4 V$ u2 x
#ifdef __WORLDSERVER
. b) O* e; T% [/ @1 F6 a* E CUser* pUser = (CUser*)s.dwValue;
4 T( g' ?6 j: J g_dpDBClient.SendClearPropose();3 x3 J: l7 f" R
#endif // __WORLDSERVER
8 d+ X( h6 }7 G7 r: F% u return TRUE;
; J- U4 [4 R- l S n* W& j}
9 w. T3 \: d9 E7 Y# h5 `9 S; p/ l下面插入/ j% X0 i$ z! y9 {0 H1 [
BOOL TextCmd_rebirth( CScanner& scanner )
4 S/ c) x2 j! ~% W5 f{3 [4 m5 A+ p2 ]
#ifdef __WORLDSERVER$ M$ W# a+ N8 a6 q
CUser *pUser;* ~: m: S' z- k6 X* r$ L3 \
pUser = (CUser*)scanner.dwValue;
4 C' f5 A$ {6 ^if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% `7 G5 L% X1 ]3 [9 `" O% F; t- x
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); z% {# D) B- b, N* N7 R
else3 y* J$ v! M1 z. v) n! U3 M
pUser->AddText("你还未达到重生条件!");" S% I+ [; f) J/ U. a8 O9 x
#endif6 d* A9 _. ~+ j1 ^1 L) T3 Y
return TRUE;
+ X7 P& p7 \( |}
3 j& K& d, |0 [& `$ ^8 `
8 Y2 {: }* x, h" H" h9 L1 f! p) ]: a& _' M/ `# x. i" @8 g1 m2 U& Y; p
: e5 B. x6 p# G& U6 I0 l
U2 f# j0 u* z1 P1 B |
|