|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 Z" l# [% p8 D5 H" d; w) l# [; o9 U
Mover.h
/ g5 u- H0 @7 Y* x1 X/ s! ~代码:
$ H8 Z) Z1 a- p, x" |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, u$ |, v Q% m% ] j7 I$ y' L; J) m; U8 E6 e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( v2 Q. f& y) I U
& ^ T- I; x1 Y h( Z然后你去mover.cpp添加* L4 p4 B X+ a8 z4 D1 x3 \% j
$ T3 }9 Z2 W6 P- _0 s- C8 b( u% _代码:5 h1 u; \( l% b9 J& N ^+ ]. b7 V* ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ X, S7 Q8 v4 {6 v0 G9 X
{
9 U7 W5 `* T) ~0 y6 R' f7 J#ifdef __WORLDSERVER/ [1 k0 B5 W& Z: u
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) i1 T% X0 v( E$ Q G( s+ ~/ N @2 x MoverProp* pProp = GetProp();
% y& u( Q/ d( g( ?1 U if( pProp )
* u! u2 [9 y% v: ]* |, o% C5 ? {
8 S" ?- n6 n3 r9 B+ D if( nJob > 0 && nJob < MAX_LEGEND_HERO )) z6 H6 H" w% p7 J% c6 y
{
; J& \, h, {* M" v& ^: H- s& _9 m AddChangeJob( nJob );
/ X5 k# G) K0 I, s% { }else{
2 H O0 N2 x7 F return;
7 u1 v9 |' r4 j+ {/ I: R+ a }
! k$ c; {( o9 s$ G0 B& \/ n( ~ int nPoint = 0;; r" |2 C A H) [4 a
if( m_nJob == JOB_MERCENARY )
( b# M; A& A, x! ~, X nPoint += 40;! x7 u3 E$ i* W
else if( m_nJob == JOB_ACROBAT )1 g9 {$ J/ e1 x; B
nPoint += 50;: R* x9 w. ^* h& k" e2 d9 W- z" `
else if( m_nJob == JOB_ASSIST )5 @8 k% n1 t" C/ E: {1 t
nPoint += 60;9 N$ ^/ L7 h4 l* j% j2 L: v, c5 N
else if( m_nJob == JOB_MAGICIAN ) [6 M7 H3 Z6 x$ a+ D ~
nPoint += 90;
s9 k6 P6 B( m* l% G M, G8 F7 W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( u# i0 c4 A5 V) W; P. ]- `
nPoint += 120;' o. m/ R& x h! K {7 e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& B l" ]1 H" R' o3 a
nPoint += 150;
, P0 ]2 H! G* c9 g else if( m_nJob == JOB_RINGMASTER ): @3 v% p2 _/ Y' h
nPoint += 160;, x4 |/ q, H, N: j4 @+ E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 g1 O9 `: ~* C; {5 p$ O! e/ h
nPoint += 180;, B% r! z6 Q" r; V% x' k: d
else if( m_nJob == JOB_ELEMENTOR )- H9 W" e' Q9 d9 x3 }
nPoint += 390;2 d( J0 C4 ?8 B+ x# |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
^; C9 O9 H; k* N0 I nPoint += 120;
5 t4 H1 C6 A0 d- n0 @1 f0 H( K6 H0 c else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# M- e9 a- f' y# d9 y
nPoint += 150;+ B1 i% Q) l$ D$ {9 O6 m
else if( nJob == JOB_FLORIST_HERO )- `$ e7 q3 p& m+ b
nPoint += 160;+ p$ f: `, f! j8 j, l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 [3 L7 e4 |0 |/ T" n
nPoint += 180;: h$ s1 p1 C: ]- D2 a6 V
else if( nJob == JOB_ELEMENTORLORD_HERO )
. I; V' Z; p4 B0 @2 G$ r; t( D nPoint += 390;) o% s+ o- A0 ?$ j0 C) B" T
5 W1 |* \) [9 f S" U: I
AddSkillPoint( nPoint );
4 v7 o; j0 g Z1 W3 x3 ]% o m_nLevel = nLevel;5 _) M+ R; {% F4 B0 Q7 V" ?" ^1 q$ D
' g: g4 p; F) L, S SetJobLevel( nLevel, nJob );7 ?( j( \# D, l- z1 i
m_nDeathLevel = nLevel;
6 M" M- H0 c; p! P2 x6 X. T& N1 f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 B+ J' M& _# G) H
if(IsMaster())3 I# g' x0 S/ H6 g$ E5 c8 a
{
A8 V, f( b$ g0 [0 T4 L- t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" K4 u0 P2 A- u5 z if( nLevel > 59 && nLevel < 72 )
" P) f- e% t; P, x dwTmpSkLevel = 1;2 X8 O) x% s. c
else if( nLevel > 71 && nLevel < 84 )" o6 `7 A9 J3 r7 C+ |
dwTmpSkLevel = 2;
4 R" g# p1 ?; r4 C" H5 F else if( nLevel > 83 && nLevel < 96 )6 b- P) l! Z7 F
dwTmpSkLevel = 3;7 b7 q9 P* e4 Z, o& w$ ?8 a
else if( nLevel > 95 && nLevel < 108 )1 O% a' W' T8 q* a2 H: b6 S) z4 ^/ p
dwTmpSkLevel = 4;' P- U$ j, \4 } e
else if( nLevel > 107 && nLevel < 120 )
; H) A& b* O$ G2 { dwTmpSkLevel = 5;% Y% C! v9 S3 A( t- j7 a7 t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; E0 s+ I Z, b8 B2 S( \ {
, Q1 H. R( N1 x& S: S: h LPSKILL lpSkill = &(m_aJobSkill);$ Y8 {8 N0 D# Q; j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 l. D6 V$ z m& t8 l* G& ? {# d; w9 G# ]& C6 A5 J% w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' j! ]: l4 L [# M1 y0 c! M* w if( pSkillProp == NULL )
2 U, t- f4 m: J3 k continue;7 z5 j0 C% y0 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ }0 y1 S0 u3 K. y
continue;
' |8 P6 z! Z& d) N6 g+ | lpSkill->dwLevel = dwTmpSkLevel;8 P- I- F0 D5 A, Q
}
$ G% k2 I& H1 D* m }: a: D/ n; A: U- l9 ]
}
5 T; V4 l2 c, Q, ]7 r* g$ o5 o, n else if(IsHero())2 K' m `% A/ D2 H% e' l) t7 v! Y
{# N3 Q. [% M7 P2 G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& J9 J: n) O/ e { 1 X8 t8 q, W1 O9 }- B3 {
LPSKILL lpSkill = &(m_aJobSkill);
& c1 ]! p; H( _! d if( lpSkill && lpSkill->dwSkill != NULL_ID )5 @: K* e# j. [5 w
{5 u+ b1 r2 f. a( `. E/ u5 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 R1 M0 f% d, X if( pSkillProp == NULL ) l( O8 d. M% ?: Q% p h' b8 \
continue;! Y; k! x7 k5 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' E9 c" V4 K0 r: g
continue;$ w7 P, I6 i, P+ t" }
lpSkill->dwLevel = 5;
. B$ P- F8 U: u }
# q! k% R: T7 Z7 b5 w }! U: r& t# K E) |8 J* Z3 `# U7 Q
}4 z* ?4 N+ W3 [7 G. _
else if(IsLegendHero())
, q7 z3 X, H+ f. H {
6 U/ J6 Y& y0 A( O for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ b, L2 Z9 @# h v2 ^0 J8 t { " `4 J" l, }) G7 s; j, s1 z v
LPSKILL lpSkill = &(m_aJobSkill);" A2 [9 Y: u- F9 Q- p
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 ?1 X2 X3 z4 r
{% M. H2 a3 u2 L0 O1 n; Q$ w- n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / ~ G, f. \6 _2 ]7 \1 V
if( pSkillProp == NULL )* r# z; j( k- U8 B
continue;
% U& C9 O" X, w4 D6 J0 N1 ^3 Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER); x& A8 v8 x( ]. P7 V- s* l' m8 s* J
continue;
0 \& m! S1 j+ ]0 a% G lpSkill->dwLevel = 5;) G6 d1 S- ^8 q
}
0 i" I* k; E$ ^/ B }
* V; x$ x4 h% {* |9 f9 ^/ E, E }; b: T; k' @- A& R
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 M) J( j+ o% `- h) M5 c if( bGamma )# C K* }+ B9 A7 v' q A2 h8 B
{
& }* W' h# P% S$ v m_nExp1 = 0;
- s9 s# h2 u) d4 P9 S9 Q- H6 l }
0 S+ a/ \* q8 d/ D2 B% Z4 [# v1 f
8 z, G% v' Y# l: |3 x8 X7 P ( (CUser*)this )->AddSetChangeJob( nJob ); a6 h, R8 j ?2 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 |" G, e; ]3 u; g8 s
& x# {; r0 S. O9 b* z+ `8 @. `. k! S
9 Y' I9 F+ h8 s#if __VER >= 11 // __SYS_PLAYER_DATA
8 l! J0 J: l* c" G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ H; s, e" }5 @; ?% u
#else // __SYS_PLAYER_DATA
: g3 F" H" a: i g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" Z! A/ O: R/ O# t1 c" a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ j/ R- j+ w) D+ x& h if( m_idGuild != 0 ), }# Q! R& a W7 J: H- F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- h Z) o F7 G; a) x9 T
#endif // __SYS_PLAYER_DATA
, Y' ?0 R3 t' r0 g2 S" ~; { SetHitPoint( GetMaxHitPoint() );( H. e6 c0 S; X+ `+ M
SetManaPoint( GetMaxManaPoint() );) k2 S- W! z1 g/ [0 k* Q
SetFatiguePoint( GetMaxFatiguePoint() );: j7 v9 f& P" E+ i- k
if( nJob >= 1 && nJob <= 4 )* B7 Z! b$ L5 u/ ?9 x0 i1 _
{
0 {4 V. n1 ~3 m9 l' r+ m m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 S6 L4 w2 W# y2 C# i2 l; | m_nRemainGP = 28;! o/ I- q% _1 U& M' w9 f
} p( a9 D6 d8 b# _- |* E4 }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 Y" f. Z+ Q" z6 O4 w7 p3 W: [ {
4 g, {2 N( T- \( f6 K m_nRemainGP = 118;
( D9 I9 n5 `$ S7 y {# x //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! T3 ?7 C& L, |3 m* z$ U8 P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ c( y+ u( k0 ?! Z& { }2 A& C3 E* e: [0 z, W2 c% b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; |& F' i& \ B1 J {
) ?6 g7 X# @3 A& m8 J CItemElem itemelem;6 b3 S9 B$ x0 T* U" }) Y
itemelem.m_nItemNum = 1;5 B, K) y1 h5 {$ f h* Q
itemelem.m_bCharged = TRUE; J) P! |5 \5 Y9 P
BYTE nID;" ~ C/ K5 f& j; W# j* U
8 `$ l3 |* J* V3 X5 n. q
if( nJob == JOB_MENTALIST_HERO )9 c" e6 E- a! x# S6 c' }4 M: n# A% R/ B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: I) P4 B7 `: g, A! \5 Q! _$ w. t
if( nJob == JOB_FORCEMASTER_HERO )$ G! Q9 w2 Y" z( Q/ \& r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ H' ^0 Y" O% k- L2 Y
; x/ v5 M3 g p9 g; D- M ( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ N& Q+ U; C7 v, @$ { }# m# y" x, r" L" q% {/ o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 M0 {& u) c. e5 ^, L8 a7 s3 s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) I Y$ p* ^+ ~# z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, H, G) G0 K6 ]2 p1 A$ @8 y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; v3 S% {( E% j( v1 E, N$ n/ W) T ( (CUser*)this )->AddTaskBar();*/
. C0 l% h7 j U) G+ V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, m3 _2 o5 M( [/ z5 t
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! k0 u* ?$ W- E9 [+ x2 r2 _
((CUser*)this)->CheckHonorStat();% k" P, N8 \1 O! s- [
((CUser*)this)->AddHonorListAck();7 ]- W4 m, l, N# Z5 p5 f" y6 {
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 M$ `" H. S. p* e0 u8 i+ R#endif // __HONORABLE_TITLE // ′Tà?+ C+ E5 ?! M3 O4 S# w
}
/ `1 b& r& O8 R$ t8 y n) ~! Y0 t* ~#endif // __WORLDSERVER4 z& {/ b+ z9 b) ]/ O4 O7 U
}
. c) R0 z- Q9 h) }
3 c* R \/ F8 z. m! ]" W: W然后你进入functextcmd.cpp并添加以下
; C" W( C* @" h9 y6 ~3 x2 u
4 c7 W& g7 b# P7 O/ \代码:" R9 p% z H/ O" X2 T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% z, j8 r' \3 x5 d/ p. [% p7 F下面插入5 B. n; p$ S' a. F, o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
U* \/ u! C9 \, N B( N0 `# s8 z; d) O+ ]
然后你去
5 `7 r) b2 D6 c" q: R- `9 G
c ^& Q8 \& Q4 V k* m8 Q1 y8 f0 L) O代码:
3 x5 \1 M1 j" L/ n代码
; m, h. S% b2 I; ^' _1 r- y' k1 ?BOOL TextCmd_ClearPropose( CScanner & s )
# @- N$ O. y" k, N' E6 |7 L{
( B) |! Z! s8 G& A! O5 D# W5 q+ |& \#ifdef __WORLDSERVER
8 F# u8 \ x1 Q8 w$ c7 C3 F CUser* pUser = (CUser*)s.dwValue;% P L6 [9 ^; b% P* f, G
g_dpDBClient.SendClearPropose();
4 D. q8 G8 R3 M: I+ U* g( U#endif // __WORLDSERVER
/ K- @- E2 ^0 C0 h0 a" G K- a return TRUE;& D# w5 P5 T0 |
}" S. Z- B$ O# W) i( o, Q
下面插入' d" g" G0 C$ w, A* E3 \, B+ p) _' c
BOOL TextCmd_rebirth( CScanner& scanner )
* o; B5 W2 z; M# W$ U{
, W/ A8 P$ a. w1 v8 Q0 t2 G#ifdef __WORLDSERVER& Y Q" o' `( a0 H1 Y
CUser *pUser;9 }* X5 a& I0 `
pUser = (CUser*)scanner.dwValue;$ u) W- R6 d$ A) C' ~: L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 w* E$ n8 d; Y" A+ K" |, xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ U4 r) F, M7 S9 w
else
1 h) L2 m4 q; y8 a3 I: vpUser->AddText("你还未达到重生条件!");
3 ?/ E: ]! T) ?2 j; E4 O4 J#endif6 `- f" _6 m1 f1 S- T
return TRUE;
4 P& `% ]8 g' p. i2 S0 U}
# V$ G4 E, N6 f Y' l( `. A% S# b; P
) |, H3 n& m7 g8 e# s9 J# M3 E9 e' c
- b6 x8 O$ P2 c0 |) U. C$ {2 a0 A0 A; Y# o* ]5 D. U
$ _1 y6 M2 g0 V0 ?* k c5 ] |
|