|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. o. Z+ i$ {0 W$ ?# l9 \
! i6 n9 M2 E5 T7 f8 g* vMover.h
# W: G4 E9 G" z- S% Z代码:& q4 F0 ^% b0 R0 n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 ~# z% _5 [8 d) L! c+ O
/ e) N$ W# j* A+ h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ `& M T8 M/ F8 H( Q
0 I- {) R& h+ E4 \然后你去mover.cpp添加) O' v. z. _4 G/ c' t# G
. T# m2 ~5 P7 _) R4 B5 l1 f
代码:
( H; R2 c: F/ \: Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 D' G8 S$ z1 v8 o' v! K8 M
{
' \6 K8 q' W8 d; d9 l7 @#ifdef __WORLDSERVER# i- b5 s5 k% u, p0 y* ~+ y+ K3 s- e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 h# x! [! i4 Q2 I" D4 V MoverProp* pProp = GetProp();
/ o% v! h n8 `3 s( | ^9 a9 ^% N if( pProp )6 S O+ K N( L( ]
{, w% m& m) ^# {" ^) y3 Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; t6 z1 W: z; V9 z" _ {3 h9 ~6 `+ ~$ r a/ A% ~6 s( p4 P
AddChangeJob( nJob );1 H6 `% a. C3 I7 C: ?6 K& W
}else{
0 L5 Z8 d3 {( a5 h4 l4 p return;$ Y3 H: ?% c9 U" A% e7 ]- X
}5 W6 B9 {) u- [, M# w; `
int nPoint = 0;" ?) w; l8 C6 w$ J8 Q, v+ T
if( m_nJob == JOB_MERCENARY )( c. x5 G8 S; d9 w# H& r
nPoint += 40;5 n7 @5 M, A/ w' M# ]% N: R% G
else if( m_nJob == JOB_ACROBAT )
6 X( B4 O8 E+ s6 C3 L nPoint += 50;
' ?/ X% J- ` K3 l/ Y% Q0 J$ e$ r else if( m_nJob == JOB_ASSIST )
. O# k5 N. f' ~. r e4 H nPoint += 60;2 ]7 r, y$ V. j9 U, R
else if( m_nJob == JOB_MAGICIAN )
6 N, F9 ~9 I& t- r nPoint += 90;7 E5 X2 ]2 z3 t. K8 w& F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# }0 \- S/ _9 J3 L+ g nPoint += 120;+ N: E+ w5 X7 T5 f2 ^4 d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 z/ R( Y7 f. z3 N; ~2 j* X nPoint += 150;3 k7 V7 `! ]$ o! C2 _. Y! L
else if( m_nJob == JOB_RINGMASTER )
# u, z2 Y+ o$ A9 J8 {/ A. n nPoint += 160;0 p' h$ ]+ t$ r5 Y J( F# g, y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! R: a8 ]3 S, m; d" ^
nPoint += 180;
- y" a0 O, {# C6 O$ U8 Q. N1 Y6 b" M else if( m_nJob == JOB_ELEMENTOR )
* V* }& C8 u. X" e- m nPoint += 390;, @/ C7 b0 v/ `) a/ ^' B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* | @" O2 M( d1 X# L* T: a* { nPoint += 120;2 O) e% R6 B$ g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" A7 k( S, k5 i ]/ y nPoint += 150;( B9 ~* @& ^/ G. D+ Z* a' d8 m
else if( nJob == JOB_FLORIST_HERO )7 M$ J9 c) e3 } k0 R
nPoint += 160;( }- ~& V/ @8 i7 q9 ?+ d% K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. _6 t; B7 _0 ^6 r$ @ nPoint += 180;: A( [ }; C1 |5 P8 f; Y
else if( nJob == JOB_ELEMENTORLORD_HERO )
- H! c0 \8 A# P; @! v" y nPoint += 390;
0 c# j' K- ^9 Z5 i
1 i4 ?, h+ { u, f; K4 H AddSkillPoint( nPoint );$ o7 d' V0 _( x/ J( `
m_nLevel = nLevel;' z9 Y6 P7 Y2 v% x6 B- i
+ q3 m5 L8 @# ]* n SetJobLevel( nLevel, nJob );2 K8 [- B, _, D4 l1 R
m_nDeathLevel = nLevel;, x; x; ?+ i- B7 D y) h$ P! j% C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, i* ]* ]+ i: M2 A3 w# q if(IsMaster())
! D( I C! J; b( h( e {
/ [% o3 U, n- t& h" h e int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 `' L, y# ?& w, v( p/ I
if( nLevel > 59 && nLevel < 72 )
% ^5 r6 `: v+ y8 w dwTmpSkLevel = 1;5 U3 Z5 o( I1 ^
else if( nLevel > 71 && nLevel < 84 ): P; D7 E& `& C
dwTmpSkLevel = 2;( A9 t5 Q; A5 D( z/ X
else if( nLevel > 83 && nLevel < 96 )
" L" b: |& h1 K; i( q1 p9 [ dwTmpSkLevel = 3;
. h8 ]% m! R( O- b0 P else if( nLevel > 95 && nLevel < 108 )
8 j) n( m1 J. j5 B2 R dwTmpSkLevel = 4;
4 d; @6 A9 L# V3 [2 Z else if( nLevel > 107 && nLevel < 120 )) ]4 m2 I# }, q- L
dwTmpSkLevel = 5;3 R: K8 ~+ \: h6 G+ H0 [; e1 H& N9 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ]/ M! O8 F1 U' L4 W8 C
{
& {' Y* f! W' \8 k/ F7 Q LPSKILL lpSkill = &(m_aJobSkill);
9 V) W5 c" O' G! k/ L if( lpSkill && lpSkill->dwSkill != NULL_ID )' K! u$ @! C! u& ~
{2 g& z) U1 {- v* i8 q- F e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- Y" D0 f+ T6 Y0 g# U- C if( pSkillProp == NULL )
9 @0 Q# i' k% j a continue;
+ E: k# q1 }- G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) n- ?- m8 e- j3 x
continue;* n1 u1 X" a: L
lpSkill->dwLevel = dwTmpSkLevel;
3 O: H4 W" j5 P7 W7 m. z q6 P5 l }6 [6 e3 w" C3 j9 y4 v" v
}
% T" q- @# K+ D' A& E6 Y% a7 S: ^0 J$ O }5 i$ g0 E P# h$ s
else if(IsHero())
+ _7 Y7 a+ S7 H$ |8 g% Y' \ {6 j* |' x. k. K% A2 y6 M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . }& z6 q( C$ U1 |
{
/ Z' g/ S+ [4 W& Y LPSKILL lpSkill = &(m_aJobSkill);
/ ?$ D# L/ N( S4 g if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 y8 J% h' C2 h' b! T( Q' w# N {- P; o1 I+ |. W2 m6 w& |8 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 m: E9 G, i" _2 V0 t4 _$ K
if( pSkillProp == NULL )
$ `8 Y$ B1 F, f3 y, d continue;
2 f4 R; z% W( e6 N0 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER): k( |" N# t5 y7 n! `
continue;+ R& m! f/ A& X) v
lpSkill->dwLevel = 5;$ E7 s" W! p U1 ~
}9 e5 x" M& {) t
}- r4 D( t+ e$ N& u7 _
}( g9 H' ?; ~4 O6 Y
else if(IsLegendHero())) c4 Y: J" D8 s9 Y" L
{( `: ~- M7 }. O. [! k5 k& ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 _! [9 O, a( @ { & G/ g1 }8 I/ B: E$ `( G; }
LPSKILL lpSkill = &(m_aJobSkill);2 y! c& b' K1 K1 B" X! R
if( lpSkill && lpSkill->dwSkill != NULL_ID )( V2 g- ~- O+ h; b
{
' T8 A8 g5 i2 J0 ^# g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) A7 _# r- u; X2 r4 `9 l2 k# d
if( pSkillProp == NULL )$ k0 A" R8 }+ g
continue;
- G5 f1 x; g; J D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" H" Y" W$ I) ^9 m continue;( l& t7 e* y( L8 W# q) S/ Q7 W$ M' W
lpSkill->dwLevel = 5;( q; i8 H7 s- R% j6 U9 o: i
}- K/ a3 K2 o2 t! `8 A( l* I
}) `- _# |( v% X. x4 L
}
+ ]& P7 y/ f# L; B- d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* _" b/ U' {' j; N( d
if( bGamma )6 @8 t S+ n+ f5 [6 z1 w7 _
{
. [7 ~ {5 ]* U) U: ] m_nExp1 = 0;
- u. J) m. B( S; Q, W7 i+ ~ }( v6 [, ], a* n- M' h
% J' b# a7 v' r2 N- I! p
( (CUser*)this )->AddSetChangeJob( nJob );3 g+ ? v; N; M6 n. ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% p" d2 H, u1 o) f2 g3 j6 x7 Q
5 T* g. Z; c7 p6 J! N. }* E
8 V. Z- z- J6 G; j" L$ `. z#if __VER >= 11 // __SYS_PLAYER_DATA" h2 @+ Z3 S3 y5 a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 }' @' w: F7 z/ H: s6 n8 m#else // __SYS_PLAYER_DATA
4 d. x% R4 S5 J" p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. U5 ~- Q; o! b5 P1 y" M( l, I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 d5 W% h% t" q' M( ^
if( m_idGuild != 0 )
+ ]+ {' l: a M4 ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ w l) B1 n8 T4 I# T0 q/ ?
#endif // __SYS_PLAYER_DATA$ v5 b! X8 Q& t( K/ a
SetHitPoint( GetMaxHitPoint() );
, x& k' S7 s& A' l2 v6 x8 T SetManaPoint( GetMaxManaPoint() );' i. F" [* T' e4 i, O$ s% @* R
SetFatiguePoint( GetMaxFatiguePoint() );" E7 T5 [3 A3 W& R$ n8 q' P
if( nJob >= 1 && nJob <= 4 )
0 N a% E* H+ j3 J' B# ~ {! e1 n. s3 V; q3 S: i0 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 p, h& `& @3 E: K+ h! l# K m_nRemainGP = 28;
* ]- B# `. r( A. D9 e }
9 u( w/ g: J8 J9 M if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& ~' o+ F$ _: @% y: z
{
$ s7 _: N9 o: a* m' P X e m_nRemainGP = 118;* Q! \# q" |0 l, h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: K0 ?! ^" U* Q6 B" D4 z0 V6 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;: Z7 \; }& k! K. i- a) z0 X% L
}
2 _* ^- P, |7 o! G8 o if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 ?& s) h- o+ H3 g: }: f
{) \/ A! H) K1 B8 I! N" J; P: w
CItemElem itemelem;7 M. |! W K f9 q" X
itemelem.m_nItemNum = 1;- c& z" u% g5 A4 Q+ b
itemelem.m_bCharged = TRUE;6 y6 n# u+ q7 t2 z5 {
BYTE nID; x- _' T6 u) T! m3 h* R- y
. }* p' i( L, ~7 }0 O
if( nJob == JOB_MENTALIST_HERO )7 B) H$ i' d1 M; C" b8 ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; m, [7 T/ @2 q6 Z
if( nJob == JOB_FORCEMASTER_HERO )
: V. w6 @: V* I; m9 r" P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 T: s# S* W' J# ]
8 F0 v$ H% Z* P6 ~' c7 P1 H
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 M6 p8 l1 [% P }* a* ~" Q' l- D& }, g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; `6 A- v9 O7 s1 ]; e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ c# v! y: p6 j& [! ?( @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' D+ R' c: K( z0 O# f
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 p; |; o2 T g) ]4 O) D# d2 A6 \! | ( (CUser*)this )->AddTaskBar();*/
4 G; U! c' v% ~4 h/ A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 a% T( E- j+ @# |- V2 Z6 U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ t1 l" f) d) ]0 }
((CUser*)this)->CheckHonorStat();
, t! m i$ {0 L B8 \' T0 l% C ((CUser*)this)->AddHonorListAck();- B- W# ~3 |5 q2 _
g_UserMng.AddHonorTitleChange( this, m_nHonor); R6 a% e, ]0 ?# @! ~1 {
#endif // __HONORABLE_TITLE // ′Tà?9 U( ~* |$ @! i1 X8 u- e
}+ I3 T: g5 m4 t. C% G3 e
#endif // __WORLDSERVER
! e3 X$ V/ |+ ~; W* T} . q% W9 c" o5 m0 ]8 ?
1 r1 J/ `4 q4 ~3 C
然后你进入functextcmd.cpp并添加以下
2 g) V9 ~9 I v; I/ k' N4 a
- s/ x4 X7 s) c2 @代码:9 p# C2 R# R2 W: q# j4 B& A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 F" o! y" |$ p# E7 k
下面插入4 L, Z P1 Y6 T/ `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 I2 g" _0 d* E' |) Q0 i6 d) C. x6 o( l! b+ ?/ w0 L
然后你去+ r4 C* n+ n2 v( {6 _6 Q' |
! j' N3 ]5 L* \$ d6 a! F
代码:7 J q5 j+ r. v" H9 z9 C0 V& M
代码4 i; }* D2 Q, q9 \; X$ Q. u
BOOL TextCmd_ClearPropose( CScanner & s )
5 w# l9 S" p/ z8 t{
$ v1 X* C- Q* W3 K8 H#ifdef __WORLDSERVER7 l( a2 h- b b/ G) _1 a! w
CUser* pUser = (CUser*)s.dwValue;' B3 X3 R8 @8 m- N0 V
g_dpDBClient.SendClearPropose();! O2 Z0 g3 G, m5 G/ I2 J
#endif // __WORLDSERVER
( i* A: C/ M' [2 h return TRUE;
) i5 [ I* ?' n8 ^2 M3 n}; }) X& L: u' D; I8 [$ o
下面插入
' s7 f, G: j- s, RBOOL TextCmd_rebirth( CScanner& scanner )
* r* C) b) C7 [: @! ]& m* Q3 D{9 c5 D, q `# v! }0 G) S" y
#ifdef __WORLDSERVER
1 b9 M; S1 A8 W HCUser *pUser;
, W. }; r0 G0 Q2 `& _pUser = (CUser*)scanner.dwValue;
$ a( M6 |# t6 F: G( \if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). X0 G2 |% J7 M- b( C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 o# r6 A4 c( c
else
# {6 d# h. I$ ?) t% [1 |! CpUser->AddText("你还未达到重生条件!");1 m6 K; |; ]4 E, |3 `
#endif
1 h) J8 d1 J2 M1 Jreturn TRUE;
+ c6 a$ J. f8 G} 6 J% m) u( S& [0 ?8 P9 R; k8 L! i
8 n9 m" B) t: V( P$ m
' A' D( B! w$ T) a
* `% Y) F8 Q2 _* n
- g' u6 s: h/ d% z$ W3 z
|
|