|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 ?6 t/ m$ c/ ~2 P4 r& j
/ ]5 b6 i9 N6 H3 zMover.h& k1 L" Z: P D- N, }
代码:
$ \. V0 ]2 ] O- V" E$ o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* A- K9 E% l* r% |
& A3 e6 d0 R/ e3 V R下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " _3 Q/ a* [1 t, L) t+ c+ ~, e( s
; G& h& B# Q0 t- p然后你去mover.cpp添加
; }! A6 u/ e0 {: q: g5 f1 C
3 k0 ~1 S' h% p2 p9 t: e* a代码:1 E* Q! w2 j4 f8 ~$ T* ]7 O, F$ ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 b- V, ]+ A2 N& c% ~0 j6 e: M
{
3 x& N0 a# D3 B: A! ]#ifdef __WORLDSERVER
& P, f! s; U; U" D+ d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' T- @& Y. W* i1 m2 _0 u& F9 R
MoverProp* pProp = GetProp();
% v. Y3 E3 G- u if( pProp )
; k, o6 M3 U, Y; h( m0 K {
1 ], \, l' D7 n7 o$ W5 c/ _+ N if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: g' G* Y! b- h {& z. m4 {- t9 l2 U& Q$ D6 }; K
AddChangeJob( nJob );5 y+ W: G4 k" P9 Y, p$ P
}else{
2 u6 d! i" T/ Y6 r8 n$ H, J return;
) }7 d. ~! D6 O. `( G2 @ }
) t. T4 x) v. j! t" Q2 p int nPoint = 0;
4 p& t0 J- E; ~; w# Q% { if( m_nJob == JOB_MERCENARY )
( m3 \5 d6 J8 o2 D nPoint += 40;
4 r, |* k) l, R q/ i0 v* m* I else if( m_nJob == JOB_ACROBAT )) O2 `: y: V3 C1 x3 {5 }4 g5 ]
nPoint += 50;2 C; @, B( p$ q8 R" ]
else if( m_nJob == JOB_ASSIST )
( C+ t: \6 J6 `! \1 s& @ nPoint += 60;
+ l7 S; s" x8 S5 S! S/ g else if( m_nJob == JOB_MAGICIAN )8 n6 \' p( o9 Z$ ~
nPoint += 90;8 a' y$ @7 D1 f% _$ A' _, y, R
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 c+ Q+ S" x! T: d+ K
nPoint += 120;; ?8 d% c( e0 H. b2 C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! j3 l" E: z B" P& J nPoint += 150;
$ x* \: @, Q3 D7 o else if( m_nJob == JOB_RINGMASTER )
% M, V) Q5 |+ M1 L4 z% @4 @9 c; G* A nPoint += 160;
- [5 O3 R9 R! P8 ^; T \$ o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
K% F: @0 D0 N2 S" t, T* v2 \ nPoint += 180;
5 S4 Y' ?! U5 x; v. d& I else if( m_nJob == JOB_ELEMENTOR )6 F% p0 C5 A, f5 S0 p
nPoint += 390;, l! }3 T, y: s4 [0 D. Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* K8 z( X0 P) w, I. W+ O+ d: \ nPoint += 120;0 u4 o5 H+ K# j1 N; {' j; {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ p& P$ k: f/ s: e0 s4 d
nPoint += 150;
6 i; U' A2 S2 c4 r$ K1 ^/ t else if( nJob == JOB_FLORIST_HERO )' L5 ?3 e; @! l1 z" _
nPoint += 160;# R# I& S7 c! t! B% o3 o: N! T4 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( f$ m/ \8 X% o9 {3 ^3 o9 W" D
nPoint += 180;
% M! R4 u7 x+ q else if( nJob == JOB_ELEMENTORLORD_HERO )
* {( ]& Z! e/ S7 C( P nPoint += 390;
$ F5 n9 x1 z) X: Z$ M# v7 x7 A2 f5 F7 F {% y( A0 F
AddSkillPoint( nPoint );& e# A' y9 v2 L4 b' O7 I
m_nLevel = nLevel;
- w* {. u: V7 Q! l; ~1 c8 c+ ~; Q# v+ Z/ Q) s
SetJobLevel( nLevel, nJob );! E( Y) p @% ~1 m. S3 j' V
m_nDeathLevel = nLevel;- M1 z3 R K; ^9 }1 C/ a2 ]4 x- _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 Y) c* \4 _# K- i U) d
if(IsMaster())( k9 x- m: C' d$ x
{
V* M9 u: H' r6 A6 B2 [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 Y. b3 v, s/ Y, q7 D
if( nLevel > 59 && nLevel < 72 )/ i6 Q1 H! b. p5 G
dwTmpSkLevel = 1;
8 u3 Z$ ]$ i4 c! c' G else if( nLevel > 71 && nLevel < 84 )& } X2 D7 L3 ?7 Z
dwTmpSkLevel = 2;
* H; G2 ]7 K' Y else if( nLevel > 83 && nLevel < 96 )
& Z+ U$ ?/ D( k dwTmpSkLevel = 3;
# N/ l7 o/ K0 L else if( nLevel > 95 && nLevel < 108 )
( s7 e) N3 T, v3 e8 b0 g" P( i7 F dwTmpSkLevel = 4;8 M1 A6 Y9 t1 `) t4 G k0 \* B, \
else if( nLevel > 107 && nLevel < 120 )' X2 G. p) x0 m. u7 x: j$ n" m$ P
dwTmpSkLevel = 5;
* V& ]7 a. C% ^9 U for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 w# A: ]; j) v
{ " X7 l3 `5 [5 \
LPSKILL lpSkill = &(m_aJobSkill);
/ o0 t$ R. ?& K5 k, a3 n if( lpSkill && lpSkill->dwSkill != NULL_ID )6 J1 I2 m1 w, u! @
{
* N! F/ @& `. V& O h' c3 ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); f# _' r# q% c0 V+ k
if( pSkillProp == NULL )8 z' W i% M' g' {' I0 R) ?! X- Y
continue;
3 w5 a7 ^! G% E8 ~$ {0 t4 m; S% Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" _; c' L+ f$ l8 \* w+ Y. z
continue;
5 m4 Y/ ^6 d# d: s2 V lpSkill->dwLevel = dwTmpSkLevel;
" L( V% L j5 |1 h }& d1 w7 b4 I2 f' O% U. L
}* m; d, Y3 S3 p. P7 c
}
# C! Z" J) Q* W8 U% @! A1 y0 J1 @ else if(IsHero())
" O3 Z6 [! L T0 y. ` {( Y! j. z# }- @. f# ~+ B' e! ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; X, l& C: i1 [9 _, z( y% O { ) T# [: \" Z4 X0 m; E0 M) f+ X
LPSKILL lpSkill = &(m_aJobSkill);
+ \9 X% }8 n4 Z$ U if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 a0 n" W$ h* ]% k$ t% S2 c {/ F# W) q( G. e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 o8 T) _* R9 N, d/ R# G7 ?3 K if( pSkillProp == NULL )3 O; ~0 k6 ], ?, e9 _& j
continue;
# { J- {; J4 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ h6 M# w! `6 u' K( X$ J, E7 ^0 G9 b" _
continue;2 q. C* T& ]7 G
lpSkill->dwLevel = 5;
& f% k8 |2 p) v( u. h, ~, \ }
/ `4 G+ |% ]) t" ]# t }! a; j- H! T0 ~% {) n$ q
}
) t1 [+ V* [5 i. \' v else if(IsLegendHero()). D) y$ y) i2 i# r& c8 }/ q
{
3 c0 g) Z. d/ n6 x; c for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ a! q5 M9 x6 \4 y5 v$ ^
{
4 Y& h c4 Z8 ]. S( C0 [1 @ LPSKILL lpSkill = &(m_aJobSkill);1 v' \$ y4 d( J9 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )- i* P# A" n" o. X S
{
' C. c Y/ y# E3 u+ p( V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + a4 F) X% E) g8 U2 D* |3 f
if( pSkillProp == NULL )
! r6 q1 ]! g1 e4 W continue;
$ N0 l% M' z q. I2 ?1 r9 d8 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 o) H4 i5 r+ I# Q% s continue;3 ^( b# n: a9 G2 v/ m
lpSkill->dwLevel = 5;3 f- k" } G1 L5 ^& S/ m9 [. _3 j& C
}/ v3 s `: x/ c" o! {* N% U, c
}$ p8 m. P0 G/ m% U2 l e9 C
}4 f h+ E1 c* f, Y# A1 c, {- p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 t4 m+ P7 i4 e6 m! c
if( bGamma )
7 P# w" E4 w+ r) G; V6 n, j {
* t7 ]/ C" ~. V$ ]/ S. _ m_nExp1 = 0;; V9 U7 P# [' l0 _) ^; B% O
}
+ H# W9 |' O. e [$ \8 [% X. I
* F X# I8 ]" l4 u7 D) R ( (CUser*)this )->AddSetChangeJob( nJob );" P2 O3 c, a9 ~, q" u T/ o
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" O4 N6 I& M" z
7 H; b* P6 i9 x# T
) u$ `2 Q t: i$ Y#if __VER >= 11 // __SYS_PLAYER_DATA
& f$ w, h' Z8 b3 Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 [- I" C' S$ ?0 F- R9 G9 D' \
#else // __SYS_PLAYER_DATA, I6 p% z/ Y. ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 x5 \- V- \+ x5 l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 @& B* d5 X# O8 Z if( m_idGuild != 0 )
6 @2 p7 x0 h% b, ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; L4 w2 \# _+ E& `" ]#endif // __SYS_PLAYER_DATA# W9 ~2 F: G N- G, R6 T3 z
SetHitPoint( GetMaxHitPoint() );
: o& h" O) m7 } R' U SetManaPoint( GetMaxManaPoint() );$ C6 b) t" K1 B7 H6 r* ^
SetFatiguePoint( GetMaxFatiguePoint() );
" N7 G. U! Q W, ^. ] if( nJob >= 1 && nJob <= 4 )% s- k! G% b6 y. D
{
2 F( J, }3 V1 g7 i- a! _% x* }7 [ m_nStr = m_nSta = m_nDex = m_nInt = 15;9 C6 }' _; ]% U. @2 t' p7 h
m_nRemainGP = 28;, j! Q6 p2 m! G2 |% j
}: j* P& { g- W. U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! t0 p( `% {6 d- ?& y6 l {
1 ?3 M2 Z# w( q8 s+ c% q m_nRemainGP = 118;
, Q+ a) {" j9 P1 X1 \* N. G9 r1 I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 l G/ o3 q3 l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( R) ~) i4 |# E* O7 l/ g6 F7 W9 ^ }
1 ^+ y1 S U }+ q: J, U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 g3 h$ h4 W1 q! g {, N0 e* [( f/ d
CItemElem itemelem;7 Q, g( V6 d" N
itemelem.m_nItemNum = 1;
1 Z$ s. z& L7 Q8 g: F itemelem.m_bCharged = TRUE;% L4 ^& F& @- b2 v8 |, S0 R, O( z0 l) N
BYTE nID;
; q1 _, D& N" c3 \/ G
) k9 @3 m& f- v& x3 u: `0 s* Z) j5 f if( nJob == JOB_MENTALIST_HERO )
% S6 F& { I1 Q! B' p. G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' K9 m$ w9 h2 {/ T: Z2 Y6 R if( nJob == JOB_FORCEMASTER_HERO )1 m6 L8 \) v$ Y" H. A, g8 q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! {" R4 m3 p8 x8 H, z
& u; [7 L2 Z' o3 e. n/ W
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 _; V# k1 |: b" `; U
}
( V- r5 E. t9 X: p8 p1 T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% D$ \8 _* Z& z, t8 A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; J5 P/ q4 J& S, ~, J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- C& ~% i5 Y( a% g8 ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 x6 F/ d, o; q$ u$ C
( (CUser*)this )->AddTaskBar();*/2 k/ d% U4 t7 T% w3 b: l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 t# [( I7 P' Z/ d8 I) [! c5 N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! {* `! m J" Y% {8 y: e- U ((CUser*)this)->CheckHonorStat();* T B$ y# l5 v7 u
((CUser*)this)->AddHonorListAck();, h' Y3 @- D7 A# h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" a5 D( t% ]9 T7 C6 f#endif // __HONORABLE_TITLE // ′Tà?
# j5 ?9 \( `/ R7 {) a% y }
) k8 i" f8 A) V4 M/ j/ @/ a#endif // __WORLDSERVER% b# }) f3 K' r5 P& q6 o3 q) }
}
% W, e8 c8 _1 F# E7 }& Z# Q! j( m; I
& g7 j- h3 { Z然后你进入functextcmd.cpp并添加以下
% ?$ w$ |7 A( g! d- p
, ]/ C9 T2 b5 {2 D! x6 k% {1 |代码:; x4 A1 K/ `; [% \: g6 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( l3 J* G/ S# c下面插入
$ A' Z5 e% P# ?* tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 W7 [4 \! @ n5 |( C- O4 L2 x y
8 s8 J5 V6 u% F; L6 O1 W/ M+ U然后你去
+ [$ J3 H' r. s/ M
( L3 Z# X0 {. e# V# r( j( \1 r代码:1 R. @& n& `' m) q5 |
代码
3 W/ T8 N- o9 J1 qBOOL TextCmd_ClearPropose( CScanner & s )
/ D A# C( X5 W/ U3 X! v; A{. ?2 u$ U" [. q; R: u
#ifdef __WORLDSERVER
' [$ i" `, y5 K# W3 Z' w CUser* pUser = (CUser*)s.dwValue;
3 b# ?/ d/ Z+ B* `- Q- c, P g_dpDBClient.SendClearPropose();, V6 D8 a% I: |0 @( i) C
#endif // __WORLDSERVER# q) u& K7 E! D( n
return TRUE;
4 N9 R1 i! ?) G! V' V' V" {( d}' K& `1 Q k9 [4 l
下面插入# d# j3 v% T! M0 E- z
BOOL TextCmd_rebirth( CScanner& scanner )
5 |# ]8 p# o9 ?& z$ c( Q1 N{# H" ~$ W. i! T% A: z
#ifdef __WORLDSERVER
/ ^$ I k4 E9 D" L0 jCUser *pUser;
2 r4 s* V, W- a+ a! JpUser = (CUser*)scanner.dwValue;
9 W4 @" E0 Z" z' x3 j1 Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 T7 b9 m! g4 ?pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ c N2 J: k$ P: Z2 u9 g% m( ~. I
else6 L& a! W' ^- S4 R/ B- e' T
pUser->AddText("你还未达到重生条件!");* P" g% b U! @* n) N
#endif8 l3 w! {# c- m* L
return TRUE;
2 Y& H$ A6 D1 s/ h3 h) E} 7 p5 f1 h) I; N0 \
6 M2 D" [9 E, p6 u- A1 I
3 g1 `8 M9 V. ~3 _3 H& U8 i* l t) t+ x, ~. J
$ x: d" s' X6 a. J5 Y |
|