|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 I/ k* Q0 z9 L/ F) U' j
; y8 D# b- U7 e" hMover.h
$ q% C }/ y! ]' e u' F( v' w7 F1 |/ G代码:
$ s; B7 b* I3 e* X8 J- Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& D; U8 T! o ~8 {* P* U
, f& u- ~% m" s8 Q" M. F: ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 p" F& D! o9 D1 @2 n
0 z# @- s F/ B9 p2 a; o5 U6 }
然后你去mover.cpp添加% z* _& B4 x. Q, V
4 c% l, L' c C) a+ n7 [
代码:
5 E7 f: J8 `8 X8 `( p+ j8 Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 T6 ^8 M3 _3 U0 S{
; r# t4 S# S# ?' }, M#ifdef __WORLDSERVER7 Z. K+ M$ g, \: R9 ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! s m) s i) R# D- D$ q MoverProp* pProp = GetProp();
5 `. o' z8 u* B1 I' V2 R if( pProp )
% s2 D& K/ T' i6 A0 f {
( O; T' s' i6 Q$ S if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! A2 J( l& O4 w- M+ [: ~" [ {; h; ]' ]8 H) M, m
AddChangeJob( nJob );: S! Z$ K1 q: [, `, ]5 `. X% T7 B
}else{
, m+ [2 ~: R. l& y8 ~9 E return;& R0 M' w; I' ]1 B
}
& }. k% a+ B3 `: A int nPoint = 0;2 V( e1 m) Y) \+ C2 q1 `
if( m_nJob == JOB_MERCENARY )
: ~/ k/ \. R. N+ \9 g: [& o$ d nPoint += 40;
: X" H3 n% Y7 n( Z4 D6 e else if( m_nJob == JOB_ACROBAT )& M! q& |6 Q5 [2 ~& b& v
nPoint += 50;( K) j; m+ v3 u9 O4 x4 K
else if( m_nJob == JOB_ASSIST )
5 y4 I5 A* p) G' ~ nPoint += 60;
! s- a- m- C: L0 \1 [) ` else if( m_nJob == JOB_MAGICIAN )
) @' Y+ k. e: n nPoint += 90;
$ ]8 Q! N. h& ?9 g9 I, K! g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" N7 }9 B* q# W
nPoint += 120;
0 W- X: I/ s( ]+ M5 `( g/ j: ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* V1 O. \1 J- ? e2 B: \ nPoint += 150;
) S ?. b) G; d; j M/ {6 e+ | else if( m_nJob == JOB_RINGMASTER )* f, \! o; A* F/ G6 l
nPoint += 160;
1 P% z0 L5 l3 J. X- `0 C2 k$ D else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 a1 v( ?0 ^# L9 C
nPoint += 180;9 H) t- a! C" ?9 J" R% A
else if( m_nJob == JOB_ELEMENTOR )
0 `0 V1 A1 z' k, r6 E n nPoint += 390;/ J. `6 m. H9 O: l! I" W: v) C1 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 Z6 _' F. V4 `% e nPoint += 120;$ m: C- M5 [* f. j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 a; V$ E! F: g3 m
nPoint += 150;
9 d% }. C) W/ S( Z6 T! g else if( nJob == JOB_FLORIST_HERO )
' `3 N8 D1 Y! m7 w nPoint += 160;
1 e" d! T9 l; z& y( z9 n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) k9 U4 ]: L+ J! k8 u
nPoint += 180;
4 a( y8 i: L' {& x6 X- y else if( nJob == JOB_ELEMENTORLORD_HERO )- a3 [* m9 c2 a3 [3 W! w3 h& i5 f
nPoint += 390;
: t7 ~& x" @, x
$ q# R) M2 @3 b0 R l AddSkillPoint( nPoint );
$ b# }6 `( U- }7 n: |6 e m_nLevel = nLevel;
0 k) }/ s0 ^- Y4 Q% x) U2 |: t& }& j2 V9 F- F) `3 }
SetJobLevel( nLevel, nJob );
; z D; {$ s( u. L* n m_nDeathLevel = nLevel;1 e2 j0 L6 Q0 M. B
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% I) g; j- N/ w. D) {! L0 ~; Y if(IsMaster())' J8 f. N8 K) b# U% v8 j9 m
{# ]* M( D A- [) [4 w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( P% z, G) Z* j
if( nLevel > 59 && nLevel < 72 )
, G: S2 Y0 _' X, b dwTmpSkLevel = 1;
0 e; s- n# w) C3 Q% C6 T else if( nLevel > 71 && nLevel < 84 )
0 x# }9 P7 x* x1 z' O% X dwTmpSkLevel = 2;
8 M8 O! V# E! D- z9 b1 B% k else if( nLevel > 83 && nLevel < 96 )/ o% i+ W5 M! B! x
dwTmpSkLevel = 3;# V. N- i0 ~' B2 t4 \
else if( nLevel > 95 && nLevel < 108 )
% ~; j) Y* X+ R0 g dwTmpSkLevel = 4;! D" Z7 j6 @' l" W |1 {
else if( nLevel > 107 && nLevel < 120 )
3 e: N3 E6 A6 Q/ \; B dwTmpSkLevel = 5;3 Y# I4 B) a0 Q( o9 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 y" l. k1 f9 W. n$ w. u$ B2 _
{
, @0 {! n) }0 {1 o0 ] I LPSKILL lpSkill = &(m_aJobSkill);; o# l3 @6 T8 O& r
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 P. H( Y9 i/ |5 ^1 g
{2 L A5 s* s/ ~" T$ H. |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) i7 ?. w8 K P% A& \ if( pSkillProp == NULL )
, _' H! J8 j( q. N continue;; `& n D+ N' I) _$ ^+ k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 X: N: a6 {% l4 b" @' Y3 k X
continue;
: C+ a0 D5 l) z1 P5 z( b+ H2 C9 m lpSkill->dwLevel = dwTmpSkLevel;
. A2 @( f' ^0 \8 X% ]5 J( z, Y5 P }
! }; U9 R+ j6 ^ }
! d- ]( [; z6 N& i }
% h2 O W( t7 d$ m6 [ else if(IsHero())
; x& c! z8 _, O8 M" f {
# ~9 m& a, {) V" i* O for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ]5 t8 K9 U, `' {5 i
{
: f1 F. {8 Y. s( @9 i- p* m LPSKILL lpSkill = &(m_aJobSkill);( s2 @- K) T3 A- u$ \
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 q8 o. x0 _( y1 N6 A
{* @/ i4 [! e! W" u: ^1 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / Z* C! l Q+ R3 Y
if( pSkillProp == NULL )7 p4 n) y5 a) T6 o+ `8 ^6 ^
continue;
& G3 p: |# ~7 f L- E, g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ b9 v" N" F$ A: [7 F" } continue;
- _0 R4 e+ i0 N D lpSkill->dwLevel = 5;& A% ]# l' g- }8 n
}8 e7 O" \9 }* a y7 u( c
}* @( O, S2 C+ ^+ O
}
2 v$ g: |4 T) N else if(IsLegendHero())
) _8 J6 u/ P- D$ I0 R7 D: p& w {
( Z; f, N+ Y; q. V) D% d f for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 w! u2 t9 n$ V+ H5 `! G( A2 ^
{ $ x; S$ u6 `6 Y0 [* T. t
LPSKILL lpSkill = &(m_aJobSkill);8 E" e) }4 ~) V. Z6 M- K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. Q1 [2 w- z: W" Z, g* ^' M/ k {
& ^ k2 ]& [3 G6 s0 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 E" U( T) h3 W& z* q Y* s
if( pSkillProp == NULL )
" Q; Z3 e3 v8 y0 z continue;5 E4 {" e5 ^* b( k0 r5 T6 J5 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* W9 t1 a x0 J$ s1 g$ l continue;
/ c# z" L' c; B lpSkill->dwLevel = 5;% ?7 \- T( M6 U5 e- T7 c/ f9 c
}
, U2 J: d$ H& ~7 T5 t5 | }
. V% U6 s$ o. h, m4 F! W }. w/ G6 R9 a8 B# U3 T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 l+ C& D% j% r% G if( bGamma )
# Q$ c+ |9 Y+ N# G {# y' X) u* q5 ?0 |- @4 O3 ^
m_nExp1 = 0;; M# i1 r! S7 w. H2 \# J
}
; X* {$ N- N; o3 F4 y
W( M+ y6 B/ t1 B1 P! j ( (CUser*)this )->AddSetChangeJob( nJob );
5 ?- q6 |; [" z$ {/ h: o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ F7 U1 W, [8 l( ~6 t5 }9 l" o
) x; O2 j; F6 c2 I) e0 _" u+ M4 `- G# n* f) c- }8 C
#if __VER >= 11 // __SYS_PLAYER_DATA
& f5 {: {5 X% V- }0 e g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- b: Q7 }- \/ `6 X#else // __SYS_PLAYER_DATA
- R2 y N. H. R4 X g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) D, W* d4 F! ?8 R g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& p# J7 ?7 U4 j' i E# f* g if( m_idGuild != 0 )5 g4 q% S& o& C3 H! b9 ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 J& y8 j/ }( h8 Y9 X#endif // __SYS_PLAYER_DATA
+ V9 {% @( T; i5 b. W. f SetHitPoint( GetMaxHitPoint() );
1 r) N$ }/ i8 m: z; g SetManaPoint( GetMaxManaPoint() );* y0 G4 B7 C7 U: a+ ^+ P" i
SetFatiguePoint( GetMaxFatiguePoint() );4 a( g% ^4 [( j8 _) Y
if( nJob >= 1 && nJob <= 4 )
2 T* W: l) E# H3 h( M" H {3 V, E% E$ ^1 {* v! N; C/ ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;" v- `* j( m4 y1 R: {
m_nRemainGP = 28;
7 h5 V; |4 M5 L+ x' W+ [ }
' z. f* p' r8 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ _: \6 ~: i( W- O9 B3 W' c {
( g/ h* O0 [/ z; {8 e m_nRemainGP = 118;/ A( ?; a p% }* P! ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 P3 k# e' p/ V3 Z m_nStr = m_nSta = m_nDex = m_nInt = 15;& }# r2 O$ B& C( h' w3 a
}
+ I* U1 A3 {) b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* o* H) P( G1 c% _( A& d
{0 x7 R% B& }. V8 f0 _: ?, `
CItemElem itemelem;
7 H2 _' [2 U q3 S7 {+ j4 E itemelem.m_nItemNum = 1;
# ^' b, F* }/ a; f+ q& p9 o itemelem.m_bCharged = TRUE;
( K- e: s5 @% c; `8 ^3 ?. g BYTE nID;+ e) m- I; e! V/ w4 ` w$ Y
! C( F! l, k, q( [2 ?" r% O. G if( nJob == JOB_MENTALIST_HERO )
; y& u7 \$ q& K" l0 {- \- L! w2 t" W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- F% X# \+ w- F7 f* r' D# t) x
if( nJob == JOB_FORCEMASTER_HERO )
' l0 ~2 l$ S3 X* B2 B5 A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) q8 I5 ^; O5 q. g0 K" n1 K1 S9 l( Z" t
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- \0 y/ b2 b! p }
# n. D# O6 A. q w+ u# b& u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 u5 l8 G1 D! v7 m& c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 I9 P, V y7 ]" j) @* F2 G4 V% `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 O$ ? C& ?8 [$ `' x
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ [/ E* X5 K, x. p- l; p
( (CUser*)this )->AddTaskBar();*/
1 A1 f* {1 u* H% j: P7 a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 b/ ~6 h8 X9 z' ?. B; ] @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" l o* U/ a0 r- E ((CUser*)this)->CheckHonorStat();
1 C* V3 ^1 q# x$ [4 M i+ s ((CUser*)this)->AddHonorListAck();+ s5 x1 E8 Y" e. R% q, j
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 D# k! ~4 O4 [% {
#endif // __HONORABLE_TITLE // ′Tà?2 i3 v; b8 E6 Z2 e" _/ V' k8 C
}+ ^; v* t- d, q
#endif // __WORLDSERVER
, H" G% q; _4 Y# q) t* Q6 c} " V' I1 l' B5 k- i: S
0 E- r, i$ c5 D! L0 n$ u然后你进入functextcmd.cpp并添加以下
+ p! X$ O+ q! B$ a; S
- X& D. |9 U6 ~7 J9 B/ U代码:+ o* Q. \/ r3 I, v, H ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ O2 w1 w0 j0 [+ I2 D. H
下面插入
. _0 p+ }1 t2 [& Q+ a$ A; dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 F6 {" G; B* U1 Q! D% @: I* N
# s# Z. {4 n3 \8 q' }
然后你去0 Q2 E5 m! k6 o9 i9 a. l* B- S m
& \# P. T! M \! \7 @; y' Y4 W
代码:. A$ H+ r( F* @8 W) C0 k
代码
; q/ p+ T8 o1 K9 i5 a7 W/ Y* I& I+ lBOOL TextCmd_ClearPropose( CScanner & s )! L% x7 v/ c R; r. Z
{+ A! w; t! i2 ~ T6 d0 V
#ifdef __WORLDSERVER6 a: x- w5 ?) C6 v6 F6 N
CUser* pUser = (CUser*)s.dwValue;( z0 v8 X* W" p
g_dpDBClient.SendClearPropose(); g: c) ]5 L& ^) v" ?+ ~
#endif // __WORLDSERVER9 y8 ]0 m+ q( `" a2 \5 ]
return TRUE;) H) ?2 s2 k( `' `/ M( ]- D" w d
}
2 ], u( a) j$ U6 u下面插入
, k, R- i# o* H: X* zBOOL TextCmd_rebirth( CScanner& scanner ). y8 [( M$ {$ K( ~1 C2 u/ |' T
{
. o2 ^: g: i+ b( _( E1 i/ x8 V#ifdef __WORLDSERVER7 A: Z" q1 [- s
CUser *pUser;
6 i: j" ~1 h1 e$ d" G# N+ N+ j0 ?) ppUser = (CUser*)scanner.dwValue; Y' ^ n: o2 G8 p7 H# f6 ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ [6 G* X v$ @! P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 [. p* c, h/ R' \else: C5 K' E/ u& O( h$ B# o+ l; V0 l
pUser->AddText("你还未达到重生条件!");
/ h4 [/ s$ L/ V3 ]1 p: o' Y#endif0 @8 n9 K: `! Q9 l
return TRUE;
" W. s! I; L# X2 r7 A}
4 O3 \$ w% _9 W7 C2 ]* Z/ S/ T" {8 Z* k* t5 ?: P" p. M
- `5 X9 d9 q4 ]2 a' q" O3 B& u, W
8 |; L9 f, a) i" N c* _- A e0 Y9 S/ ]' ~: i0 l
|
|