|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 H: S6 T5 w" l+ j3 R) r
8 J8 d* t3 b# B" D
Mover.h
& c7 t0 k V/ {$ Z z2 X. a代码:" v; Y% o$ ~5 p I6 b5 v. e6 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 ^% j1 A9 S) o5 A4 y
# N3 O6 |8 x) ^& E9 _& B& t' L/ B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # w. I7 }: P% W& V
6 @+ }6 r x' ]* B2 _
然后你去mover.cpp添加
# I. _3 n& {+ s4 J! a [* Q$ Q s
# i |# w- Z x代码:
: Z3 f+ O8 e- n5 S& svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 L; q$ ?: G/ v* e7 [0 R{" \( E( q. Y& A. p8 h* e: K0 d
#ifdef __WORLDSERVER
* G! S J, L. o" P4 U# J# {6 ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- W5 d5 w$ U" L, ^) Y. f# A8 o- g! S& }
MoverProp* pProp = GetProp();: l4 B) ^' b1 x t5 E& i2 `
if( pProp ). ~9 i2 N+ f; Z2 X
{$ p. z0 w7 f5 q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 A- X2 d: x7 ^1 O, r! s {
3 d# |3 H5 M3 t) N AddChangeJob( nJob );7 G1 W& s' a; _- F+ r2 N" G
}else{& {7 l/ N2 N; I' a t3 B
return;" ~% p1 T; z9 x- w3 C
}
/ |' M5 s/ K: S& U0 {4 c V' K int nPoint = 0;
- B+ I( c% }& U! ^0 g7 a% N if( m_nJob == JOB_MERCENARY )
; }2 N4 Z5 C: }1 _& a nPoint += 40; q9 X& U6 x$ M+ A! O: f T
else if( m_nJob == JOB_ACROBAT )1 c4 _. N' P( ?$ y
nPoint += 50;
2 Y& L) {8 U! } else if( m_nJob == JOB_ASSIST )
! V5 j" [( c: e$ |$ t3 @5 Y4 {: J nPoint += 60;
( M) ?7 x6 x+ c& O! z& t* I else if( m_nJob == JOB_MAGICIAN )% e3 v P! z4 y& P
nPoint += 90;
) C l, U$ ]* j7 w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
l3 d+ D! O1 F r. |2 L nPoint += 120;
! b- B, w3 e$ y$ x- | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- |6 H: d$ H9 H& \% L
nPoint += 150;/ Y' A" k; ]0 J
else if( m_nJob == JOB_RINGMASTER )
! t6 E9 R/ o$ f nPoint += 160;
: i3 c' u5 b# V+ a else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( M @6 e+ h8 j# }' w9 |6 X nPoint += 180;. T- Y0 a; K5 {1 ^; R# x
else if( m_nJob == JOB_ELEMENTOR )8 C/ ], F; O' A. g! W) a
nPoint += 390;
+ A: q( H3 W% V% B, }+ T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ ?+ ]3 G: ]3 z u, K/ n0 p
nPoint += 120;
i$ G% g3 d j/ z% y" J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( S, L! @. ?* M; r nPoint += 150;+ r: }5 d2 V! m
else if( nJob == JOB_FLORIST_HERO )& h" k: z) i& s: o
nPoint += 160;$ @. Z* ]* P( R; X* e, I1 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. z5 s0 F" z6 d* N w' ~' }: F nPoint += 180;
; J6 y" }+ h5 k; G# P: _ else if( nJob == JOB_ELEMENTORLORD_HERO )! p& ^9 w7 \3 x8 p0 o
nPoint += 390;: G; D7 x" S* q, _0 [
0 L6 D0 a: u6 R6 M# f; H* f2 M
AddSkillPoint( nPoint );
. G$ K0 i' K. k8 j3 \) w m_nLevel = nLevel;4 f& \# \ N% V. V6 s
+ i4 J3 k( x% Z' ? SetJobLevel( nLevel, nJob );
( W) d1 j Q: r0 N9 e" C: n( W m_nDeathLevel = nLevel;5 K+ A0 i1 t& C, q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' N; t4 M& I+ R, D if(IsMaster())
/ t' [# p& R* J3 ]' n7 M2 I {
# i* V* L% C q3 `: R+ c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- d/ u8 o5 P7 _/ T8 h3 f) b if( nLevel > 59 && nLevel < 72 )
9 I; F3 V1 z `9 w. t dwTmpSkLevel = 1;+ O3 }1 p t1 v) N
else if( nLevel > 71 && nLevel < 84 )
# D" G, w* ?3 ^4 |/ o* H dwTmpSkLevel = 2;
+ x' R; S8 r" p8 `/ u else if( nLevel > 83 && nLevel < 96 )1 |3 D. r2 p& E! w( F; r; w
dwTmpSkLevel = 3;7 B7 m9 w% p- O0 @
else if( nLevel > 95 && nLevel < 108 )4 M1 G; Y% y" L! a. O
dwTmpSkLevel = 4;
% d# E! P. g' a9 @ B else if( nLevel > 107 && nLevel < 120 )5 K" W' r/ g! V( J: w* \
dwTmpSkLevel = 5;
. T6 v- M3 q0 n7 O4 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
, Z! [. Q* b" j+ u, K; @ { " i! T& D2 h9 v3 z+ ~* R" T
LPSKILL lpSkill = &(m_aJobSkill);" [$ e' C- h9 R+ c8 y9 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 u& s: g/ G+ ^5 e {3 U/ Q% q3 j) F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ Y0 b |2 I. I' u6 U6 Q1 P4 l5 z0 c if( pSkillProp == NULL )* P/ W& p: t2 F% D) C# D: E8 ]
continue;
4 Z: O* i( ]. i- ^, { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& L9 ?. l# n3 X
continue;
; h" ^- S3 E1 K. `! o% L; [ lpSkill->dwLevel = dwTmpSkLevel;4 i. C- W2 }6 K. v( P
}! B6 t2 G* m3 t9 L' n8 Z
}! ~3 ~: P) _/ o W) H0 C
}8 X" P1 F; H' H9 d( S
else if(IsHero())( g1 Q! a0 {; R" K, C) y2 B7 B
{* m$ S- T0 d G. j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: v1 C6 w0 d9 b# E2 E { % I; D# ]3 L/ O; G+ W' W
LPSKILL lpSkill = &(m_aJobSkill);4 x4 \: I% R) W6 O: C+ _( r# M
if( lpSkill && lpSkill->dwSkill != NULL_ID )- }/ w0 H$ N+ ]7 E5 P
{
: ^6 ~; ?8 r- w' V- l) R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ J: }6 a6 k4 K0 i
if( pSkillProp == NULL )
* `$ Z: a* {7 S: \6 H: P- S+ K continue;
- G1 D0 }9 k6 D9 L4 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ C# r8 r0 L8 y2 H% C
continue;
3 G* T1 _$ ?+ ^5 j7 N8 f1 T lpSkill->dwLevel = 5;
, x6 B( D1 J& B9 N* w6 c }! f/ x( ]; ?/ q! B
}2 s6 ]4 X4 I5 E
}
& U$ Y" t7 d2 D0 d4 ~, | else if(IsLegendHero())
: m( _/ J# X: O r5 D2 L& { {
e% D7 `2 @' g: W for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 |6 V4 @8 D9 F, g { ) t' L8 V$ {3 {5 ]" w
LPSKILL lpSkill = &(m_aJobSkill);' E, G7 A1 ?6 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )) ]: I+ U' Z& C, B$ n6 {
{
* |% M$ z+ K# z( O2 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, n$ |# k7 j$ I( ?# b4 ]4 C7 L# { if( pSkillProp == NULL )2 J# o4 n% d t1 E3 y
continue;7 o3 S* q9 ~4 W7 x7 q8 k6 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ r/ o* x6 j5 r6 }8 P8 K% p
continue;! y2 z1 _/ z; H6 g
lpSkill->dwLevel = 5;
+ J7 b0 Q3 z. q7 Q8 x/ P }8 s: d2 W+ G4 N9 Y" B
}
5 i; {: {& }) C5 r0 N }
9 E# e1 u* n* j% i" u( v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 k) b2 G* K! h2 t; ?8 v, A
if( bGamma )" M+ W# @4 i% b: ~& T
{6 O }6 @4 P2 [4 O8 n! e
m_nExp1 = 0;
3 t5 j. R! [! n+ s: j5 z5 @ }4 ^- t& E4 {! P/ P# r' f
0 R9 j- \ c' J/ p6 D: D* q6 d
( (CUser*)this )->AddSetChangeJob( nJob );4 H. g: N& B) T9 k" [
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 O# z' K1 Y% W/ K/ l) ?, t7 y
5 W) D& N/ a0 y$ W8 l9 n0 y) P#if __VER >= 11 // __SYS_PLAYER_DATA
9 y4 D! e* E* D0 d( ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 T/ ~* \1 L' H- U- ^#else // __SYS_PLAYER_DATA
1 J" q+ ^, ]% ~; x' ~) E4 W4 R% e5 m g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 ] ?6 l7 \5 v8 c
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# a+ q3 V" S `& I* [! z: K1 e* l if( m_idGuild != 0 )$ a* X1 a$ `, Q7 [+ R( F# [
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- s8 d# W7 M8 o9 E/ a6 E C#endif // __SYS_PLAYER_DATA* P. r& |8 j T# B b* A
SetHitPoint( GetMaxHitPoint() );
+ i9 m z% Y( v- R/ r9 z3 O$ Z SetManaPoint( GetMaxManaPoint() ); A" A+ Q. X# P) H, V6 ^
SetFatiguePoint( GetMaxFatiguePoint() );
/ P+ W- ?, m0 u( h% O, u) N if( nJob >= 1 && nJob <= 4 )
8 J$ M- `- \. d) K {+ Q- H2 _' ^& R/ n9 S$ z' Q' V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
U( m) C* q$ J* Q3 i! _ m_nRemainGP = 28;
. o* M+ n8 e/ _. S- K! {; | }
' \$ L" V% I$ n: ?3 S% p3 v D4 g" r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
g( H! ~" m) s8 D1 I& u7 A/ w( w3 | {0 u* l1 N- J; c% h0 z# A3 M
m_nRemainGP = 118;" t# G0 Y4 ?! c+ _* L) m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 w+ U$ h' p4 f5 ^7 i$ e; ^. j9 c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 Y3 o- N6 H- S }! l6 |6 C' k' b# I8 D8 J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 J1 Q. O8 c p; j) v( ^1 k6 r- U {
8 p2 R* n& b" J CItemElem itemelem;
# E- V4 ^/ |9 z6 j. \5 r6 h* ]( m itemelem.m_nItemNum = 1;
! ?! e9 m6 V6 [; X1 c* R- t itemelem.m_bCharged = TRUE;
* F9 O: E9 G. s2 q2 @ BYTE nID;
* d+ L& h" V6 x2 _0 {2 n% W; r! x" z0 ^, ]; r
if( nJob == JOB_MENTALIST_HERO )& X* x- d( }+ b, [- [" u3 f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ G7 ?# W) H( S* c' y if( nJob == JOB_FORCEMASTER_HERO )% T9 {4 x* T' a1 T) o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: h# a# ]6 l$ F9 N
) Z- S' k- @1 y. @) G* g ( ( CUser*)this)->CreateItem( &itemelem, &nID );: u- R. J; I; v/ \5 [5 e6 n/ p7 x" j
}! A( T' T9 d8 L e: s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% w& G5 ~" I/ | ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ a' _) ^* c$ j: M& i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& s. G/ ^, H! s& _% M /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" Q8 G, c5 w/ L- {; O. \9 i
( (CUser*)this )->AddTaskBar();*/- z0 t- M. n9 Z0 i: E1 k5 M$ I6 A2 ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- O: I! K3 v5 l5 ?#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. K" r, ^9 h" c3 O& w2 ~0 @
((CUser*)this)->CheckHonorStat();
+ y2 B: h. E$ q, g ((CUser*)this)->AddHonorListAck();- C& b% a, L5 k" }" k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 ?3 C+ v0 J8 @" h#endif // __HONORABLE_TITLE // ′Tà?
/ f ?( i7 ^2 Z+ \! X }
) [4 e, Q2 o' c% {: D' p+ Z: F#endif // __WORLDSERVER
) T7 e3 _0 u: {! b$ L R}
! J! y8 a g& ]
- o/ J7 O$ f; e5 g然后你进入functextcmd.cpp并添加以下
, M* F# U# V5 H z }
: Q) _5 [8 r# [, m代码:
( l$ L; X% ~( _8 {* {' Z2 ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, p( q" m9 X/ P! y- G下面插入
# G/ {3 g( h; s1 uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ g# Q7 t3 b9 G* s, @4 p X4 U: m" f, E! J2 _) U. `3 k0 z1 Q5 u9 R
然后你去
; E- A. Q) A( G( {( F$ u0 c( e. \" |: u9 \
代码:4 T+ o( M( U' o% L1 @
代码4 p* w4 M0 C V g
BOOL TextCmd_ClearPropose( CScanner & s )7 u+ t0 q- H' f8 b
{
" J1 @: i- h& d8 {8 s+ _#ifdef __WORLDSERVER# @( ~( ]* F4 I) y2 _
CUser* pUser = (CUser*)s.dwValue;5 H" D1 e: [) S9 S9 X3 S; k: b
g_dpDBClient.SendClearPropose();
2 p* `' ^0 T/ z# D#endif // __WORLDSERVER0 e! ]2 S+ T" | q" b8 f
return TRUE;
+ x- f4 _) v; U/ j5 }# B}
) n( f9 Z3 U9 y9 ~( e( E4 X下面插入; x. ?* X8 \( c9 r8 {. Y3 n* j% o
BOOL TextCmd_rebirth( CScanner& scanner )
" x$ j- L: g0 |, R y! L8 ]{
$ W$ l3 j. l2 ^' j#ifdef __WORLDSERVER
, d% U0 m5 i6 A* L4 oCUser *pUser;
1 y- l+ q! K8 kpUser = (CUser*)scanner.dwValue;
( w3 {% f4 x, M5 hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 Z: \8 T" a4 ~$ s7 x+ X2 u" ~pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ d; F8 L+ S4 x* Z. }% jelse6 v; F. X: E! k) }3 Q
pUser->AddText("你还未达到重生条件!");
) f6 ~6 y4 Z) G% q2 H* f5 J4 x, j, M: `#endif
9 ~7 w3 R/ E9 J" Qreturn TRUE;
$ Z# S, K2 | C# s! c; y}
' L4 G' J6 L5 R$ p) w) T
8 e5 w7 `8 X. a3 S3 }/ {8 V1 E& @# ~7 ]5 _+ I* L; [# w$ a
9 e1 i1 n8 Y+ A. l8 v; x4 G
/ V/ E! d' K- e: Y2 ]4 S$ ]
|
|