|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ J; h) Z) }7 g1 r% \9 I
; g5 [2 S: I6 n0 I- tMover.h& _2 @; O9 _. {* V) P2 K1 \% P
代码: D2 V! W g' X; D& [! M5 x ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; W% ^. H) B" t& c4 N2 C
7 K# u$ X' C4 s( l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 w! p1 Q/ o5 C9 j! I
2 V. k1 T% t! [然后你去mover.cpp添加; z# A5 Z. n- L8 X
/ O0 y+ |; `2 S( p. G8 L# g9 \+ v
代码:
$ E l: A9 I6 `+ J0 o, }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 P! z) Q/ q! Y{; v0 W+ B& o: g* V
#ifdef __WORLDSERVER
# j' j' p w1 R# f, e // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# w; J s' s& J MoverProp* pProp = GetProp();4 F+ w2 ^' T% _4 T( e @2 `. Z
if( pProp )4 n* ~% I4 g* O* y! o7 {
{( k2 W% k5 } T8 E# w- Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) x7 C! @) @: J6 w0 w {, C) |9 f6 Q" }" N
AddChangeJob( nJob );
1 w U. k- W) h! R r }else{+ s4 g; U9 Q ^$ o
return;
1 _+ O, b( T9 p7 J" B }: U# Q8 g1 I v% N d5 l
int nPoint = 0;
7 s% k# g, T5 x5 ]* m" B1 L; | if( m_nJob == JOB_MERCENARY )
" @7 Q: d5 C3 k1 e& F' l1 M nPoint += 40;
) _' W2 W& L$ I4 w' t' S0 }9 f: @$ Z else if( m_nJob == JOB_ACROBAT )5 B: k V6 [' T- v+ {% d: H
nPoint += 50;3 J# k/ j) Q" `* `5 f5 p8 `
else if( m_nJob == JOB_ASSIST )& k* F. J; a+ A |. O+ n0 [ j% c
nPoint += 60;' B7 T+ I$ s# b1 V9 @3 {' o
else if( m_nJob == JOB_MAGICIAN )- q/ w. z3 g/ G7 J6 R
nPoint += 90;( ]; ]4 s: F9 Z: x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* n [% J- x) ?2 K# m
nPoint += 120;
4 r- |# G7 Z$ y4 K* u6 ]# q. t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( ]/ P1 y0 ^6 P8 A- J5 o V+ u nPoint += 150;! L$ V3 H2 o0 \; K! s7 `& t" a) S
else if( m_nJob == JOB_RINGMASTER ) k- P* D, C$ @, q) j
nPoint += 160;" k. v! M" Z/ p V1 l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& s' Z9 L( `" ^& C- |( E nPoint += 180;
" X; u# i4 L& O$ n0 B! ]# ? else if( m_nJob == JOB_ELEMENTOR )
+ _' {* f' [+ v6 v% r nPoint += 390;) H3 |6 ^8 t* y) G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* \/ s6 {+ g5 R8 D) A1 Y# p- \ nPoint += 120;
( D, f+ E2 `. q& s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 h/ l1 g9 p. v- l# \( N nPoint += 150;, V: N5 k* x: ~3 v0 O" ~; X8 H
else if( nJob == JOB_FLORIST_HERO )
( u% w2 `1 u4 J% r nPoint += 160;5 e0 W; [( Y9 P* q5 p+ t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' l( c. z) `' r nPoint += 180;3 j" {% P4 f* q% h
else if( nJob == JOB_ELEMENTORLORD_HERO )
! r+ J% g% I# K ]! J1 }; H nPoint += 390;' o* @8 R& z, V9 D0 Y. X3 a e
% |6 {5 _1 z" W- z AddSkillPoint( nPoint );" {4 M E+ ]1 Y- h# J
m_nLevel = nLevel;
/ }5 {2 o6 g/ _8 A, Z t
% ~. @% A7 _" a1 u+ v. d8 r N SetJobLevel( nLevel, nJob );
# x; _: ^- x9 X5 z+ H% {- S m_nDeathLevel = nLevel; \& Y! M' c! l1 }' |' |9 t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& b# Y6 P9 s2 f1 k: B0 ?- m
if(IsMaster())
" b. [% F( z& [% C6 F f {/ V& M6 f* p% K ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' I' m: J% V5 b5 H- M0 s; A1 u
if( nLevel > 59 && nLevel < 72 )2 S" B& d3 I! C3 D+ L3 a8 I N
dwTmpSkLevel = 1;
( R+ M' ^; O' U else if( nLevel > 71 && nLevel < 84 )1 p @4 O- R; s( @" X
dwTmpSkLevel = 2;
7 ~6 I, O Y$ Y/ S% a- X- f0 n else if( nLevel > 83 && nLevel < 96 )
1 b8 k" P* J$ H/ c k: _ dwTmpSkLevel = 3;- a0 _. p$ f8 ^& i) y9 Y0 E% |. p
else if( nLevel > 95 && nLevel < 108 )
, T* t2 H! r+ F7 U( H, | dwTmpSkLevel = 4;; e7 Y/ S+ l5 C0 c+ W; F
else if( nLevel > 107 && nLevel < 120 )1 Z6 L8 _& t2 Y( z/ q9 s
dwTmpSkLevel = 5;& k5 z) o, }; d( N4 ]: V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 {/ _' E' k2 K: t4 h" l3 B9 y) L* i {
# _$ n7 M5 ]! X- Y! E9 }- L LPSKILL lpSkill = &(m_aJobSkill);: A: J$ o, ]! k& b7 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 F# @7 v( X' C8 }
{
6 B, B( L; e5 S( r4 [0 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 P C# q2 m( l: g. R# G. k4 g if( pSkillProp == NULL )
) n/ J& O+ G4 f' Q continue;, i) m* b# O2 l5 o2 f5 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) u$ g5 p' Q, K. K
continue;5 Y* ~# d" R" ]+ I; C9 |) `
lpSkill->dwLevel = dwTmpSkLevel;, H+ k) K5 `- _8 \
}! a2 D1 R- ~1 n2 y& Y! P" L2 q
}, c& S l; B! }, \
}
g. T* E+ g ~" t3 n1 Y5 z else if(IsHero())
8 p6 p6 C' T# f8 m {
% N) c$ m0 f" k5 |1 J: K for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 l9 |0 H |/ a# v1 F! ?) G
{ 8 U7 A2 s: e$ N& d0 U
LPSKILL lpSkill = &(m_aJobSkill);3 z% x1 x0 R9 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ t3 a% H) ?& r6 Z. r+ a) A! [. H [
{( |( Q$ _6 T3 z$ T9 L. x. t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 y9 y1 r6 Z2 c. \( J% t, ~7 B if( pSkillProp == NULL )
, B/ A$ F) G% N2 t continue;# Z8 c4 e/ w% w5 \, ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 N. {7 \; _ m: L6 z) H
continue;8 ?+ h6 }- ~4 n, K# ~& l
lpSkill->dwLevel = 5;# h9 t0 l0 ^* V) X* g6 _
}; u/ ~8 m. F/ t O. Y
}# `2 L( ~6 V& x! y5 u% w% X
}6 r- ]9 ~. i3 ^$ h; t4 G1 f; J
else if(IsLegendHero())( U1 ~' z1 |' J/ D2 m. p+ ^3 n
{
8 O4 c. a" W) u3 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ? W- ~; N) c {
8 Y" L5 j" u K( c0 G LPSKILL lpSkill = &(m_aJobSkill);, U# i' Z; s5 M0 {3 Z4 H6 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 @) [. A. Z! s( I {" v# E+ p% O j6 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - N9 G& L: ^0 q# O
if( pSkillProp == NULL )
k$ Z# R" {& z continue;
8 C& Z( d M2 X5 i% @+ G; L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, P6 h/ ]2 P" y! z; [3 C! r continue;+ C9 }* R! \: Y7 p8 w8 M
lpSkill->dwLevel = 5;. m9 o5 K2 \7 W8 o4 {
}
# M) B8 `% j U: d+ ~ }4 B$ K7 Q+ z5 t& |8 ?* o6 F+ s
}
/ ^ K9 p: L/ Q$ r* U#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* V3 M) [* W, P& [/ f, K
if( bGamma )$ H( @6 p" j7 e% `: V& r
{
4 u1 j1 D4 w/ r; R m_nExp1 = 0;7 \2 d- O! y/ ^( k, X/ l
}; t2 |% X+ A5 n/ U) r( m& }
* H' l: X, ~& L7 B# f7 I. ]" r2 T! c ( (CUser*)this )->AddSetChangeJob( nJob );
$ Y1 \/ C9 t+ U. P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 ?+ b2 @+ T5 C2 ^% F4 A+ N n! N) I
- l% p/ u* I5 t' E+ ?0 I" P% m! E$ r, o% Q4 w3 \
#if __VER >= 11 // __SYS_PLAYER_DATA1 x0 Y5 U8 ^* |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 U0 |. H) K8 J6 c& \0 K- ~0 o
#else // __SYS_PLAYER_DATA
; ~: R) r" I2 S" J$ I0 P g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& b4 F5 l' k/ g: {) A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! d* h5 W( m7 c4 \! c
if( m_idGuild != 0 )
. H. W+ y: I% N/ S: B' q, X g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
V {+ P7 F/ e#endif // __SYS_PLAYER_DATA
' C" M# Z/ ], m5 x* P SetHitPoint( GetMaxHitPoint() );1 } z) _ a2 f: p U7 w' ]- L
SetManaPoint( GetMaxManaPoint() );4 R- r# A9 C3 P, v
SetFatiguePoint( GetMaxFatiguePoint() );8 H. ?6 i' Q( m
if( nJob >= 1 && nJob <= 4 )
- ?' i6 S1 V8 a7 n7 R {
9 B0 A# \; d, }6 l$ u, S m_nStr = m_nSta = m_nDex = m_nInt = 15;5 E& r. j1 ]2 R8 ~
m_nRemainGP = 28;
& t& [/ B" _5 l }/ k( G( O9 k6 H% Z, V B. v# d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ y: r) s7 x# ? x( x/ L, K0 B
{. f# C" q& A4 S& y& K" c) V/ m8 X
m_nRemainGP = 118;1 z; {- E; W" J! l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* E/ U! f) _, D) h
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 g* v( c! y/ L5 ?8 D
}
0 x- d; B) f' P+ v- F( y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
g- d0 O) O7 d; |$ T {3 q* o b; z! D; u% Q) V
CItemElem itemelem;
, _7 M8 |4 o8 g itemelem.m_nItemNum = 1;1 Z0 d% Y4 L9 [% I( b
itemelem.m_bCharged = TRUE;
6 n" ~! O" _( r% o/ [) P# a9 r; ~6 f BYTE nID;& Q4 `4 q) ?$ f; v* l# A
6 Z# q6 |% `+ J if( nJob == JOB_MENTALIST_HERO )
) F h8 S* i+ L9 k/ ], y4 C* X7 I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; _: {; v7 [9 D0 R9 j
if( nJob == JOB_FORCEMASTER_HERO )
7 s( g6 j9 |4 ^' k7 v) e$ T) k9 q4 ~+ | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 Y) l& C- c( l* m+ H6 ~
; P1 H& n$ `+ ]% \! `6 \' A
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 G9 q: l" k) h0 _5 w! H* `$ B! x }
9 ^2 c, _8 U. J1 X; X+ k! [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 V, [4 A Q* I$ F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 f- m& D7 t ]5 j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 e# q& @' h/ z4 p4 R% v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! H( z" U% R, \+ G; A9 u2 l: v
( (CUser*)this )->AddTaskBar();*/# j+ L0 f4 {8 t+ H1 F( n" W7 S0 t# I2 w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& a' |# _4 B3 O& s1 V& k0 F0 t' {1 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, d7 Z4 _' O- l! q$ { ((CUser*)this)->CheckHonorStat();
; ]: a9 |3 K7 d ((CUser*)this)->AddHonorListAck();
( n/ m( v" D. \6 I& Q6 z* s8 V g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ H/ }' E' Y' h1 H- y& j' ^' n#endif // __HONORABLE_TITLE // ′Tà?
$ \% X5 y, ]8 \1 _2 R }5 M" u4 S: |- k
#endif // __WORLDSERVER
: f, ^/ w6 y* h}
8 ~& ]0 L. ~. _ V+ f0 R2 t$ j p1 _5 L" k; ~
然后你进入functextcmd.cpp并添加以下
* X8 D3 B) R7 x, G9 z7 `1 G5 i' Y* A- V+ |. n4 P* g+ s
代码:
( }2 j' j+ w/ JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 R+ q6 v3 y. J9 H/ P下面插入. Z# L2 P3 I9 a s! q4 x4 J o2 ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 t) H& G, [& I$ Z/ Z+ m1 g1 M6 _" ^
然后你去6 E8 N. ~- k9 A+ O( _; _+ z
9 I. M/ ]! B n, K: x代码:2 d" X- Q9 z( J) z8 ~1 e
代码- n/ y6 `* t, `& Z3 A6 W$ {6 _
BOOL TextCmd_ClearPropose( CScanner & s )
1 S: e2 _! K. w' \" X{
% S$ I3 |2 l0 Y L$ u#ifdef __WORLDSERVER3 E2 w \$ `- f- v) e7 U0 s# W
CUser* pUser = (CUser*)s.dwValue;- h( o' v* p1 Q& ^1 |
g_dpDBClient.SendClearPropose();
, k0 J ~ z0 {. }#endif // __WORLDSERVER0 m) } @# N! x& P5 Q- z
return TRUE;" n. p, ^8 J2 \+ ~( O- l
}
- W; c$ H% ~) v* S& {下面插入
, v, e, B0 W2 |9 _! B. \BOOL TextCmd_rebirth( CScanner& scanner )
; c2 a% u. ]; d$ k+ G1 m{+ o1 r' S- i2 t7 X. O
#ifdef __WORLDSERVER
' c9 S: k6 ]9 j( n* \CUser *pUser;. i/ b5 M3 g) O: y* O4 F
pUser = (CUser*)scanner.dwValue;
7 g, B; w: ]$ Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) |, V$ K& {% R8 E2 _( {& R. X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( v6 }; @( X/ k- felse- D! J0 s' {. u5 O
pUser->AddText("你还未达到重生条件!");
2 N6 m+ J U. c#endif- P2 E) b! q( H. G L: ?' s
return TRUE;
; J1 y9 A1 |* Y+ A}
4 Q2 q0 `. R E& A4 E o2 m% H8 q! C' x( A& e" x8 O
( W, W; _$ _; ~7 J" f1 S8 s6 d5 Y2 W( v/ h% a; o
" \" e- h: R z/ P* ~/ y |
|