|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* T! _# h2 [; A8 T0 v" D
) n. r, z+ W% R; H$ w% X& bMover.h
1 K4 k) }* ~) H4 u代码:1 D! U, X; q3 {) Y' L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 l+ Z2 R% |; O) g2 {# Q: o) U
3 G8 H& ?3 ?4 h9 ^. Q4 `, C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 N6 x% n' S( K3 c7 O+ S B
~6 |. P, m1 Z, X7 h然后你去mover.cpp添加
+ h1 S) u! x- v4 y& l$ P% g- {. Z6 M+ g; E8 |" }. I
代码:
- K: T$ x2 P$ ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) H. n5 C# @) p4 @' V9 k! \{/ I# |6 X/ s% N8 m- ^
#ifdef __WORLDSERVER
* _. j0 E k; l+ `6 v5 V. Y8 u! d% N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% J8 g: w6 _' b! j; ? MoverProp* pProp = GetProp();9 F: u) e" l2 T" ~$ V1 K
if( pProp )2 \3 {+ @) G& i; \
{
5 b7 c0 d5 Y7 F/ e if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! P8 K7 u3 S+ u. k8 i" ~; h8 a h! U {! U+ ~' h2 u- u- u% W
AddChangeJob( nJob );; a7 i" ~3 c! u) G9 Y
}else{
# J- L3 h3 u4 |- F return;
9 F2 P* b" S5 u& ^ }
0 ]- c; }+ F8 e/ m; u int nPoint = 0;
$ X# h( z( O/ T+ d: e if( m_nJob == JOB_MERCENARY )& ]( G- A% B1 E, [( a# {
nPoint += 40;9 G& K! R1 Z, F$ m' V
else if( m_nJob == JOB_ACROBAT )
% `) a7 O( D, x! k# |7 t. M1 T nPoint += 50;
& Q7 h) }( u: t2 m else if( m_nJob == JOB_ASSIST )! j! c1 {5 C4 f. l3 d
nPoint += 60;: J6 |# O& Z' D3 h- Z* s: J$ K3 \
else if( m_nJob == JOB_MAGICIAN ); H4 `( F% @' P0 `: ^
nPoint += 90;
& o5 U5 ^7 q5 H& t% m/ \- q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
d, O2 h4 M3 A5 i nPoint += 120;. C; I& E/ H* Q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- v4 K# X, P: s: O, s; Q nPoint += 150;
# a3 j4 b `+ d& p( j: z" p: c else if( m_nJob == JOB_RINGMASTER ). P7 O! j+ L- z$ w
nPoint += 160;6 E& G. f0 F8 A& @- @
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 e; R% q) n: S4 j2 b0 G9 E" `
nPoint += 180;( w1 q8 I3 Q- B
else if( m_nJob == JOB_ELEMENTOR )
: Z( p& p4 A7 e% m) _) `/ E% B nPoint += 390;6 y6 `# Q9 s. _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 L2 T# K2 W3 O( J, O& Q& A& m nPoint += 120;
) t: x$ j! K" n( l: L [7 j' | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& ?4 |& ~3 v B* j nPoint += 150;
! T8 J3 N! y5 l1 q else if( nJob == JOB_FLORIST_HERO )) C+ w$ F/ H8 H3 t
nPoint += 160;$ v8 P3 @7 B' W4 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 ~, p4 K- G! c# z' ~% s; z
nPoint += 180;8 g& l) E* g: S) Q# G1 y0 X
else if( nJob == JOB_ELEMENTORLORD_HERO )+ d- C3 z; V8 s R% A5 ]: A4 t7 A# y
nPoint += 390;
. r* s8 T1 Q& [2 q1 K6 r
, ^% [3 g6 a0 `1 e AddSkillPoint( nPoint );
0 B0 h6 e( Y+ W0 S: S m_nLevel = nLevel;
# C. | Q8 K5 y, X \. ]+ k! T/ N2 t. F( \- \1 g$ @- [
SetJobLevel( nLevel, nJob );
) F+ ~- L6 {- [( P: }5 r b m_nDeathLevel = nLevel;
, h+ e% C# \" F6 O0 a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# K; ]' I3 V3 [6 H& q( [
if(IsMaster()): w) ~5 a: N+ _# O; a
{
" z! m1 W0 u4 J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) h0 Y8 c3 {* {& R& h. L3 j+ a
if( nLevel > 59 && nLevel < 72 )5 V+ k! a4 z. B! k! J3 O1 v
dwTmpSkLevel = 1;
Z5 E M( u& h$ e else if( nLevel > 71 && nLevel < 84 )4 x: t# Q9 k h% F( u* ]
dwTmpSkLevel = 2;6 h' a; S3 S# S4 b' e6 ^0 p0 ~
else if( nLevel > 83 && nLevel < 96 )
9 |$ m0 @- x8 e dwTmpSkLevel = 3;
6 s9 D" s% k1 w5 j! ^0 b' f: L else if( nLevel > 95 && nLevel < 108 )0 c+ }6 @. _3 s2 m* ?
dwTmpSkLevel = 4;
- @# \0 ]* Y$ v else if( nLevel > 107 && nLevel < 120 )
0 n; [# o" [9 R. G# a/ X' d4 [9 ^, ^& u dwTmpSkLevel = 5;2 A+ E" _9 C8 ^; P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; h, g+ |+ H5 |
{
' G" `) z- B) V" C, g9 K8 o. h6 y LPSKILL lpSkill = &(m_aJobSkill);' t$ v7 m! V0 B) f" U
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 l. T, [1 @* v9 x6 n0 z: j
{
. W7 j4 ^# S% _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( f2 e( O1 W/ d' D if( pSkillProp == NULL )# I* Q8 u) @9 G/ q
continue;
0 @1 l9 I. e$ n; D2 a+ v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 V6 n4 R: N* Y8 G; m
continue;# ~* ~7 b6 [3 W* Z: {; V9 t
lpSkill->dwLevel = dwTmpSkLevel;
0 V/ d" ?* j5 h- V1 |7 M# H8 q* R6 w' w }
% M" ]1 ^3 _3 m$ S! R0 b }
/ d( P5 _, Q7 Z, j& e$ F }' {# V2 v/ y+ p) l% ^
else if(IsHero())
+ M$ g: _) g. S& S% o; p {
l$ W6 s8 l2 Q( T for( int i = 0; i < MAX_SKILL_JOB; i++ )
: K+ t; u- Z; B- k( Z) B {
1 t' I. n) E! a; X' o C LPSKILL lpSkill = &(m_aJobSkill);
% A$ y. N- `8 e if( lpSkill && lpSkill->dwSkill != NULL_ID ). H2 t& m8 t* f: X7 M/ {
{! q) y) F" s5 }5 h! {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 R* M" F, v1 c5 N$ d# b. j
if( pSkillProp == NULL )& o+ |/ p9 G1 G8 \5 q2 m( s- f
continue;
' Y, j, j4 \1 k- O% { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& l B' b3 f# v7 U, N' q3 G& @5 d
continue; u) Q$ I" ^. p8 d2 Q4 C. X1 G
lpSkill->dwLevel = 5;
! F4 C9 F# S2 c- j" a- k, k }
' H% J, M* g' M) P9 H0 A3 r7 c }8 n5 C/ f3 ~& P& A
}
8 v8 v8 O, q1 {2 X4 G& t else if(IsLegendHero())
7 A* E8 d' }8 a% n {; w) v8 |$ f9 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * x" d" g) l: p& U7 g, M
{ ' s; g0 m+ L, u( F
LPSKILL lpSkill = &(m_aJobSkill);
) ?0 b; p9 E: O/ W if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ r" \3 P' l0 l/ V/ r. T {
" J) p- {% c( J. x8 q$ A: W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 F% Q# f d9 V' @8 W, ]
if( pSkillProp == NULL )
0 W: t7 M7 B- P, d, f( N continue;' f4 T8 N! t1 e5 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# C9 s; s$ Z0 o7 n" M" B9 x continue;
& V) v4 S- \, Z* F& U lpSkill->dwLevel = 5;9 K1 D0 d8 m9 r5 v3 F+ F
}" ]; G) r5 f D
}
) _# h8 D9 f5 i& z* Y3 v5 f( W# v }/ _1 i$ s( J3 m' j5 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 B" u/ H, M4 N if( bGamma )
@1 Z2 p- C! u. u: o1 y) X {/ ?0 B3 W U/ J) y+ y
m_nExp1 = 0;
6 h& w! o2 O5 ? ?( G7 L }4 W, F) K2 C" w
& |7 G$ r% y& |
( (CUser*)this )->AddSetChangeJob( nJob );5 @, u/ K% [% Q& x4 p; ]$ d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 R# Q! }. C# R9 u0 M
2 ~9 w+ }3 p0 S g
+ {! H) M5 g! S1 l2 E4 w8 z% o
#if __VER >= 11 // __SYS_PLAYER_DATA$ Q9 H8 H) ]' y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- E ]7 ]- k) Q: U: k#else // __SYS_PLAYER_DATA
; G4 ^, N$ g* E4 [* B1 J- s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" f0 _" r" L. a& e0 J* R) f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 {) B4 H+ ]0 x* m' j2 J0 G if( m_idGuild != 0 )1 A+ @7 X( G7 l8 x. b; _9 W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% a6 }' P$ F1 v& q+ }+ h. j$ |+ k
#endif // __SYS_PLAYER_DATA
' R* @: ~' K. s' K, d SetHitPoint( GetMaxHitPoint() );
9 u& L* d Y7 P: W SetManaPoint( GetMaxManaPoint() );
* o# Z5 \" }: y1 O/ O SetFatiguePoint( GetMaxFatiguePoint() ); G$ E1 ?9 A8 i; m8 S
if( nJob >= 1 && nJob <= 4 )
% k' v8 I( z4 v3 @! n1 U# m { _, G! c; Z/ l8 ^1 l5 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* |% `2 w1 F- b! M3 s m_nRemainGP = 28;
8 A) d& M5 A& T* ] } I/ u7 s9 k- b6 M6 K
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! H; v" e g% t9 N {% O9 q) N, p. j4 O2 j; M- P
m_nRemainGP = 118;' Z3 f; \8 S; f. Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' }( i- k, N v7 g! F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 _3 @2 @! ]) l }& W+ P# T% n9 Z' X% ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' m4 s# v5 @, b0 z {
# Z6 G9 P3 C+ Q: I5 Y. a3 z1 u7 x CItemElem itemelem;
! D- F$ m( i! ?' e" A itemelem.m_nItemNum = 1;
2 E! y# N' G' T4 R: U( Q, f) l& n itemelem.m_bCharged = TRUE;7 D. r& ]* Z& p+ T: t
BYTE nID;
- | x, i. j9 f' J5 S( D2 ~& F. y( `: b+ z
if( nJob == JOB_MENTALIST_HERO )
/ n" T' |& {# V) k8 s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 ~- h7 V1 o& W, @ if( nJob == JOB_FORCEMASTER_HERO )
, G! x( g( v' }* z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; d: A, b* M# E2 h0 p0 b5 W6 m! g- V
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, ?0 b. z w+ @4 h$ j }
: I5 L' W: f/ [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; M8 T/ m( x: y! a9 q& [2 c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; V% E' e: O6 e: ^4 `/ [ D! v
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 P+ e& y. ?& P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 A( K7 W1 V, I" Q ( (CUser*)this )->AddTaskBar();*/+ g+ k. c6 Q- ?' k/ ]8 D; c7 Y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 c0 _0 N. i0 q3 k8 o" [7 o#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- ?( X; D+ z) t( V% f ((CUser*)this)->CheckHonorStat();
+ W( b8 F8 b. R9 z+ r ((CUser*)this)->AddHonorListAck();
. ]) s0 F o, R/ S g_UserMng.AddHonorTitleChange( this, m_nHonor);; `( P( M$ Y/ H2 {
#endif // __HONORABLE_TITLE // ′Tà?8 q, r4 \. T3 J1 R7 {; v
}+ Y- M+ o4 S1 v7 J1 v
#endif // __WORLDSERVER# {8 U; U' i; [* ~) B4 D# L
} * b8 v. y% c/ f/ m# u, V8 V
w+ Q+ @7 R: C; \( ~" _' B
然后你进入functextcmd.cpp并添加以下
$ o O5 m3 j" p* _) W
5 |& K9 l+ c6 m. p# V代码:5 E# u- H7 ~6 C1 Z( p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 `8 u, A7 B7 {2 c1 w8 l7 H- K7 \下面插入
4 ~/ {' s& M* A- T. l8 kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 i* }/ N' D; ]0 w0 |5 g7 K& I+ o6 G8 q" |2 G" {
然后你去
) R& P9 p+ A1 B$ B3 ~! ]* c/ o6 B4 B8 F8 V7 N1 E
代码:- Q5 ]4 H$ t, C7 w0 d
代码, I( ~6 N9 u) U5 V7 i
BOOL TextCmd_ClearPropose( CScanner & s )/ n/ }) p2 Z8 h; I6 R& C( x5 C
{9 `3 T5 s8 w! V. Y1 P
#ifdef __WORLDSERVER) \) t/ [8 @3 }" d E# _ C3 a
CUser* pUser = (CUser*)s.dwValue;' b" K n0 F, w. P! p
g_dpDBClient.SendClearPropose();
3 v+ |( P9 V- C/ d E4 p#endif // __WORLDSERVER+ G$ H$ e6 t! v; K0 u6 M' H
return TRUE;
9 A( x( m0 R G}
. K) b$ o s* ^/ T下面插入# B8 W' A" H" {) A5 S% `+ q
BOOL TextCmd_rebirth( CScanner& scanner )' x( ^7 h: q7 H5 w* Q
{1 f1 J" E0 x( M
#ifdef __WORLDSERVER U2 q$ {3 @2 r6 d3 c. }* B
CUser *pUser;
* s3 T5 U' ?8 D% ]# SpUser = (CUser*)scanner.dwValue;2 u7 [) o; {$ Y! v$ w/ t) `
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 B! y& u! [& u5 l* spUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" m; t8 q5 r* \. z
else
' |1 J" l9 Y: TpUser->AddText("你还未达到重生条件!");
, o8 o$ U+ \% Z3 M#endif# v0 i! i0 m8 x4 X/ V8 R0 a
return TRUE;
* S* u/ i$ S8 U9 y& K6 }# t}
) U2 g$ D6 f; Y" n6 W3 Y2 s/ W8 B+ \. G0 `) k, B
& m. N( I% S+ ~* o3 m! g2 F8 p
3 t- ~7 k4 k0 o& X$ S
; C2 V8 f- j% M2 l+ ? |
|