|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; u& Y ~; e' _. ?
7 r; j' _( @. p& Y
Mover.h5 ^. c3 _0 F# ]' |1 [3 K
代码:
% c7 q5 ?* f# `' ]% l% `找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ G* a- i% C: H7 f3 I
! Z& j& {/ ]1 _0 ]; C& V. `3 @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# e7 l& }2 u" G5 A; [# G2 }* j; R% @& z! T. l8 E
然后你去mover.cpp添加* c; t: `7 Y7 Q2 z. j1 E$ \
0 f* ?. I/ T c( p' K) X) ]
代码:
0 _! @# M& t {* Z" T6 ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* V; b6 K, |- B! D: g% L8 T# s{" s8 `8 S' C# k% a3 R) Q; _2 `8 d
#ifdef __WORLDSERVER: Z M& E2 y6 U5 G1 {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! M5 ?. h0 L. v# [ MoverProp* pProp = GetProp();1 h5 r/ U+ R4 n3 Z3 A! M, p0 v
if( pProp )
' W @0 B. Q6 S _ {* g! S8 \' h) G3 Q0 f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. D `5 b s* d* h) f { q) Y! X" x4 E# b4 S4 n
AddChangeJob( nJob );( e; f2 J" k5 t! [- ]/ X; j, X! [
}else{6 A% M! T" R4 E+ ~& M3 }- A: B a
return;
8 ^4 B, m p& D9 L' ]6 L; V$ Z }
. C9 b1 I/ W' w! l F. Z, d int nPoint = 0;
* r# x' `: G) Q; m- p+ ~) {: _ @ if( m_nJob == JOB_MERCENARY )
/ h9 b7 {+ ^6 [* o* i0 ` nPoint += 40;' _/ }0 X) P% k: h
else if( m_nJob == JOB_ACROBAT )" Y ~) c- J5 e( M
nPoint += 50;8 U; j% N; Z2 X% \# ~6 ?2 J
else if( m_nJob == JOB_ASSIST )
3 ^; I) P9 U& X* |# t" S nPoint += 60;
% @& |9 K$ }5 ~4 w! X3 k else if( m_nJob == JOB_MAGICIAN )' ^; ^8 i. ]0 U; J- \
nPoint += 90;7 R/ [: C% p: P. W" q/ Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' J5 T' H" X+ u0 ^
nPoint += 120;" W% v5 y1 G; Y( a# o) v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 z' ], Z2 X! K/ G, Q8 D
nPoint += 150;9 M' M% A5 V0 a! E+ U
else if( m_nJob == JOB_RINGMASTER )
3 c j) _- b; J& p, g6 N F G' j& f nPoint += 160;
9 Q: v0 {/ `0 t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 y5 O, D8 k% c( `4 d
nPoint += 180;1 V% S( W& j8 L$ l
else if( m_nJob == JOB_ELEMENTOR )
% M% a1 r( i8 j# J! E) ~' J4 I3 A nPoint += 390;! l, L, r- S, C- ^( J% K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) {8 _9 a" x( A0 B' P+ U" m$ y
nPoint += 120;1 Z# u& x9 y) J8 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) ^3 y$ {1 u: X- O9 P4 ~. S nPoint += 150;% n/ R* |- P! l9 ]* h5 _; Y1 M$ q
else if( nJob == JOB_FLORIST_HERO )
* h; z+ o- }, L# `: r8 S+ w- Z& G nPoint += 160;
5 k* F: Z! }! b% r3 O1 r else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): s! F; h' A9 v H0 z" j) w5 Q$ ^
nPoint += 180;
& Z0 U0 K8 A# y( _ else if( nJob == JOB_ELEMENTORLORD_HERO )
' N/ y8 l2 T8 j nPoint += 390;; N$ J5 a- y D
& e9 G) w1 j8 g* m% n
AddSkillPoint( nPoint );7 W! C9 @# I0 J: P
m_nLevel = nLevel;
& I! E: j: E+ z5 s9 x5 o8 I
5 ~; E* t; r9 w; r$ X" d" k SetJobLevel( nLevel, nJob );
v$ k) s5 `, o6 b% e9 Z m_nDeathLevel = nLevel;, T# B y, I2 M$ Z A5 d$ b! D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 p! q8 r, C& a/ p# x7 H8 x9 ^" C6 u
if(IsMaster())1 i" u7 K& t3 g. L' |+ S
{! M M6 h9 j1 Z8 q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 I% z) |& l. z# u5 @7 B0 L& C6 ` if( nLevel > 59 && nLevel < 72 )+ e7 x) Z: F0 h
dwTmpSkLevel = 1;
1 N5 b0 e4 F& n$ X* B- B else if( nLevel > 71 && nLevel < 84 )
/ [1 w; g) [' ^ A" Q. D" U5 ` dwTmpSkLevel = 2;9 P6 U% x% _: ]
else if( nLevel > 83 && nLevel < 96 ); B; d. n& Y/ q. x. d: ]: x" g6 ?
dwTmpSkLevel = 3;7 `% f! B! T y" j, l: g
else if( nLevel > 95 && nLevel < 108 )
# x5 ]6 W1 f' P. {+ T: F* K dwTmpSkLevel = 4;
$ j# ^" h5 i3 i7 {. V; A" ` else if( nLevel > 107 && nLevel < 120 )( r! _5 g! k- ~
dwTmpSkLevel = 5;" o2 u8 ^, m) V: f0 P* b6 t. q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ l6 n9 c' |" a+ L- L+ q( L {
3 B5 q0 z N. c LPSKILL lpSkill = &(m_aJobSkill);
1 F+ n- {) `6 o3 v" e/ M1 c6 a if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 g7 A( _* \" |0 m) T {8 Q2 k# X1 y: P# i8 T2 w, f9 ^% I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & o$ Y' R0 {3 ~( d, c
if( pSkillProp == NULL )
- W! n3 I% J$ Z( i' K: X( L continue;
$ a& N, V- E9 a7 ^- U7 t" o1 ^7 b( w( y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' j+ U+ ]% ?% O' \3 L: n9 @8 E Y# B' \* u continue;
( A1 C+ q% E, @& \1 h0 a lpSkill->dwLevel = dwTmpSkLevel;0 l5 N, Q( f5 u' t7 K* U! o
}
* J& H5 d8 C% t, H, a1 s; U7 `! R- \ }" ]- q3 d! Y3 M7 q5 }7 {. I r
}
2 `% \0 y( n& D3 p' }; h else if(IsHero())
+ D8 i7 H* Q4 O: G {
/ l, ?, b1 T: }' B* \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 q& i( G- F2 v! o { % b: M9 g6 @; C$ n7 Q
LPSKILL lpSkill = &(m_aJobSkill);
2 t- t0 U- g9 {, A& W$ {& W if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 X8 P4 \) I& f/ ` {
2 S$ R5 h( l5 s; `% Y0 s- s/ J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 e) m' L9 }/ N: V5 H# c5 p
if( pSkillProp == NULL )
# p: p* l6 N& G/ r, c continue;
" G0 \+ c8 ^2 M Z& ], s4 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ h1 i; X, c; t0 n& [, p continue;/ f6 b/ `; s0 p9 D' ?
lpSkill->dwLevel = 5;
9 A3 o8 l3 j; `7 d6 m }
# w7 ?7 V/ E( V5 i }
7 Y! d$ q: ]8 q9 P4 Z" \ }5 J4 j1 a1 i1 d) e% f
else if(IsLegendHero())7 I0 X1 v) D# R. A
{0 e" e4 g) Q8 |8 a- N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ G% |# \) @! \) p* r7 m { 9 Y. A( W. A% t5 |* w# k
LPSKILL lpSkill = &(m_aJobSkill);
! D- z. [6 \* |( i8 n: c if( lpSkill && lpSkill->dwSkill != NULL_ID )" h% v1 t5 z% P( I" @: f
{! s% Y4 C$ K9 A1 F# r+ h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 Q* N6 J$ n9 e' k% B& W
if( pSkillProp == NULL )
3 M# |9 ]* f( _ J1 ? continue;/ E+ {5 r4 r, Y4 h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): e* t5 U8 I) l/ }0 f& n+ z; r
continue;8 y; g/ L) M& e% I8 r+ W- D
lpSkill->dwLevel = 5;( [+ l# V7 `% k( g5 Q% Y: G' h" U
}
' h) Z) G0 K8 v& Q/ I, _ }
1 K, n* z A( h; s; R. X }
, [8 B9 j4 R) h1 q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: A0 w/ p/ j R! c( d2 d) {" E5 U if( bGamma )
' S: m5 Z; e* A, K {4 o7 c- N1 d$ z! J
m_nExp1 = 0;( o, {( h! O) h6 s
}
; Y& j4 _& o7 r% |% \ D
7 \9 h8 G! ^/ X0 a* [- L ( (CUser*)this )->AddSetChangeJob( nJob );4 q7 ?& _+ E+ o$ }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 q s* m# B3 Q0 N0 B2 b
9 M' y# `% E5 B: |2 X8 k. W# l' G6 M. z, {, @5 Q) O! _+ F
#if __VER >= 11 // __SYS_PLAYER_DATA; o. r* p3 K- c8 T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- u+ Y+ w9 v+ o#else // __SYS_PLAYER_DATA' Y/ M/ f, C/ p& W+ X. L! A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 E% k$ s# A% d9 ]3 z( }
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# ]0 ?; M* P% m1 E p( q# E' q
if( m_idGuild != 0 )9 p+ O9 H* f$ o, H/ a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 [2 S" \+ y7 v$ E! Y#endif // __SYS_PLAYER_DATA
' Y: d! R/ t+ t( r- n SetHitPoint( GetMaxHitPoint() );
3 Z; w6 X- g. p# {0 l- O {5 @6 O SetManaPoint( GetMaxManaPoint() );
8 C# K: l5 q9 y; O! s$ h% Z SetFatiguePoint( GetMaxFatiguePoint() );2 K, F& S! k# O3 Q
if( nJob >= 1 && nJob <= 4 ): z6 R# S1 A( F- x
{
3 y! Y/ T: f: ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;" }3 x- o7 U' i+ ^
m_nRemainGP = 28;
# c4 c7 \; @$ Q1 Z8 { }
. f" c0 f0 D, s0 j e3 Q; e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). M' t, [: N+ E: B
{8 N1 N0 s3 T; Q3 ~( v9 H- ~
m_nRemainGP = 118;& i2 W2 m$ ^2 E b$ F
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. {1 i# T8 i' \7 E4 Q9 {$ r' H8 q. G
m_nStr = m_nSta = m_nDex = m_nInt = 15;- p& X& n* M2 S% X5 c; g0 |
}* g2 ?: Y- W" j+ }3 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# b! \ G" A& C {2 t, H% Q$ o' J5 c. O
CItemElem itemelem;6 u$ Y- Y$ X) F/ M" ]
itemelem.m_nItemNum = 1;0 s O i. B$ G3 O1 @# d% i
itemelem.m_bCharged = TRUE;
1 o: z* r* p* d g" G& j/ V6 i BYTE nID;
2 P e: T+ G/ M. t; [- Z' f0 \; s+ p" q' h& R
if( nJob == JOB_MENTALIST_HERO )
7 t+ G# z. K* K0 m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' B. X4 h) Q" Q+ S5 B2 u: a. {* T if( nJob == JOB_FORCEMASTER_HERO )
1 A/ j( Z5 e# x6 R: | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* `& r0 h% A- `
, h% N% }- ?$ m+ V( G
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 n( c7 Y# N. k$ e6 z# R; E
}6 i! L- S4 j5 }: a4 q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 `& ` [9 ? ?
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ r5 Y/ O5 B" j1 \' f2 v! u; k2 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# ]5 v; s5 N- \1 @5 Y- H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 a7 ^& a8 j6 I& ^1 l+ y& B ( (CUser*)this )->AddTaskBar();*/
2 D# Q" O7 a$ T" k# Q- I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: N. m( C# R5 _' N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ y6 t B A5 O1 \8 k ((CUser*)this)->CheckHonorStat();
- d! o: D9 o4 O& \+ w' a ((CUser*)this)->AddHonorListAck();6 @6 f. P6 J# ]
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 v8 d; o2 e% T) ^- K1 a7 C
#endif // __HONORABLE_TITLE // ′Tà?
' b7 I G1 U' Y& D( ` }3 D# }, l0 P% G1 A8 C% @$ j
#endif // __WORLDSERVER9 L! T, E$ N9 `! p4 ^/ {: N( l! }; m
}
* {6 v+ X4 F" ~) y
. I2 O0 V+ q3 M# ?+ T! O- g- x& x5 B- T然后你进入functextcmd.cpp并添加以下
* a7 U7 j8 x/ y- e/ ?, F" W5 I% l/ s
2 `% \4 P+ \4 C1 H. @, {+ {# X' ^代码:1 _! G: \6 H- ?2 P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) b0 Z+ ~' Y; D, D5 I s# f下面插入
$ y) @& {1 z# u! R T/ X1 LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' o: P' S/ W" z- t4 y# X
: |' t9 _$ J8 g k2 p然后你去$ h3 Y' O9 e0 n8 h) D' u
: ~/ R1 O6 r' J代码:. \6 \, \% u7 J4 G7 k
代码( L V3 E6 Q( q* [' U7 \
BOOL TextCmd_ClearPropose( CScanner & s )5 u" I- z8 ]: ]* d. ^1 ?2 e, W
{0 C, H7 j3 v4 d1 A) H4 Z9 b
#ifdef __WORLDSERVER
) y1 M; u) H' w; I CUser* pUser = (CUser*)s.dwValue;
7 ?( Q1 M5 x7 I& k g_dpDBClient.SendClearPropose();
9 Y8 W/ H8 c/ K0 K* C- V#endif // __WORLDSERVER
. l" A5 I! U4 U+ A return TRUE;0 e0 _2 _8 I- x
}
$ j6 e9 P# C0 h/ `8 f下面插入
r3 H$ C2 t$ B$ s; YBOOL TextCmd_rebirth( CScanner& scanner ) n, V( } \; W: M6 y& @ z0 _. ?
{
! W$ t3 h9 \! n' {5 J$ X; l9 i#ifdef __WORLDSERVER
6 g N+ O2 y- f4 d/ VCUser *pUser;
* m4 p+ p1 D. \pUser = (CUser*)scanner.dwValue;
' H% ~6 n9 G- c- _* o5 {7 lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ ?0 k I' w& K* @' ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 Q e, P4 L. W+ T& D# r* @% [else7 C. `5 r T2 P h3 \) q
pUser->AddText("你还未达到重生条件!");
. T1 D- f" b2 Z#endif
0 Q+ R8 L) M' c) k5 I4 {! xreturn TRUE;& r$ V1 h) O% V% z+ J3 f: a% ]
} 9 `6 E1 { R2 a' T$ Z! k& G
/ S& x v D5 C- V$ P4 M: M
& s3 K# d6 ?4 `- X6 `) A$ C
{) y$ A8 B) Y+ r$ r& N
" K- `0 c8 n; f0 C M l6 f3 C |
|