|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# i( t7 Q" F* z5 O9 `# x
; N/ R" b+ r) A) S" m
Mover.h2 r% z2 v, V* C7 M, H
代码:2 b9 r9 p0 q) E8 H+ X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 s8 v3 A" F7 _/ g
. i: O3 i9 R* d- P- e6 d3 P/ ]" {下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " O/ B+ U: m6 {) C- h
* f) }( d7 V9 J- Y, e- r- ^8 F, t. L然后你去mover.cpp添加
. g8 S- i! S2 O+ k0 A% {# W
1 ]* p) e7 j' a; v代码:
/ h/ `, P0 h6 a. Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 V1 B4 W9 t* g9 J
{
# B3 b. G3 J# T' y( _4 {& N1 a#ifdef __WORLDSERVER
# ]% s7 s1 y7 J6 Z8 @* @; d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) x1 c+ K0 E- D m8 _8 O MoverProp* pProp = GetProp();
- ?. u; H% ~6 f& ]( R8 P1 K2 h if( pProp )
8 |8 y8 \0 j' B d, S& `1 o* I) r {
% R7 J! @- k/ U2 C! |6 }4 A$ i5 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 Y: A! [* o% d; [9 H" B
{
) Z& F. G) \$ n0 L. a, H7 Z! |+ _ AddChangeJob( nJob );
! D6 {1 ], C+ B+ F1 f }else{/ T* H. q! {* i& o) [6 q& s
return;# ?& ~0 {* f2 E* t5 p5 t% T% _
}2 T7 s! N6 s" ~+ | ^2 d* ]. u8 u2 V
int nPoint = 0;
' `* g$ z. ~( E5 h( z( e if( m_nJob == JOB_MERCENARY )
- k* b8 v& D% Q8 |+ A nPoint += 40;
$ j1 F) F @( ~; \" G else if( m_nJob == JOB_ACROBAT )
0 A4 s- |- U3 i0 Z. V K nPoint += 50;0 ~( Q0 g: d# b! }( u5 g2 J/ c- w
else if( m_nJob == JOB_ASSIST )
- R3 A& ^7 Q2 K4 v% f( E) ? nPoint += 60;
4 n2 c" M& i0 L+ a- \ else if( m_nJob == JOB_MAGICIAN )
7 W' h' L' v- R nPoint += 90;
' e9 P5 v; t4 w4 M, V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' V8 e% q, \7 N" x, y* n2 y6 q! W
nPoint += 120;
* V/ Y; e+ M: g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( w* C1 O/ U: S* q nPoint += 150;
4 U- R0 z6 b7 e9 y8 E3 y/ _ else if( m_nJob == JOB_RINGMASTER )* |/ u. z8 n# l+ @5 }
nPoint += 160;
' h' p" u, ^7 p0 L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 I3 ^; @$ P* H1 i+ V
nPoint += 180;( I9 ?3 w5 I- B9 F. J* z- n
else if( m_nJob == JOB_ELEMENTOR )* `" r% t3 G1 x
nPoint += 390;' y2 x" _/ K! {& d5 W/ S5 ]2 q$ }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# o7 B# F2 T4 @& [ H nPoint += 120;) Q& ^4 z5 N% {) x% b$ G) e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: A8 ?- n6 [- V( j nPoint += 150;
$ g, n" B2 O5 t# J0 \4 y- o else if( nJob == JOB_FLORIST_HERO )
0 A M* |6 N, g+ S" s( o/ q, H3 t nPoint += 160;; W7 y+ P' x& P' n3 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ E! e0 U" ] A. n" J
nPoint += 180;
* a0 ?' ]& I' ]) |( v' N else if( nJob == JOB_ELEMENTORLORD_HERO ). h5 ]* q0 W7 c; b5 l
nPoint += 390;
* r3 m4 i0 E4 X+ A! n
- B u7 b5 [+ x7 i8 K i AddSkillPoint( nPoint );
3 b3 |+ `4 s( U; \ m_nLevel = nLevel;
6 n5 z1 R; a, d, ^8 x* E. P# \% K4 w& M, z, K. Y4 u: @$ _
SetJobLevel( nLevel, nJob );
4 j% j6 y" x: |4 q6 I m_nDeathLevel = nLevel;
9 g4 \$ O: o1 v% v5 r/ j1 I0 w8 ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% x8 b* z& `( L: b* Q O: R
if(IsMaster())
8 Q* n" m8 U# S' T9 Q( |) U( S2 l {
' X# M8 K$ }$ D- O% Z7 V" i! ^' l int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. O; o- d8 t& }5 a5 B2 r4 g @
if( nLevel > 59 && nLevel < 72 ) }* A) h# P6 |& r
dwTmpSkLevel = 1;
) C) o1 w+ ]% F: a- s7 h$ O+ ~+ ~' k else if( nLevel > 71 && nLevel < 84 )* ^% N1 Z: p1 C( W3 B
dwTmpSkLevel = 2;0 w% F2 f) Z) o4 `- v6 i' e1 w& ]
else if( nLevel > 83 && nLevel < 96 )
4 d6 N! [ A" g1 v$ \/ q O dwTmpSkLevel = 3;
6 R& u+ k" E3 N% b) N; w9 ` else if( nLevel > 95 && nLevel < 108 )# i+ Z- W4 Q0 u+ Y0 t7 L
dwTmpSkLevel = 4;# G- y8 P+ d" |# z- z' D
else if( nLevel > 107 && nLevel < 120 )& J% t( c- n( J% X
dwTmpSkLevel = 5;
- f# F6 a, O- h0 o2 @, }( J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 Z& R" ^% q; W# q' m. \
{
# p: t. f2 P( h) e LPSKILL lpSkill = &(m_aJobSkill);
3 T( h; }0 S2 i8 w- ^" ^) ` if( lpSkill && lpSkill->dwSkill != NULL_ID )% z9 C6 m [% F9 j) o m) w2 M
{
2 d8 @9 H+ m1 J1 O" S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & p: I! n4 H, B1 K: U# C
if( pSkillProp == NULL )+ J1 X9 N& U' \
continue;
4 ?) m0 P% r& z+ S6 z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) D; R# G9 b6 N( C/ V5 V& F# J5 @2 g continue;5 V8 ^- x5 O' v3 o
lpSkill->dwLevel = dwTmpSkLevel;
- O `% C8 j$ [0 g1 b7 _7 N. P }
9 V; H3 b: O" J- A( q }2 G* H/ Z# l" P) w
}
' ^; w0 ^+ J. g; o7 W _ else if(IsHero())
9 L0 N) a$ M/ F; W {
# I4 ~- [) G' U for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 [6 k* W' E# N! A$ q {
6 H: j% ]* n2 V' i D. ?" Z( ?! s LPSKILL lpSkill = &(m_aJobSkill);: y3 d5 L4 c3 r. s4 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 y1 n5 F- |6 _0 h
{3 G# z- W! R, X- c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ w. [& } g& t3 ^ _
if( pSkillProp == NULL )
e1 i5 r2 \$ S6 G continue;* [" H( u" t) o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 }4 d8 u0 k: A" B2 {- \) ?
continue; v& P6 j, c5 F9 p! V9 B' K
lpSkill->dwLevel = 5;% Z8 O3 @! D( u7 `+ {3 f1 I9 p
}3 L4 @3 z% y2 w9 V. ]- }; K0 V
}
2 |& S* Y. p3 t/ Q ^, _ }
3 `' l. Q" w: c5 W! M else if(IsLegendHero())9 h7 b5 K, j) n' y8 x2 x1 I
{8 ?$ Q$ r! S* ~; U( D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- U$ F2 t9 W! C; R {
. \1 z! M" F' w$ U1 q+ H, ^0 R LPSKILL lpSkill = &(m_aJobSkill);( \: t, K$ x1 v
if( lpSkill && lpSkill->dwSkill != NULL_ID ): w. X# f" N3 Z
{
( n) X$ W1 Y- \; w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ K( p% T. S9 d- R" ]8 n if( pSkillProp == NULL ); B% \' ]6 v+ d0 {. v5 \$ H b3 r
continue;
/ n. E8 n2 { y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 ~0 R" s6 F6 O+ Q9 Q. ]
continue;
B) Z" i1 b+ B% Y2 m) {' N# g lpSkill->dwLevel = 5;. _" h/ ^7 |+ ]. u t3 s
}
$ f" `1 Z$ ]) Y9 }( f1 L }$ y. a7 o O0 i% d
}7 E. v, b' G8 a' |" R. A+ Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 \# |) n8 t% v P+ K+ ] if( bGamma )
# k& _9 J$ j: b! l U {$ X5 H# j6 D8 ]1 t9 Q$ M
m_nExp1 = 0;. S& H W* E& K. S
}9 O+ B& B+ N& x2 ^2 |1 T/ \( g z4 ?3 B
0 K4 t7 x0 K: v- w9 B& x- { ( (CUser*)this )->AddSetChangeJob( nJob );
8 I: V0 X$ C1 {* J7 r7 u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 Z$ N2 m, X; X" B9 C% s7 Y. a
! L. k2 V/ ~- E6 O$ P7 a! \ g! d2 G3 _9 R/ j+ {; m" f
#if __VER >= 11 // __SYS_PLAYER_DATA
" n6 T2 Q4 x1 M& w- [8 r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: Z) O$ G2 _+ Y0 T$ ?#else // __SYS_PLAYER_DATA2 t- Z3 y: d# a% J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% r0 F. ^" a3 U' N* P6 N7 ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 L5 ?9 ~$ o& F8 S7 O+ Y' |6 d
if( m_idGuild != 0 )- O B1 r$ y3 s0 A* {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; [* y2 ~$ R9 I! h7 l ?6 a7 J
#endif // __SYS_PLAYER_DATA
. ^* Z3 g# ^5 ]" U, q& z SetHitPoint( GetMaxHitPoint() );/ \5 x. D/ j* V2 r* B
SetManaPoint( GetMaxManaPoint() );& l) g( R" j, y( f! r% F
SetFatiguePoint( GetMaxFatiguePoint() );8 `1 Q# A3 r+ ^0 u# V: E2 A8 N8 ]
if( nJob >= 1 && nJob <= 4 )
- x$ E4 Y( o+ R" S {' y9 [* n, m" g6 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 f3 X# {. V) M/ q m_nRemainGP = 28;
" d# o W* o" G3 V }, U1 t! U: e( [5 u7 x8 e$ Y& z' E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* Y* J- X! D6 q0 U {
. p3 J6 T9 Z* w( V& U I m_nRemainGP = 118;; d# j- F6 b! {4 s; n. ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: w2 x3 l9 n1 x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! K/ m& j' H( f0 D5 o9 { }; q. `) S& \1 n+ x2 n' O
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( a( @) y& j6 \; y% U7 S {' ~" N$ \5 x% g4 p( L+ E2 c
CItemElem itemelem;
v* k) j* u. u3 F itemelem.m_nItemNum = 1;
I: ]3 P% O c8 C/ |9 H itemelem.m_bCharged = TRUE;9 t$ p( \+ c: ~; m7 y! {
BYTE nID;% o% C7 G0 t" F1 C3 ]9 A! I) k$ k
3 y$ V% V/ m3 a" m. F if( nJob == JOB_MENTALIST_HERO )! v0 M6 j; o, s) y8 b: _# |) h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 N$ D8 o; k! |1 C, {3 d. S if( nJob == JOB_FORCEMASTER_HERO )
" o* K5 N6 U; [3 s3 G2 B+ q9 B j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; q" Z4 {9 ^' Y! k5 J
' @5 j# @8 j+ J6 n( [" { ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 y. A' M1 e7 k$ y3 Q5 w9 Y6 [# t }' C* n- ]+ c7 h, X( ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. W3 ^8 a; q, P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% a5 m) V* b6 ^# b# }3 f. Q ] ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 B$ J8 h$ y& d: x, B9 [* A /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 `1 y: i- A& y" `' \
( (CUser*)this )->AddTaskBar();*/
* j2 A$ H7 E: y j" B8 A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# j( s- g& S1 x1 q1 N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% f1 \8 t! @$ |% }2 Q ((CUser*)this)->CheckHonorStat();
9 R, [* o; s, L' J! I ((CUser*)this)->AddHonorListAck();/ j. O: O. m8 ?4 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ \9 a& E0 R2 @9 Y8 ]
#endif // __HONORABLE_TITLE // ′Tà?0 N9 c/ _9 d$ \7 Y1 Y/ W
}
; g, |7 X' |3 t#endif // __WORLDSERVER5 S: t& Z, R1 ~; q7 O
} 2 J8 b9 n* b! m9 {& S3 I
* r5 D A* s! K2 X
然后你进入functextcmd.cpp并添加以下
$ }7 g3 Y5 G9 I5 z0 K$ ]0 Z1 E/ \$ j, a4 n$ ~! b. N5 v
代码:
4 P2 E6 T8 `- e+ PON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 r$ q& ]! w. c8 N: e! J. e" m下面插入
D4 a3 \) F( G. ~3 J D0 L. xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 a/ p, u9 [8 f+ r
# g) E" D0 [+ ]5 ^然后你去
) ]$ C8 N1 A; L7 i. h' `& A& f/ a8 t" B# m' L2 ]; I
代码:
, _( Y8 |7 V/ s0 C代码/ K5 k, d" ~" K @6 n. o" t' t
BOOL TextCmd_ClearPropose( CScanner & s )! C( |5 n9 M5 a' X& M Z8 D7 Q
{
% }, F$ o U. [; `& w; z#ifdef __WORLDSERVER$ @0 g0 k: A* `) q
CUser* pUser = (CUser*)s.dwValue;6 I" [$ o9 k3 J5 x. h' y- Q
g_dpDBClient.SendClearPropose();% w9 B% Y9 y( Y: g' f
#endif // __WORLDSERVER
2 d: ~0 H( h% j( ~/ D return TRUE;
& d4 i Y9 d) U! l( d4 V}
) v( t: U) O: J& L下面插入
% ~: Y( k+ @$ \3 f* v! N7 _3 YBOOL TextCmd_rebirth( CScanner& scanner )
2 }; W' ]% C6 C3 e/ P{0 n1 V9 F& V! g9 Y0 C% w2 v+ k: W
#ifdef __WORLDSERVER0 k' w7 B* K- {4 N( A: a
CUser *pUser;
5 v6 L! K: ^* opUser = (CUser*)scanner.dwValue;- n9 i3 T2 |: T$ V/ N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 Y- X5 p+ [9 n: T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 t7 ?$ X5 T5 l# a) @% y+ t7 |! Lelse
$ q9 ^7 a) R2 W7 H5 UpUser->AddText("你还未达到重生条件!");
2 {% W. v, Z2 \- f#endif; `2 N% {7 M) V
return TRUE;
4 J( h4 \! C" T1 _1 e} - B6 J+ K+ W5 |$ S
% i6 w/ \( ^) {( E, u) f; O
2 G( V6 O6 _2 x- X! z+ D+ S. V6 R
/ z( Z3 r& }9 D! l+ {- Z* B
, b& ]; X$ i6 ~- x; X9 ]+ W' q |
|