|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel i+ _; P$ B% D, S# t# ~
' K$ a( B h- o: w6 v w+ e! a9 r2 A0 s- YMover.h4 O/ Z! [9 \1 \! W$ p
代码:+ L& P- C) v6 T$ C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 v' [* e: r; ]- j( x- y
4 D; ~# M" c8 j! r! N; V& {下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & t9 G1 y% g, p
1 O+ c) P& S ?: X
然后你去mover.cpp添加
1 H: M& R1 G2 `% c" w
; Z7 J: \; M1 ~4 W2 @1 r" ~0 m+ b代码:
0 b3 f' H6 \, ]1 z; [$ Y9 Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% W, n7 r+ n* J3 }; k+ _8 o
{
2 w, Q; w( g+ z |& x% M#ifdef __WORLDSERVER5 W3 _. x; i# Y; ]: M$ `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) w+ a: b, E. K {' T( m
MoverProp* pProp = GetProp(); i' m9 g- u2 h; \2 T3 i. ^
if( pProp )
+ T% o+ _* U- d" U( N0 E% M9 ^4 A {6 c7 o8 E# T% j8 n/ }7 G/ q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 x. r5 q* i: B* ` h
{
/ i7 W+ Y( \. Q" ~! c AddChangeJob( nJob );
6 K" e% o$ V& v# H8 }# Y2 G }else{
% E. I/ P) _3 |( G( e. f) w return;
. E6 O- B. X. v9 Z9 _$ _ }7 d: g/ e, b9 p' q
int nPoint = 0;
/ Z# U1 j) m+ u% d( u) } if( m_nJob == JOB_MERCENARY )
6 k7 U' K& e6 H' u- d5 q- o nPoint += 40;
# e+ h+ }% J. T8 e) B. z3 s8 U else if( m_nJob == JOB_ACROBAT )
6 h7 ~; |- e c ^ ` nPoint += 50;6 H' B/ q7 K8 p
else if( m_nJob == JOB_ASSIST )1 e2 ` E% T4 Z0 R7 _# R
nPoint += 60;' S; v5 U, G# G
else if( m_nJob == JOB_MAGICIAN )6 G9 w0 T, _7 r+ E- }; W$ \. ]+ T
nPoint += 90;
: h9 L' d) w3 m5 T" K8 }7 }) P& l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% ]) R5 L5 K" R, t$ W
nPoint += 120;% x: p: {$ B% v1 g* y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): ^$ ^) J ~" e3 W
nPoint += 150;9 k$ `' W" u6 o$ a
else if( m_nJob == JOB_RINGMASTER )
' p% s$ N' ?- l) z3 b4 } nPoint += 160;/ h8 p5 e1 T1 i; |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* r% E+ b+ ^4 X+ ~
nPoint += 180;" D5 [: m4 w' `# Y, J# E' {/ ]
else if( m_nJob == JOB_ELEMENTOR )$ u$ ?/ X! k* @" j) f& I
nPoint += 390;! [! d0 z5 S8 L2 v9 Y" c% N
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
u- J# {) Z- |& C( [ nPoint += 120;
' [3 ^8 R- D- _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) n- X1 J! ]' E6 k a
nPoint += 150;+ l& ~" C, ^ J* e4 h
else if( nJob == JOB_FLORIST_HERO )
- y+ B/ Z" D3 q5 k* |- S nPoint += 160;: |* g; l/ F/ M: k2 @' ~# A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 U$ B9 P7 p$ G; J, z
nPoint += 180;& h# Y% H( c+ G: V8 j. [% f
else if( nJob == JOB_ELEMENTORLORD_HERO )
0 S3 N. ?0 J6 ^8 B0 A nPoint += 390;
& `5 f' P% u( K# Y
( x6 s0 X4 J; T$ m h R4 C5 p AddSkillPoint( nPoint );& H/ p; P3 Q2 J& k( \
m_nLevel = nLevel;% h, V4 d8 |3 p- W9 }
1 Q) w1 i; ~3 P SetJobLevel( nLevel, nJob );5 G' c% i) U; f- n0 d. G
m_nDeathLevel = nLevel;1 R# f" G' H q X1 l6 k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 u' W! }. h" r/ A) O$ R
if(IsMaster()) C4 e; }/ ^& f1 k
{
+ u. A; U/ u& G) B5 J5 q( m int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. t$ j4 x6 ?; N' w if( nLevel > 59 && nLevel < 72 )3 k0 _2 {4 c/ Z) l9 r: C: u- L
dwTmpSkLevel = 1;: r1 b$ D3 x5 C$ |1 O% d
else if( nLevel > 71 && nLevel < 84 )9 J! |% Q4 Z7 o9 n# a
dwTmpSkLevel = 2;
# D6 T% w0 K, X7 ^; u/ K( Q, g* m else if( nLevel > 83 && nLevel < 96 )2 b. v: J5 }3 i" i8 N" z
dwTmpSkLevel = 3;
# b" x% ~" V- X+ {7 }7 |+ r' o* l( g else if( nLevel > 95 && nLevel < 108 )
# O5 ?0 L x) |. X/ w9 g' v9 } dwTmpSkLevel = 4;
$ `8 S7 B3 H4 \ else if( nLevel > 107 && nLevel < 120 )
) a: N! g5 ?: _ dwTmpSkLevel = 5;
2 P) e# M1 B' z' S/ E1 i for( int i = 0; i < MAX_SKILL_JOB; i++ )
* A$ l0 ]7 r+ ]/ u! N) J! u {
9 |" U, Y& k) { r1 U3 ~ LPSKILL lpSkill = &(m_aJobSkill);9 A* b/ x3 F- S0 z# D. m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
Y. R' ~: g ] {1 U5 G/ r* v- T) [- s4 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , I, F& g. @% m% a3 i
if( pSkillProp == NULL )% c9 u. Z) G, d! M( {& Y* v/ A- C* M
continue;
) i* P5 g8 P. ^$ q1 _$ ~- z# K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% L3 H6 v5 J: J continue;/ n# |4 E& Q3 e$ `# Z- x& V
lpSkill->dwLevel = dwTmpSkLevel;
+ ? q. n0 ?) o' F }& u k0 n( ?5 ~+ X& x
}
7 W0 F2 x7 `/ R( F6 ?1 { }
( u/ J/ _) k( h. g; |. s else if(IsHero())' @, _- Q/ X, U6 d5 o! \
{6 Z2 C# Q# u) C# I% \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! p6 E; _# Z4 K B; q9 f+ V
{ ) j' \+ `3 I: @: x8 e
LPSKILL lpSkill = &(m_aJobSkill);/ b; p2 J T$ M' |% ^( W) L6 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 j# \7 l( W; r! ?6 A$ A {' u( o1 Q( z) X \9 C6 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 V8 c' J* }# u3 f+ t2 ?9 o b& b
if( pSkillProp == NULL )+ s0 Q& V! U; f0 f$ S9 I
continue;$ D9 Z0 R. W* T. B9 D3 `( @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& J" B2 l* h( d! j' e/ f$ Q- s continue;# z3 i3 ^% Q: x! ]
lpSkill->dwLevel = 5;0 V6 f s- u1 ]& t7 w5 u& U5 T0 x/ d
}
, G6 E8 Z8 R/ u3 \ }# L; X8 t; T/ i/ {. v. R
}0 E0 e x1 p2 ^' }
else if(IsLegendHero()), |; [! D2 H/ A& Z4 S \
{
* i- K( L& ?1 f: B4 w" ~: ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 q8 t2 g# n6 @' D; v, _* d {
6 R0 l1 ^: E! S3 |+ S" c+ f5 C LPSKILL lpSkill = &(m_aJobSkill);% O: M R/ r1 H% U( T9 g9 E, h5 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" \1 L2 ]% x) ], G: I2 o {
; T& M( P$ e5 b" ~6 d; Q: y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ M0 s$ @4 y3 _2 t if( pSkillProp == NULL )1 d6 | P4 T" ]7 M1 R+ S
continue;, K9 ?) }' v z9 Y" h8 o) J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, a E9 x2 y- F: l( X' a continue;6 f, \' H6 R& K3 z
lpSkill->dwLevel = 5;
4 m! B5 V# i' j% n) L% a4 d1 l }
- ? S! R* G8 o. C) l) v- c }" U. Z" F4 s* ]" ^8 `# Q& o5 T) W% z
}
4 T) q1 B2 K) t/ Y2 |2 V6 y* L+ s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 B( E* F3 P1 S7 G' i7 { if( bGamma )
: C1 z* y0 H& a$ f2 V* R- [ {! ^* u, }) q3 l7 k
m_nExp1 = 0;0 O- j d9 l3 K; v1 }
}8 m8 N# C* c# X- H+ Q$ ]
; }5 y! r7 q/ p Y
( (CUser*)this )->AddSetChangeJob( nJob );
|- r W) U& T- E7 S+ F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 m6 I i. l2 @' \4 B5 b
6 j* e& u& p3 C& h/ \6 h
, N8 u1 O$ T+ {- w. }
#if __VER >= 11 // __SYS_PLAYER_DATA
- S# w; b& s& X+ P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: p( U+ a1 S! {2 ^: T& ]7 ]#else // __SYS_PLAYER_DATA6 e8 N# D; j" `
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 j1 E O) G$ t& F1 |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 ~* C, u5 l/ x$ H, o* E if( m_idGuild != 0 )
" L% _4 x1 s' [6 N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# Q5 q+ K9 Z8 [
#endif // __SYS_PLAYER_DATA' F J- E1 q% C$ a2 h
SetHitPoint( GetMaxHitPoint() );( ]4 N+ U8 }# I% w' Y$ J
SetManaPoint( GetMaxManaPoint() );
) E5 y& @9 j+ F; a1 o5 c SetFatiguePoint( GetMaxFatiguePoint() );0 [. f4 A! C$ A% M
if( nJob >= 1 && nJob <= 4 )( Q) ]; G+ Y0 W2 m" W8 u
{
7 J6 N- h9 X: B8 D m_nStr = m_nSta = m_nDex = m_nInt = 15;: E% D& V" h5 a& {' H- n0 ?
m_nRemainGP = 28;; f4 }7 R/ r0 |) ?
}
! f7 r( ]6 _; s0 r/ V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. u a5 o; M/ ]2 l4 h {
6 ^- m# F! a/ l1 W" w& O m_nRemainGP = 118;
T4 w6 B+ d6 p- @& Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: R( X5 I! D; k2 ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;' o' Y% e/ }) S Q
} _4 i* ]+ V( D: Q" `* a) c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* w3 L# [7 B! z1 Y3 i5 g* {" r/ B {& X6 p0 `& O5 Z. e+ o
CItemElem itemelem;
% E4 Q! G6 k. t; R' G itemelem.m_nItemNum = 1;3 O, ]+ a% |4 V8 G7 X
itemelem.m_bCharged = TRUE;( \1 b3 e7 B8 Y' ]1 Z, g; G. `
BYTE nID;
. @" u. A& Y: c6 E6 b* G7 R6 H {! F5 }: N o
if( nJob == JOB_MENTALIST_HERO )% `0 ~! J% H5 u; @: T L
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 J/ ]" p$ f1 r! }" y if( nJob == JOB_FORCEMASTER_HERO )
, H7 E6 y: H$ c* \+ X, A Y& C itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 {* {# \) m/ [& l' I( F; E
; c/ `' n' J+ u ^, U ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 q" _( y) x) ~3 A1 q' Y6 }7 `3 T
}
7 G8 C6 A) I a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 \' r7 B2 c1 C) K% ?
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 H' m# U* f' o; V4 A& ~ H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 q& ^. p6 c* c4 e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: A* U/ D/ Y3 N. |3 c! p H ( (CUser*)this )->AddTaskBar();*/6 Q% O/ {; L. e' {8 y j7 K$ A* N
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( @) L! z" _5 b- O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# R$ S. h7 w5 @; o
((CUser*)this)->CheckHonorStat();
+ f) W% H4 p$ m$ ]6 w ((CUser*)this)->AddHonorListAck();
; |# {; |* ]: t4 t( y% } g_UserMng.AddHonorTitleChange( this, m_nHonor);+ _; A( O6 U2 m* Z# v3 {
#endif // __HONORABLE_TITLE // ′Tà?. ^6 V9 D- U4 t
}2 @, i) K' U) H& s' u& F2 Q8 m
#endif // __WORLDSERVER' Z7 D+ P& p" E( @1 W5 a
}
( @# L$ N% S# r' o
4 \( @+ z+ R- {+ J v' {8 {; s4 P然后你进入functextcmd.cpp并添加以下
: y9 b5 F! u% ~$ ]5 m
5 o) c/ g( h, U4 K3 w代码:
: \# P: e* d) ?3 o2 a7 wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" P7 z; W! w! D" m7 z! v" J k. S0 T下面插入
4 f7 ^% Y$ }8 j5 s9 M8 G lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* Q0 G1 S6 o3 g; s5 y2 @: Y& }7 A i7 ?" y2 |
然后你去6 ]7 M: H0 x- n. v
, g5 Z# u- n5 P代码:
; h: ~9 b ~" w* H! S代码0 H' T; \* ?! _9 x* j
BOOL TextCmd_ClearPropose( CScanner & s )
+ }: i8 E: P3 H{
6 q6 [# V: _' _+ R# h: s#ifdef __WORLDSERVER) W. Z" {6 O5 K! ~/ O5 S& {
CUser* pUser = (CUser*)s.dwValue;; |8 M% _# Q$ w& Q+ g0 u( [
g_dpDBClient.SendClearPropose();
' U7 O& G8 G; x& g+ D#endif // __WORLDSERVER
+ h% w8 R# @! V7 w9 ^6 W return TRUE;7 `1 |/ B6 r& Q: S
}
4 ]( ^% J$ @, V% h6 G下面插入4 G" d" n+ O6 x
BOOL TextCmd_rebirth( CScanner& scanner )- g4 z' l7 ]1 S4 Y4 ^
{" v, @: z$ O% q+ r) M& H A
#ifdef __WORLDSERVER
+ F, c! i! w3 O+ N! hCUser *pUser;
$ O2 m( w, t% e+ T# F# N2 YpUser = (CUser*)scanner.dwValue;
y/ M: f; j/ S: f! I3 hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 z, v7 _; Y& V* b8 ]
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 b. E) g6 p$ p, c# u; ]
else
: T& W" j- g" v, V, r* E: SpUser->AddText("你还未达到重生条件!");
# Q2 Z, N- Z0 A' Q- x3 M% I: {#endif) ^ Q9 x1 I: n$ P1 a8 S0 t
return TRUE;
) g. R! @7 _- _5 x8 m}
& C5 r" h2 i* r$ @) p0 |$ z/ I' J" S9 C
! Q# m: f3 n# _% \# d) K) C
" f; O5 L) P+ R# B' [, G( d# C0 n# I: f* E3 O/ h+ n- @3 N2 e
|
|