|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* M' w7 D# A% S% C+ C' [% b/ D+ Z6 J: m
Mover.h
$ K8 h( q/ p. M& X+ o0 ?: J代码:
9 g) b7 i) d, P. K7 d找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 ]/ n4 [2 a& d5 L: ^
/ X' \- u" x; p# M8 ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 R. w* ]1 g" ^) o m9 ]) J0 |
7 R/ g, |: `; r3 t; i# i
然后你去mover.cpp添加3 P% |! t/ f# w2 |$ w, |
. v$ K5 d" ]" P S' \
代码:. {$ B- v$ f8 F$ r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: g5 L& C/ n! j/ Q; A{- j w- \) I% ?# q
#ifdef __WORLDSERVER8 ]5 J& V9 @- [% T6 p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 W0 y$ g7 d% `4 ] u MoverProp* pProp = GetProp();9 F2 d5 I0 q' O! H
if( pProp )
( L" ?! t, m" L2 B" r# q7 i {3 L. i) B4 \! c+ e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% S0 y" c" F I' o
{
7 }) \3 b1 y4 c4 N. w3 V( w7 q: U2 s AddChangeJob( nJob );
1 u* W8 V# Z G, f, d7 M9 e4 ^9 r }else{* g5 P; ~4 G" n* c$ I
return;
8 N) e% W/ \5 n2 x% g- v' J s0 l } K5 G- n% K' Y1 u/ r
int nPoint = 0; m8 E% t$ c O( p- f0 P
if( m_nJob == JOB_MERCENARY )
6 v0 Y+ a" K9 X nPoint += 40;3 X4 k" a' W5 M& b% `# J
else if( m_nJob == JOB_ACROBAT )" x$ J2 i5 ]; m* M
nPoint += 50;
/ J3 P4 \1 Z" R6 J0 ~2 m) E else if( m_nJob == JOB_ASSIST )
- k9 \" W3 {, b) B( K8 } nPoint += 60;2 \* @' N9 M' q* S5 C4 y5 r8 T( A* ^
else if( m_nJob == JOB_MAGICIAN )
" E: ~" S& w& J. O: }, w nPoint += 90;
2 g0 |$ w ^7 A9 u else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 o- o. ?+ x! m( X# I nPoint += 120;" x6 i) W4 c j" c+ B) }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 ]% S- F M+ p3 L9 a) {+ K nPoint += 150;/ g) h0 }" H- N A3 s8 ^- }
else if( m_nJob == JOB_RINGMASTER )
$ g/ u4 h! G2 d nPoint += 160;+ c! K: X0 `& s+ O+ n
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& e4 d+ s& j4 J
nPoint += 180;
" v$ h0 o9 Y5 l* H- N# S else if( m_nJob == JOB_ELEMENTOR ): _5 [* A7 K) A$ }+ G1 Y
nPoint += 390;
7 s B+ z+ {6 s- R. T4 g else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 }/ w: }. A7 U5 }3 h nPoint += 120;9 r, j, ]4 ?1 w3 g. j' [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& E: a) ?$ l T/ A$ L# x8 {1 _ nPoint += 150;- g# S: N! n- b b% W
else if( nJob == JOB_FLORIST_HERO )) l; }, ~. \% G% u. ~
nPoint += 160;
' J, s6 w, V% R) }3 }" m1 g& J4 @4 m& b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" y, |" R3 a7 p/ C nPoint += 180;0 i+ [2 k- ~' o, l& i. x1 z/ T
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 d% r& F. G) M% F, L% M nPoint += 390;& n. N/ h6 r8 x8 M3 s
, }5 T. n) x/ x) f8 H$ P2 K AddSkillPoint( nPoint );
+ o9 F0 R/ [9 m m_nLevel = nLevel;7 l6 c2 h! ~; L- F0 {3 U: b
- ~3 h* A) o1 p% {+ r2 ^! ?
SetJobLevel( nLevel, nJob );
4 S* P9 Y% j5 V; Z) O m_nDeathLevel = nLevel;
1 I! H, \: Q( T, ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans U- p7 c- ^! A/ N
if(IsMaster())4 k+ H& M/ C$ s, E4 B* O
{4 S, r& a( [8 t, W. H# ?0 ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- a. E& L4 t+ b# u8 y& w5 m0 Y
if( nLevel > 59 && nLevel < 72 )
# H4 X% m7 @. o) |5 ^# ?% | dwTmpSkLevel = 1;
' P" U/ t+ I3 D8 x0 O) n: M( O else if( nLevel > 71 && nLevel < 84 )1 W3 t! B2 _9 z5 ~3 Z" r# j/ U
dwTmpSkLevel = 2;
% @3 j! E* N0 h! W, [- V" F0 k else if( nLevel > 83 && nLevel < 96 )
c/ q) s; Q# n- s9 T4 n dwTmpSkLevel = 3;
0 T6 s( ~6 \! p3 e9 Y8 i1 [ else if( nLevel > 95 && nLevel < 108 )4 s: m! n, U1 v
dwTmpSkLevel = 4;
6 b& L0 ^0 `* U) z/ q else if( nLevel > 107 && nLevel < 120 )
3 p6 x7 f) e; Q dwTmpSkLevel = 5;
6 a# S* a7 @7 F9 w* k/ G6 i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 c( u+ b2 @( K1 z. L1 j9 N- l9 \
{
3 A' l$ F. y) w B8 q LPSKILL lpSkill = &(m_aJobSkill);
7 j( P3 r! O# }7 ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 ~9 [% j2 K8 \% ~1 T {4 e* }* S* J- L3 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); q. w) ~; A) Z& x# d
if( pSkillProp == NULL )9 n% t4 L" Y" d- T( @
continue;2 L, P" G& v5 h3 R A; _' u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! J1 y1 p9 l- |4 m7 t" } continue;
3 Y; @6 t% M5 W% |* K2 X2 s lpSkill->dwLevel = dwTmpSkLevel;; [; A! s/ m8 ^4 J1 ?3 O
}5 |: z B" Z5 K- r- x
}* D& G9 c+ n0 `( }* E- A: @0 W
}
1 G& @% Y4 K) u1 z. k9 { else if(IsHero())
" `( {, s% o$ ] d6 S( ?/ j; e6 P6 ?; N5 W {
. A0 R4 W9 e) h for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 q1 T; h2 g& [2 [% [, L! o
{
' h9 z0 W5 k( `* E LPSKILL lpSkill = &(m_aJobSkill);
& m$ K! C( N w9 I" w* b if( lpSkill && lpSkill->dwSkill != NULL_ID )" ^( E# p9 d2 q# b# ]7 J% B
{
% X2 U c L+ s0 w) C0 X9 g( \8 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ P. {* s! `, y4 b' `$ z4 ?0 s
if( pSkillProp == NULL ) [; P% m1 q* q& K7 k
continue;$ A w9 `7 K. D. l: H! {5 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 Y/ ^; d1 n% l0 \5 N$ E. S1 w* _
continue;
. I( K. N5 J5 x2 |7 W, _ lpSkill->dwLevel = 5;
. z% a. e* O4 p, g }
0 P* K. H: C+ R }+ Y/ |8 m3 a* u9 C: z
}1 n- S# P% Y6 l7 @6 Y
else if(IsLegendHero())( J" V7 B% v4 q$ X
{
3 e) S2 j; l4 m8 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) " p5 Z9 U+ R5 v' Q* z0 l, U4 W; P
{ ( J# W3 _! m$ g( N& W0 O
LPSKILL lpSkill = &(m_aJobSkill);1 A' i n+ E$ A* D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 Z# ~" `4 t/ g4 U0 H {3 H% I$ |& q' o6 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 y5 c5 j) y3 p% a3 A if( pSkillProp == NULL )8 ^$ ]$ g1 Y" B$ @
continue;8 e/ s6 {6 N, k3 }4 s# \: g5 j5 i/ {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& c8 q' b6 C' \
continue;1 A: S" W( n0 G# \. t
lpSkill->dwLevel = 5;
7 z9 y+ ]$ e, e0 j. K6 M } z5 K/ E! q& Y5 r6 f
}
- j/ X [0 V9 O/ k! W- ?+ ^ }+ F5 `+ s' a2 {* S' v+ k. j% V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ H; s" z5 x! [3 h: I if( bGamma )
: Z6 ?, K$ Q1 K. s, L/ k {
; }8 R9 F: G. Z! C, R. j m_nExp1 = 0;9 C! D5 V, K6 G
}
P& h" O8 ~+ F3 e1 c% h. k) w; z% ~' n
( (CUser*)this )->AddSetChangeJob( nJob );$ A8 E- D0 O4 c2 ] a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 X' K5 Y6 m8 j" q7 K# d( j0 o+ @8 l# u: C; l) V1 V
: t" B# U4 T" n#if __VER >= 11 // __SYS_PLAYER_DATA
6 j0 K# b: D9 g( G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; f; V5 x' t- ^$ e. [& ]* K% x, e#else // __SYS_PLAYER_DATA4 u U+ l! F1 }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" R3 z% g/ }: R' e+ j0 A g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 h+ h# L4 q9 ^/ V# c
if( m_idGuild != 0 )! L0 H3 m9 r" \( M* Q, Y8 S \2 o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ i8 f: Z- h! q& _$ A$ S7 D1 p$ P
#endif // __SYS_PLAYER_DATA
2 H0 }; I) e( U B SetHitPoint( GetMaxHitPoint() ); }- v. N/ K9 s9 }0 ]
SetManaPoint( GetMaxManaPoint() );7 |4 I; k. {" W) ^
SetFatiguePoint( GetMaxFatiguePoint() );( T! ?4 P" ~1 }) U1 S9 p2 a
if( nJob >= 1 && nJob <= 4 )8 a$ H6 [4 b" w, ?! U
{
; k. h' R: j( H6 S" G& ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
: c7 l" R! O: Y2 Y/ F2 v m_nRemainGP = 28;
/ U3 y+ k% T. D1 B. H4 @* W }
{8 i6 U5 H) C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( c O. a, s. z& V {- N& l8 K+ r1 [8 J0 d( g7 K
m_nRemainGP = 118;
* h+ J& m0 b( t6 n$ D% F1 r //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 z( |. N3 f9 P m_nStr = m_nSta = m_nDex = m_nInt = 15;' k h0 T, k& S y" k3 _- u
}
$ h' d0 P9 f8 ~. {8 R if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- G3 R: S7 o! V
{
/ s7 T7 }, u3 _$ y( J CItemElem itemelem;) e5 m; y5 g& ~7 |" U" L4 c/ ^
itemelem.m_nItemNum = 1;+ [/ H, u8 A/ F% l/ [+ e
itemelem.m_bCharged = TRUE;
3 s: z7 `$ b" G- b4 { BYTE nID;
- I* x8 Y6 Y0 ^2 o5 S; u
- L3 X0 M7 F5 `# m& Z7 q if( nJob == JOB_MENTALIST_HERO )
- G9 k$ Q6 D& R- E2 k) o) e- D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& g( h3 [0 f/ {8 ]& r- t
if( nJob == JOB_FORCEMASTER_HERO )' q0 K& Q# t8 S( O8 H' r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( }1 C( Q; \/ }& G$ E4 K$ O1 f* \- M( H9 p5 W' \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 T2 T% [7 p! p' O( r4 j; e }/ C! @" {' Y: z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. n( f+ F8 f. {5 I2 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 e0 L p7 h D2 c5 ^9 F( B8 H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ S) c0 `" t# ?, x9 s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: D: e' P0 z, A7 m0 W ( (CUser*)this )->AddTaskBar();*/
5 D( j1 U" Q5 _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); Q2 f }8 f; E& q! R, J* U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: @! R" t$ |$ b( l3 ^0 }
((CUser*)this)->CheckHonorStat();1 h4 k) x7 a$ G" Q3 P/ R! Q1 i
((CUser*)this)->AddHonorListAck();$ Y! H) r" d0 I# U$ j7 S
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 E" [# w6 F- H* x1 X#endif // __HONORABLE_TITLE // ′Tà?0 S4 u; \7 r7 N6 n- s5 T+ p, a. I
}) D5 v4 D" n2 y7 S0 K+ X( p6 V6 ]5 i
#endif // __WORLDSERVER
& I! o1 }4 ^" B} ( l) G2 o, ~$ c' P
3 i: j7 h' Q0 D; u6 i0 X [) Z然后你进入functextcmd.cpp并添加以下" B {. L9 Y8 I! ^; w3 c
' a( R* G z+ E. K* K# h( f8 F
代码:$ K0 |: Z' i0 v5 P0 V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" q. M" H' Y) K# A! N' X下面插入4 C' p) a. [# C2 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 o) a1 t* u9 g8 G& ?) C8 i
8 X h* J J5 [然后你去
9 L4 c! }/ {' `* S
$ G0 g) Y. k. k# p" e4 F代码:- q d" `9 e0 ?2 c
代码9 c, c% O) h! c6 ~* @
BOOL TextCmd_ClearPropose( CScanner & s )2 D; Q4 l# b% Q0 t
{
$ ]( R+ ? O6 i* V. J#ifdef __WORLDSERVER
. k% F# F8 y3 I% m: U; B3 m CUser* pUser = (CUser*)s.dwValue;
@$ T+ {2 }/ u3 {7 F- T g_dpDBClient.SendClearPropose();
" a4 o$ ~1 m7 B: V#endif // __WORLDSERVER; S. s' v6 t; G7 x& D
return TRUE;! b v/ e" e3 U& g' ^3 Z# h
}
X$ \6 h7 T# p6 r下面插入6 j+ K' G# V/ d# d
BOOL TextCmd_rebirth( CScanner& scanner )
' S/ m: T7 `. N% n; ]{
( k7 m$ r: W7 I#ifdef __WORLDSERVER- Q# U' ^4 g; S% ~; p
CUser *pUser;
' q- R: {, X5 f2 S) F; Y( }+ UpUser = (CUser*)scanner.dwValue;; ?& ]. U! v3 `' p9 y5 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- Z3 R% G* [# q. g" K6 ?
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( e0 A; v. h9 S/ o- _- \else$ B; x, ~: p! b- K/ V
pUser->AddText("你还未达到重生条件!");8 Y! `; b+ F. g$ n# {4 z$ U
#endif
# k$ z/ X. V" u4 ?: `1 Y7 Oreturn TRUE;$ v6 O# b/ e; C0 w2 n4 J2 V
} z a. G, t' L4 Z5 }
& p" U0 h. P. T& |& y
: s: u8 V' I8 B; x0 h
4 f0 b0 ^8 l8 H; _* i
# x/ I9 n2 P6 o: D) D5 g& `% H( _" d |
|