|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& O+ E8 \3 i5 \3 g. d( d
$ X0 k, ~ Q6 [: C2 S( f$ a0 GMover.h( t$ @* \9 T7 v: X0 j/ \2 R9 V
代码:7 b0 o/ d$ e5 X7 a& H, ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 c S7 e+ n! [) ]. }- _$ G) E( Z$ r( |: J- {" B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 x+ X9 m' ~- L, K! o( e0 G7 ^2 Q$ `, \5 u o D2 a, M2 l
然后你去mover.cpp添加
' Q: i) W2 j1 u5 |) t& l3 L; M+ Y6 L4 L4 D6 \) m
代码:
8 K* H& p+ f' ]0 B% _: @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% N1 W% v+ R' L% @4 Z{( l6 w) Z2 C9 ?' o! Z, t
#ifdef __WORLDSERVER9 q- A; J8 }" F3 ~6 U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: g! A1 n( ?0 r0 J5 c. C% d
MoverProp* pProp = GetProp();
" b" ~1 G) Y3 y3 I0 P if( pProp )
* J3 M* f" y6 U9 Q w8 c" h o/ F {
9 Z: p) h8 Y6 ~, m! T5 y, Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )" e* o+ _% s4 F4 u- u. N7 B: D/ m
{( H) J5 [( j4 P* Q+ @
AddChangeJob( nJob );
4 q4 N; }+ m: m }else{
/ ^5 L( v; u4 r( V. \ return;
: P3 Z0 s6 g# ?0 m+ ^8 H" m+ p# M }
) e' R9 G% o. q( T4 s) S0 Z Q: b int nPoint = 0;: n" X# Q- [7 J; C4 ?3 c8 |
if( m_nJob == JOB_MERCENARY )
$ D; P, [7 E; U9 T1 N nPoint += 40;
' y( Y5 {) R2 s! I7 Y, o% } else if( m_nJob == JOB_ACROBAT )7 p, T% ]1 w) o) f
nPoint += 50;6 O# Y2 n/ t& D- ] d1 r+ c
else if( m_nJob == JOB_ASSIST )
! X7 T* x( F0 F nPoint += 60;
D7 d4 ~ P* K; { else if( m_nJob == JOB_MAGICIAN )
& S- c) b0 @4 [8 W! V e' v nPoint += 90;( A& X, Y9 a }8 ?5 b. B
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# O+ G0 {6 V& `; \8 Y6 b8 J! s nPoint += 120;
/ E" {5 b# W% h+ I, F8 T4 S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- `: f1 a4 Z& a: U' @6 m" b
nPoint += 150;% U0 x3 g/ y* ?5 c% h& \" ~8 i( u
else if( m_nJob == JOB_RINGMASTER )
3 q8 l9 [# }* L) _+ p, a nPoint += 160;
) T% ^4 f- v! R& k' ? else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 J; |" M& N7 M6 w, C9 u# O
nPoint += 180;2 a# g5 q0 ] `1 I$ A+ Z" i3 v3 X/ k
else if( m_nJob == JOB_ELEMENTOR )
2 W6 H/ X2 Z( u) {9 Q nPoint += 390;( q9 v) V2 \" C( _! S) c, i0 v
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), X( v3 c* p: N; w
nPoint += 120;# A/ _- I; Q7 s, y7 T' @' x
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 i9 ? S( _6 P4 J# ^. p5 J
nPoint += 150;# @ I0 B1 G$ t% E
else if( nJob == JOB_FLORIST_HERO )
) ^* }. o& R4 | nPoint += 160;6 e/ c( p$ j; ?/ ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 N( h$ A/ `9 n. W nPoint += 180;, M+ M4 Y' q$ q) R
else if( nJob == JOB_ELEMENTORLORD_HERO )
) \! p+ C& P* G nPoint += 390;( e' a$ b; \) o/ }' Q8 x- Q
( c0 j1 w, L2 V' }5 H) T2 W; J AddSkillPoint( nPoint );# c5 Q$ P; S% X( i# J% h% p
m_nLevel = nLevel;0 p/ Q. r( K; V/ n6 G) p
7 x: z* N; B! A# x9 ]9 F4 k SetJobLevel( nLevel, nJob );, `1 \8 z2 X' Q9 |* U8 _0 g
m_nDeathLevel = nLevel;- Q: S; h; C* f) v% G0 n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& a# g; H4 t8 ]* C- K% B3 O
if(IsMaster())
- s) |9 V4 V" G: @. `( C {
1 i; z7 Q7 ^ ?) R4 P. P- p int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 Q5 V; V, ^. I/ P7 ^4 u3 Q if( nLevel > 59 && nLevel < 72 )
2 `# z$ j6 ]" v5 M7 ^3 f/ ^ dwTmpSkLevel = 1;
. i4 k2 F0 R! }7 w5 G: c1 `$ \ else if( nLevel > 71 && nLevel < 84 ), ]' e [& B3 ^$ G6 a- n
dwTmpSkLevel = 2;3 ?/ m, G4 U1 j
else if( nLevel > 83 && nLevel < 96 )
% V' {* |0 F7 T: b) q dwTmpSkLevel = 3;
7 c b1 F. x/ ]4 r else if( nLevel > 95 && nLevel < 108 ); U) Z& J4 P/ ]* ]9 P/ J" s9 L' x
dwTmpSkLevel = 4;
1 |& F9 s& [- V. S7 f else if( nLevel > 107 && nLevel < 120 )! W# p9 U. U |0 M$ J
dwTmpSkLevel = 5;* a3 o: V+ V3 h$ R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 _5 ~4 X0 g3 Y( l6 B
{ ; s7 m7 o: Q4 b' J( U. w/ @( X
LPSKILL lpSkill = &(m_aJobSkill);1 Q" T3 } x" w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 R* }2 B `% y0 e {
2 Y( B8 U) ~8 Z0 w3 m4 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: w3 m& H; u6 w' y/ N if( pSkillProp == NULL )! c3 c6 w7 Q* Z0 w5 D. ^
continue;
3 L3 K2 I. G7 Z4 j4 B8 s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 U; a I5 B; F# b+ s" j
continue;; f2 e* `1 N0 _3 p, Z* ^! D% b
lpSkill->dwLevel = dwTmpSkLevel;
# d+ k7 T* f3 F3 V3 ]; X6 s' o0 S3 D }% T1 H6 E. g! W8 Z. x8 [9 B
}
9 i2 X3 T* m5 r: B6 b }# N7 F F+ A; m+ c9 Z+ c! R1 E/ W
else if(IsHero())
4 `: n0 _. F& r$ f$ q! | {" `, \, H4 t) ^$ X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( _- y; p; x' K$ J. Q { 7 m9 s( ]! w; {
LPSKILL lpSkill = &(m_aJobSkill);! ]5 x0 v* U( s8 o" z9 u" U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. @5 P o$ Z1 l, u# q; J0 A2 e {! i: i9 k* p4 B$ j7 M0 E8 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 c$ r& P6 ~: }7 J% \ if( pSkillProp == NULL )& F% i" d" T6 p2 {* T6 h
continue;
7 U$ S% z) ?8 V/ ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER) W! W \% v4 X- G
continue;' V( r( n+ T" N
lpSkill->dwLevel = 5;6 |6 P# N/ ?* D; J/ U! r, ?. q
}
: K7 d4 D2 }! }; ? }
* M0 M( {2 c% G& K6 h% U }
8 o+ N3 N6 |3 f) K% J; {& V else if(IsLegendHero()): ]+ q# Z E% S' K. p$ ]. E
{
" x* Y4 r8 M0 |9 M3 Q* [3 @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
* \! I! z9 y# `3 ?; m {
B) {+ f- f+ p LPSKILL lpSkill = &(m_aJobSkill);. E+ Z6 P0 f. s
if( lpSkill && lpSkill->dwSkill != NULL_ID )) s; e9 K }' N X8 G* x7 k2 F
{
# _7 E7 s5 I, m8 }5 v6 w2 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 j0 J/ F' V: |7 B/ _ if( pSkillProp == NULL )0 `3 g. l' j f v8 h6 C
continue; U: b2 V& I* r1 w" i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" m, _: N& \$ p+ Y+ D" T! x7 [ continue;+ w5 z6 I+ {0 v
lpSkill->dwLevel = 5;( Y" k& p2 v4 o, K" b
}
; e1 q6 u4 I! D f( T4 f }
% ?; Q) f. n' W$ M* L) ?- \% L; [+ G }
n1 l1 |- x2 E1 e0 {' Z. i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 k/ r8 r; A: H. z. S if( bGamma )# t9 P- o* V2 L% U0 d
{
$ d4 k8 C I6 J m_nExp1 = 0;
2 T, U9 W( Y! `* G) [2 \: k6 q& r }
4 Q$ n9 I! Y- V' D; M
2 Q# V3 S3 H" |/ o ( (CUser*)this )->AddSetChangeJob( nJob );
: W: q; F- a9 y0 C; m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
[! n* C8 L3 @
! i3 [; A2 S4 [& u
+ [0 Z3 R/ O! ^7 H/ P% I#if __VER >= 11 // __SYS_PLAYER_DATA
1 S! [+ o- g1 z( O9 i' a g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); j& w& }/ n( A. ] q5 b
#else // __SYS_PLAYER_DATA
8 T" B' f+ |: ]3 H# G! m: V; r& U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; s0 ]- A) d u5 V7 j" V3 |5 ^ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% f9 T& d/ M& A. C- Y* J% H
if( m_idGuild != 0 ), |+ {& N2 {( n$ q, E* f, P, j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 S8 v' v1 }# r ]+ y
#endif // __SYS_PLAYER_DATA3 C7 v( K, z! l0 k+ Z& } m
SetHitPoint( GetMaxHitPoint() );
) d6 r2 b. k$ B' { SetManaPoint( GetMaxManaPoint() );
$ O5 e7 ^' n7 A5 p SetFatiguePoint( GetMaxFatiguePoint() );% U* H# x. Y) F9 S; ^( d$ |
if( nJob >= 1 && nJob <= 4 )/ _4 H7 i) T) J) v6 ?0 v+ Y8 Z3 a1 _5 P
{
" C: [6 }4 m* b8 G2 D. } m_nStr = m_nSta = m_nDex = m_nInt = 15;6 P" n4 t( z0 g# s/ M& V
m_nRemainGP = 28;0 |# {* o9 t' z2 t+ O2 R6 y
}
9 Q4 B# H# K! H if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) R# T- R0 p/ |5 {: S7 Q% N$ w% K
{, C5 y0 B6 w1 L# X; |1 f2 M" V* {
m_nRemainGP = 118;5 t8 J. H: [$ G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& _' N+ c! u2 ?8 o! @5 i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 V5 l' Y, F- `/ n& F }. U& U, Z6 Y5 N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 x7 v* I. F" b. W {; g3 a3 N) m; \2 o5 |
CItemElem itemelem;: S1 N9 R2 P, e4 B0 Z
itemelem.m_nItemNum = 1;$ M" B8 y, f& S0 V& F+ m
itemelem.m_bCharged = TRUE;* _$ f% u3 }2 R+ O" F
BYTE nID;
# q+ b7 K2 u/ a+ ^" M4 e& g( ?* {; i. h; h( b' K# j
if( nJob == JOB_MENTALIST_HERO ); T+ Z" M g4 e/ ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# J% T9 _, M1 l5 r
if( nJob == JOB_FORCEMASTER_HERO )
1 [( _8 l- M+ b6 _, w8 W. { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- B$ S q$ d: ]) j2 a8 v8 O
: _2 o# c! V) v% |( d ~0 n3 U% w ( ( CUser*)this)->CreateItem( &itemelem, &nID );& h2 P1 H6 M: {" b: g! m, W" l. t
}
1 E# S3 D% q; V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& O$ o1 X- G9 b; B0 J ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- s2 R4 f* y- N1 o% t; _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: Y9 a* f5 r4 ?/ J9 N /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: A' P: h3 z0 y3 b ( (CUser*)this )->AddTaskBar();*/
, V+ R# \7 `6 S+ I3 a U ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* H( c% j7 j) l. T6 F! V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& ]( ~% c6 U4 f9 m% w ((CUser*)this)->CheckHonorStat();8 P5 x# O$ e; z
((CUser*)this)->AddHonorListAck();: B' g& `2 r3 y5 J( M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 D0 q A" h+ Y' f) @3 n#endif // __HONORABLE_TITLE // ′Tà?
$ E% ^: d2 U4 _! @# q' p }) E* Y" l0 o- L
#endif // __WORLDSERVER
6 m. ]/ }2 n6 V" Z3 y}
' r6 c6 e3 i+ p. P- l& g4 K
7 k0 ]9 V& c" n8 N% L* |, w然后你进入functextcmd.cpp并添加以下
1 \, f1 m" O9 ~2 N) j
- {! K9 @1 }1 k6 O代码:5 J' Q$ R s& S' J+ q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); u' x7 ^% k' s& }
下面插入- i: d6 d' j; w
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; y- \2 Y ^( v9 f7 z/ `7 @6 d1 \# ~8 S/ e3 k: b3 C& D- v
然后你去4 x9 H: G# v4 S/ u
9 e$ ?/ D- H) \! R! v$ ^$ C4 X
代码:# U7 |) h& j% o1 t$ O0 A9 E
代码
. \: p s% @- wBOOL TextCmd_ClearPropose( CScanner & s )
0 t9 ]' _" J! t. c{
H" | Z, i/ p2 z- b$ |$ L2 K#ifdef __WORLDSERVER# G; y0 K& _/ r! A1 B5 i
CUser* pUser = (CUser*)s.dwValue;9 i0 a& T+ O0 ]' z
g_dpDBClient.SendClearPropose();
5 m& [ m. s2 @ @7 i. u#endif // __WORLDSERVER
& h% ]: z' X5 g return TRUE;
# ]# [8 L: m2 K6 x8 `7 {; P6 ?}/ \, c9 T, W p- w8 V$ e
下面插入0 l2 d# D" U R( a
BOOL TextCmd_rebirth( CScanner& scanner )* f7 O" X( D9 g4 h6 r/ x$ B
{
0 P2 `0 n: N V- W#ifdef __WORLDSERVER* [* S+ Q9 ]9 |5 | N. v/ N
CUser *pUser;
% r5 t1 J" F( E+ y% d% R6 x( JpUser = (CUser*)scanner.dwValue;
7 l5 X# S& z5 [$ h) f4 y# |$ P- Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 [: M( O- v) a% h* V. P7 i* X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 C: ?8 m5 s2 X, ]* [* |4 h
else
4 o$ y+ p2 o4 K) ppUser->AddText("你还未达到重生条件!");# v! U) x" i! ?3 p# n, v5 y
#endif5 U/ Q. b, |( B/ w$ U7 K$ v X
return TRUE;, Z0 O" b- F9 H* Y( Q1 l
} / u1 l. f; N: v/ W; q& h
: l6 m" O2 } Q; T4 [ f0 X( K9 x0 m& T; Q- j2 N- K0 h
/ K q0 j5 B3 i2 a3 h/ ]5 i8 j( q( g- r6 d% A5 c# O
|
|