|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! S4 Y1 X- x. c5 J; y% v; e8 P) i
# @9 T/ {! x+ r! ~# v ~
Mover.h: X5 ~: D7 t+ P& u. X3 n
代码:
' B0 @8 Y& X. k" h9 x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, J3 c. V/ u! q# r, Q, J' G, { K
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. C4 ?: T5 t! M: _6 S* b ?+ s: U" q: m; |. Q9 N) @
然后你去mover.cpp添加# k9 P1 m1 f# ^6 r+ [- ^
+ ]7 H$ `, ~) U% A6 ^# A. Z
代码:
6 ~% i0 i5 i# b+ [8 G2 b# @ }3 fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! ~! {9 T1 R8 [/ i5 r
{
& v5 c4 Y' u9 H, W1 `4 j# j#ifdef __WORLDSERVER8 M, u3 P& ]. x: a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 P' c$ V) ^9 y# `) {
MoverProp* pProp = GetProp();
, n6 U6 E' |9 b: y' G$ J) ` if( pProp )* B7 N- H% X) a" p# p$ c
{
( |2 E" y% W5 B if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 R5 `) |% C* w" N1 D
{. J8 N# l: z% h5 E, b9 q
AddChangeJob( nJob );
5 L3 ~8 L3 ~+ S- M- T* Q! h, t }else{
* G+ k- |+ y G$ s* ~& |5 h return;6 ~: O$ m. c# X# A9 k) B! m
}8 I" C" e; t6 m3 }- m. a
int nPoint = 0;. h" b( ~5 J! b3 a
if( m_nJob == JOB_MERCENARY )
: B V( o$ b7 Q. n0 q3 [ v' b nPoint += 40;
( @5 O8 f/ B5 P1 y7 x5 N0 O# W9 J else if( m_nJob == JOB_ACROBAT )
/ O1 s4 R+ F( F( ^; i nPoint += 50;
$ T( w7 k9 b8 ` else if( m_nJob == JOB_ASSIST ) e- W; y3 ?7 r: s h Z
nPoint += 60;8 j/ {' p( P- [
else if( m_nJob == JOB_MAGICIAN )$ ?) V* d5 R* B
nPoint += 90;
' X0 o. s1 l" U" ~' h* Y( M, P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% l8 O- X4 Y( F! v2 [
nPoint += 120;
& m% q' S) h4 n) P" q% t B6 v else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 g' j; b$ c1 q. t# [' a1 H. H1 D nPoint += 150;
% G3 j$ n ^+ t else if( m_nJob == JOB_RINGMASTER )
* C# B- Q2 l+ g" @4 k2 k: l nPoint += 160;
: }2 l+ a0 J% ]6 f else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 o! G$ y4 Z! ?
nPoint += 180;
. a) @. p* C6 x" _5 } else if( m_nJob == JOB_ELEMENTOR )
! X% u$ F/ ^4 M nPoint += 390;
! I- h9 C1 E% w/ q: z, P# S else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 K m& d( M" E+ \4 F: L
nPoint += 120;
+ U+ x$ S2 S+ z/ A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 F% y3 b: X5 c2 s: v nPoint += 150;3 a- Z# r0 r- f) j# [# W2 ~: d
else if( nJob == JOB_FLORIST_HERO )6 @4 P; E- I6 s8 T% W
nPoint += 160;% f( c8 t4 s- g3 k5 g: d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 O9 p, [+ O) G* q1 l nPoint += 180;/ u0 \; R- _3 w* K% T7 D4 k3 h
else if( nJob == JOB_ELEMENTORLORD_HERO )
' Q, S/ _# D8 d nPoint += 390;6 `5 e2 }; `, a9 C, }
9 J* J" E' d' b) b, z$ n
AddSkillPoint( nPoint );
# ^, ?8 ]" A# m9 E m_nLevel = nLevel;
! f, D7 ~" d2 b7 x
0 L9 t2 K$ S0 w. o5 w6 ^0 e5 S0 [ SetJobLevel( nLevel, nJob );# m- T y7 E n( V& u7 X+ J
m_nDeathLevel = nLevel;
) w7 x8 x2 V0 T3 s#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 D( p1 ]" k2 E+ v( _ if(IsMaster())8 p" f) T; |; v; x, G" R. u
{
( m6 g, m- G; W- v4 K int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& }7 a2 F7 q' k: c8 k if( nLevel > 59 && nLevel < 72 )
( V( O; X8 ]8 o9 V" R. I dwTmpSkLevel = 1;
; g* I6 A7 v2 t' e" W& j else if( nLevel > 71 && nLevel < 84 )
# P% Z! Z& h# |* ]' ` dwTmpSkLevel = 2;
1 x3 `( \( s& ^/ c5 V$ [, f else if( nLevel > 83 && nLevel < 96 )
: F, x8 G/ G0 U4 e dwTmpSkLevel = 3;4 b' T+ q/ y' \( l% u' } F
else if( nLevel > 95 && nLevel < 108 )7 A8 {5 s: X# L2 }
dwTmpSkLevel = 4;, Z+ J+ @0 N3 [
else if( nLevel > 107 && nLevel < 120 )* Z9 w1 D! I! |) e2 g+ p* O' j
dwTmpSkLevel = 5;
/ t4 e4 I& y( [) X; v for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 p, R. Y. y" j: q3 I4 d { # M# w3 l) n& g: W W. Z
LPSKILL lpSkill = &(m_aJobSkill);
$ N8 |) _1 n' |7 J6 ]$ A6 p: X if( lpSkill && lpSkill->dwSkill != NULL_ID )
( H2 Y2 f% m+ c. ?- D/ C4 W5 {- g {
Y+ l0 v$ U, A% b3 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 ]; }$ O, V1 c4 W+ n& L) O
if( pSkillProp == NULL )
$ [+ W; E3 \0 J j; T2 S1 y continue;
; o9 B+ D6 ]* B! X% G$ W8 r) @% s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 D2 n$ S+ y+ {' I9 d3 R+ G3 x continue;& q; ]2 Y' V3 L1 u
lpSkill->dwLevel = dwTmpSkLevel;% v, U; F) ?' I S
}
0 V" L9 X8 V+ b5 n }
+ ?/ M% y" z4 ]" @$ F$ `0 F }
# }% {* I3 J) @. [5 T else if(IsHero())# V1 F7 {; N; @7 H$ s1 `
{
0 [* @( [9 c0 y* m for( int i = 0; i < MAX_SKILL_JOB; i++ )
. l, t2 Q3 A: |" e9 m8 Y {
+ r; l& |5 k( U: f* U LPSKILL lpSkill = &(m_aJobSkill);% i, e. x6 ^+ g: N
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 Z4 F/ m7 b [3 y0 U+ P! M
{
5 p3 S4 a, r# `6 h. \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 b5 ?# S8 H5 O0 _, a( y9 a* C4 u" L& C if( pSkillProp == NULL )
1 t0 N% ?7 r- `& U continue;# y1 B% u9 Z( l, X$ P9 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* C: k# X) S9 ?6 P
continue;, x. C+ M7 x( `* Q y
lpSkill->dwLevel = 5;
% O( q o; V8 r7 Q) I! X }
. q4 J! }2 K7 T }
5 a( g8 o+ {4 l! J# O/ U- q" f1 V }# l# A! }! O9 o: c/ h3 x
else if(IsLegendHero())
2 A; S: B2 N! e6 c3 P6 ^ {
/ c' Y" H( q! I! s/ X9 f for( int i = 0; i < MAX_SKILL_JOB; i++ )
P6 x- p1 m. b, y' R5 l0 S { 6 F& I4 o6 V* }: P0 o
LPSKILL lpSkill = &(m_aJobSkill);
" u# I( h% y9 m0 p) A if( lpSkill && lpSkill->dwSkill != NULL_ID )' w' s) k' X6 u( W- c( c: X4 T
{2 R0 N1 ^: u7 B0 h& a7 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 V4 e0 V4 L+ D/ @* M# I6 D
if( pSkillProp == NULL )3 r# C$ ]7 c5 S w$ _7 x0 F# W
continue;: H& [2 d R3 y* L1 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ A0 i( H( z J: }) r
continue;- c% F# V7 D2 L: u0 J: s% e
lpSkill->dwLevel = 5;# c- u3 }' E3 D# F: A, ^( r6 ]' z
}0 m3 K* }! s T: u/ @# z2 r
}
" v* {; M( ^- Y4 v) D }
( A5 G7 H# h# _7 g( s# g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. j6 |# i) y/ T if( bGamma )6 Q4 j( k# w1 R5 W0 B
{" |# A$ U+ N2 v( ~, ]& E% c6 t
m_nExp1 = 0;# O- G/ ` r3 ]3 z& o& x
}5 W ~. d6 B5 \0 Z) Y0 p
/ J- s$ u+ S$ I* f: ?7 N
( (CUser*)this )->AddSetChangeJob( nJob );
. {0 D; Q, N- E4 P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ U8 d0 g3 j( K$ Q! l8 X7 e
7 n8 M- x" U4 i9 m3 _5 ~
* g8 g3 W' n Q/ Y% R/ g4 r! H#if __VER >= 11 // __SYS_PLAYER_DATA
' P' k% g- K8 Z- b1 f% Z, Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" t5 u, C1 h, t0 Q#else // __SYS_PLAYER_DATA F' D" @$ a. o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' _" }) d* f( C% I- i( s+ o3 n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) {3 P5 F% e0 V5 L5 v
if( m_idGuild != 0 )
- j& V4 `2 e; B/ ?$ ]: ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 u v" o- ~8 f) T#endif // __SYS_PLAYER_DATA9 x- `0 Z! c( s( ^
SetHitPoint( GetMaxHitPoint() );" Z: s: @) f6 b* ~/ V8 Y- y
SetManaPoint( GetMaxManaPoint() );
3 H2 m# h X" P2 |! K SetFatiguePoint( GetMaxFatiguePoint() );
" e5 ^- g1 V2 b8 c6 q" m if( nJob >= 1 && nJob <= 4 )
9 u1 H0 }* f4 m {
/ t* W( B# P) O( u$ I7 _. @ m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ ?3 d; H5 {( t! q. q m_nRemainGP = 28;
1 S$ b B( U- C2 `# ?- D }
4 T ?1 r, K6 f3 `, Y0 i. C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 s4 s0 |! y+ e {3 q- C- f# u$ b0 `4 W
m_nRemainGP = 118;. {3 R" h4 s g$ r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 t. n: ]7 b, a4 N1 d+ a0 S7 F# E
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 `3 G7 }' I& Z g4 c# @
}
4 j, ~# L+ ?: |1 r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' Z v. ?. K: k1 ^9 k2 S {6 V. Q3 K6 O. {+ I
CItemElem itemelem;
( U. C5 S. ^" t% R itemelem.m_nItemNum = 1;
. A8 y* }5 v. P6 R' a' \ X itemelem.m_bCharged = TRUE;
) m- ~1 x5 F/ t% a% K, r( r" |8 J BYTE nID;
9 H& C! A: } ]- S4 B+ B" W
: j, Z9 n/ k9 Q2 H if( nJob == JOB_MENTALIST_HERO )
$ N9 S+ T- `2 D0 O% O3 ^ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 U/ Z. r/ l' `! f' c- w
if( nJob == JOB_FORCEMASTER_HERO )
. L! T& J" G& z$ L itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 [& u5 m7 o: X3 @7 Q
. P( b' j4 K8 `2 i2 o
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 g7 m/ }* Y6 p
}
% I7 z# j* Z9 ?- E g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! o6 k8 a+ S! r- q2 I1 ~, L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 g# i& Y3 d* D T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ [% h5 Z X+ o4 T v' @1 t" [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# W) j) {% p; x2 h0 e: A& H) P
( (CUser*)this )->AddTaskBar();*/' |# _" U/ O( F9 e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* M; w% T F- i+ b$ D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* ^) L2 R7 F9 m3 A. p" Z) V ((CUser*)this)->CheckHonorStat();
' [* j- K8 v4 S/ U7 V4 p5 j" g ((CUser*)this)->AddHonorListAck();2 {( |6 \, C/ q/ o$ {
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 v0 d1 U' p# B/ T
#endif // __HONORABLE_TITLE // ′Tà?
7 d/ Y( p5 J8 H }7 Z0 ~* n0 [1 `7 A" Q
#endif // __WORLDSERVER
4 Q" M& {* y( ~% G} # b3 y p7 U7 |6 F. x0 w
& u! R9 w$ m; ~7 F/ S- D
然后你进入functextcmd.cpp并添加以下. S& f0 r2 U7 V) ^$ {
' Y" v ^! B, L6 h. E& v6 Y) p- O* `代码:+ q J8 i4 J: B) K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 y/ `" x3 v2 B8 i+ }6 _6 Y3 u
下面插入; F/ [+ w* p9 i( s. ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & x- b$ ]) ? g2 m/ ^
" p$ S# Y* O' k
然后你去
9 f# c4 H! e4 O+ \
6 j% ~# @" Y- P% d5 V! \1 H- M代码:' W0 H$ D0 X: u; v1 D) o# {
代码& q1 r9 }' L/ ^6 {8 G6 {
BOOL TextCmd_ClearPropose( CScanner & s )3 \( U% a& T+ n) b
{
) M8 g& Q: V0 ^ M& X+ w/ o#ifdef __WORLDSERVER
* i* H D, D$ g: B CUser* pUser = (CUser*)s.dwValue;8 @. k1 `4 X& g
g_dpDBClient.SendClearPropose();3 t c |( }3 q
#endif // __WORLDSERVER/ {/ K1 ]5 q$ U% ~7 L$ g! g0 U! V6 m
return TRUE;& A$ x1 k) b0 |
}7 T6 `9 [. y% l& \) t; H
下面插入% H4 A$ u' B1 n
BOOL TextCmd_rebirth( CScanner& scanner )
8 \$ n9 L+ g/ b1 }{
( f8 V' U* G/ \9 E$ N) A#ifdef __WORLDSERVER
2 B# b& O+ m3 v8 w# X# Y. H4 F4 ^CUser *pUser;. N% G- y5 N5 U" y) o% @7 ^
pUser = (CUser*)scanner.dwValue;+ a6 A* `) |3 v2 ?* k: x
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: R5 l0 \7 Z8 R" B1 Z. GpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 d [3 b( l$ a" |
else8 V, H7 N' t. R+ _* `( o: K
pUser->AddText("你还未达到重生条件!");6 L8 R1 ~0 M, j9 J5 O
#endif( W; ?0 b- U/ {
return TRUE; p) P1 G0 f9 I' y7 g/ h6 _
} 8 a+ P+ h: |' r5 x5 o
* f o" M1 v/ ]. T3 S1 q1 i, n. {
6 Z- f) `8 d3 r* m( f# q# ^+ u8 X
8 g8 E' [$ c. q7 G, j( E8 v$ X3 q- D) T* r% i1 ^$ E& B; \3 E' H+ e7 Y
|
|