|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, k+ ]3 ~3 j- a
! Q& b7 D& p! H- w3 Y: y. m
Mover.h! G$ r0 g& a8 e3 `
代码:
+ P8 b' q6 a0 l. Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 q t3 @9 z- u( I6 L* {
! Z2 L, J7 h! S3 M6 k5 I下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 p# Q. i* J' T/ X2 v! c9 r/ A2 ~& F4 v
然后你去mover.cpp添加% T$ `5 c* C, p- Z( }# v8 q
+ ]+ U; Y- n7 \% |+ y
代码:
' r% e. ~8 |! _0 J8 \/ b1 ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! C3 Z" p+ n: M. j5 c+ e
{0 w6 s# F7 r# _5 _2 r
#ifdef __WORLDSERVER! Q- M: z3 O9 k9 a3 x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( C! a! }' U' P# r D: P MoverProp* pProp = GetProp();
, H" `! U# _/ u- U0 ~/ W0 Y if( pProp )
8 r1 }& _, \1 r$ N8 {) i+ w {
1 s3 {8 o9 }1 I: `! w# N. S if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ ^: J! f; F8 p9 w# _ {0 X) @' u9 b5 Y, b$ J
AddChangeJob( nJob );
S) q( G) z) |3 @ }else{
* @6 m7 }/ Q, @1 A return;
+ G2 H# g: ]' ]8 p* D D. R }
! v/ g9 e9 }+ d! h# _6 O int nPoint = 0;
5 \) D" D# F$ c- X+ H- y# g6 K if( m_nJob == JOB_MERCENARY )9 y3 U# U. q- [' I
nPoint += 40;( P. A: S. y+ d* }# E9 d2 [, ^
else if( m_nJob == JOB_ACROBAT )
( n% O8 C" a9 Z3 i6 k1 E nPoint += 50;+ ]+ F( L/ ~! D+ |
else if( m_nJob == JOB_ASSIST )
! @* j4 a( U& [. K. ? nPoint += 60;
, b0 w4 O# b' U7 T) n4 V else if( m_nJob == JOB_MAGICIAN )
4 }9 m% g/ C' t# l, N: `7 g nPoint += 90;
4 ~9 u7 B0 {0 Z, H7 D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ k" N. w5 ?: U8 j1 Q9 u0 t/ C
nPoint += 120;
5 l9 y* W2 V8 @1 i& T6 b& x2 N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& R1 m" I8 g3 w/ v
nPoint += 150;
0 k" _% e% y/ T& R( C else if( m_nJob == JOB_RINGMASTER )
! ^4 k% Q6 g3 ]' H& T4 D nPoint += 160;( y- P( A9 p5 X: R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 @- m9 N& P- Y# r
nPoint += 180;8 j! d Y: S+ r7 K/ i4 |2 I* P$ M
else if( m_nJob == JOB_ELEMENTOR )
/ s: `" k- j5 Y+ L% V nPoint += 390;8 i6 |+ @( |) @1 a$ `% Z* b( R Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), P" L: a5 ?8 t. W1 ~' \
nPoint += 120;- {2 h* C3 X s$ P" \ b" J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; Z0 t/ v( L2 S6 T nPoint += 150;
" s9 U9 g7 B( o4 R else if( nJob == JOB_FLORIST_HERO )
/ l' v# ~6 Y2 j0 k: F; Y4 z nPoint += 160;( d# i# ^8 O$ s8 z: j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% y+ C* n; q3 t/ q9 p% Z; | nPoint += 180;
4 Q$ q- y% a, Y' Z0 i3 E+ O else if( nJob == JOB_ELEMENTORLORD_HERO ). M; X- \ s! s3 I
nPoint += 390;8 \9 j! v! i" ?5 G K
7 x) i" m9 F, o/ j( g( |0 M AddSkillPoint( nPoint );! d* _! t& |0 [; S X$ |' g
m_nLevel = nLevel;. E3 P Q. G& ^( e3 N
% ~+ `/ w. f+ Q- G0 F# E( r SetJobLevel( nLevel, nJob );
, ?3 R& \ j2 K# I8 {; y m_nDeathLevel = nLevel;
) H( m* s2 W7 e M( h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 Y' d2 J$ O; Q. ]2 g9 L- o if(IsMaster())
+ ]" _) i' z2 T" p0 ~: ^ {. l3 y4 R% {$ z1 ^& T h
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 s* F) J; q1 w1 `, K5 _ if( nLevel > 59 && nLevel < 72 )9 c+ D; \) e# i f- H }8 T
dwTmpSkLevel = 1;
& g8 l3 Z/ @% p# d5 l else if( nLevel > 71 && nLevel < 84 )4 L) V; s/ ^# m# s" J3 o3 v* s
dwTmpSkLevel = 2;: W, n' g! A, \) I
else if( nLevel > 83 && nLevel < 96 )* O0 \! { I' S& }3 Q/ O! Q! }7 V1 R
dwTmpSkLevel = 3;
: F) d4 E1 Q& v- `: y! X) t9 [% S else if( nLevel > 95 && nLevel < 108 )* {- R( R: x8 B; o0 B
dwTmpSkLevel = 4;
; J$ @! M1 k- l8 P else if( nLevel > 107 && nLevel < 120 )- j) C- T* N/ ]2 V/ T
dwTmpSkLevel = 5;' T2 v% ]+ i! W( E" _+ y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ p" N& ~4 \; w. f3 a. v {
8 {6 x+ E7 W0 l, M: D; t- P0 f LPSKILL lpSkill = &(m_aJobSkill);( G9 R! y2 z# U; H6 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )& y, _9 @# g/ V, p
{
. x( N5 f+ t6 y5 A% O s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 a; u+ l' t: C$ Y" u if( pSkillProp == NULL ), I% C2 w7 L- f
continue;
- Q! b7 c; b" _% N# A4 t) _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ B$ Z y# {) x! m) I* m continue;
+ B/ K( B! _: s; ^9 y lpSkill->dwLevel = dwTmpSkLevel;
3 g/ Z1 g) O! o+ l2 O, I# W }3 g( I) F% U: U
}
2 c4 p6 V9 d* `1 U* a8 J }: e* Q' ~2 w! S; b+ i4 M( a- i5 z
else if(IsHero())
- v X! e+ @ h4 o8 F# H, x {3 H0 Q" y( g5 o5 p6 p# ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + x* T2 F4 M, j
{ % v% T' ^. h+ V( d/ @2 X
LPSKILL lpSkill = &(m_aJobSkill);1 ^- j9 D0 s: y i T7 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ J# d" h& J9 G& H; F
{
4 b7 W$ N, k7 t4 s. X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 X3 J4 J( l% k1 R! l) Y if( pSkillProp == NULL )
3 A* U" M, ]7 Y3 } continue;. ~& m0 G$ f# J a- j: @) q# A0 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" G, f, e! s' f; W9 O6 {; T$ Z8 R
continue;
0 n/ n6 Z6 j* o4 E( P- y' @5 ~ lpSkill->dwLevel = 5;1 b9 N$ q8 m- g
}
* z: U* F, \; d' z# M }
2 g7 y6 g% k8 m% ? }, m% b: G2 c" i, h/ M8 H: @2 u
else if(IsLegendHero())( _) }$ ^" M; F, M5 \
{
2 H/ a6 _9 h3 x& \' |/ c for( int i = 0; i < MAX_SKILL_JOB; i++ ) _- W$ w+ B& }
{ ) P# Q5 r: [' i4 H9 E. {
LPSKILL lpSkill = &(m_aJobSkill);) Z- X- R- W1 A- i8 z; H2 J5 H5 n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! l3 U# q3 G, {: |* ~ {! d/ y; w+ Y/ Y/ C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; X3 o" d. |6 A& p; D
if( pSkillProp == NULL )7 l) h0 i9 c2 B. _7 K; s. z5 o
continue;4 y/ I" H2 v, U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 \' Q" M9 H! [, O- }$ k continue;
! O Q5 [& }% m' P9 W+ \3 N lpSkill->dwLevel = 5;* t( U$ I9 Z) @0 A8 T! m; B+ \
}
7 t6 \$ s: S5 R2 i }; @4 l; j" F4 T- f3 O8 c
}
( h* X* Z/ T; _; E5 y. R. q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ F) c* \& i0 l7 g5 `. }# H if( bGamma )
# c3 R& }& ~; W. L3 u1 _ {
5 \" @, y/ U6 ]$ c3 f; Y8 H- S- d/ T m_nExp1 = 0;" U& F! F6 A$ h: ^
}. T1 F% h4 e4 V4 ?% R
% e% l/ j3 F7 X* |+ w
( (CUser*)this )->AddSetChangeJob( nJob );
' C6 R( v% G1 A/ [) a" i: T* T2 g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 F1 h) Q' w6 u; F
& I# k1 P8 ?) ]- a J% \) u6 n o! [: N8 v4 ?2 W. ]& e
#if __VER >= 11 // __SYS_PLAYER_DATA
8 g# ~6 @) J( } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! m% Q4 Q3 P& W1 v* M0 |
#else // __SYS_PLAYER_DATA
# u4 u- ~: r# G( [/ N) s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; F! S4 f, z- ~: f1 @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- W) c U# b0 S' C if( m_idGuild != 0 )
- P4 p2 P; h0 ?: `9 b7 O0 q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 X! D' ]8 R: |* X: x
#endif // __SYS_PLAYER_DATA
8 k5 f7 H& `2 S2 q, T& \* l; g SetHitPoint( GetMaxHitPoint() );
5 U* ?; S) B/ K8 L3 q SetManaPoint( GetMaxManaPoint() );
/ }- z" n. ?, ^5 j. } SetFatiguePoint( GetMaxFatiguePoint() );
) Q1 ^- n; E( d' O8 {7 F' | if( nJob >= 1 && nJob <= 4 )
; d: {$ _+ s3 T4 @ {
. Z" d3 G: m' w8 D m_nStr = m_nSta = m_nDex = m_nInt = 15;5 y1 Y7 B* q0 L4 p
m_nRemainGP = 28;
/ z, c- y- e. V, {: j3 c }
0 x8 f+ r! k* w& ` if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): U5 b- ]' n9 v4 z) s% o: F
{# r4 J# `: Z8 `) ]6 |
m_nRemainGP = 118;. {8 r% t& y+ M4 j; H/ D- N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 Q7 v8 e9 N+ }8 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 e" B& N! {* X$ p: B }
7 N% P. V, d( \. i4 Q1 V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 \$ z/ j' W- K. V+ {1 A5 m, Z
{% D/ M! @# c: s# D
CItemElem itemelem;) t8 \1 B$ U( s/ Y$ d# ?2 D! S
itemelem.m_nItemNum = 1;
' V+ E& }/ b4 i& b- u itemelem.m_bCharged = TRUE;# ]: p/ l3 l3 L. |, R! i I
BYTE nID;1 t; b" D. g; r, c0 L+ b2 z& O, {
1 t. z& `3 d4 E+ R; ` if( nJob == JOB_MENTALIST_HERO )+ J; }" I4 l! u/ |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! j8 c) {8 G7 ^6 J3 p7 ?! C$ {
if( nJob == JOB_FORCEMASTER_HERO )3 i0 V+ w9 ^( g' t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; r9 \- F/ C, b2 l* L
: u4 ?: q9 a }3 F
( ( CUser*)this)->CreateItem( &itemelem, &nID );! e' a" q( x' L6 f
}* p Y+ g! J5 P& W3 e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: i" f& z1 ]$ i# L( X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& p- x: [ V& m% H2 X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 `2 B/ F4 g; k! p9 k0 ^, @ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' c2 b4 Y% p+ l/ |! Q* j$ ] ( (CUser*)this )->AddTaskBar();*/9 e2 [6 D- R# W/ {3 Q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, _- F7 f, M( x. X$ I5 l3 Z, \( G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. P! S5 d2 l7 w2 {* C% M U ((CUser*)this)->CheckHonorStat();
: ?5 z1 w: E6 K, B$ k ((CUser*)this)->AddHonorListAck();
_2 b2 g; O; m* B! s g_UserMng.AddHonorTitleChange( this, m_nHonor);
; l* m3 J: q2 c#endif // __HONORABLE_TITLE // ′Tà?( E8 d& W' A0 G$ e9 C
}
% m# d# J: L% e% S#endif // __WORLDSERVER
1 Z+ B7 _. v9 B% n" |2 t}
7 S( I/ G, [& {. W
9 N9 t0 ^7 W( q然后你进入functextcmd.cpp并添加以下, r& O& r3 t* E( Z, a/ O7 f* g
+ _- p4 c- A: ]' \1 R; [% U代码:' x# ^3 p) C% N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 _7 K5 u' j% I5 ^# t2 Z/ F
下面插入: P6 j! Y& u% m+ ^5 |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& a7 P# V6 x& T( D) h( _& v0 L0 T/ v- {5 l8 S, C$ P
然后你去
8 R6 j$ K4 |- p. t2 N
& I, w9 t' I8 f& x0 H代码:
5 A! k( L! z& }& A2 }代码
# n: g; w$ S f" A% l- J- qBOOL TextCmd_ClearPropose( CScanner & s )3 r+ G5 A4 y$ k G% Y$ W' _7 ~
{* I; ] v( l. R9 w( p1 y
#ifdef __WORLDSERVER& c( S2 k2 y. ~( p
CUser* pUser = (CUser*)s.dwValue;4 Z1 a2 j9 x# f% T6 u# t; R T! ^2 t
g_dpDBClient.SendClearPropose();
" ]1 H8 o" c/ y#endif // __WORLDSERVER
' H4 t* L3 d9 _% A* y0 l7 x$ R return TRUE;
% S5 F- \) v+ I! _- j, k c6 Z}' Y" M" m2 K3 f3 j2 F% o R% _
下面插入7 @# m; {8 C( ]4 F! f1 S
BOOL TextCmd_rebirth( CScanner& scanner )
: S, K5 a7 e: \! _7 f4 v{# t9 Y; }5 P8 _& r3 c* r3 z
#ifdef __WORLDSERVER9 u. x0 o& R' J5 c! E- R
CUser *pUser;
# ^4 ?7 ^. ]3 Y R3 KpUser = (CUser*)scanner.dwValue;- l7 X/ X& @' M! z6 R2 |1 B; ?; A+ a
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% w$ n. Z4 x+ l, k$ ppUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% a/ u0 A, V" v0 t& j; `2 z1 \else- ^' u1 y+ [& c2 e) {& S$ d
pUser->AddText("你还未达到重生条件!");
2 q% O. }& z8 M8 y; f#endif. I) o% ]( G J9 H9 _
return TRUE;2 S% J0 M' h5 c! _! @
}
. k! J# t5 D' G# m; J& K9 N7 p( v9 q
. H0 K" y) h0 G) }1 Y* ^) c( q: g5 j! W; d% B
. F; f0 A* |: ], C3 y
|
|