|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel O2 _/ w2 m- T& g+ L+ ~% N
' c% P% z- \# R$ U; x3 M' ZMover.h: r0 Z# r" `7 J3 F# i- |
代码:
* l4 u. Z& L! K& c找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 R: [; f8 `- M- \- \) g5 w% [9 U5 O9 r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. n1 b' e W0 q) I/ _
" s0 f3 |7 m1 a7 s然后你去mover.cpp添加2 ^) i Y3 o0 e5 T7 E: Y
4 B* @. i$ z* t* ?+ L代码:2 f6 Z# b1 Q# L- ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ u7 ]; _$ Q1 }1 I* j( W' a5 A6 z{0 m b5 u& i3 N3 p) M
#ifdef __WORLDSERVER
- G; [5 {& f3 T; m ^( U0 K // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( @) S- Z c0 P: a7 U1 T+ B MoverProp* pProp = GetProp();% `7 K$ U% o, f- k- H
if( pProp )
" Q9 h3 ~2 F# O! X$ B {
8 E- O0 C s4 p! K' M% A) J3 x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
c8 P H; S1 [8 D4 w5 n# U9 d$ r- r- s {
4 l7 V, a3 d0 D0 B" o6 r AddChangeJob( nJob );+ Z& P! H5 |+ S
}else{
$ w+ t U) T# v f1 V& I return;
9 W( \9 c+ A: x: M& h" D( J }
/ I9 o. s5 m2 { C4 R7 } int nPoint = 0;
) v! y# V" |! B9 O7 x) t6 h$ i7 w if( m_nJob == JOB_MERCENARY )
1 ]' [+ y( N1 c) ]% V nPoint += 40;8 P7 d U9 t; M. t7 f
else if( m_nJob == JOB_ACROBAT )
$ D ~& m! _( O nPoint += 50;2 S- n$ E3 O4 g$ A! U
else if( m_nJob == JOB_ASSIST )7 d8 K) J$ Q$ E0 f
nPoint += 60;
( H6 R8 Y/ U) k else if( m_nJob == JOB_MAGICIAN )1 d2 a5 T0 y. Y+ l3 K3 g$ g9 O
nPoint += 90;6 N: F% ^0 f7 b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ H; R2 u0 |% N7 t. k" s! K: U" Z nPoint += 120;5 O( D; D9 F# C L2 t* K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& g. w6 T3 V* B, j3 R% g8 \4 l& K nPoint += 150;" w) T, \( H/ z1 y5 `9 A
else if( m_nJob == JOB_RINGMASTER )
3 a5 S9 ~. M& X nPoint += 160;5 ~4 X! t, e2 d0 |6 j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# D5 y7 h( b7 ]% Y' }# ?
nPoint += 180;
. i* M( c5 l& L% u3 W( J5 t! Y) N& U else if( m_nJob == JOB_ELEMENTOR )
. A& Q2 n9 ~! \/ ] c# }2 k4 f7 G9 [& l nPoint += 390;; J8 G) t$ z, E. a; K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" B) ^6 G. v, ~ nPoint += 120;
1 j( B' j; R1 U3 H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ |7 I- |, R. V3 [! @
nPoint += 150;
, t8 z2 H+ E" T5 b3 X else if( nJob == JOB_FLORIST_HERO )* X& f A6 ]1 i; p# i. Y8 [6 d4 E
nPoint += 160;
; ?! J! u' w; H5 \* d$ e% D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 o9 C9 b; m% |$ D nPoint += 180;
1 D# @/ C: e. _: ` else if( nJob == JOB_ELEMENTORLORD_HERO )
; e q' u w$ Z: }5 B3 ~ nPoint += 390;! q" w1 f" q7 N7 P9 B
( s. V6 I" R& v AddSkillPoint( nPoint );: i+ C; ]# [. E; s$ X
m_nLevel = nLevel;
8 h$ q# i' H9 H& o6 l0 T; M2 ~9 ~( Z" N6 l' @
SetJobLevel( nLevel, nJob );1 ]) z) k5 w8 K* p
m_nDeathLevel = nLevel;0 i- m% T& U1 B1 p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ `& p( B/ E7 _ if(IsMaster())
, E; I5 Z e E5 Q: m" N1 ` {
. O0 X1 i, j, v2 N; F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& V1 e1 w" B% p1 K( n% L
if( nLevel > 59 && nLevel < 72 )
) u( T2 |/ F6 S: Q dwTmpSkLevel = 1;
! z8 e/ `7 x3 i4 I else if( nLevel > 71 && nLevel < 84 )' L8 F( i+ R, I* M
dwTmpSkLevel = 2;
# R( v3 j F" g, T5 `/ [ else if( nLevel > 83 && nLevel < 96 )
+ B3 H$ T' G1 h Y5 @ dwTmpSkLevel = 3;2 M* t7 y' Y7 a
else if( nLevel > 95 && nLevel < 108 )
* `& E3 _6 @8 d$ Z( u; i/ e% l3 Q dwTmpSkLevel = 4;
, i. @* Q$ o' Y7 A: B else if( nLevel > 107 && nLevel < 120 )
) u P5 s; X5 U, f; o" E dwTmpSkLevel = 5;
* S8 K: M9 Z9 C& ^( F for( int i = 0; i < MAX_SKILL_JOB; i++ )
; x9 }! u8 S. h% T2 w* R' M {
7 m* @: T9 L8 S- Q7 B LPSKILL lpSkill = &(m_aJobSkill);
) a* A2 J! [7 H1 @/ s if( lpSkill && lpSkill->dwSkill != NULL_ID ): i! P1 p- `/ g( B9 @
{
& d7 K" V& \" _/ b- S+ O# T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 c1 L; b2 t3 G if( pSkillProp == NULL )
2 }0 ^- m$ B9 F continue;$ Z) T& Z' A e% Q' w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 r7 r6 ]) [0 ]- c; m+ N continue;7 Y5 K( X: j+ Y- E$ ?
lpSkill->dwLevel = dwTmpSkLevel;8 ]7 c8 z6 a" {! Y7 ^
}2 w; o% T1 U9 T J
}
3 b2 A V6 t1 X4 w5 l }' X9 M+ D5 }1 t! N- u: E. E: [1 m
else if(IsHero())5 J; G$ M3 V* x! b& e0 r+ a; Z
{, S( R. t) w1 i% f; W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & V9 e' x, g* ?2 M! U3 ~
{ : h9 [. ~6 I* L
LPSKILL lpSkill = &(m_aJobSkill);9 {0 J2 z* D7 `9 h; ~7 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 D5 I/ m" t& L" D8 N: Q {3 |- {8 C; `- ?! M! R; {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ e( p4 Y6 S! C. ]) s* T
if( pSkillProp == NULL )
8 ^1 b- g/ U. e! v1 i0 f4 c# n: D continue;
! Z) N1 k a/ i% \, G if( pSkillProp->dwItemKind1 != JTYPE_MASTER) c9 C$ J9 B: |
continue;' c% D# D5 `7 T: e* Z! N7 q2 S
lpSkill->dwLevel = 5;
. ^! S3 G s# X% S+ u( ^ }
' B- M. T) e- v6 @7 _$ A! t; D }
# b( K2 E; Y/ o( V0 |0 a0 v: g }
( u- k& O o' C: \( V4 s T else if(IsLegendHero())
; ?2 J: l( D3 a7 F) h3 \+ |+ F6 {# Z {/ l R* S$ i; G; J3 C2 r2 [6 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 q7 [1 p0 a! q& c9 Z6 n { : _1 }" G* o" a6 U: f$ E- y
LPSKILL lpSkill = &(m_aJobSkill);
, t$ j% g% { |' P( \2 n- F if( lpSkill && lpSkill->dwSkill != NULL_ID )7 [+ u2 y( c. P$ K n P4 u
{3 M! I/ b' d( i5 ]: t# A( H( _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( G$ C2 c( l; [1 T; J
if( pSkillProp == NULL )3 {/ D! u+ U( q; Z
continue;
0 k$ V$ R3 i. Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) y% [8 l- o$ ^: P' ^; k! w
continue;
; h w8 r' s, d8 l2 ]& J$ b5 l lpSkill->dwLevel = 5;
+ }( d( e! F. o+ a. h: k1 w }
. x& U% Q1 q& a% R% {! u' c }
' J( O6 X9 c& D2 @( ? }
: o: ^2 ^& E$ ?- x2 T" V' E; a#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 E/ Y' i' @$ V0 H% |
if( bGamma )4 F- P6 [1 ~! V
{
! a3 t+ z$ I9 m+ z m_nExp1 = 0;
A/ V# d' ~8 R9 A: i3 q$ p, M }
) F% @- x2 k0 b3 J1 c
7 S( a3 V& v4 u9 k* ?+ c ( (CUser*)this )->AddSetChangeJob( nJob );- Y! D0 f# u" |. G. \6 I3 e$ B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ I9 A1 T( k6 p2 u7 c' z' I" b6 o7 _3 _' n: W' l9 m0 d7 n6 V
6 m& q- v; I6 [' q: a1 }. A" O
#if __VER >= 11 // __SYS_PLAYER_DATA
O5 ~( c' l& w2 ~" D$ M I g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ O1 I( o0 O- h8 ~#else // __SYS_PLAYER_DATA
9 m7 L5 \7 ^+ t7 d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 Z" g' E0 G" q0 V* z6 U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 n9 t" d+ l9 X* D5 f
if( m_idGuild != 0 )& |! R4 ~. t0 {6 Y) t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 _0 Y e1 Z* \
#endif // __SYS_PLAYER_DATA9 X4 N& E; U/ M$ m
SetHitPoint( GetMaxHitPoint() );' W" G+ i' ?/ }
SetManaPoint( GetMaxManaPoint() );8 _8 t/ T; G' T
SetFatiguePoint( GetMaxFatiguePoint() );- E& [6 d& E# R( N
if( nJob >= 1 && nJob <= 4 )
$ d4 K" o7 k( c {2 {' ^: d; G' j) d7 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;; R4 [9 G. a* r1 D
m_nRemainGP = 28;+ T$ h' F: O0 n6 P) q0 z! B
}
( W6 a, N; k( S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! T. ?* m' y2 `5 p- B* d3 M) {) N
{3 i& \% L/ V- y. b
m_nRemainGP = 118;0 f/ P+ N9 i4 U, o4 u9 z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 [6 \/ `$ A( ^6 y) q7 P& m
m_nStr = m_nSta = m_nDex = m_nInt = 15;! Y$ _9 v9 d) \8 Y4 }# |
}
, \. ^8 }; p. v; b" K' ^* ^* m) d. \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! w9 F- x8 T+ \0 W* |4 E
{% r% T- N8 i& E) _) x' S1 Q
CItemElem itemelem;
6 Z2 p7 c o7 |9 U% z itemelem.m_nItemNum = 1; V1 \( s: h9 \6 x! [. K3 d
itemelem.m_bCharged = TRUE;2 s8 _) ~# `: [! z" ]* _
BYTE nID;
: f! d/ O. \% h) r2 V( s; |1 y& \+ y2 H# w$ y
if( nJob == JOB_MENTALIST_HERO )! v- n3 u5 k. d7 p( U A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 ^" L8 v4 g: U3 x a% b& ]
if( nJob == JOB_FORCEMASTER_HERO )
5 ?; Z% T+ c- T$ [* F- R' \: i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 m: d" k" L( b3 o3 l b3 _) K2 t
$ C5 W Q6 g9 Y' @: L ( ( CUser*)this)->CreateItem( &itemelem, &nID );# `* \# K% g. I) l; A% {
}' e) I8 X3 I3 w0 ` \# E5 Q$ z) e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
O3 H& ]# ?5 m/ `, i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ f3 X6 \% B! j6 P7 V) T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( t9 l) ^; C/ J3 i
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ w& Z. s: e) f3 k ( (CUser*)this )->AddTaskBar();*/
/ a L& H1 Z) s B/ g' F4 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' t9 ?2 W6 z3 f, F6 E* m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 f: n# r5 m0 k2 L g ((CUser*)this)->CheckHonorStat();+ {: i% [4 D8 I: y* ^( O
((CUser*)this)->AddHonorListAck();
$ _$ d# x, l, Q% X( e g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 A! n. x; q7 w$ z#endif // __HONORABLE_TITLE // ′Tà?
3 w5 L( _! Z r: k& W }. X5 ?* q6 e$ i3 T
#endif // __WORLDSERVER* H1 O8 w: Q% B
}
4 F* A, N. u' G. \0 _8 y& G6 f/ S0 ~! G" e0 F( S
然后你进入functextcmd.cpp并添加以下
+ E1 g# @/ \& x) B: s: {. ?, L }$ I0 E6 w" ?
代码:
- e% |# b1 V3 g; |1 n! B wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* @, i+ {& ~0 w( ^2 ]下面插入
' m- Q& {1 L+ ]6 n$ j1 H! L6 hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 Y2 W6 |7 F' q1 J3 b
1 U& v" }2 U4 v9 I$ K) C% H. u) `% I
然后你去
" L$ M2 V6 j4 p! f8 {/ j- a* x) N0 Q7 w
代码:9 }' l: c7 G9 a9 z
代码" j" V/ F( ^5 m4 U4 \ ~
BOOL TextCmd_ClearPropose( CScanner & s ): v. K V# c5 Z7 j+ R
{5 X5 b: P1 f2 Y8 g
#ifdef __WORLDSERVER9 A' n( j' \( {! i
CUser* pUser = (CUser*)s.dwValue;$ o" x- j9 A* l+ n, d
g_dpDBClient.SendClearPropose();
' l- Z1 i& e' _" I; @#endif // __WORLDSERVER8 ]8 _" W7 U7 q/ H( I. o7 }
return TRUE;
8 g, X- r. u% }- O9 _3 M( B}
y f% o" p) W7 G下面插入8 K9 F7 \; x5 e0 @( A+ g8 t% x
BOOL TextCmd_rebirth( CScanner& scanner )
: @1 h2 U/ E( ^5 C! i, f B6 ^{0 W6 L# S# k* s! G$ R
#ifdef __WORLDSERVER x4 N& p6 x. ^9 s) @
CUser *pUser;' |, s; X0 b0 d7 O& W
pUser = (CUser*)scanner.dwValue;
7 f# ^) `1 Q) B2 T8 }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; V( F& v7 _6 d! ]* LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: [8 F: A( ^7 W6 `0 n' u. s. r
else9 E! k# S" O' x* }: \
pUser->AddText("你还未达到重生条件!");
' Z+ G& ], p6 m2 F$ @#endif
2 G J+ _- C- ?" |return TRUE;4 z: o% g- D7 z6 w1 Z/ W9 U
} 9 c/ Y( y/ B2 {3 e
8 R: R* C% n S3 [
$ X+ d, \% ]0 m% P8 C5 z1 p& z7 E4 |
7 s# n0 U! P- u* l! n
|
|