|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ \3 I( D! w9 H: c8 |8 t4 W6 @1 ~/ |3 A4 U9 q% s/ h
Mover.h- g# w+ A" p }+ b6 I3 S, C# K0 P
代码:8 E$ ?6 _6 u! d% r7 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 S7 z' O2 Y2 K& `- Z
; m# t' ]8 q% r, @$ A, X- \5 Y& m5 J
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& U8 W$ r/ K5 q7 z9 f# j
3 E8 u4 A* u) d5 P& ^+ g" `9 _然后你去mover.cpp添加" ?/ o3 Q2 D" a2 N# t
& e9 J5 _9 j5 e8 Z1 W$ b+ ]代码:7 j1 }0 i& D( \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# @1 O K, `/ ]1 Z {. C{6 l* O3 A( v, y
#ifdef __WORLDSERVER- I" q6 o5 F N6 z8 S4 a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 B' d# r! y' X, y \1 V) ? MoverProp* pProp = GetProp();6 P0 `1 l" N/ @0 o5 f4 o1 v, D
if( pProp ). A R- f% u! x1 _' j; P
{4 A7 f: X4 V, z- ~7 f4 ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* p( i$ S5 G' a1 u. P1 R$ P
{" a) K; R O' z( J J
AddChangeJob( nJob );# c/ c4 t" k6 S; s D) ~% v% O
}else{, h( \2 K2 H) e' j
return;
- j. e4 D, ~- j6 ^* a }) i7 }1 |2 \& o- N$ \) a4 D" t% }
int nPoint = 0;, J- a1 l9 c1 ?$ K
if( m_nJob == JOB_MERCENARY )
E" R$ J- E2 ~" ^4 F nPoint += 40;1 z% \* ?' J r7 o$ ]. H: n4 Z; i( l
else if( m_nJob == JOB_ACROBAT )
/ w/ F* Z* ?$ d% W# I1 K" p0 e, b nPoint += 50;4 t! a1 K3 I0 k
else if( m_nJob == JOB_ASSIST )4 b ~* \$ D8 u8 T! o5 v
nPoint += 60;& v1 ]% S3 B- \ L& \9 x
else if( m_nJob == JOB_MAGICIAN )
. x3 S }4 t) ~- K$ j! f7 j nPoint += 90;! a& L# U4 I. p/ p }. I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): v# O( b: a% u( }8 k! ]/ ^
nPoint += 120;
* [5 z3 {7 L* ?7 K4 J( S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ f! e: H; w, E9 P
nPoint += 150;2 {1 T) E' J9 h* x
else if( m_nJob == JOB_RINGMASTER )# W1 b! P: H" c9 p! A( ^
nPoint += 160;
$ R3 H6 k4 e. Q' d6 n. ^: r) } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ I5 x/ S' p+ P; }
nPoint += 180;
% Y/ Y/ y! {: H; i' y else if( m_nJob == JOB_ELEMENTOR )
F5 a: c9 O' A& N nPoint += 390;4 ~( b2 q9 K% T# Q9 |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' d& a& _0 W1 G4 G nPoint += 120;* `, q! _$ \6 H! u/ e& Q, ]1 U/ f) W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ W" m( d0 s5 Q p% L | nPoint += 150;0 L# i, H# e) s. I. r V# y; X& n
else if( nJob == JOB_FLORIST_HERO )
! T$ T; g+ x4 R. y3 p- F nPoint += 160; }; z* a, S( E6 o/ p) c7 @6 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): u: _* p8 K( y. S- n
nPoint += 180;
) Y u. S( a$ S else if( nJob == JOB_ELEMENTORLORD_HERO )
3 K# x3 {( o! ~) P5 X nPoint += 390;
( l( g$ R/ T w7 h6 _5 m3 N
" f# _" {/ f7 i. p* z' u, H) f AddSkillPoint( nPoint );3 G4 y6 r2 w3 i2 q
m_nLevel = nLevel;7 w5 M( H8 `# Q2 ^+ f- b) z$ g) D
2 s: S8 r9 {! c( \" e
SetJobLevel( nLevel, nJob );
' ]9 T9 x% K6 Q+ x m_nDeathLevel = nLevel;
0 }* G7 D' I+ \* H: n7 B8 ~; M#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ T m+ ]9 d) y$ d6 E: F9 J- _
if(IsMaster())6 I- K% a- m+ r8 V
{+ _* r* V; p! U$ B1 \9 k/ `4 A7 V/ T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, `, f* |1 k. X# h d+ j U1 ~ if( nLevel > 59 && nLevel < 72 )
" s* x/ x9 A7 O" O dwTmpSkLevel = 1;
# G; M* P* f, z else if( nLevel > 71 && nLevel < 84 )
& { V6 b7 m, J' W dwTmpSkLevel = 2;
7 s) D; e, f% ?1 k3 B else if( nLevel > 83 && nLevel < 96 )
) G( E# h* {& g; C, p( ] dwTmpSkLevel = 3;0 m1 T6 ? N; G/ v5 S- n$ c0 w3 X$ V
else if( nLevel > 95 && nLevel < 108 ), A8 I5 b7 \+ h% Z! ?. Y
dwTmpSkLevel = 4;& o3 |" z+ B+ |2 M4 q- ^3 v
else if( nLevel > 107 && nLevel < 120 )
# l' s, v7 x# T% G0 t4 T5 B1 ` dwTmpSkLevel = 5;
0 W5 w, n5 w, t- W. h for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; B/ Q9 {( G! u/ e; Y2 f
{ $ Q D" B) G2 X% r
LPSKILL lpSkill = &(m_aJobSkill);; c, K. E$ }7 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 A- O$ [" D1 {6 G8 l( p2 v1 d { o- a2 K. }! }, \! {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 {$ s; Q3 d/ }" N7 W* x$ \
if( pSkillProp == NULL )3 k" F0 ~3 }, `$ q8 x1 y
continue;7 n5 ^! e6 A/ Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 h# S& m/ ]' C- U+ v: i
continue;
- L5 l$ f3 n* f( o* c. S1 H lpSkill->dwLevel = dwTmpSkLevel;( K' i) Q8 d+ b R8 P; P+ Q
}
. ^3 U- l) L5 _3 {6 e( U }1 P6 O2 h$ T' l6 |4 r
}: g6 @( _* Y m6 i4 ?. C
else if(IsHero())
& o5 i) r& o8 C% g {: I% v; x6 S- U* V9 e( X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 S$ K) \9 S* [3 ^( b
{ 5 i* s! g( w+ a6 R
LPSKILL lpSkill = &(m_aJobSkill);5 g4 B( P- n4 ?, W( `3 Q' z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ i# f& L2 _( G3 i9 w* r {- B- `3 n' B# ?1 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 @0 n" j: X& X K7 q2 N if( pSkillProp == NULL )
" r- [3 O' S9 @ continue;
3 s6 l' y8 B1 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: i$ n- T8 L- _: l continue;" E# ?3 m) K7 p. c r0 T; t
lpSkill->dwLevel = 5;
$ W) G4 b0 ]. ~' L2 ]+ ? }
6 ]6 \0 ^4 O7 W( \$ ?5 R }
@' I9 l" H. i9 Z }
' A0 i& T; V0 x+ p0 r8 \ else if(IsLegendHero())2 h9 B: a( @0 W& G e' j
{
! u0 _ z, a: p5 ~* M- D! ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 k& h' c( _+ X6 f l: c
{
) u0 ~. {) m1 w- L LPSKILL lpSkill = &(m_aJobSkill);
' ^$ U7 p7 v& X4 ~/ q) C if( lpSkill && lpSkill->dwSkill != NULL_ID )3 u2 b) ]0 @# Y& S; l# E, K
{0 K* x; `9 R. l* Q2 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 E2 G* W) F8 L: t) l. ?& w
if( pSkillProp == NULL )7 j( k6 H. T; l$ F2 `; h! K3 s
continue;9 A% n2 f' k4 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" P4 w% i" P# m3 U5 |9 U4 C* J
continue;
( ]+ C! z" ` s5 ]: | lpSkill->dwLevel = 5;
# n# ?' u' q+ |4 C, R }
r( e) m+ w+ P9 `6 h+ F& L, f }$ j5 i4 d) g* i E
}2 g+ k: G: _* F6 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 j& N" o' ?0 y5 K0 Z5 | if( bGamma )
5 I- c/ O9 b( ~( x7 V. ^- W1 \ {3 a* q2 }4 u! t
m_nExp1 = 0;
8 W7 Y4 _5 ?7 i; t) N& i }
- Y* n. A3 o/ K7 t# m
% ?* ?! m" a. T% ? ( (CUser*)this )->AddSetChangeJob( nJob );
% E7 x" n% b. e, F4 ^; U( g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: u) @) r/ R' T& Y% ?+ Z
Z# g2 b* N/ d5 Y
/ B; R3 y, z$ L& ]#if __VER >= 11 // __SYS_PLAYER_DATA+ s& t3 r& n* ^7 j1 |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 t* k4 K, o+ U" v9 l
#else // __SYS_PLAYER_DATA" i# l0 [; V0 u( n0 s. P/ C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# W' o1 g" P; z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 }' d3 S# m7 {1 l9 S' M | if( m_idGuild != 0 )0 G8 E/ D; y. {+ v3 T+ t' [
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ C L, w% b$ T0 ~0 T# ?- O#endif // __SYS_PLAYER_DATA
# [8 U7 P& `) F SetHitPoint( GetMaxHitPoint() );
! y9 p, z6 ^% \) V# ?( z) e SetManaPoint( GetMaxManaPoint() );; a% g4 \: ^9 _! A' A6 e9 L
SetFatiguePoint( GetMaxFatiguePoint() );1 A' i9 L8 R; K' W7 U6 A- B7 H
if( nJob >= 1 && nJob <= 4 )+ a7 c( r4 o* D
{
0 B# U" N5 g) P$ A0 P m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 h4 ?' K( B" ? n# J% l0 e! Z4 r8 P m_nRemainGP = 28;: V7 v1 Q% i3 C
}" P4 f7 ~# G. o9 T/ F, o) j j- ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 n+ K, ~# U3 d% U4 i
{; @* g* R/ ?$ a! s" c9 b8 P
m_nRemainGP = 118;
2 Y: b8 S5 r( A2 A* g7 N //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 n* @, P6 ?8 p, R m_nStr = m_nSta = m_nDex = m_nInt = 15;3 w- z5 h) u3 C& j7 C. t7 I. y; W
}" K- U! Q: J1 `( U% s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 Z" z4 i2 D1 T
{
/ a' k/ a2 v6 z CItemElem itemelem;
; T+ F9 a9 Y' K0 V itemelem.m_nItemNum = 1;
" b; P2 x9 E% p0 g# v" B itemelem.m_bCharged = TRUE;! _, h7 G) `1 i& ]/ ]* g
BYTE nID;
7 i' O2 ]( a6 K. z$ p4 a, ^/ m5 F: I$ k+ B6 v
if( nJob == JOB_MENTALIST_HERO )2 [' J3 C/ ?! r, v N4 f) Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 Q; B4 X' t0 E& G: J
if( nJob == JOB_FORCEMASTER_HERO )2 \/ @& b& ~/ y: L' P! L0 \' I: N& N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ L$ |. ~. ]4 }* O6 V, R% ]. a
9 l- X% h1 O! F8 Z. `, z& u ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 ?5 h5 P Y: T/ C7 ^ }
* I4 q( f- R! O; K g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 F7 _) i2 G# _- S, ~ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 k0 s- h6 {! O1 V ]! J* a
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: f( y- J/ t- w1 z) o$ D o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ J3 }2 B2 @/ G. p! f: B* S
( (CUser*)this )->AddTaskBar();*/
9 ~: w% \8 I; _* ^- P2 s ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ k8 A% b5 N+ F% L4 {4 _' `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' J5 E, S1 G1 g- y( |" f8 [ ((CUser*)this)->CheckHonorStat();% p7 M+ ^0 b3 u K3 B
((CUser*)this)->AddHonorListAck();
) `% n/ z; }& W g_UserMng.AddHonorTitleChange( this, m_nHonor);
( Q ? |8 @% f' r. l#endif // __HONORABLE_TITLE // ′Tà?
6 s, t y, W6 Q' S& v* d/ P }
' J i2 X: N/ i$ c( ]5 z! ]#endif // __WORLDSERVER
. S, T- J6 c. r} : y' f2 ^! z6 c6 k R7 Y
# M8 N3 |6 Y% D% w! u& Z然后你进入functextcmd.cpp并添加以下/ ?+ O. G5 ?8 g6 m) l' V* Y% q
6 { t9 Q9 s. c/ T U1 q代码:2 j$ G9 a( o1 V' B7 v& u
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) u# w- A( B" v6 ]) L7 Z
下面插入7 z2 D& c; R! ]7 w' ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 Y: Y- p# g, M% ^4 c2 U7 |7 D' L
然后你去' X6 e1 G6 Q/ d
/ q* A8 }2 W4 A% v1 N1 s2 ]( m代码:
* `* l4 k" E, ^: J代码
* y5 t1 j7 _2 L/ ]: P$ b7 FBOOL TextCmd_ClearPropose( CScanner & s )
2 Y- ?0 X b8 @( R' u7 M) f) E{
5 F6 d" u, P% `: m1 w! S#ifdef __WORLDSERVER
Z- J8 a: e0 ?! @, m' U8 Y CUser* pUser = (CUser*)s.dwValue;1 ~, J1 x3 o6 W1 m
g_dpDBClient.SendClearPropose(); O4 Z# J' Y/ q1 `* {
#endif // __WORLDSERVER
. @- S8 `3 [$ W( k5 P return TRUE;
4 P3 {- Q7 |9 |}( \/ c V, i4 U) r# F5 Q- R5 a0 Q
下面插入, B" B' m; w. D
BOOL TextCmd_rebirth( CScanner& scanner )
& ?: V" u8 Z0 `* M! E3 x$ U2 {{3 F% Y0 [1 f0 a. b( C, V8 q
#ifdef __WORLDSERVER
0 F0 ^" b( F5 s" h* I6 nCUser *pUser;! V1 P' F+ y" Y1 [
pUser = (CUser*)scanner.dwValue;
' Q% T/ ?1 f2 O3 z) Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
Y6 I/ e2 |* Z1 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) S( p" s0 C3 L( z* b
else
) c' W z$ t, ^( GpUser->AddText("你还未达到重生条件!");
" N) H9 [) B5 F( N2 {6 o' |, z/ `#endif7 J! `( D. g) L- X. m9 m. I! U) P# X( O
return TRUE;* X0 h- b# f2 e# R! _$ s
}
# f/ z) b4 V8 i' A6 j; m
$ e4 U, y6 z" K6 a
- t o6 I4 u( E5 h- ~. @
3 [$ \, v0 u3 ~9 ~0 C9 T" N
" g% v& A* B. `, ?0 I1 {! w |
|