|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 o$ s. y$ k$ q2 P* G. h4 ?- `# A6 P7 F2 K
Mover.h
( y3 @) F5 i0 N# h5 r( b U代码:* a, ~1 D# ~- b; A( P' o4 t3 A Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; b; Q: C' L; b
! E9 b" m" o9 C* f/ c2 W3 y0 @; C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , v L. S" n3 e6 d8 K/ U2 j" ^
( A; m1 J7 F5 O/ ^+ C然后你去mover.cpp添加" Z, f0 H* j8 F8 v& w5 Q! @5 w% A
, w+ b5 f( v& M, q$ W; E
代码:; M4 r! ~3 m, O# S+ r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). I2 G& u7 L3 g) l. D$ |1 y
{+ d/ [1 c0 I+ ]
#ifdef __WORLDSERVER
5 {3 W. B/ y$ w( g/ N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 Y! e% k2 X# {8 j7 g f+ X( x/ A MoverProp* pProp = GetProp();: K& b: u# K8 F1 U) O3 I0 B! H
if( pProp )
9 d7 K! B, I$ ]/ K$ o; i {- N( Y7 H, K0 S4 T$ u% {' A
if( nJob > 0 && nJob < MAX_LEGEND_HERO )# x9 I. }! q( Z" m7 o/ F0 [
{
8 l* U! w! g: J! I AddChangeJob( nJob );
5 a, G+ U1 A, Y }else{
: g- l9 l w6 y/ C9 X( A" C% m. G+ B+ J9 Y return;
( w4 _- ]2 W. M& A, ^ }
# K- n% r! V' \. N9 k+ H' |! M int nPoint = 0;
) y% u$ _% d% m if( m_nJob == JOB_MERCENARY )
% P( m- S% ]6 Q; L- Q: T nPoint += 40; M0 Z7 V8 q, U8 h# L
else if( m_nJob == JOB_ACROBAT )( ?$ ^0 d/ K: |2 c# {
nPoint += 50;
4 |+ e4 N* z3 v# _6 J5 @# L else if( m_nJob == JOB_ASSIST )
. _% H7 g/ F) J* d- O3 ^ nPoint += 60;
3 ^; H: s( U2 _ else if( m_nJob == JOB_MAGICIAN )
9 ]% N6 T ]+ s6 s' |$ h7 ` nPoint += 90;
3 `) ~, U; ^+ d) ~+ W$ c; i else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 S4 x1 [; E- X/ f9 \; a
nPoint += 120;
2 D2 z |1 p2 R0 `8 r/ g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 n9 I3 H9 |* o; ^/ E& r nPoint += 150;! F2 d/ W' \6 l' @+ v% w
else if( m_nJob == JOB_RINGMASTER )
& p; [) w% _. I+ l nPoint += 160;
7 ?3 v* d8 b5 J# B) y: R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, U! S; V1 z" k. W8 ` nPoint += 180;
. ?! h; y9 j3 \2 T* C/ n else if( m_nJob == JOB_ELEMENTOR )) v9 `$ a# \# ~ `9 M
nPoint += 390;
5 Z, B" D' b9 c; o% ? else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). O, b' B+ q/ `" [, U4 {8 P9 I) u
nPoint += 120;6 E( ]9 x ~& z4 N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ |8 M9 f) Q1 Z; k9 P2 d nPoint += 150;0 @) g- Z& C6 G& X' P" D; ^
else if( nJob == JOB_FLORIST_HERO )- d B: e1 R8 k) C7 C
nPoint += 160;
; m7 E( _ s/ G/ M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 l! s5 A/ d. }+ m
nPoint += 180;: m E o4 {& O1 \2 T5 n
else if( nJob == JOB_ELEMENTORLORD_HERO )
, u9 B) N& m. { n, l2 r o( @ nPoint += 390;
# u8 r9 [$ c$ _( T% F6 f0 o( y
9 @' s! J- l5 }# a K) U AddSkillPoint( nPoint );
3 \! B D( k1 Z5 P m_nLevel = nLevel;/ U4 M D3 E3 B* n& l
& I; X/ _% c4 \- z) B% b+ g
SetJobLevel( nLevel, nJob );0 J. @- P1 ~+ y' z$ T* e3 x
m_nDeathLevel = nLevel;5 [# K, X; i% B/ A A- q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 }" A5 F% F! L if(IsMaster())
1 N+ h: z8 v# W0 k2 Q {
: }, V: H9 s6 ]( P( x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! I! [7 S% k$ ~* b1 v if( nLevel > 59 && nLevel < 72 )8 b7 J8 [/ ^0 L" [
dwTmpSkLevel = 1;2 c) A# s/ U2 |: i% T; }( e
else if( nLevel > 71 && nLevel < 84 )
" ]1 {# c9 g% O6 | y dwTmpSkLevel = 2;
; G( F" Z& F9 H ~. j: i; P else if( nLevel > 83 && nLevel < 96 )) S: G5 N5 F$ g0 q9 T
dwTmpSkLevel = 3;! m/ U! ^0 |3 R2 h, L `/ m6 T
else if( nLevel > 95 && nLevel < 108 )$ Y7 m- u6 c, b( Q, E$ U
dwTmpSkLevel = 4;6 p9 F4 ?/ f' L: |7 L* v+ \
else if( nLevel > 107 && nLevel < 120 )
" q! C3 `% Y, F7 T6 W- \& I dwTmpSkLevel = 5;
& w- W) A) ?, o) T. f. K for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ~0 I- ~* [ d1 p {
" a( d8 r5 ~# t' n9 \% }4 M0 M LPSKILL lpSkill = &(m_aJobSkill);8 S3 H* E9 X) ^& M% Z- M# T- w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ M9 g8 ?0 W9 }: M {: D8 g6 e2 W$ k! d( y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! }. g- g) l% t7 l/ f. F5 e* [- I5 ^ if( pSkillProp == NULL ), |7 i! S- y- r) Z$ k( f7 o- {
continue;8 {8 Z+ k" O8 G. \ s: G/ c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 h [! t R2 F; U# t* V5 d# _. d
continue;
, N+ L4 o3 z( h" b( } lpSkill->dwLevel = dwTmpSkLevel;
Q9 N% J3 Y' i5 L }& ~6 h4 K1 V" s
}# b% p' a7 `. [# t% [8 \6 h
}
6 l& X% t$ }% |0 s% S else if(IsHero())
+ r y, z- T7 M' x' C$ D. } {; Q8 ^3 u5 @# @; K. T0 b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 }, S% _* C& d6 L, O9 O- _% @0 e {
8 h6 q, u( p! p! X: S LPSKILL lpSkill = &(m_aJobSkill);6 p% I( T: @8 p4 F0 s
if( lpSkill && lpSkill->dwSkill != NULL_ID )' H6 f: e' q$ A. d/ G6 L
{# q) \) x9 ^( W8 V8 Q3 ~) Y' ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * A3 K- i: b/ |7 r6 | ]% G# A
if( pSkillProp == NULL )6 \& F; F) D. \. Q; V# l
continue;! {1 \% D* W& H! L. i: U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 H' m+ j! c g/ F8 B7 x( a. W
continue;7 w2 b/ @8 k! j4 I3 ?: Y$ S3 l
lpSkill->dwLevel = 5;5 N- D, p! h9 Y% l# M
}. h0 E* y' u7 \3 t' l
}7 r9 Y/ y9 M _, W! b) p; r L5 I
}
/ C3 O" r, R! S5 W) M else if(IsLegendHero())
$ M2 H8 j: }( b& A* R {
5 e% F) x0 l. R( C for( int i = 0; i < MAX_SKILL_JOB; i++ )
F. H& F3 j6 C |/ x {
/ v8 w' s7 G. d- w LPSKILL lpSkill = &(m_aJobSkill);
" Z. k+ T, x1 ]) {8 p if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 p; Y0 U( h9 Z* h, m {0 n+ Y0 E+ k) G* q( V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , `1 n' S& R( s# H- X1 a4 ~
if( pSkillProp == NULL )* g+ f1 R I" ^2 e& q) K7 d
continue;, ^) k7 \$ c/ R& `/ q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( J4 u7 B( }' O/ n" X: O; H, U
continue;
) E, u$ F3 I! g: f lpSkill->dwLevel = 5;5 _" N+ x) G4 b1 L
}
8 D ~" [0 {0 X$ G/ u3 Q. C- I }( r& A9 ?8 ?) ?7 T1 ]
}% M1 E! R9 \6 a: W! T8 h& ?+ x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 J9 q5 v) V" h3 }+ @/ X6 B5 n if( bGamma ), E. L% O& U" C9 k0 m' S
{
- J) O2 k% x$ G2 p1 s m_nExp1 = 0;
% k& O! H% f* b4 U8 F, X }
$ L: k4 q8 \1 I8 ^
D3 f Y0 I, p" m5 F. X5 B ( (CUser*)this )->AddSetChangeJob( nJob );/ c) J _. R) f0 G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 D7 Y* v; ^. m ]1 X
7 _' `& s( |8 t# y
6 G, G1 A5 N% y
#if __VER >= 11 // __SYS_PLAYER_DATA
6 J" ^9 S5 N5 S0 p) S- e% | t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( i2 E9 [) X. T9 a
#else // __SYS_PLAYER_DATA
/ Q; X) b3 P6 [" V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" U' W/ _; h, A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ N, ^, m0 U0 \$ p% m* t if( m_idGuild != 0 )
! t3 P3 G# [9 B, [4 { g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% E9 K/ E2 X- h: y+ ^#endif // __SYS_PLAYER_DATA; L( U3 H# `3 R# U% Z' q
SetHitPoint( GetMaxHitPoint() );
( A# o, e1 n; F1 c* E/ ], F SetManaPoint( GetMaxManaPoint() );
0 f) Z& A1 Z% l% r5 }. I: M SetFatiguePoint( GetMaxFatiguePoint() );
. y! M, G( D9 s4 B6 q1 O if( nJob >= 1 && nJob <= 4 )$ h$ V/ [% j/ W
{
7 @/ _. q0 r4 t6 x& o5 r m_nStr = m_nSta = m_nDex = m_nInt = 15;8 p w) x! O8 Y6 U; j7 s- v+ w$ w: [
m_nRemainGP = 28;
f; }1 h7 L! b6 q4 A* ? }
! o( O# w4 T$ J5 ~3 M" ?8 l0 e0 J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 L0 f( c8 }' V6 P( }
{) ]1 p1 R# m2 g6 @
m_nRemainGP = 118;2 M" r! ?, w- Y2 X3 E5 }3 A" t+ t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 o8 E! M, j8 ?6 k2 s8 z7 U2 m
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# K; w2 L/ y; o/ E& H9 J2 i: D }
6 W2 Z% H, G: r% L0 A if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 f: _! j7 F# a2 S. s {* l B% b" o0 M& h, E
CItemElem itemelem;
) ]9 K" w; @4 {1 Q! t* J itemelem.m_nItemNum = 1;6 m" k. L+ a3 @' `7 i0 L+ t
itemelem.m_bCharged = TRUE;
8 g4 x0 p; e8 t6 g BYTE nID;& E. T w3 b, C9 {5 R4 |7 c
4 X+ w7 m1 t! _. E if( nJob == JOB_MENTALIST_HERO )$ P! [8 w1 Z5 @% i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 S6 c3 @! Q2 N: ?: s% W4 `, `7 t+ w if( nJob == JOB_FORCEMASTER_HERO )
5 }6 {0 F- Z/ R, j4 l2 E1 t; k. } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 C; O# t$ P2 Z, t6 F8 @# v
/ z+ W# `) L* b( P' ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& [( F6 n; w9 a$ E }1 C* X& d( v! N
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 u t2 s, @9 ?2 @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% F3 g3 T% j K l9 w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# `( D! z2 p* b) |% k: l
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ o2 r* }4 N& N+ h ( (CUser*)this )->AddTaskBar();*/
4 n7 \* h6 E+ P* V7 P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) Z( a9 U3 P7 n9 k* J2 E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 e g# M/ ]0 w6 p/ R, @
((CUser*)this)->CheckHonorStat();
, N! b5 {3 X; S ((CUser*)this)->AddHonorListAck();
3 v6 w- M$ {0 j! _9 V) o$ k; o* O g_UserMng.AddHonorTitleChange( this, m_nHonor);7 ?) f% |2 h, A
#endif // __HONORABLE_TITLE // ′Tà?) B- Z$ ]( c* _. W& z2 l5 a
} z; x, Q! O) M& {- ?- s: `! `
#endif // __WORLDSERVER6 {! M& g8 A8 U8 U8 S
}
+ t+ Y8 f% Y) K" F4 }; n
E( i' P1 y: Y然后你进入functextcmd.cpp并添加以下( ~, I7 B8 F5 o) q8 |
1 K8 _' \. _; t$ S
代码:
1 H. i2 C1 m# lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) E- Z( ]5 k6 e$ T* Z& e
下面插入+ G4 G9 [. H% e7 V4 i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 g( ~* w' H/ n7 j4 n
7 K2 O# V( }/ |0 H然后你去
% S' I' A) P( Y8 c$ C: l* I: x! {9 m* S& C
代码:
5 l; t' E# d6 J% O' S代码 o- {* t I" @6 M3 }
BOOL TextCmd_ClearPropose( CScanner & s ); D) _8 V9 f+ i2 ^$ t3 M
{
$ H" e8 Q1 \* k! a) `+ G( @0 h0 Z! Q#ifdef __WORLDSERVER
5 c6 q4 o; K' P5 C. C; m( D" Y% u CUser* pUser = (CUser*)s.dwValue;
3 b u4 _& P2 p Y4 E g_dpDBClient.SendClearPropose();
1 y: f. C2 x$ X, Y& \#endif // __WORLDSERVER
- Q4 ]1 n5 u7 R+ U1 o {- z S return TRUE;
5 s# }" \: A! E4 ?% p}7 p/ T' q. [6 Q* u
下面插入
' u% `& H- B- o/ v, o- y' ZBOOL TextCmd_rebirth( CScanner& scanner )
5 Y1 d) U' T N4 S2 C/ ~{
5 \; m" J, }# ]% f+ Q" z#ifdef __WORLDSERVER
" Y, A/ r- x8 A& U. W9 NCUser *pUser;) y% ^2 |! O2 E5 ?( b3 W( N* u
pUser = (CUser*)scanner.dwValue;
0 P8 ~/ X; ~& |6 p# G# O5 F. ]' }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) }2 s( c0 }8 b+ k0 T; ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% s- ?& {9 u- D& F9 E5 B5 Y) f
else0 a) t4 r( p& c2 J
pUser->AddText("你还未达到重生条件!");9 N1 s7 Z5 a/ H, i5 w
#endif8 x9 ?0 `4 k$ i& C5 x$ L
return TRUE;( f. s2 w' W% i% _( }
}
5 i( ?* ?" p& Q
* w$ }8 j% J: l ~ j+ q" D# r+ D8 O/ I; D9 h, p2 r2 }9 C% G, G
: q* z( a& b: _( r2 c
6 b: z6 M/ @8 z6 Q. |0 e |
|