|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 G& U" m8 `. |9 ~/ k
) B$ w8 _: H4 iMover.h
0 M( p, U R, a% ?. k代码:+ N0 M' i' t' N1 k2 e! S. H0 V
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ N. r# l8 p1 c
- ~+ M( U7 v: D% n* X2 \+ c+ R
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 ]# _2 G$ r: z& q5 P" ]% O
0 \) a& _! l/ F* m: y- T' C然后你去mover.cpp添加
0 U4 n& n! F( d' X& }1 n; ~0 {! [! V' D' |7 L
代码:) e! z5 D6 V$ ]! o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 u0 t `- C* U9 E; Y, ]8 a. c. C
{
, _& B/ p# j9 o: U$ a' _+ Y" S3 \2 ]#ifdef __WORLDSERVER r4 \8 h* h9 C/ ~7 o5 R( d/ p# U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( h6 `) s$ ]: Y l* |
MoverProp* pProp = GetProp();. c0 u+ X) K% t R3 \! n; A+ L
if( pProp ) ^/ J7 J' B9 O i
{2 \, P" c* p+ D
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 V6 b" ?& z; P* I5 y4 Y {+ |) Q' ]7 B: {$ D5 b$ |- _
AddChangeJob( nJob );6 q2 M4 ^/ ^1 q- x# A0 H/ {
}else{& K) j, H Z0 ^: o. S
return;
7 Y$ G5 @6 R$ R4 X: L2 y' V }1 X3 ~' A) ^7 l$ D
int nPoint = 0;
( i- j( A: c5 x; ~/ @ if( m_nJob == JOB_MERCENARY )1 {) e7 X- l, `3 R( j; }
nPoint += 40;
) p4 Z7 [! d2 P5 P( }& ~9 y else if( m_nJob == JOB_ACROBAT )
' F5 b/ F4 H, J" g7 V/ B/ k, C nPoint += 50;8 c) ~4 e$ M1 l# k
else if( m_nJob == JOB_ASSIST )7 ?) o# z" w+ j- m) j
nPoint += 60;
& F: r& |/ t: D% K- i else if( m_nJob == JOB_MAGICIAN )
7 b- N j0 c- o4 S) o. L- V# A nPoint += 90;% ]8 S3 \3 p" G8 X" z7 l
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) ?! N( i) h8 y
nPoint += 120;4 m+ ]. {: {4 T, d( z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 V% z4 c' S; S( y nPoint += 150;; C$ k/ @9 z4 q( e& L3 N! w4 j5 w
else if( m_nJob == JOB_RINGMASTER )6 U7 {4 U8 N1 p4 s/ {0 k
nPoint += 160;0 k! y1 g3 R7 j8 x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' f) R3 B/ c; T& j3 O4 ~ nPoint += 180;
( o9 Q9 ?1 Y+ z) q: _: K5 C else if( m_nJob == JOB_ELEMENTOR )
% P* b G4 A$ A; A0 p nPoint += 390;
& n8 s. j* \- ] p" \ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 I4 X: A. ^) ` m! @ nPoint += 120;1 p" Y% u1 F' A8 T$ L# X" h( C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 u7 H q+ c( `# e1 _) M! Q3 s
nPoint += 150;# Z! ]! T8 I) K/ u6 s( \
else if( nJob == JOB_FLORIST_HERO )
- F: m+ b/ Q# d8 f! D, s& E nPoint += 160;6 v! T A4 {' V, F' G* s
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 s0 Q4 Z1 {& J) S- ?* o
nPoint += 180;
4 I Y) E( T! Y, p5 a else if( nJob == JOB_ELEMENTORLORD_HERO ) b! W1 { Y0 W7 {. b |% f; I
nPoint += 390;
0 g* d7 n- Q+ Y% s4 F
# s7 Z& m8 I8 ]) n5 }# b7 \ AddSkillPoint( nPoint );
& M! Q, o; e0 v" C0 b g! H2 j m_nLevel = nLevel;
. a* t6 v+ A1 @7 E9 z, A- u7 n/ [6 Q) K1 K* r) e
SetJobLevel( nLevel, nJob );$ u, M3 D' b2 Z
m_nDeathLevel = nLevel;* {, u x# m* E- w# V# b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' V, l$ K) u* V3 h% M3 f$ Y if(IsMaster())
$ H) ^7 P3 ]9 H. J6 q' Z {
3 \9 f! p9 r# x' M) a" p& d int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 c+ o/ f6 V! D0 ]. x {: Z if( nLevel > 59 && nLevel < 72 )
& D+ l6 o( {' v! i6 @' p# p6 L dwTmpSkLevel = 1;) A) {. O$ |8 M# w4 p
else if( nLevel > 71 && nLevel < 84 )
+ D# |0 R6 ]; a dwTmpSkLevel = 2;" B; C# b( V9 @" u6 |' `, Q
else if( nLevel > 83 && nLevel < 96 )8 j( w v* r o w l
dwTmpSkLevel = 3;
- |8 |8 N5 T& [* |/ y else if( nLevel > 95 && nLevel < 108 )
+ l+ Y3 J- K/ m$ H# O5 \% E dwTmpSkLevel = 4;
$ e8 k! ]2 X! _ else if( nLevel > 107 && nLevel < 120 ); A/ H/ _+ V( `2 R7 B, V, z, U: S8 k
dwTmpSkLevel = 5;! Q. o. N% Q9 _0 p$ ~5 s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ Z8 P5 s/ l1 [/ P L { 2 W3 i( N l$ r7 A$ N
LPSKILL lpSkill = &(m_aJobSkill);- N0 u3 {4 S# h+ v1 c* Y# @
if( lpSkill && lpSkill->dwSkill != NULL_ID ); Q( q! D! y% Y8 J, J
{' e7 v" n7 f3 ?# J* ?( i% }: h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ d7 \( g" D' m if( pSkillProp == NULL )
) A% ]9 l4 s' }( D continue;: K: |. o, c' o7 |9 b; l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ C0 e0 Q g# y E
continue;' n- s$ D0 a. _5 ?! n. C% i4 P' P
lpSkill->dwLevel = dwTmpSkLevel;8 n c( [% u j8 i7 V+ X
}) u$ {9 i+ `& \4 i4 N2 ]
}
( H3 x6 U/ g% h# k, G/ X9 O }
: \3 C" w2 I. V8 ?$ n else if(IsHero())
( S" k6 J7 o% K7 T& n8 S {
$ x4 n2 b+ P. U: u for( int i = 0; i < MAX_SKILL_JOB; i++ ) - H( ?; ?5 r; ~* `6 I) P
{ / W2 R& W, {! g, Q
LPSKILL lpSkill = &(m_aJobSkill);
* i$ W7 x3 ]. a F, M5 z if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 D5 \/ V: d: e {
6 i( y! d0 x# ?8 T. M5 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) }6 R8 P) e% d1 H
if( pSkillProp == NULL )
% l9 B2 P$ C- f# ?$ x continue;
% r5 q& F( V: f$ [1 l0 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; p& m+ e) c7 i4 {) i continue;4 [; H9 y$ b& G2 b3 B8 h+ Y! e0 B
lpSkill->dwLevel = 5;
* E3 n. n+ N. m3 ?' Q5 H6 j+ Y. `; ? }
8 r7 p3 e8 {& M$ R; s) W }; m/ ]. c% Z% M) W% G* B( `! G
}9 Y0 h) @+ o# T Z* a' a
else if(IsLegendHero())
- m4 o i- V5 S: Q. j {( q' l/ R; W% ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! {4 r8 T# D. k- q9 J& ^% s { . S( x4 i8 Y5 S0 S5 r/ {
LPSKILL lpSkill = &(m_aJobSkill);
e" m; T3 e- k if( lpSkill && lpSkill->dwSkill != NULL_ID )6 L4 d4 \7 s' x2 n
{
# R3 i7 G- ?9 [1 E# A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# A- \) i4 L; U! q$ d7 h+ A if( pSkillProp == NULL )- C( {: y3 y! o6 K+ L
continue;
0 P! M/ @# E' } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- H% p5 o# ~0 V: ?- d
continue;+ |+ \( y* C1 {6 s- U
lpSkill->dwLevel = 5;9 I2 v7 [: p: l( ]/ D
}0 g% s6 a( h& y5 L
}( v0 y6 z) [% ~7 H6 _ W$ i! Z2 r
}: O9 z8 U9 z+ m1 u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" l# g- x2 h+ E! l
if( bGamma )
% s! f0 d" F2 B" u5 x" j& _9 x$ z {- W9 j0 _# z! I; V! L
m_nExp1 = 0;
7 S6 w O, i% i: s! C, j1 f }& t/ Y, U9 _/ \% L2 e; Y
4 {; ~1 g9 v3 p! h6 n
( (CUser*)this )->AddSetChangeJob( nJob );
: n, N; L K7 i% ]6 H" A% G" g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, M. ? i3 A9 z7 X) T+ F% C# [+ W9 w! S6 H5 H
! M: a; O' P x8 x a
#if __VER >= 11 // __SYS_PLAYER_DATA6 `9 h9 w. o: [' ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 w* {7 u$ ]& C# }/ v% n7 S \! w
#else // __SYS_PLAYER_DATA
& R, _9 \1 y0 c8 y. E2 ~, t+ j3 n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' [0 h: ]& a$ ]$ J1 A$ H4 R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 b o* t- c* U6 q3 ?0 o; b if( m_idGuild != 0 )3 C9 o, a) q7 X; r
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 F9 }/ H4 f8 S& i6 _4 q8 ~' s/ e
#endif // __SYS_PLAYER_DATA7 n5 R) H; U- i$ X
SetHitPoint( GetMaxHitPoint() );, @3 C+ i; L* _8 E/ A7 `
SetManaPoint( GetMaxManaPoint() );
+ E0 M& A3 C) g8 t+ q SetFatiguePoint( GetMaxFatiguePoint() );
% A/ t n8 {1 ?. N$ m6 p$ A if( nJob >= 1 && nJob <= 4 )
0 Z' W7 `1 t5 d) ~3 R) j {
: U" t; ?! ]6 X. C( [6 V m_nStr = m_nSta = m_nDex = m_nInt = 15;. Y$ Y6 G, e `8 l, F1 a
m_nRemainGP = 28;
2 {" R7 k, N0 y) a0 X- V% E) ^6 ` }6 B7 V% t: w% v6 ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# e( P" n3 d5 ]5 B/ B# F8 F {
9 ?, z T; W/ Y9 N m_nRemainGP = 118;/ T; w2 }( k) N. k7 c5 o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: ^1 y5 j! x( t5 I* Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 r' D2 `9 v0 Z) Y' Z" u2 |+ { }2 _9 h* [* E: U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& s3 G+ ~" Z7 Q$ S7 h! \
{
/ W) O* ]9 Y$ A, p; u CItemElem itemelem;5 P7 L0 N7 s' T2 S- ~, y! K6 Z
itemelem.m_nItemNum = 1;
* `' L0 ~2 q/ ~' h; V" e4 C# g+ q itemelem.m_bCharged = TRUE;0 J) G5 C; S7 k1 p- |8 z' l
BYTE nID;% h8 S# q) W- n) @. P' h
; l8 Y; A3 G5 A8 q, `& _! l- o' H) ^
if( nJob == JOB_MENTALIST_HERO )( w9 R- D3 A6 m, k( l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* M; J$ C' z% M i
if( nJob == JOB_FORCEMASTER_HERO )% n9 e8 C8 v1 u9 V* ^( z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, J- b( j% f( X6 h$ w
6 c9 Q1 S2 t. F% K" N
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, M5 W5 T' a W- l$ I }. A' ]& X* D9 I0 F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% e6 C& J5 q1 I
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 T- I0 h5 a3 c- d" ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 M) y! [6 u* ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: S2 q9 q0 O( }2 G
( (CUser*)this )->AddTaskBar();*/
" `( K- P( {- P, F5 e6 u& V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- N0 {% [3 `0 Q0 n/ I6 [; S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 Q' Y' V" K" ^1 V
((CUser*)this)->CheckHonorStat();
: U1 x3 k' K; |! M ((CUser*)this)->AddHonorListAck();3 w* Z/ e3 W% o( H
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 @2 U9 F! N9 c0 N8 h
#endif // __HONORABLE_TITLE // ′Tà?/ H" ?7 a; O, c5 u, b
}
5 z. ?/ Q3 l9 f: x0 N/ I k#endif // __WORLDSERVER
. t7 G6 M' z1 G, O( R5 |# ^. m} + z9 d1 f, f8 i& X+ H
5 t( e# h9 {1 S4 D( h/ e4 x# |2 v然后你进入functextcmd.cpp并添加以下
6 }% V0 P2 ]* t
. `9 o7 T) a1 {/ k$ O代码:
: U- F6 d9 D, c3 V' N, W1 VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" g' K$ M( _) @. r$ q0 A6 j
下面插入& {( l% P, T( y) \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 x2 a' E% ]0 r# B4 W
p7 k* o! }- y, }然后你去% t' L) l" a$ w2 P; g% t# q8 }% L
* V ~3 z: M, M& I代码:) R1 z& ?0 o+ V4 u4 l
代码: n# Y0 m% G M) V2 r2 s. I- ^- }7 K
BOOL TextCmd_ClearPropose( CScanner & s )0 {: l& f+ |+ [/ O5 G
{
6 y; U* [8 M* G( H C' C#ifdef __WORLDSERVER
5 ^6 ]" d( R! ]" J: H CUser* pUser = (CUser*)s.dwValue;
0 o. ]9 H, q+ I! V6 P0 M! H7 d g_dpDBClient.SendClearPropose();
- k2 @ g1 Y0 A* B3 ]4 E#endif // __WORLDSERVER: I F! k9 ?) B8 `6 |
return TRUE;6 b7 x+ K( {" c! [( o* L4 I
}
~0 `8 o/ ^* \下面插入
" p* Y9 W7 r5 ^$ h% W0 x, F1 KBOOL TextCmd_rebirth( CScanner& scanner ). f! P5 T* Q; o) |/ V6 x; S, I
{& p2 Z% _: o- Z+ R" t& R6 H
#ifdef __WORLDSERVER
0 r- F8 t, z8 D3 S' JCUser *pUser;
$ Q4 _1 K( i/ } \& B/ G+ mpUser = (CUser*)scanner.dwValue;
% z3 d9 K# Y8 m# mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 N* A1 B8 c% G+ x2 G2 N0 ?- a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 Q0 X1 Z9 Y/ Q/ P4 g# Y0 [$ X* belse
& m$ k! p5 Q/ N0 ?% mpUser->AddText("你还未达到重生条件!");
. R" _/ o+ L- `9 A _7 w& ~( L/ K#endif4 T8 e# |, t; I8 D; M9 g0 q$ M
return TRUE;6 P) V: X b3 j7 m
}
! G; n3 w, }% N* |/ Z' b* W' r( D( M- W; ^' R. g- u# s
% r2 [2 \1 M; _ ^' O" A
. H" u. ^' w) u! w- n. Q
3 }6 y# X4 }' Y( B! d; B& ] |
|