|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% v$ G i* @) E6 s* |4 r- w5 q$ r* e! o+ C& O3 S; ~
Mover.h
! U8 e2 }, Q, c8 {( A代码:
! M4 D0 R4 j& F找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 O# w) K* i" a8 s: M D J
( }7 g2 d8 p( i0 Y" Q& `. G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 N Z! y" F1 C5 B3 m* Y' A' E
2 C {% K9 d$ {# ?然后你去mover.cpp添加
, f6 x" `& n4 `
) N) u1 |+ [$ e代码:& k) Q$ M/ D. X% [4 z6 v q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) N) o% L: N2 x' y: T{* t9 x6 c& D/ f4 } I
#ifdef __WORLDSERVER
3 C. {5 p, a1 g8 F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó u& O( X& [$ ~5 Z8 {3 ~; V" y6 p4 {
MoverProp* pProp = GetProp();
( U* n4 Q5 v. z2 t6 `8 w+ k1 E if( pProp )7 z% R3 F0 q8 ~; i
{* E$ E% t( d8 ]& i `" \! u# v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- P2 y$ i' ~* @1 q! L8 I5 I/ L
{
/ K1 }3 m; P' K$ _9 R# V* J AddChangeJob( nJob );
4 }+ e* s2 I- F+ F! R4 i }else{
- s+ b! ]0 a6 a0 t: t% c% |! M return;
! S3 j. x+ e) P) E4 A- m }, L" x$ C/ Y+ o: b, e5 m' Z
int nPoint = 0;* Y: |- X* d6 q+ s M7 s$ D! ~# D! Q
if( m_nJob == JOB_MERCENARY )
( w$ J2 b+ x- }1 I nPoint += 40;
. a- @ \2 ~9 R W1 D else if( m_nJob == JOB_ACROBAT )' l* T W# a3 ?
nPoint += 50;
! l4 U# N4 C8 `+ X: y* p- @ else if( m_nJob == JOB_ASSIST )
! V( \ ?0 y9 q$ i' b nPoint += 60;
+ J5 I; c) L; N! M* g; A; f5 \ p else if( m_nJob == JOB_MAGICIAN )4 o- }8 h; Q9 Q0 U, M; F
nPoint += 90;
9 l t5 ?4 h# R+ `: @/ v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). s" b! \ Z" R x
nPoint += 120;: r% Z' }9 G: \9 i$ `( x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 D$ W8 N, \- F k7 J
nPoint += 150;
9 g% v& V- y: E2 y# R else if( m_nJob == JOB_RINGMASTER )$ G# ~' y" W2 u, I- K/ D6 r; M; t
nPoint += 160;9 ?7 p" y) N- D: M* m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ p3 l# m f7 P8 m4 c) I6 z7 t) X
nPoint += 180;
8 g4 N G4 h4 u8 s% V else if( m_nJob == JOB_ELEMENTOR )1 ^5 T) L3 R7 Q: V
nPoint += 390;3 {4 s+ x' \7 f1 @0 w0 H* [; P" {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 D% t0 l: |! u. I nPoint += 120;4 R1 I% a! O+ r8 i) H C* z2 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 r& y; Q% j+ f; p1 D nPoint += 150;
! b: ]) m! o) U+ H8 s6 x+ ? else if( nJob == JOB_FLORIST_HERO )# a; |4 W+ J9 e
nPoint += 160;3 }5 L) ~- ~$ y' b Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). g* u4 r3 s+ l- c% W
nPoint += 180;: E6 a7 V1 m Z1 ^' ?* @
else if( nJob == JOB_ELEMENTORLORD_HERO )* L* R) X) F9 C" ~) x, k
nPoint += 390;
5 H, {1 z! j) m/ w3 ?' m4 W
8 s6 ]+ Q9 y* \/ m' T3 v AddSkillPoint( nPoint );/ V. l `2 Y+ U
m_nLevel = nLevel;
8 H3 q z: l4 w1 ?9 @
* y3 T7 W( k6 y7 `* P SetJobLevel( nLevel, nJob );8 C$ u3 f, B1 K! B
m_nDeathLevel = nLevel;5 u, X; i2 V! p8 u1 O$ f* F5 p7 [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ X3 j1 N1 z7 J
if(IsMaster())
+ Y# p+ |; w9 ~% `' @; g {
5 C. i2 ?2 O' i/ [/ T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; N0 r' U8 {, W+ o J if( nLevel > 59 && nLevel < 72 )5 q2 @2 H6 H& Y7 P
dwTmpSkLevel = 1;4 r5 R* G9 U0 L% N) F; k
else if( nLevel > 71 && nLevel < 84 )
' E7 P$ ~' i2 Z: l/ q8 @/ l. G7 o dwTmpSkLevel = 2;5 T" ?: }6 p& Q
else if( nLevel > 83 && nLevel < 96 )
& ?* p* p( ^6 _, A dwTmpSkLevel = 3;8 G \- B. t0 k8 R Q+ y- Y
else if( nLevel > 95 && nLevel < 108 ), F( O/ E e9 V/ j k
dwTmpSkLevel = 4;( [7 N% J7 g# _. K# o, s
else if( nLevel > 107 && nLevel < 120 )8 L2 v, y6 n3 h
dwTmpSkLevel = 5; E8 `, M: s! B2 Z& B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # N5 o# ]3 P- q1 z4 L/ Q6 b
{ 1 F+ P: L7 `. c/ m, d# H1 A
LPSKILL lpSkill = &(m_aJobSkill);
- Y" l; t" ~- x, B4 J2 A if( lpSkill && lpSkill->dwSkill != NULL_ID )1 X8 q3 [4 P' v6 C/ F% y6 }! M8 j0 @
{
2 p: g# i* u/ D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. }8 K2 f' n* a1 A( F* h' y if( pSkillProp == NULL )
7 I, p/ L0 ?8 t p! k3 ?# g continue;
1 t! I1 f: o! q, ] R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! h$ z! H3 h& o) d7 C, n( g- t continue;# Y& `" f* ?' a. z3 O- Z
lpSkill->dwLevel = dwTmpSkLevel;
" Z0 {$ f; j6 `. l4 _- b( M- g. v* m }8 e" D; O7 `+ l" ^
}: u4 u' ?, F1 c
}# ]- [9 k- E- t, c( h, x: J
else if(IsHero())/ V, y5 l! M9 V& {
{( A8 }' s; k$ N* o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 Q! z$ z2 C7 K8 l; Q3 X3 m! f { * u& A$ B# Z; z" h' M: A! K1 p/ |
LPSKILL lpSkill = &(m_aJobSkill);
2 K6 Q. ]. W* t8 K2 U. k* _ if( lpSkill && lpSkill->dwSkill != NULL_ID )/ f( F3 ?7 b; ]$ m) V9 T
{
8 M# X6 O# K4 q! x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . O7 e' ^% e' t1 t
if( pSkillProp == NULL )2 f) F# E7 [! y. O: m
continue;
$ I/ {- y5 V3 d1 c" b) t9 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 \' M* e4 E6 l4 g! K1 t) M2 i continue;
4 O( [1 l% |1 E7 O( o" D, z1 r# o' J lpSkill->dwLevel = 5;! e8 X) _) ?& e8 e6 f9 [
}5 D6 z- O0 z& y; z3 H1 b
}) U _) E. y# M1 @3 c6 }
}
% g: ?8 s$ q5 U1 e) a) D else if(IsLegendHero())
! X2 O* k' Y3 c {
4 S, R. C7 } l& t! B; D for( int i = 0; i < MAX_SKILL_JOB; i++ )
. _! i5 L) a! L5 B {
& |% Z3 s& m* n, d5 c LPSKILL lpSkill = &(m_aJobSkill);$ K5 d+ I) n$ E1 r; c/ J
if( lpSkill && lpSkill->dwSkill != NULL_ID ), ~2 r- |- Y, M0 C
{
& G6 O8 ]# c/ P) r2 E k1 Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
T6 i. M9 w4 ]* b if( pSkillProp == NULL )1 B# ^; @9 E2 Z W
continue;9 ]/ d/ C5 w7 i$ T) x0 a% R( R3 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' y8 X7 e% H- q% C! I4 F1 G continue;. L+ V9 ?$ L3 \0 G6 C. K
lpSkill->dwLevel = 5;
) @5 k @3 }6 \, N* |9 H* r; [4 {! I }
* t* c& ?1 r. M) Z* I }! }8 ~4 b2 P) h4 A# O
}& |, `" ~2 j" H: S# C" P. @9 Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- _. ?4 o) B4 \9 f0 v2 ~ if( bGamma )
4 F j5 T, _: J3 C0 `2 v {9 o; L4 t# O5 Z3 h' q% d5 y' d
m_nExp1 = 0;- u" D8 S! D( M
}
& X9 T8 g6 B5 _+ ]6 O9 O+ h2 y
1 f8 O% i" J* T0 j r9 } ( (CUser*)this )->AddSetChangeJob( nJob );$ C/ e$ n8 d1 a+ d' T" K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 s. C) W6 h9 J7 \
7 D% v$ c6 A/ `& `9 l% F
( ~- E& Q7 ?; \7 a- X
#if __VER >= 11 // __SYS_PLAYER_DATA3 O7 D! L" `+ y7 @9 o3 A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, e; [/ ?0 X# s
#else // __SYS_PLAYER_DATA
" Q2 i0 K0 x0 B' Q6 U# \: n$ K6 d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% w* Q+ e$ `9 z1 k; [. V( P
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" K: c- _9 {3 X* H6 h; {
if( m_idGuild != 0 )
. m" R5 q0 f$ U: r+ ^% O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 j6 O, u& e, `
#endif // __SYS_PLAYER_DATA: _) f b1 H- S# D6 A. `
SetHitPoint( GetMaxHitPoint() );3 D1 p6 R* u. e7 I
SetManaPoint( GetMaxManaPoint() );
( i3 B! U4 y b% ~# k SetFatiguePoint( GetMaxFatiguePoint() );1 b8 i, O& x- m# ]8 W
if( nJob >= 1 && nJob <= 4 )
0 @- l' \7 u5 j" k {
( D) O& m* \6 B0 f! u1 f# W+ g: B m_nStr = m_nSta = m_nDex = m_nInt = 15;. h. W7 B% _3 Z9 F1 |
m_nRemainGP = 28;9 A$ I+ K& W, q$ A0 o
}
M) ?& k( R& s& V4 ?) w* ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 @: `- c% |, A7 J5 O7 A {
; R) H5 h1 [3 {0 i* u' B+ N m_nRemainGP = 118;& }4 t: S3 I) I: A1 k. m2 b" f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; \7 H8 \7 F4 q* W1 G/ c
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 M2 x, x' J* R: {2 D/ ]
}& h& ~% ^, X5 S1 e2 u" L @# E( n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* J9 Q2 U* x7 G7 { {: h: i1 s- H" R U
CItemElem itemelem;
/ | B- ?# p/ Y" w itemelem.m_nItemNum = 1;
) t; z% S! r* U4 ?/ X9 s, r9 a1 F itemelem.m_bCharged = TRUE;
, ^5 A7 O" r' l+ \/ P6 U8 ^ BYTE nID;
3 G5 k, g: r8 r+ Q" l4 Y5 ~
" Q. _$ J; \- {# C: I5 e if( nJob == JOB_MENTALIST_HERO ), o/ \0 U+ |: F
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ w( E0 ~ U) e6 y1 y4 ^% J6 F if( nJob == JOB_FORCEMASTER_HERO )8 J9 i/ T% P/ x: d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- a- t4 P& p6 I! T" R# K4 h7 y0 c$ m
/ ]; ~8 b; N( R# ]2 z9 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );5 N9 w+ F' E2 }/ o3 }& l+ n
}% I/ b4 i9 S0 |0 t/ G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 ^+ w. b; t6 m2 \- R9 S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ P# `2 |9 N8 l3 G/ e! H) E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: Q( J& C& a' ?) O2 C /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" x7 b9 g+ l' V: c4 n5 c$ H
( (CUser*)this )->AddTaskBar();*/
t1 u# ]/ P3 H- d1 c- Z1 y) }" b0 n8 x3 L ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" a2 p, M$ ?# _: p$ H6 N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 Z2 k' d2 Z8 b/ D
((CUser*)this)->CheckHonorStat();
, H* P3 h9 ^0 I+ I8 z" y% D ((CUser*)this)->AddHonorListAck();1 B6 s+ c$ S) C; J, `& @& i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. e/ O4 S% ~. H3 G/ C ]#endif // __HONORABLE_TITLE // ′Tà?6 a9 S9 @& S% n; L; W
}7 t; G: ~) s" f2 [
#endif // __WORLDSERVER6 Y* E! W0 I1 [- b5 n
} 7 @4 n' z9 k) L6 `2 N( F% ?
5 ]9 @& l" W2 W4 s然后你进入functextcmd.cpp并添加以下
5 h: c0 [/ U. {8 l
" P4 m- W+ x" Y! C6 ?: F @. Z/ P代码:$ r4 P( ~- q0 c+ v# s9 q, a1 }; j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& X# x8 B- T0 k6 o2 U$ `3 r7 D
下面插入: }! w+ C0 ]9 m5 r. ]* I! l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " j( i. i$ p; h9 t
( u* Y1 W6 ^( ^& c3 Y" Z然后你去
& v& o% t8 ^4 _3 R7 {5 L g# H9 c* N( r+ r9 m' Q' B! T
代码:
5 ^5 v) E( ]6 w* Z$ p3 @% x' c* q代码/ R0 T8 U+ F) v
BOOL TextCmd_ClearPropose( CScanner & s )& F# d! `. ?, n* b- T
{; v( g! R- b3 q! ]/ g
#ifdef __WORLDSERVER& s, S1 w+ k" o$ W% D/ I
CUser* pUser = (CUser*)s.dwValue; v) l' X6 g! `( l2 F, ?
g_dpDBClient.SendClearPropose();
% E0 Y; s2 ], b& G0 n#endif // __WORLDSERVER
( K a0 c2 @* u* f% o& G" e return TRUE;
' D$ p. m+ K- x9 M$ V. b}
1 I @, G7 ^# ~9 B5 C- h9 R- V下面插入: e4 L5 v& Q3 _& h5 I, ]
BOOL TextCmd_rebirth( CScanner& scanner )
- j" l# @: y& t, F{ L; Z4 W4 v) j9 ~, Z& x) y
#ifdef __WORLDSERVER
7 k: e) n; f7 V9 BCUser *pUser;
' R1 s# \5 i+ G% d6 e) B8 q6 f/ BpUser = (CUser*)scanner.dwValue;4 L$ q+ q1 \+ f2 Y7 e! l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 s! }# ^0 N8 ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 N* ]2 }1 V" F Felse1 |% V$ J8 L. V7 J, ~, G2 i
pUser->AddText("你还未达到重生条件!");' Y& l% F: v& B" d2 N# r8 y) n0 H
#endif
& F. m1 `! S+ Z( d( o& j/ ?2 B; rreturn TRUE;, Y, G, E4 S* g( J
} : d! u! J" s( }0 `
6 P0 Y* F ?( m8 x: @0 c" O. q2 r b6 U) Y
4 D! C: M. `5 R. t) \, D% C9 T8 }2 ?
* g1 L4 |6 R& f$ `( d& ?. [& m& H$ i |
|