|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) q! h1 V0 Z& k% ~% z+ m; q+ t
5 z6 w/ r( _. E( @& P) C) L6 X4 l
Mover.h) P5 q( v, c0 D) O
代码:+ U, I, _, b. A( z; v+ b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ L0 d$ e& C( K! Q
+ c$ a M3 c' s$ U- \" M
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( B9 a; F! M! e' N
8 e1 d, t, r3 H8 q然后你去mover.cpp添加
7 X1 A& H8 j3 M* y/ H' N
7 N( X7 z0 N# ~9 `4 _# E代码:% P$ v o$ k X0 ^0 Y( H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 M m+ J0 O0 f1 U1 B+ o
{" {' D' [6 K0 v5 F& Z4 U" {2 q
#ifdef __WORLDSERVER- G$ u. G, X* O- o- ~8 q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, C& ^9 v( K9 W/ s5 e MoverProp* pProp = GetProp();" S. W# N8 |0 ^- ?3 ^& @% }
if( pProp ) l* h- t4 n9 l8 g. K% f
{
( J( b7 H: B: z4 i6 t O if( nJob > 0 && nJob < MAX_LEGEND_HERO )* |/ h; D& @( g" P9 e, L0 a+ O
{# y) P# ?; o' J2 S
AddChangeJob( nJob );* t$ l6 K0 {# d7 ^5 a4 O$ B' |( ~" W; _
}else{
- q/ [+ |" h% g) P) N return;! n K Z0 f; S- \
}. w: ~+ d" T {& P; a' a8 Q' m: T
int nPoint = 0;6 b' \7 ?/ e( ^) P# _& i f
if( m_nJob == JOB_MERCENARY )& B4 ] y" [+ R; a( W r4 N6 r; c
nPoint += 40;
! _0 O- A3 G& l" L8 b( S; T1 t else if( m_nJob == JOB_ACROBAT )
3 m5 p6 Q$ _) m# k nPoint += 50;4 h) E* q* i9 X; Q
else if( m_nJob == JOB_ASSIST )
/ H& Y& @4 v# [3 x$ M% Z9 G; Z V& D! x nPoint += 60;0 I% G+ b: i* X+ Q' f# M0 T
else if( m_nJob == JOB_MAGICIAN )
4 u- Z7 W# y) h nPoint += 90;
1 o9 d2 m% \( @" P' b+ l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' W% `& R- z$ ]1 ?: j9 ` nPoint += 120;
9 R- z" X' L4 r5 R- j else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* V0 y6 D' D# A5 _! B, Y nPoint += 150;+ m9 w/ D1 x3 O
else if( m_nJob == JOB_RINGMASTER )# C* b- P5 O/ L/ W) J$ I, F
nPoint += 160;/ B# r T4 K V, n1 k9 j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 z3 @. v9 r$ d& ]0 t3 M' M% V
nPoint += 180;0 O1 `5 E1 s2 S; r+ U5 B
else if( m_nJob == JOB_ELEMENTOR )3 o, r+ @0 X4 p: B0 j. j. ?
nPoint += 390;
9 o { T5 u( S6 ~4 Y. A' h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): t. i# z( b/ j, \3 Z
nPoint += 120;; |% e/ q( C( @7 b/ U
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% j2 g8 ]; |8 W h) E7 j
nPoint += 150;
: z: \6 e5 K+ _' M$ M! O, h else if( nJob == JOB_FLORIST_HERO )
; r; D1 O8 A' }( J% S: j0 o! A nPoint += 160;( a6 {0 X( s5 _+ i L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 @! R" E1 U9 Y
nPoint += 180;, e2 ?* C- I/ x: u8 S: i) y1 F
else if( nJob == JOB_ELEMENTORLORD_HERO )$ w! O: b) Y+ w3 _
nPoint += 390;$ D! S& m; p6 J4 l0 x( C
8 z$ ]7 Y& [7 R4 D, M3 e! l% t9 G9 L& S AddSkillPoint( nPoint );, T- F" P0 u' e
m_nLevel = nLevel;& u$ } @* Y' W
8 s9 J4 l# E* D
SetJobLevel( nLevel, nJob );
3 L4 p+ R2 `% U: z, P m_nDeathLevel = nLevel;
1 j1 z) W4 Q5 d% l- h) M#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. [0 [# j6 M+ m; |
if(IsMaster())) f' A8 R& A% d# X
{
3 ~( H$ l/ T2 }; h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* ~+ O" Q8 l2 x' }8 q/ O if( nLevel > 59 && nLevel < 72 )
; ^) \2 ^7 L0 q2 B2 @) T# v dwTmpSkLevel = 1;
- [. O {$ ^8 S8 e else if( nLevel > 71 && nLevel < 84 ), H# V+ _' T7 q+ ]
dwTmpSkLevel = 2;" d' | g- {4 g( m1 Z9 f
else if( nLevel > 83 && nLevel < 96 )7 H% l) h! P3 {) e5 a) v6 A
dwTmpSkLevel = 3;
: x+ T/ d0 a2 ]/ a* ~! T' I else if( nLevel > 95 && nLevel < 108 )5 Q* U! a3 a! E" J; l% {
dwTmpSkLevel = 4;
+ a0 ~8 x N# j' C( ~ else if( nLevel > 107 && nLevel < 120 )
$ E4 H1 l9 g' t0 v, a dwTmpSkLevel = 5;
2 X5 }9 j, Z! {% C! ]' V for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 i4 v2 I- f& k0 f { 8 x! t8 x' }! x( t% Y$ h
LPSKILL lpSkill = &(m_aJobSkill);
- i' L" f: B' q" \( t if( lpSkill && lpSkill->dwSkill != NULL_ID )8 ?8 P& e, l2 s; S6 e
{
, H7 x: n# M9 y7 W7 C) v( q6 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 _- F2 N# A3 q- F: \; t7 _+ h! Y6 F if( pSkillProp == NULL )
* c' ?4 l# Z8 p: l6 O% U5 p9 K continue;
( A7 k" r2 P" o) ~+ m) B( E) r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& b2 g# q/ l6 G4 v, U, i, f continue;+ y$ L7 I u& Q
lpSkill->dwLevel = dwTmpSkLevel;
- q0 Z5 w2 Z6 X$ S$ T }
7 B$ D3 x- |) b; Q6 ]$ K% r( _2 f6 X }
, c$ B4 c0 Q1 [3 Z: H }% u; t9 O6 ?( |/ [4 f$ A1 \
else if(IsHero())
8 I# F6 H3 f' T! u { W* A* j. y S) ~( \0 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ \6 }$ _# d# c% j5 z2 q { 2 ]2 x! k# ^ ]+ C/ R. \, s
LPSKILL lpSkill = &(m_aJobSkill);5 x4 z* B5 y n" v% I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 n; r6 i u8 k9 a( u W" F$ {$ k {
7 Y9 h6 `. M6 f) j: o6 v& | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 b3 V& P' m3 I9 Z; F if( pSkillProp == NULL )
1 k! [: m3 l. g- i continue;
% @* e( l1 G9 G9 `6 R- _! r1 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 a, L- J0 }$ z9 _
continue;
4 [# @) R+ J1 C4 H6 }- [1 N% F lpSkill->dwLevel = 5;+ p* {- ]+ ]( v4 q' A! ]
}
( X( z* S7 F8 ^, \ }) h: a+ l9 I( e3 J+ J
}
d0 b, g0 c4 L% l- N+ j) V" }% Z- d' i else if(IsLegendHero())8 ~: H( y5 m6 v8 S9 u4 ^
{
) q% e. |1 |& J8 ?1 E. w; A$ y for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ \: [0 f8 W- ~8 I1 F6 H% ^, b {
9 |# Z8 g. o1 r% x. M. G LPSKILL lpSkill = &(m_aJobSkill);! P/ \3 h/ h1 \# z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 o- r& N( K: i }! N7 V5 K {: E, _4 Y' h6 K- {4 q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 [* I- G+ S* h2 Q- \6 Z, }& i7 \ if( pSkillProp == NULL )
3 {/ {" s/ Y2 y' D; W0 N+ ~2 N continue;6 Y) E" e N# r0 H/ g0 H2 Y4 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' v5 L6 i0 }" _& {% N continue;
4 z# z5 b; l# w lpSkill->dwLevel = 5;# p6 x* `+ u! e
}
% s7 [ C- q) U5 u/ |6 @8 @: ^ }" c0 t0 y7 k, _6 j* M! P8 Q
}4 W p7 I# i9 R' K3 Q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% @$ x5 G2 l O- r8 Y0 L if( bGamma )
% F" r4 C( O% l5 W& J {( z9 \: C( p! k" H4 C
m_nExp1 = 0;% v4 T# ?+ ?% x/ d; m$ ?% B
}
& @- i; Q. Y! {
: Q: m5 X7 P5 T4 x+ t. i. ? ( (CUser*)this )->AddSetChangeJob( nJob );
4 q: I0 i5 \- x: G4 C- Y2 z1 n2 o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' }. q( E* U9 B8 P1 p- N* ?: f) c
[/ d) P9 U0 J0 ]' @( S/ G Y' a2 M0 Z& |
#if __VER >= 11 // __SYS_PLAYER_DATA0 R7 o* \1 ^/ J0 R R
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" ^) |+ q$ E0 T, F j
#else // __SYS_PLAYER_DATA
( S o3 ]" U$ Q( |8 w$ w% d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 Y' R5 G* t& f9 ^. ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 `- f p o, O$ w! \2 j. F. q3 G2 ?
if( m_idGuild != 0 )
, a- U3 O9 I# \8 i; b4 d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* B( X. k8 z' |/ l#endif // __SYS_PLAYER_DATA- U0 I3 A: U/ `. _
SetHitPoint( GetMaxHitPoint() );
; `# R( L" r2 n SetManaPoint( GetMaxManaPoint() );4 p# o' s( L8 ?8 S6 Z/ n4 u8 F
SetFatiguePoint( GetMaxFatiguePoint() );
% H# V' \5 h) K; ?* p1 H if( nJob >= 1 && nJob <= 4 )) ?/ i! n% s H6 Q5 Y8 e* o
{( ^6 n8 U" @3 X1 Q5 V# H5 h$ `
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ K( B7 @4 n" _( t! k m_nRemainGP = 28;
" r# Y& @1 w3 [& J" L& T6 O }
* K4 c) M. _4 y( t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 E2 {9 F- \: e& B. [( ^4 }; a" A {
/ M( y% S9 Y7 [( q, ^ m_nRemainGP = 118;5 G. B. T) }4 @, ~
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 f/ f0 n0 ^: m# h3 v7 b m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 Q2 B; ]- K: Q* N }: U- M" w. J9 |$ m: c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# ]5 @% G1 ]9 k& |# l2 Y5 \
{
3 n. X3 ^0 V# B$ g CItemElem itemelem;5 {) X, ~! } n6 d( o
itemelem.m_nItemNum = 1;: L- k( t3 ?& e
itemelem.m_bCharged = TRUE;: j! t2 c6 h: ]0 j( l
BYTE nID;
" E1 a6 ]' d2 S8 k/ I# W0 }+ a! m- ?5 j2 d0 ?
if( nJob == JOB_MENTALIST_HERO )" n" f" L' G5 U. p
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ v4 s$ L, o( l5 D ~ if( nJob == JOB_FORCEMASTER_HERO )
* f3 O/ ~2 }6 p2 ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- @; w$ o' i: {$ L7 G+ m0 O( K
7 d6 J$ x2 _+ Z9 ?7 r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
! K5 A; {* n8 _7 u8 a! U ^ }
% ?9 ~! C5 f4 k6 |/ @0 v3 l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 w9 h* c; D- G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" |& Q$ U, ?/ k8 [( e& B. p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 Y+ k) {. W, A /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ A7 [. L# P# [$ e
( (CUser*)this )->AddTaskBar();*/ F+ e7 j4 u6 u- ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 c' N# g. J+ Y! y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 t A- V4 \$ v0 R- W# s3 H
((CUser*)this)->CheckHonorStat();7 \1 J$ j1 k* I+ j, v: p
((CUser*)this)->AddHonorListAck();/ c7 O9 ^% W7 o$ G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( W& l- O6 Z- ]2 W; }9 \#endif // __HONORABLE_TITLE // ′Tà?
: Q8 p N) ~" Q; U# t }& o/ x1 |4 p( z2 l" Z2 Y
#endif // __WORLDSERVER
/ u0 e+ m& N. j2 O3 F2 Q. d}
# H4 Q/ s1 y m; s! N% c; D7 [8 q5 y" u
然后你进入functextcmd.cpp并添加以下- q9 T( Z3 e) T; @; f0 _. n& f `
; g9 e: e/ z3 F1 ?; B5 X代码:
- G0 I4 i* Y |7 ]2 x* v0 f* _ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 k4 h" W4 O4 p7 w, F' P下面插入
* H# Q& W V; ], Q; cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" }/ A' p9 ?; z3 I8 l# p8 l, c
% ?4 o' ~( x* Q! a: B; t然后你去7 y5 |, R* u- W
, e: u6 [* v( u# n! q- Y8 s- O
代码:' I9 m' [+ V6 y n' j2 r" \, ^& N
代码
$ t. L9 q4 Z5 J; y6 v6 ?BOOL TextCmd_ClearPropose( CScanner & s )1 D" o Y, W2 C) ~4 {
{
* k4 u! u5 V1 n! o$ p- a% j6 k6 `#ifdef __WORLDSERVER9 m F/ D* U3 _' z# F: R( T5 y
CUser* pUser = (CUser*)s.dwValue;- J H( F" y% e- e
g_dpDBClient.SendClearPropose();, z1 _/ O8 R- h+ L
#endif // __WORLDSERVER
& t9 q' t9 ]& H/ O0 {% W3 L q; w) A9 X return TRUE;# k' ?6 d9 V$ r! C+ A( b
}' G' G! q9 H( ]
下面插入
( W1 S F) E2 h5 fBOOL TextCmd_rebirth( CScanner& scanner ). P F% K. d. }9 [
{5 F9 b6 w6 K f: j! D
#ifdef __WORLDSERVER
; @" z( n1 f' r4 W0 `CUser *pUser;9 f6 C/ o0 l1 {0 Q2 W) h$ v5 n
pUser = (CUser*)scanner.dwValue;
! F/ t/ {7 x/ A7 Uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" }1 L- ~2 P) G9 L+ s1 v6 ^- EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! R- B2 Y0 f7 \0 e% ]' b, helse
6 [* @; h0 u6 y' P0 C% ZpUser->AddText("你还未达到重生条件!");2 N c- F4 |$ U6 e* A* v
#endif; t& U6 a) _* j$ x, A" T- c6 v
return TRUE;
* W3 |" v" j3 I5 `} 9 K7 ^& e) {% D d
G/ l/ w0 z: g/ H
* ~, E& a9 ~! t8 A _* [9 v
2 J6 t/ V& T3 a6 B9 `/ `: |; Z: r# j5 V o
|
|