|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 h& H* b0 Q% w; ^+ Z9 A: E" [1 O; t
Mover.h
1 _* t9 j- [- }# q9 Y9 x' P/ a9 H代码:2 F9 ~, Z: c5 r& m# G# K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! M# }0 |1 R/ m$ q: q! K2 L3 U7 `# f7 K1 Y, [7 b$ {
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 g0 y8 P) L7 r& o- f; d1 W. G a/ {$ M3 E. x, _
然后你去mover.cpp添加5 b8 P$ z; x3 M$ h3 {3 H
. L* n. c. k& M- P+ N/ I' h8 X代码:$ X) A+ K+ |/ V% I& j8 S" P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! }9 Y( C: S3 j% e7 e: x! w, O# G{
7 m5 C4 p7 N6 b2 ]' x#ifdef __WORLDSERVER$ i8 p0 z) H ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: U* `7 P) h! L& x/ a6 i
MoverProp* pProp = GetProp();
0 K; {+ @/ K- } if( pProp )
( N2 E( r7 t5 T L. a {
k+ n3 ~ `- K if( nJob > 0 && nJob < MAX_LEGEND_HERO ), m! y9 ? y5 s ?
{ _& S t3 T7 M6 j0 ^
AddChangeJob( nJob ); N ` e5 v( ?, h4 v5 U
}else{& h1 f0 b+ \5 y+ H* W- w
return;
7 x8 @- _ ]' ]9 E0 i! D }
! ]5 @$ d/ p! j$ m! j int nPoint = 0;# J& ?! M9 a s$ {4 i' m
if( m_nJob == JOB_MERCENARY )7 j$ J& Q% m6 K% Z/ ?# t* o
nPoint += 40;
2 V# t( f. `6 W* G, }* l4 m else if( m_nJob == JOB_ACROBAT )9 a. R" }0 T$ _7 }
nPoint += 50;
2 u& T( ~4 s Z8 q5 v else if( m_nJob == JOB_ASSIST ) G% s( _) d6 p( n
nPoint += 60;* A* Q' X% h% W2 b4 b
else if( m_nJob == JOB_MAGICIAN )
5 r. E4 _3 K& A" }3 B- ]: U% W nPoint += 90;% L( s2 h" ?6 v( c) Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% C& M! y5 z; s; i" i3 P7 p c' Q/ _
nPoint += 120;( a' m7 S& b [4 A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 a( W8 k: i7 \
nPoint += 150;
+ v* ^: p8 ~6 _- A8 u$ m else if( m_nJob == JOB_RINGMASTER )
! Z' d, |! g, a nPoint += 160;/ Q6 C+ x. n. N4 j5 ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). L1 C& o/ a# y2 N) n
nPoint += 180;
G: N: y! M/ A* @& n% ]9 E$ K7 v else if( m_nJob == JOB_ELEMENTOR )5 C( F6 X- ~5 H
nPoint += 390;
/ W0 w8 Z* [5 ^$ _- Y% L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 ?! r3 |4 K d+ s+ W& l
nPoint += 120;4 w9 }7 s6 } d" y5 y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ H8 Y B3 K# d" Y! I2 m6 `
nPoint += 150;
9 o* P3 [" {( ~* x' t else if( nJob == JOB_FLORIST_HERO )
& E5 x, x# K! Y! r nPoint += 160;( M% s+ P) y* S O, b! B; s& e* x
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- |5 R$ v* I# `: u* \3 d2 F
nPoint += 180;
1 C& p. e! d; G" _5 `' h+ X% M: b2 ` else if( nJob == JOB_ELEMENTORLORD_HERO )9 A, z, [4 q3 w+ W
nPoint += 390; q V1 |9 e5 q1 a% O( W) b
! }: b" j4 Q) t3 K6 ^, ]6 x' `* C AddSkillPoint( nPoint );
5 J$ d! i, L* D; N& h5 W m_nLevel = nLevel;. t, E: C1 W: c
a# Q* b @3 ^& G
SetJobLevel( nLevel, nJob );, e$ s( t S$ F3 ^- ?
m_nDeathLevel = nLevel;. ?; S/ x6 ~6 @" S5 S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" J% T2 K d& W' `) R
if(IsMaster())
9 Q7 q3 g4 C% o+ L8 k. O1 j {* z$ I6 }% d0 r" {) f: p& N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) T. C6 U. I) H if( nLevel > 59 && nLevel < 72 )% _( G' `2 d4 x) l5 P, [
dwTmpSkLevel = 1;
% R" j1 y% k; v" ?" E4 Z else if( nLevel > 71 && nLevel < 84 ); P' A- m/ _, H# S% H( v2 b
dwTmpSkLevel = 2;
# w- g7 _0 ~/ n1 T. n# e9 F( w else if( nLevel > 83 && nLevel < 96 )
; }8 d# ~7 O- `/ x8 ^0 f7 M dwTmpSkLevel = 3;
1 t5 K2 A9 W/ ~. B else if( nLevel > 95 && nLevel < 108 )4 h/ M# q5 @4 V$ ]$ r: z
dwTmpSkLevel = 4;' P; ~7 M* ]' Q7 k) a* @+ J+ f
else if( nLevel > 107 && nLevel < 120 )
- f& `* x8 w% I9 p" }" x" B dwTmpSkLevel = 5;
Y: g4 j/ p+ ^2 _% |; ^$ g( X# G7 L5 l for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; W, u0 X4 }' |0 G- {5 x$ Y4 h0 Z
{ ' g% y# V, r# S1 E! i5 x: O
LPSKILL lpSkill = &(m_aJobSkill);
$ t( t' O6 F4 e; F if( lpSkill && lpSkill->dwSkill != NULL_ID )
# S% E( [5 W& E! ]/ D/ z2 }- z {
1 O: m5 l. V+ p$ m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 G- @+ y! g* e0 x1 e1 p: F
if( pSkillProp == NULL )* ]8 R# X+ B; U
continue;# d7 E3 r* D7 q+ t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 w1 `5 y7 o- ]* ]' @% N
continue;
2 r6 G3 g. L3 l: z. | lpSkill->dwLevel = dwTmpSkLevel;
0 |: e7 p4 w" z }
, P# L/ o: b# g- E }
8 f; o. r* K6 |" i) d+ i }
9 w# U3 ?; l3 w+ \( d/ g9 ] else if(IsHero())9 u2 ?2 B0 C4 u4 m; K1 U9 m
{3 a5 G7 b" {2 ^0 K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " |1 t4 u, t, x
{ v: y7 F8 }" O
LPSKILL lpSkill = &(m_aJobSkill);! ?$ w7 \% Y+ k8 b6 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 L% h1 R7 z. m1 z
{
3 ^7 Q" X" K2 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. y$ P& b& L( w# |8 R. q if( pSkillProp == NULL ): U4 t$ v4 g; y
continue;. A e0 u& n; F+ B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 R/ `5 `' E3 I$ A l
continue;
7 u f3 z8 n( p% j8 i2 t) {9 _ K lpSkill->dwLevel = 5;- r% x# ]' D4 v% F
}
Q+ {4 k4 f) W! P: i2 k5 f }! x" z0 [% A7 S% N9 q. }
}
: {; \7 l8 L0 W3 O* ?! |3 J& C else if(IsLegendHero())
# H" ?4 w, L3 o f9 _* m, ^2 | {
: c7 `* i! F* ]' M( u for( int i = 0; i < MAX_SKILL_JOB; i++ )
- J9 d! D v8 ~! F9 I- c( E# Z9 v { # t% d3 r q( l4 [9 I- |
LPSKILL lpSkill = &(m_aJobSkill);
+ T; a- M" I/ K9 h if( lpSkill && lpSkill->dwSkill != NULL_ID )
" g, p1 H! ?: v' P {3 F; ~& b' j' N$ }' P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% n3 E3 n8 j2 C! h. ?2 f& A if( pSkillProp == NULL )3 H V: v5 T8 ]6 q/ Z$ u9 |0 F+ h
continue;
" ^% d4 ~4 t3 f0 ]/ f. w, q0 ^# ]+ i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) X9 J; [7 w, ?. v N$ @* F continue;0 ^8 k( O+ D' _3 s0 M: K5 t
lpSkill->dwLevel = 5;4 T" l, q1 M" F0 S
}7 S* S. d+ M+ y3 }
}
8 L7 H' u& ?" j9 L6 ^& Q }* y6 P9 z- Z/ e _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans c0 q, s- L; A# P6 {
if( bGamma )
- t: n4 C: A' M0 ?, X7 {+ s7 V( ? {/ A, ^" o6 r$ e
m_nExp1 = 0;
; ?1 V9 N' U/ U }
, o9 m6 }7 Q# _! h/ R" l( Y8 ~* O2 W$ m% s. p. b
( (CUser*)this )->AddSetChangeJob( nJob );
$ [# F) p; `& S# ~# R& j, F! g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; M& v! ~+ a f( T
, s; @3 Z" j5 x2 w6 |1 x4 N0 v- D3 S) I
#if __VER >= 11 // __SYS_PLAYER_DATA2 l, d- `* f4 Y2 Q. y3 V: R+ D$ `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- e6 u" p9 E: n
#else // __SYS_PLAYER_DATA K4 W+ o$ o( F8 {; a1 D+ t
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ t- E" R; j+ w D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 c! S1 P0 u N3 K& s- R& ~
if( m_idGuild != 0 )7 r- O$ ?$ W1 S u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); M8 ^8 S8 b+ I; [8 e% }7 }$ a
#endif // __SYS_PLAYER_DATA
J' k, y* N% |7 J SetHitPoint( GetMaxHitPoint() );' z! q0 D+ z+ n% |2 ]. K
SetManaPoint( GetMaxManaPoint() );
5 Z" W/ z$ y& x- x SetFatiguePoint( GetMaxFatiguePoint() );, o0 i5 M% b; I8 ]2 p/ X% d
if( nJob >= 1 && nJob <= 4 )
! F, X0 P, f# l, _ _% M. S% X$ D {
6 c9 H$ S: ?7 p$ u, n m_nStr = m_nSta = m_nDex = m_nInt = 15;( L5 K4 K$ I- o$ R( y4 \$ ]! s
m_nRemainGP = 28;
1 j, P1 K$ m( k3 j6 |) o1 B+ o }" n6 ~6 T: {- I u9 d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ i) k: j# r+ p# t( _9 k
{
7 l h/ q$ ^& G1 j! C m_nRemainGP = 118;8 _5 y4 l7 x& e# _7 T) M0 B- L/ p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; T7 J; I- m) {' [$ ^. f( c7 W9 n m_nStr = m_nSta = m_nDex = m_nInt = 15;7 {+ v0 S: i9 |4 n; \
}% e J! P6 p9 C G& ^ X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) v- W4 C7 D! u6 r
{
* z* I: x; @( _( p: e/ u/ ] CItemElem itemelem;
+ ~! s Q" ]# m8 v+ q0 X; S itemelem.m_nItemNum = 1;
0 |3 P% v( k# I N itemelem.m_bCharged = TRUE;
! v6 V+ e+ V0 K* |) Q4 A O BYTE nID;9 u j/ ]! x2 M: p1 P4 {
% g" E2 ^ u% g2 Z if( nJob == JOB_MENTALIST_HERO ); j# l7 }; M0 k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# s1 E' J3 P0 {+ Z if( nJob == JOB_FORCEMASTER_HERO )7 r4 W' p+ M& n- F; y1 x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ I2 {" x! L' k- M$ `. r" u( O4 m) A
4 u3 a( J! i7 ?
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 r$ {& R* U1 n+ n
}# i6 J* g/ l) _9 l* }- C8 M1 C9 A; k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 n9 l4 r6 w0 W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 w/ t1 i% k* O* Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 D f/ x. g7 M! k$ M /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! e- f( o8 ~% s: m5 u9 h ( (CUser*)this )->AddTaskBar();*/9 t4 G% B2 T& V5 j5 C) {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 H6 h" w- ^6 v. a5 C! ~$ T#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' T9 m: Q( o9 a8 d' D6 ? ((CUser*)this)->CheckHonorStat();1 W+ q4 x% k* S, K7 Y1 h
((CUser*)this)->AddHonorListAck();& G9 k& h' M4 \* ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 R3 S, R7 @& \. i' O# S9 z6 N- z#endif // __HONORABLE_TITLE // ′Tà?
1 d2 |% n! C4 Y0 W: c2 b2 h% K }. E( a7 \9 F' ]* V8 b
#endif // __WORLDSERVER
8 ?& e4 ]4 p" X; g* t3 w: V& J} 0 \, T4 h6 U% j! Q, r8 u6 n
" B$ }6 i$ r4 _# D/ m然后你进入functextcmd.cpp并添加以下
; H7 l2 E/ |) A. C$ w/ _8 K* {5 }& b7 y9 H/ M4 y
代码:
) N' O9 a8 g: R, I$ ^/ gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: W) l2 a0 V1 O! X下面插入8 O0 Q& y1 B+ X6 d7 c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) _) w" Q! _8 D( m
, A ]1 W# c# v
然后你去% j1 { ]+ _1 \. I: y
& F# k) o% s0 L
代码:
% ~, w- R2 t5 M4 Y2 O" a代码
# i; w5 ~$ J+ t4 R" [BOOL TextCmd_ClearPropose( CScanner & s )
2 V: k1 I! r& |0 i{
% H1 U, C1 h7 C3 v+ C N#ifdef __WORLDSERVER" ]) _5 u5 D( u. j5 o) G; v
CUser* pUser = (CUser*)s.dwValue;
& [5 S2 |. n0 @1 s. S g_dpDBClient.SendClearPropose();
+ v% _: b6 X% Y1 q5 @$ Y9 y#endif // __WORLDSERVER# L( ?' h$ w8 \! o* t. m" Z* x
return TRUE;
, Q A* i; p* Q2 i}
7 N7 E4 q$ y* }, \6 b下面插入- G" u0 x3 m/ t' t3 L
BOOL TextCmd_rebirth( CScanner& scanner )
* P3 n6 p! m8 v. W0 z* X( n{8 Y4 T' G" C5 c* N# ~
#ifdef __WORLDSERVER6 p2 n! N/ M! R
CUser *pUser;: J7 r U! N: E( z9 D7 Y
pUser = (CUser*)scanner.dwValue;
* e8 [- N' L, q- O" U+ ?- u- ~0 c3 Pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 K) \8 R& N/ ]/ W# Z l1 L3 upUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# D# E- P+ r! L) c" P$ X9 |
else5 e$ G! A% ^5 U/ U- ^: n' ?: x% m
pUser->AddText("你还未达到重生条件!");3 I! v1 a6 E. t0 d4 J9 ?. b
#endif8 @& X3 I) L: q: g
return TRUE;
+ S8 A% s8 A4 B1 O' H} - y' f$ O1 X+ Q7 m' w& e c+ F
8 u4 C& y/ p3 x2 }) @
0 f1 c1 [% H1 A) s) L3 j9 O+ \8 I$ |. O" m) G8 ^
4 D }; P1 z, ` w. f2 i8 w; W |
|