|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' _* n s+ X+ D$ X, H
1 c; c Z- R" D4 d2 O! X# F
Mover.h
" D* W+ x* n$ ~代码:
8 [! I h: j6 N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 C" A( g! H2 T( D7 s
0 | T$ W7 _: o; o9 e9 ^
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 Q* Y* Z1 w, S: T& r) i
( F6 r8 A5 F3 R3 z5 Z然后你去mover.cpp添加
5 L. C3 r0 w: _8 P
6 B0 _& ^- W: R9 l8 g代码:4 @- D. J9 @( C) |1 a: g. s4 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) w7 M2 \7 n4 _+ e. d
{
L' p4 P7 j- o7 y3 s3 D#ifdef __WORLDSERVER7 |' a B* Q+ G0 n
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 ~5 `' J5 h2 P MoverProp* pProp = GetProp();8 A! c6 Q w: F6 D3 M0 w7 g
if( pProp )
4 s- y* r* K$ ?. | r3 E {" N5 A9 s$ U$ I4 ]4 a
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: ?7 U7 d2 v9 ]8 Q4 a; R {8 a7 n# @: l! z. n5 ?
AddChangeJob( nJob );% r; f t5 J8 D' j- K Y
}else{
5 ~$ `; `. g8 z0 q% G9 M3 k2 n% s7 ] return;
, j% D7 ~, ~, n$ N* @ }
[7 t- r2 I. A int nPoint = 0;
$ s0 P9 `0 E" y; e if( m_nJob == JOB_MERCENARY )
2 e z2 r" N6 C. S. }+ @+ [ nPoint += 40;
" p" @% T5 g% j+ i, Z5 z else if( m_nJob == JOB_ACROBAT )9 h& D, |* M, K) D% S; ?2 P
nPoint += 50;% {/ d* ~6 R8 c
else if( m_nJob == JOB_ASSIST )
G- i, O+ T$ f9 S" d: k nPoint += 60;; O! ]/ j8 p1 z H3 I% Q/ X
else if( m_nJob == JOB_MAGICIAN )
) S- H% ~- q) @6 y, o nPoint += 90; l" S+ l* f/ x$ d$ R
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( p2 G7 B/ v2 q$ k
nPoint += 120;
7 s, b6 A, h- V+ h else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); J: J3 Q- c9 ?2 K2 d2 g
nPoint += 150;
4 }) E6 ^; s, Y0 H else if( m_nJob == JOB_RINGMASTER )
$ a- _- c* M+ G9 A7 h* g1 N# L9 l nPoint += 160;
6 F$ @) } z* m2 E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 {" b6 T6 P! F# D6 J/ ?' q# _; K
nPoint += 180;
' r2 ]; x6 l' s& t else if( m_nJob == JOB_ELEMENTOR )
3 H- M/ B# Y3 `# |4 \' w( a nPoint += 390;
9 n; r3 N% l% B6 s! P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 E! M C6 k( f+ R9 p/ }6 } nPoint += 120;
5 s. i" y- u4 F: T5 q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 l- e- u7 K3 K) F
nPoint += 150;9 t2 |1 C, P" U6 w9 H
else if( nJob == JOB_FLORIST_HERO )( V3 \# {' J% T
nPoint += 160;4 P1 D7 I( x3 E- S' S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' U9 W, b( e4 L- h/ h
nPoint += 180;
% Y+ J$ p( w3 _& J: @, N" B else if( nJob == JOB_ELEMENTORLORD_HERO )
% f: l5 Q0 | E% U2 b nPoint += 390;
2 b: Z1 q. W( c7 A; e$ g( J; \0 |2 _; S4 V. V4 O# Q" R! f
AddSkillPoint( nPoint );+ f5 \1 E- z, T* Y5 D
m_nLevel = nLevel;$ U& D5 f$ ^" P4 @9 O" c5 D
6 v$ ]9 X. g% ?7 e
SetJobLevel( nLevel, nJob );9 W' z3 v6 \ H. n& W* B$ c
m_nDeathLevel = nLevel;. ^ L) \* w* P% U b* N6 K% L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" ^2 J1 }/ k& r. ]% U2 r, r if(IsMaster())
4 A; M, _6 r4 F$ y; V' | {6 H/ s. K% L% a" Z5 k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 O3 Y" v `! e2 t N1 c' W
if( nLevel > 59 && nLevel < 72 )& @( w+ q' a, ^- _
dwTmpSkLevel = 1;
6 m; w+ `+ z5 t9 `0 ~# {' j else if( nLevel > 71 && nLevel < 84 )
; A3 ]( g8 A& ] dwTmpSkLevel = 2;
) q0 b& h" [/ K# k, d else if( nLevel > 83 && nLevel < 96 )! Y ^0 ^8 v5 n* u L
dwTmpSkLevel = 3;
3 }2 d. w* F' _" z else if( nLevel > 95 && nLevel < 108 )
9 W. |5 @3 c% R" U& V dwTmpSkLevel = 4;
. M& q' z8 V! l' [- y else if( nLevel > 107 && nLevel < 120 )
/ {) W0 ?7 W, ]# }; Q. M dwTmpSkLevel = 5;, U( f. J4 Y- D, [$ j1 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 k3 _) i J$ E2 n {
, q& L3 F$ `( Y- Q: j: F, J LPSKILL lpSkill = &(m_aJobSkill);
. j* D( m& e. `( | if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 k+ D7 q5 f; R* I- a% G) {5 s( M Q' x {
. @ C4 C) s4 A s# \( S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 C+ F5 r; l5 E+ ~ if( pSkillProp == NULL )/ h- }2 Y, A' r% A# S2 g
continue;2 l. J" m- S5 S, _2 \1 f: O5 @7 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" d8 A0 w9 M5 ~( n% Y: q continue;
$ W6 | {7 ?- P* H1 R lpSkill->dwLevel = dwTmpSkLevel;
6 b q5 N* E* k# d( d# K, X& c9 } }7 f& ~! a6 E R9 R/ i! d( J
}
5 ]$ j6 {+ S! T6 V6 R& { }8 z# g, _: l. m6 O$ v
else if(IsHero())
1 j# t; p# `0 {! H5 q. y {
( ]# ?% u5 P1 ~$ q- D5 y4 L for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) J n% p" ?; ?) _; I; j# E' |5 N5 q
{
( h: I5 q F4 s; Y LPSKILL lpSkill = &(m_aJobSkill);
7 x- I: e8 F* K; \' n if( lpSkill && lpSkill->dwSkill != NULL_ID )' [ _# z0 i8 n
{
/ t! y; f( [5 L" Y/ P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 W$ J# u( d5 Z/ T
if( pSkillProp == NULL )# b: m! w" c4 w' O
continue;, L4 h5 c1 o9 y+ f. a5 G6 r! G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% G" p# e/ w: @
continue;
6 y( A7 [. ]) W" o) _ lpSkill->dwLevel = 5;! [7 d2 y k) b; Z
}8 u2 k3 ~: U; F3 g3 P/ ^
}
; G' S w$ `" f }$ ` X7 w+ K2 z4 A
else if(IsLegendHero())3 d4 S2 g* [( G A/ h( h! _) X2 ~
{
* @& @% C# z+ T* p" ^7 | for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ P. R l# [, r5 V8 L { & D: c2 D7 y- B8 g
LPSKILL lpSkill = &(m_aJobSkill);7 z6 C% L3 e0 n! ^* A+ |; y3 W/ |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 E2 K3 v4 d7 X7 B* B6 T {+ h% ^; z+ q, S+ F- a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 M) B1 p% }, |8 S, o7 }* B) `
if( pSkillProp == NULL )2 g% ]9 f6 m( E S
continue;) ?; g9 C& G4 m7 K$ f+ ^7 }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" F% ]3 e% H3 A. Z: Y. o' e+ H
continue;
( p& l J# l& t$ i ^: t lpSkill->dwLevel = 5;
9 I6 B y3 Z# S } A9 d' N% M6 j7 h( U
}8 B2 k4 ?; A: l% X& p
}2 z- h- P, k% }1 y: V3 O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# l& j3 @" k3 T& A5 r if( bGamma )- D' E8 k6 D# @6 D) o2 R
{) L6 H" c! W: p6 ?5 h( o
m_nExp1 = 0;8 T" P% b K: O5 s
}
2 V. o/ c- `& q( _6 Y! M: W, T9 M& w+ o' s3 m5 W9 J
( (CUser*)this )->AddSetChangeJob( nJob );! i, E- x0 x' O+ l- s7 V( b
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ Y% m- @4 R" m5 ~8 ]
" H- Q: A8 o4 V U
! C: Q6 W& X: y3 j6 W#if __VER >= 11 // __SYS_PLAYER_DATA" |/ p! z, _' x" Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 q9 n$ W t& K) \$ p
#else // __SYS_PLAYER_DATA
6 _) v: N/ e! b& o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 x# R! D' Z0 V/ ^) j6 C" f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* p- X; i; L* `6 Y2 e/ N3 C if( m_idGuild != 0 )7 G& K* S8 ^+ Y8 [; p5 e
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& F' N! O: }$ E#endif // __SYS_PLAYER_DATA
9 I, g0 O9 }' l3 S q8 ?/ |+ P SetHitPoint( GetMaxHitPoint() );) R3 y6 z/ r- I$ t9 h' r0 G
SetManaPoint( GetMaxManaPoint() );+ f( ?( h- i/ _/ u/ |* R0 E e
SetFatiguePoint( GetMaxFatiguePoint() );$ \9 G" a: y. x! v; d3 {
if( nJob >= 1 && nJob <= 4 )
; e9 `; A) V" X D- m/ ~ {
3 q* s+ b$ N, \- t m_nStr = m_nSta = m_nDex = m_nInt = 15;
* c4 o( `0 V7 a! D& ] m_nRemainGP = 28;5 X9 Y5 ~ E- U" j. x& Q
}
6 O6 x8 }9 l. V' H! @0 v0 v if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' d# [) W' h" f( a' {5 ~
{ N, E+ _- C! w/ s; c
m_nRemainGP = 118;
2 K, A+ h9 ?# ^5 U8 F( | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, o$ p2 u- Y4 o$ r* k% Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;# [3 v! Y# H2 q2 K" ^
}
5 e# Z9 G# t+ x; `" \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" w' k3 {9 a" m' x; T$ A
{3 L- V9 X3 ~, G/ ~$ V/ V0 k
CItemElem itemelem;& f+ Y6 F+ G: V, X/ w$ D+ _9 ~7 o
itemelem.m_nItemNum = 1;
+ w. r" e; n4 U) d itemelem.m_bCharged = TRUE;
1 s }; g* B6 {& { BYTE nID;. A. d6 b. f) }: y0 Y# @. T
( N r/ \" z j# P/ S' R if( nJob == JOB_MENTALIST_HERO )# r! T# L( }: i; n# |) l- ?) q* G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 n: P' Z% y2 I4 l
if( nJob == JOB_FORCEMASTER_HERO )
* _/ |3 { M* r" T2 N4 o itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; `* ~. j5 `' n3 t, k4 R
, J& F+ @9 e# y7 i ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 {! I5 Y- S! e# `
}1 [8 s* g, X$ v& j: s3 M
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: V/ K, ?5 H5 W; C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 p- C) [5 A6 o }& m1 D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, m" h" e& W6 v" r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. h X N8 b* f: {
( (CUser*)this )->AddTaskBar();*/
! H6 ~4 d) {. Q* p5 a4 u j g8 z9 j ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% h& n. `1 O- X- Y2 `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- g* I2 p6 Y, J9 B W# E% }( h
((CUser*)this)->CheckHonorStat();
1 w, `7 C, M* W; r3 E ((CUser*)this)->AddHonorListAck();
+ v. p3 ]3 J' `! T% @ g_UserMng.AddHonorTitleChange( this, m_nHonor);4 F2 S* t9 `& A9 J( a! \' C
#endif // __HONORABLE_TITLE // ′Tà?! j; ?5 P q& A/ D
}: P7 q" R4 I, C$ c: [6 D7 Q, I
#endif // __WORLDSERVER. v( u7 `- X, ~* l( t3 U% E$ N
} ) F `* m. U5 O8 k
4 X& ^3 X& P8 O) |然后你进入functextcmd.cpp并添加以下8 l% R4 x2 X. a5 V, B: P! B9 s5 h4 [" [
, W# H; T1 x8 J/ |( o& v' U
代码:% }4 r- x6 [9 u: e5 C0 R; K& E7 _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 f K9 `$ }! k5 u4 q4 ^
下面插入& N$ r+ i# G4 i4 a4 k2 K9 _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 d2 [! w2 t! e& G2 X
5 m+ D& j8 z0 s2 b6 a然后你去
7 ]: H) j7 N# t+ p6 z. ~
' ?' S( q2 n( o1 i- W" z代码:
0 i* `% w$ n1 l- y代码
4 f$ ~5 F4 V9 vBOOL TextCmd_ClearPropose( CScanner & s )
' S6 O' e+ n, @7 ]! H{2 v) S' K+ [6 u! D, J
#ifdef __WORLDSERVER2 T# f a# C! ~6 j g
CUser* pUser = (CUser*)s.dwValue;% J; X' Z+ l2 b( g' z
g_dpDBClient.SendClearPropose();9 t2 C+ V( p8 [! \( b# ^
#endif // __WORLDSERVER
; Y# \# w. R3 B0 j' Y return TRUE;3 ?; ^8 l$ v* L* d7 S/ ?
}5 e# ?: r0 S6 j+ J+ M- n
下面插入8 H$ d( \' X( a8 c+ Y
BOOL TextCmd_rebirth( CScanner& scanner )
9 i, }( p$ W2 g4 `; _# I5 i6 ^7 V{- @4 D7 D( Z" O0 t1 r" n
#ifdef __WORLDSERVER
) }! `. t& K% K$ gCUser *pUser;0 u/ K. ]7 ?* I D7 |* D8 C
pUser = (CUser*)scanner.dwValue;
7 b: B$ L3 g+ \! Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 r6 X7 F( M; \: a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 j) b% K# p1 relse
6 W" v3 R s) p0 ~. dpUser->AddText("你还未达到重生条件!");
5 D! L t/ y: Z/ L#endif: D. O7 S0 F1 ~+ }# M; I* f6 _0 ?
return TRUE;0 b& S- k3 `0 ~" O1 n- v
}
3 o8 q& N7 W$ o2 C! s
0 L* x( z- [6 V$ c; P8 ? p+ Z5 _
5 p0 N# ^+ }8 h \/ S# y; O
3 l( F, U! W# a/ a+ \$ O' ^% H |
|