|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ g: h- h) a8 S6 q1 J
- ]0 p# j1 K$ H5 }5 U9 D1 W2 [" T
Mover.h
. v1 g% z4 y, o3 h* Y代码:9 T3 B! n; K3 R* E9 g! {9 L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: M0 U/ k- X4 k, _& |
- F. n1 r! H+ `7 Z( q8 ]8 }" W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : q! x$ @+ t1 A: P8 e
4 \" X6 v2 A! W6 U/ h; i7 N
然后你去mover.cpp添加6 m i% [- f2 Q1 s
- I' e" C8 l- y; ^6 O/ H
代码:* Q5 n5 \: N% P) A+ Z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ Z C; }+ l: |, P; D) Y
{6 U; F+ T" V }% m( { v; ^! i) ]
#ifdef __WORLDSERVER. W# Q9 Z) L8 y; e$ m. R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 g3 @4 M/ j: @3 k MoverProp* pProp = GetProp();
3 f% a9 m- l8 H. X8 F$ ^( A if( pProp )' a3 q. w( \+ ^- ~- o+ Z S P# {
{
( ~ ?4 w: `% y4 i8 D: y6 r! _9 ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ |& i& [6 Q0 X5 T- l {; p7 X' Y# J2 j! P% T! ] W- k. q
AddChangeJob( nJob );
4 ^2 C5 ]! G; M0 E5 F }else{
& _+ u, ~) w" ^+ s( M return;
( J2 ~$ ~: h& t% C }
% i Z4 e# m0 N+ R3 I6 \ int nPoint = 0;, X3 A1 a; I1 g, k
if( m_nJob == JOB_MERCENARY )
% a; ~) w v* V+ d) O+ P8 G nPoint += 40;: H7 C4 l) D0 g5 ^
else if( m_nJob == JOB_ACROBAT )
, a. V( S/ U5 u) ?$ R: e nPoint += 50;$ f4 W( e( R' g% m* j
else if( m_nJob == JOB_ASSIST ) E# i' Y/ z& g. y
nPoint += 60;9 c( G0 b% F5 ~1 T/ ]
else if( m_nJob == JOB_MAGICIAN )+ ]. g6 T( a4 ?) S0 W" X3 d
nPoint += 90;- t7 a/ ~5 B) C0 N& F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: v# R0 J3 b' P4 H+ w# Q$ p nPoint += 120;
8 t \: c# `2 L" p1 g# J+ s- r- i else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. J) B, \0 n! v" E3 d1 O n nPoint += 150;
/ w' F1 R4 d- { else if( m_nJob == JOB_RINGMASTER )4 e. [, ^6 H. k7 H% X
nPoint += 160;+ S1 n% L# w! _5 K, z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ D" c0 }# f3 s ~* }
nPoint += 180;
8 c' p) i7 \: b0 w( |6 D! M0 z2 @ else if( m_nJob == JOB_ELEMENTOR )4 o9 z: ^$ J! J* ~/ I, y' U
nPoint += 390;
0 P# m+ L; ~6 C* G" Z% T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), T# X; _5 i, U6 a, P" x( q
nPoint += 120;5 G& U6 A( g& m- m" H' J. P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% p8 [) |3 h) ?4 v nPoint += 150;+ F4 J" i5 R/ D+ r& [0 J9 s. V
else if( nJob == JOB_FLORIST_HERO )% b1 e% o! j0 W& ]
nPoint += 160;0 T: S. }7 P5 p! o4 W* m# q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), L3 W( S4 s; [* z- o
nPoint += 180;
8 L# P0 p: n4 z u; F( K else if( nJob == JOB_ELEMENTORLORD_HERO )
: |( I0 Q/ J: L/ a7 d- y nPoint += 390;
5 m; i8 i. Z% w' T8 ]5 e! g7 q" u6 R$ J8 N/ I$ l
AddSkillPoint( nPoint );# y: Z. s6 D( y4 S& R
m_nLevel = nLevel;
% o/ j+ |2 q8 Q
/ Q1 Q$ \' e. r6 N SetJobLevel( nLevel, nJob );. X. l1 H3 L9 e: _* v
m_nDeathLevel = nLevel;" Y1 a& m' e* z* a+ _) b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' Z% k& H+ ^* ^* S$ u9 u. { if(IsMaster())& B( C. I- j/ O# w) W8 S
{$ G. x1 X P7 R! t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' p; ^3 C g9 G2 @ if( nLevel > 59 && nLevel < 72 ). H, i( K$ R: V0 d8 [% R: _+ s
dwTmpSkLevel = 1;% K; Z0 K$ S% E4 S. w
else if( nLevel > 71 && nLevel < 84 )/ l8 R: V/ g: O4 T
dwTmpSkLevel = 2;+ a) P7 d S* P4 C2 k
else if( nLevel > 83 && nLevel < 96 )7 H1 H9 l5 [1 A& H- c6 Q
dwTmpSkLevel = 3;
& c/ W% x# B1 L5 Q) x else if( nLevel > 95 && nLevel < 108 )! i3 W/ V; o& K
dwTmpSkLevel = 4;$ q. P) x; {+ y4 J3 _- S& W6 i
else if( nLevel > 107 && nLevel < 120 )
3 \ |6 y) W5 r; u2 K dwTmpSkLevel = 5;
: C/ o. t& I q- ~* I7 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
' v, V1 ?# {0 L! w# e( [ { / Y, q2 d% |9 E) y) p
LPSKILL lpSkill = &(m_aJobSkill);
5 S7 M; R5 e1 E, t9 y if( lpSkill && lpSkill->dwSkill != NULL_ID )
' x- v: R) Q% v! M3 g: T1 C' p: @ {
2 y, G; W! I7 C1 U) Z* o& M) F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 a. S* M9 _. h9 f
if( pSkillProp == NULL )7 w6 m# v$ C* B
continue;
" p# I" e# Z; d' X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- c8 l) d M+ r( N continue;" i/ k/ \( k& t
lpSkill->dwLevel = dwTmpSkLevel;
( l+ t5 P3 G2 W" e( r. f }+ T5 h* J G k) _
}# _8 S: x# G. _1 j
}6 M1 V a" @3 Y6 D; A! a
else if(IsHero())
" Z* N6 q- ^! Q {/ R) l# U# n- a2 W- |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- S/ v+ r$ v+ m" N/ z {
' o# |) v9 a# o. s2 r5 J" L LPSKILL lpSkill = &(m_aJobSkill);9 A6 M% H8 T% j5 _& f" C
if( lpSkill && lpSkill->dwSkill != NULL_ID )# e- r7 S$ Y/ q! ?- ~2 W6 p
{
) q, t# J! p* J* `6 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - l# i- X( s- v5 N8 y' {9 c
if( pSkillProp == NULL )# H$ b0 ]0 h/ c* Q2 |# A
continue;% b+ A, R0 Y6 {# w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ R9 ?7 M) t$ C! O# n6 l
continue;3 n; v$ A4 s; `" H7 _5 |" ~
lpSkill->dwLevel = 5;
! L0 A' X: R. b. c$ m8 ^7 t }
& r! f* Y7 g% ^9 r4 A }
/ Q* |0 B4 P/ @& T }
" h, f; ^ S* G( m else if(IsLegendHero()); L8 w6 ]. X9 g/ F+ N% R9 h* N* u
{ |) A. x' m' Z0 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : x# s+ U+ N" T6 c$ H8 L
{ 5 p* _+ R c& m$ \; v7 ^
LPSKILL lpSkill = &(m_aJobSkill);
2 m: n B7 M/ @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 f+ o$ J% ^- I& u {
5 l$ V$ W# K) |7 s& a, E) r# x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " |3 l3 M& y% W5 ^5 h ~
if( pSkillProp == NULL )4 t( p, H$ q2 m+ }
continue;4 z9 S2 P" J# x1 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( T& j0 b7 D5 d) ?# E
continue;0 t G% x+ h. ~9 y9 U l3 E$ i
lpSkill->dwLevel = 5;
) R6 ~5 k& {# T% m# y" I }- b/ w# a1 K; [8 D
}
8 f6 u3 m/ Z# }# ` }. g' B/ v, _. ^" G8 ?& h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 N1 j6 o% \, C3 G( v# |2 w- w if( bGamma ), z! a5 u2 P# w# s F- t7 a* ]7 z; L
{
' m0 ^1 q7 c1 p$ } m_nExp1 = 0;, ]' n+ c, T ?
}4 o& [" p. }2 s
5 M" g$ f9 [' Q+ W/ G ( (CUser*)this )->AddSetChangeJob( nJob );
' z% O* l4 [1 p& P2 m4 k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); \# D, U0 {. c; ?! `2 b# t3 Y% I
% [+ y+ q4 [5 C* x# D1 ?
3 J% p/ G3 c2 R2 p/ l6 O+ K0 r% P#if __VER >= 11 // __SYS_PLAYER_DATA5 Q# [& a7 O! ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ l3 P W# `$ L+ ]: s# Q6 b9 d
#else // __SYS_PLAYER_DATA
: f0 d. J. g) c1 d: W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 A+ b3 `6 v r! K- b g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 }( ]7 T4 e; s3 q3 }# e4 R
if( m_idGuild != 0 )
; Q) L4 u6 q% {1 }4 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 H5 i/ g0 ]# {, y: ~1 m" R F
#endif // __SYS_PLAYER_DATA3 O( n* Z5 o' `5 b
SetHitPoint( GetMaxHitPoint() );
1 o( t# x+ Z [/ z SetManaPoint( GetMaxManaPoint() );
D' B; k% j0 |9 x* y SetFatiguePoint( GetMaxFatiguePoint() );, z; m' j9 Y" X, G7 H$ S- m2 L0 p
if( nJob >= 1 && nJob <= 4 )* x8 F' y' T. b1 ^
{
$ F. r" g1 R4 J& B' t m_nStr = m_nSta = m_nDex = m_nInt = 15;6 O! B! T. L7 N3 i/ B* n" L
m_nRemainGP = 28;+ s' j: W1 N! A: g6 j0 X! f
}! g2 O5 q7 e+ U% g+ `% g& k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 D- E" p g7 _: j1 E" Y
{
0 g+ z. E& `. m( ~ m_nRemainGP = 118;5 J5 S' \) X2 K8 K$ `( Z$ c+ C, S; f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. C/ R2 Y V" c+ B; F4 Y4 O/ \ m_nStr = m_nSta = m_nDex = m_nInt = 15;, U& T3 T3 W+ v, J
}' Q2 i* x/ _$ G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 d' Q) D/ A: y- z$ J {0 Q5 ~% m+ _& u% I0 `, e! ]/ S2 s9 s
CItemElem itemelem;, |1 A; _' y6 T2 U" I( b/ B0 Z1 G7 ^! ~
itemelem.m_nItemNum = 1;
' Y2 G. o: V$ { itemelem.m_bCharged = TRUE;
9 E) u7 J- g' m" n# b6 `( F BYTE nID;
% w v$ O! E0 }3 `
. _( [* x% U% Q2 d# P3 a if( nJob == JOB_MENTALIST_HERO )
+ l' u: Z# J3 y; j' B; d* Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. J, R" X- n, T7 J2 H9 I
if( nJob == JOB_FORCEMASTER_HERO )! Y5 [5 s9 ?5 e: I: s0 u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* U4 Y2 y: Y- m8 G+ X4 {
- L; q8 i P; ~- Q- N2 b4 i9 O+ o ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 G0 c+ ~! r+ f2 o2 N }
# N8 }" R5 S8 s7 T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 H$ f0 u& r" t4 q1 `+ E; s# n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ b( J& d6 q+ Q$ u ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 G/ q( c+ c* N" u; H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ w) m8 K1 c7 R7 H, p
( (CUser*)this )->AddTaskBar();*/
; |% s- {6 R* N4 B8 |2 x t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' S- C d3 d9 W4 ~' c) \#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ W7 k9 P: k5 M% f0 @" V" C4 e# W ((CUser*)this)->CheckHonorStat();
/ G2 X7 H, G7 e ((CUser*)this)->AddHonorListAck();! k- a" M {2 R! v( P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, U: ]9 ~/ {9 L0 ?#endif // __HONORABLE_TITLE // ′Tà?1 L" t. v6 y% j" {" R' ^
}
2 f) ~# `6 J8 G/ F. `#endif // __WORLDSERVER
! z% U6 o' V% g* a} % q8 _! b( g Y+ z/ b' ]
6 u, \! i; l& @& u1 \9 E然后你进入functextcmd.cpp并添加以下
5 w8 B$ q7 |: v* M7 e2 _" \6 d j5 h0 E. z& {0 k
代码:
U$ ^0 `6 x* U: BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 A- T" P2 Y) d* c- ]- l9 w: F下面插入
5 c; H; H$ L5 t( ~4 M, R7 UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - ?+ b2 |8 `3 M1 g
8 l# y. a3 t; E! H然后你去
5 u8 r' Y, U7 z+ u3 x' f: a' X; T. B1 v
代码:
7 X$ b; {# O8 X- {' L% G: v代码
( S& N- f l ~3 w3 VBOOL TextCmd_ClearPropose( CScanner & s ), u7 [8 A/ C& H0 p7 q! `6 V
{3 Z; _6 r* T5 K+ L
#ifdef __WORLDSERVER% L' W' P J1 \8 { S, Y9 R
CUser* pUser = (CUser*)s.dwValue;% l8 O/ h) d- c+ `0 k; L0 o0 y
g_dpDBClient.SendClearPropose();) c+ O; U: \ V( }
#endif // __WORLDSERVER
# |/ i+ n" {, V8 \4 { n/ m2 Q1 t return TRUE;- b4 `, ]- t$ u$ ~- T! L
}8 Q- w. R) ?; m% j3 H3 u
下面插入/ e& X9 C8 P# z _+ D
BOOL TextCmd_rebirth( CScanner& scanner )! {5 _; M; b1 k, I
{
9 V6 u$ \# L0 s$ ~$ p/ [! @#ifdef __WORLDSERVER! t/ {# D7 L3 N/ q4 ?: v w0 a; Z; V
CUser *pUser;
' ^: u. v" c. u, O8 HpUser = (CUser*)scanner.dwValue;- {- e6 p# P. Q$ h; u' g2 y0 @4 C l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* a5 E4 X g8 V5 d# N; j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& a; i0 Y# x1 C) \else- F& `! [/ }; ~! u
pUser->AddText("你还未达到重生条件!");
, j! x6 P0 M3 v1 n" ]$ @7 z9 W#endif
' z( _2 G' w$ Areturn TRUE;
, L6 d5 N+ g4 w: v% l" D% z} : z9 v" g6 I! ^- l6 d$ T+ O" G" n% Y
, r& W' h+ B; v: Y3 _5 R0 P( E: T' k
8 J6 R# A" a" ^/ _
5 F1 f+ l, W2 X
) T" V6 W6 M; N |
|