|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ G8 [" z1 D0 F, u+ d# }0 S: j% U& o9 z! Y" d/ {. t! x. b# n
Mover.h
9 p0 `2 X0 X+ \. ~0 [; `代码:
4 o4 \+ g& J/ d& V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# }+ ?9 Q5 y5 c9 ?% s% r1 [- g
, p% d2 d. B n& n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; @4 ~4 S. V) d
. }- w9 D4 x1 I6 ` y: I l# U! K; n
然后你去mover.cpp添加4 r6 |3 |' V) {5 e [" I
$ q: T7 K' `8 F1 e8 h# ~. ^7 n3 t代码:: ~, m: `: e% U( n+ l$ s/ r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 P8 r- W& }+ U3 d+ j: Q
{/ p& h" i. S/ Y: m
#ifdef __WORLDSERVER7 e; A6 {3 `6 A+ `! s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 s0 y( r* t# \) K S( u6 Q& D, J MoverProp* pProp = GetProp();
' I, \+ C6 j2 u { if( pProp )
" I* Y |0 l7 b/ n {# e8 |, P# F# j0 Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" }+ W, ^/ V8 u0 F! X5 @. \4 |& m {- i5 b+ Q: X# E% C0 G2 t9 J
AddChangeJob( nJob );
- R9 B8 h$ o4 w3 y$ A2 K: G }else{! M P6 q: R! ^6 L9 C# b1 J) F
return; x6 c# S( e9 j
}8 h) o& M" B) V2 I$ B" n. |0 }- A& b( i
int nPoint = 0;
0 m1 b4 r3 L. K5 i7 F- h$ O, c$ n if( m_nJob == JOB_MERCENARY )
9 }" N, \9 L4 A0 v( e' m nPoint += 40;
* }# x& r0 C- i2 A0 t else if( m_nJob == JOB_ACROBAT )
8 L/ d3 f) O' Y: E9 B nPoint += 50;
" l- t) g3 b" K. {" C else if( m_nJob == JOB_ASSIST )+ g! m" E1 y) ?. q8 n: I
nPoint += 60; a7 Y0 Y7 g4 ^% p( G2 X+ w: J
else if( m_nJob == JOB_MAGICIAN )7 K, U$ E$ q% [ u( O; G& {
nPoint += 90;6 }8 A; f! z# _4 a) x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 N, z2 k2 ^1 m' ? nPoint += 120;. K/ B. S Q+ ? l: M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# F u& B5 e0 d. f
nPoint += 150;# ^: f1 j5 X: ?8 K; Z
else if( m_nJob == JOB_RINGMASTER )
) A$ Y% Y' A% H2 e7 o: R3 v nPoint += 160;
* t3 g/ L2 I$ u% R7 N else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 p+ p2 v( _/ t# C$ n
nPoint += 180;
, C$ {6 j, q6 U, P; y$ {% h else if( m_nJob == JOB_ELEMENTOR )* J+ a' l) ^5 i: M' e' q3 K
nPoint += 390;! M$ Z& o4 @" z# P* o6 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ `6 t' k+ h/ b, B9 F) n
nPoint += 120;
( ~' Q, {8 p" `1 ~1 _8 S" b else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
[& e: w8 r8 c( R! M nPoint += 150;! D3 V& G0 y5 \) |7 `/ t7 h
else if( nJob == JOB_FLORIST_HERO )
; J. P9 f: l, F+ X z! R/ N2 j nPoint += 160;
% m, a# M+ r$ B else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& F, [2 o& I( F$ X nPoint += 180;3 ]) a" y1 ?9 G# w5 ?
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ M% I+ U; Q3 _1 o nPoint += 390;
( L! |/ [! X2 g- d6 q4 b- p
% E/ ^3 _/ x: `* ^ AddSkillPoint( nPoint ); I8 c) V0 d/ r z' _1 Z
m_nLevel = nLevel;+ I. `/ e+ E9 ^8 L" ]7 F
# e! z& w' ]) i- ~" d SetJobLevel( nLevel, nJob );$ A& r1 D+ }* N: B3 T
m_nDeathLevel = nLevel;6 v0 [/ C& Y# Z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ |- A/ c; I6 R8 R if(IsMaster())7 Q9 N6 v$ u7 V$ l% @
{
: e8 y$ T; t9 L, A) [. c/ ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) `3 K% A: W( z s. W6 F* l if( nLevel > 59 && nLevel < 72 )& g* c# Q" i' o6 {* L$ ~4 Q% k
dwTmpSkLevel = 1;* i2 _# }$ \+ e2 ]4 `5 S
else if( nLevel > 71 && nLevel < 84 )
9 D" ?" X$ L* e* k dwTmpSkLevel = 2;
2 T% h) A& ?4 d/ J Y& W9 Q; G else if( nLevel > 83 && nLevel < 96 )! f1 o! r; D0 `8 o% I1 v- W) d
dwTmpSkLevel = 3;
: f g4 S' W3 `+ D2 [ else if( nLevel > 95 && nLevel < 108 )
: y! G/ |! u( h t' X* f2 O* ^9 ~ dwTmpSkLevel = 4;
7 e) {. I$ o. Q x0 m else if( nLevel > 107 && nLevel < 120 )
~& X8 s% c) E2 Z8 u/ B dwTmpSkLevel = 5;& q4 }: `' T0 f5 ^3 s) l p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 M% R T5 ]" l7 N2 ]7 e { . k% L- ]3 ?4 g" w
LPSKILL lpSkill = &(m_aJobSkill);
% ]5 {9 ] j3 {% o Y; u if( lpSkill && lpSkill->dwSkill != NULL_ID )% f: o6 y* @" S( @' l
{' Y4 L# `; l& T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* d6 p- Y: o" G+ b4 E+ B8 K if( pSkillProp == NULL )1 d! @& O- j9 j1 t+ m# d
continue;3 h2 P$ x+ f0 T: B* G' h0 @: a2 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& v& Z3 A! Z7 G5 e- z/ O continue;4 A. r" p& P# ^5 v
lpSkill->dwLevel = dwTmpSkLevel;
) T- f5 m* m% o1 z/ P/ ~- }3 O3 D }+ j; v% W* c2 m5 G: R7 q3 ]; ^
}0 K! N, Y* O6 Z5 |( ~
}
5 ^) a+ F i. \$ X# e* t1 N% K else if(IsHero())
! W+ W& v$ Y: T+ r! k {" i- p! |3 r' w1 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . n! b. S" h- @* U+ C- I
{
) a8 A; P3 ?+ G. R& ~+ G Z' k LPSKILL lpSkill = &(m_aJobSkill);7 U0 i; H' J$ v+ z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, S3 K- [& g3 E# d$ E& ?" Q% [ {3 v. t" h# z* F, R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * t- {- b, w; s6 a1 S
if( pSkillProp == NULL )
4 Z. O; g+ B; X9 i5 _/ o" K; K continue;5 b8 u" _# D! Y4 a! j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). c' ~3 t2 T8 b8 |
continue;
; ^6 }- c) z/ y) g& G* K8 ^6 @7 A# H# S lpSkill->dwLevel = 5;
! z' B3 Y0 v6 k$ z) E } H+ M p/ B" _ f* o- c
}
; @$ y5 ]4 {# i3 D5 `/ H }
* Y s! |! q5 n' h' @! a else if(IsLegendHero())# _- l; O ?- [- A* C& O0 ?' ?7 @6 j: F
{ t5 u% ?" V% Z+ b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 c) C2 f1 C+ _. J {
! z* T3 p( F3 y. V LPSKILL lpSkill = &(m_aJobSkill);
; Y, n! X$ ]/ y if( lpSkill && lpSkill->dwSkill != NULL_ID )( x! p; }2 W3 k; y* T
{
0 w: e0 a2 J* G& w1 V$ d$ w& k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- E( z8 ^% z+ ]2 E if( pSkillProp == NULL )
- h. u* `: S* M) l! S1 H$ _ continue;
3 G! B) k, T6 [! j7 q' L7 L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
^9 a* w' G* y2 y8 M/ D( U! s continue;
( ?5 G" |' O& Y" S lpSkill->dwLevel = 5;8 ~! Y/ R$ {% h5 o# f. }
}
2 ^: j: \' d/ z# S }
$ f" ]6 \% T! D }
7 j% c7 {& {2 E3 [#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ t6 j" C0 ^, X. B5 q8 }( { if( bGamma )% u) @' z2 s) U, d _) {- V
{
$ p Q* m$ I* \2 |0 y m_nExp1 = 0;
0 Q' a( @+ Z/ G4 y: j }7 P$ u& M9 V0 l F
q# Y* \3 E( S5 m& Z4 U ( (CUser*)this )->AddSetChangeJob( nJob );
. S- z |' v" _ P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 Z. Q) I' N8 g5 P Z& h+ t1 x" f0 e7 E7 ], Y1 M
8 o6 j. t; U7 Z7 S2 V" a: ]3 G5 T0 ]#if __VER >= 11 // __SYS_PLAYER_DATA2 W1 k- F0 W8 i2 h6 h: X) u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' Y: s3 Q6 N8 m0 A1 }#else // __SYS_PLAYER_DATA
2 L. I7 k5 J7 b# P# g g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" ]: S# x3 r5 M$ B# O& s6 m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
p C. X, z( [& A( e: q- O( i if( m_idGuild != 0 )8 J: @2 ~( p! W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( ~/ e8 T' I2 J. |#endif // __SYS_PLAYER_DATA+ d; C0 k8 u M; z+ f
SetHitPoint( GetMaxHitPoint() );, T: t$ z+ ~% U4 n
SetManaPoint( GetMaxManaPoint() );6 ^' ~# }+ t) R/ }1 p
SetFatiguePoint( GetMaxFatiguePoint() );
5 g) X& [7 N) y$ z* Z' j if( nJob >= 1 && nJob <= 4 )1 g6 w: j2 } f% n- Z
{
+ G- J2 Y0 @0 ? m_nStr = m_nSta = m_nDex = m_nInt = 15;+ [' n4 M; |. ?) `0 T" n& p) m0 _! {, r
m_nRemainGP = 28;9 M% n8 D& m) q5 R' [( N1 }
}
; h7 P( }* L! }$ p& d3 C; f" t) d, i if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* i2 O4 P9 K3 h5 K9 } {
" t% i# }3 e- d7 S% K5 n m_nRemainGP = 118;- p( b, y$ p% x) V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& f" s+ r8 M: \7 E m_nStr = m_nSta = m_nDex = m_nInt = 15;0 ]9 t( F+ l( U7 ] U3 b$ k( Q
}1 m! @( z8 m7 n. \% }0 @1 P: I* ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. A/ b2 @% D U( p2 i; s/ B {
' }- e5 w8 S+ F6 w CItemElem itemelem;/ Z, W1 {/ Z8 p p( c% {
itemelem.m_nItemNum = 1;
. w3 p! N( Z* J2 }: M" Y' ?* z itemelem.m_bCharged = TRUE;) H2 N) E" `$ A" t0 f
BYTE nID;& S, i4 r; j5 \ `
4 ?: b! C! M1 j- R- L3 u8 Y
if( nJob == JOB_MENTALIST_HERO )
; ~1 S. ^% z5 E3 l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 R5 U4 ?) X* c ~+ \ if( nJob == JOB_FORCEMASTER_HERO )
7 N! ~, H. Z; y3 d) M# l9 i# @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ b/ v8 W" O/ R' F. u$ [ p/ D6 Y( W/ `/ a* ~/ I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ i% X- Y% X- k d$ {/ k }, X. c# ~! y/ h) w" D
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 u, Y3 B" K8 i1 _- M
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 C& M# V% l; d; N; o: G( f8 @8 F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* p. u' X! j4 G8 Y0 P- y7 s. B' X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% Q" \. w$ B( G& ~0 K3 \& T ( (CUser*)this )->AddTaskBar();*/0 I. \9 f. i& P2 V$ y( k+ o$ J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; M/ C5 c- J0 V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 x) P1 @+ ^) ~/ b* q6 ` ((CUser*)this)->CheckHonorStat();4 O. T {6 t; ?/ ^2 p% y
((CUser*)this)->AddHonorListAck();" ~+ Q% p4 R- \& h* x! f% P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- Q2 p6 g. W7 @7 N' U#endif // __HONORABLE_TITLE // ′Tà?0 T- c5 [- m }/ X3 Q, |- R
}! v+ A3 y+ z1 t' T! W
#endif // __WORLDSERVER
/ A+ B/ Y2 @0 e( R$ j- g0 }} 2 E2 {8 [% }7 g( @! w' H
5 J6 `: I5 }% f! n5 X然后你进入functextcmd.cpp并添加以下
, j5 O8 a% d- l1 v a, W: i) o' g2 V9 s9 H$ S( Y1 N
代码:- L c3 E$ q% N; }" W0 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 ?. Q% m# a4 g6 I( C" ~下面插入
- J' v; V8 A, }4 OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 W4 Z9 C% x2 P! D' @; F" o- p& Y! ~" U' p9 L' D
然后你去
4 }3 V" j9 j8 L6 @ K9 ~) W" o L
" N8 Q5 |1 F1 R% K7 J代码:
, s! q- m0 y! Q# h7 e7 |代码4 s7 H* E. t% j" i
BOOL TextCmd_ClearPropose( CScanner & s )
1 f$ w0 }* F, @2 s5 ]- {& _5 M6 j2 ?{
2 Y2 @& H" x7 O ?( d1 ~2 E$ b- j#ifdef __WORLDSERVER
% I6 J. e" l, b) s CUser* pUser = (CUser*)s.dwValue;
# G. |4 M5 I! \! t+ L" W7 D g_dpDBClient.SendClearPropose();, p0 M' o- C5 Q4 R. |/ f
#endif // __WORLDSERVER
+ K" i0 T. B- Z4 W7 M) p4 J3 u5 T return TRUE;
& F+ e' k I* b# l* A) N}
/ \0 Q L7 F( h9 S& a4 t下面插入& o: f5 m9 ~( U" `8 i- d& T0 h4 H5 Y
BOOL TextCmd_rebirth( CScanner& scanner )6 p% B( |- v1 d* F6 X
{8 m* @. O3 b* T+ W
#ifdef __WORLDSERVER% z; [. f/ q; O+ `) L
CUser *pUser;
. f; _7 W. F- K+ d$ apUser = (CUser*)scanner.dwValue;) q/ M% c! j& B8 [/ ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% f0 W/ P5 p+ p: U$ q! [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& A, t. ], |/ U' [! Z' T
else
; u/ s5 h2 Y8 q M7 @$ H% t: W" q. h( kpUser->AddText("你还未达到重生条件!");
$ u) z5 O$ c' c2 C" j w/ J8 \#endif
' `5 R: ^+ W. N9 Y3 Yreturn TRUE;
5 Z8 a- d! o [! } q. K} 2 O7 g s4 K3 Z5 [5 B$ b! F. T: j
" X/ A$ F( [% v; ?* `3 [$ X
' E3 M+ Z8 t4 N1 k- t& C4 ]. z- b6 f
: ~4 P4 L1 ~ V5 Q1 p7 C' a" v |
|