|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" I4 t( ^4 \9 ~8 K% D
6 }9 O+ }/ R3 g9 EMover.h
7 n4 ~3 e+ @; S; j3 k代码:
# [8 Q1 E( e$ A; P, ]2 o. \5 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" k5 N7 G$ I; Q, {+ T/ k, L8 ], W
7 {* l5 ^: L6 z1 ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 J6 G. z9 p5 N
9 j# {4 s# k6 m# L4 A7 J+ E
然后你去mover.cpp添加6 Y, i# E6 N j' `
! ]# j+ g0 y( c
代码:$ P/ R U7 X5 R5 c4 z) ^- o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! b9 _. E8 w7 ?( D" [ v9 f' `{
' l, K# `* T3 ]& P3 B% I#ifdef __WORLDSERVER- i' ?& x* i- R) K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ d" q. u+ H8 \; Q MoverProp* pProp = GetProp();
, Y/ M+ o t5 B$ [% G! X! ^( _ if( pProp ), ?" |% v' k3 B
{
+ `* u. {: S' Z. ^1 f' b# J3 ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )! x. z, ~6 i4 r& a8 l* o
{
! P* R! ]3 {) D( s, n6 u- Y0 r0 N AddChangeJob( nJob );
) S; O% j4 g- j* v }else{
& J2 S) w3 f3 w2 G" B6 E3 p return;/ o" Q, g8 o5 j1 `/ ~( B* s2 `
}) `' ?" P. L: M0 g4 ^
int nPoint = 0;
7 W" b5 _1 x' s if( m_nJob == JOB_MERCENARY )
% y/ L% w+ L4 V1 r/ A! D Y nPoint += 40;
2 w; K) w# C" C2 R: {; [2 D else if( m_nJob == JOB_ACROBAT )) P7 z O1 r& N
nPoint += 50;
: w0 Q- J& v7 s) I+ [; x+ ` else if( m_nJob == JOB_ASSIST )# j5 G; K* B* T& ^
nPoint += 60;
7 `5 q, \7 y1 D: I' M# p! W else if( m_nJob == JOB_MAGICIAN )
+ g! @( x$ b4 b; o. f4 F nPoint += 90;
5 }; m4 p2 W+ ]- K. c% @* w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( {* C# G9 R9 c, W
nPoint += 120;
- D$ b8 B: O& B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" p9 m$ g3 M _! H) w( ^" U nPoint += 150;
8 l' n1 u$ z0 l6 y! S& s else if( m_nJob == JOB_RINGMASTER )
7 b+ {* T- T9 r! \ nPoint += 160;/ ]' C% p5 T$ P) X, m+ F: l' a& u- D) X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 G: p# v; V, [, S
nPoint += 180;/ e( Y3 l( [0 e: X* p8 F3 A% u
else if( m_nJob == JOB_ELEMENTOR )
- U* g7 \+ l; S. K# C$ I- H4 | nPoint += 390;9 p: u+ b8 r) P* }; M2 C/ b8 k h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, P. B7 z+ F5 _7 J nPoint += 120;
6 z; T4 |1 O# _9 E1 D( A$ T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 A% _3 A# l a# C1 m- O* t
nPoint += 150;
6 e, W" z9 L$ Y else if( nJob == JOB_FLORIST_HERO )
/ D( B) K5 W Q3 l0 [ nPoint += 160;
9 x8 p) w1 ^) {. s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% X2 R5 j) [% m0 @# h, k nPoint += 180;8 R# n9 {1 `# N, }
else if( nJob == JOB_ELEMENTORLORD_HERO ), Q) b# c* V9 d8 ^* m4 ?
nPoint += 390;: q; r/ C; H9 }3 f* @/ g
* R5 S! K4 U/ r/ m0 K( [ AddSkillPoint( nPoint );. Y% @0 C9 C l7 P- |$ `
m_nLevel = nLevel;
J( T: C) [6 P, j8 o! n
1 l$ _* `6 ?% X; p6 y SetJobLevel( nLevel, nJob );! O; @ M- c; V3 p$ X+ ?4 j: G4 H
m_nDeathLevel = nLevel;4 L2 [/ A$ X/ v* g+ D2 h1 H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 ?( s5 ]9 v/ r7 Y3 Y3 n5 e
if(IsMaster())
1 d: T: ]' w( R1 ?& O {
+ s, t) q3 l4 M8 ~( B0 t7 c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, s# U3 d, |0 ` if( nLevel > 59 && nLevel < 72 )9 [3 x* V' }9 r# X# L4 I$ ^
dwTmpSkLevel = 1;
) O/ _$ B. f, g3 W8 Y7 c else if( nLevel > 71 && nLevel < 84 )7 _5 H( x5 D* O4 W' M
dwTmpSkLevel = 2;
/ q0 R* [( L+ Y, S: t else if( nLevel > 83 && nLevel < 96 )
5 K( d2 S! I( r ]/ y- x. d: U. e! e" \ dwTmpSkLevel = 3;
5 t2 O$ p' P5 I) b1 w else if( nLevel > 95 && nLevel < 108 )
9 h1 k& p+ Z, D1 C0 G dwTmpSkLevel = 4;
4 O/ q# ?4 |# A6 m( d else if( nLevel > 107 && nLevel < 120 )' [5 M6 t% T3 N2 r: K! ?
dwTmpSkLevel = 5;) n5 [7 F% p2 X) k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 L$ ~& z j" |( a {
5 E4 K& W2 t7 E LPSKILL lpSkill = &(m_aJobSkill);3 V& W O( ^9 t8 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 }' b5 p5 w# `+ \* q9 y {, h. k6 J, U) S5 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 c h4 a4 e+ u9 y* a1 A- t
if( pSkillProp == NULL )
7 I o5 M8 f7 @! k8 p continue;2 R( l5 @8 ~# K c9 `* i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' ]+ q/ f/ U3 s( o/ X
continue;
: v" a0 ^0 i D/ [: @+ O' m" m lpSkill->dwLevel = dwTmpSkLevel;
/ P2 X* R3 m7 `1 E2 H }
5 W8 X% m X( t( ] }5 N: ?+ e1 ?( b7 j, i) k
}
8 g/ ^( T- ~% C/ h- S" i0 W else if(IsHero())
! i9 ]1 ^4 m V {: b! X. e+ c% J; Y: c4 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ V& S. ]; r/ K8 K {
$ G- l! S6 ~: i) l, Y( s0 m LPSKILL lpSkill = &(m_aJobSkill);( N" ]( Z& I0 C8 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 E/ S6 U1 m5 E3 _
{
' _3 k1 q& F: b# u8 X; { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) ` t5 m" @) E/ z7 I6 G if( pSkillProp == NULL )
! G9 m2 X% k- B/ m' {- l continue;# I( x* Q+ o- x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% n$ w3 p8 c; @ continue;
0 Q) [) F# u/ B- F lpSkill->dwLevel = 5;3 R, J8 j. f$ }3 a
}
3 b( J4 L% h/ {! X- N2 a5 ~+ w }0 `" a* v, Q9 x+ D# y
}
$ b- {# \: ?" k8 \! ~4 \ else if(IsLegendHero())
' j& p, e: g6 P1 F( T {7 G8 T" I7 y6 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % V V* G2 @; f2 {! Q4 J
{
: w, m) R' z/ Q" M! i* D LPSKILL lpSkill = &(m_aJobSkill);
* C. y7 Y( U4 _- w1 X1 K if( lpSkill && lpSkill->dwSkill != NULL_ID )5 ~, g: K* n, X! r# h
{3 f1 K; D9 \( k% N: w' A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' s* L1 |% R- h: X- p) w3 M [ if( pSkillProp == NULL )5 y3 G& w5 |- y: s2 _; D, O
continue;
% P& n- F+ x% r! R$ @; M1 K: L- ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 z; ^ f. D) F7 K continue;( n; w6 w0 y& y: w- o1 D, u* Q' A
lpSkill->dwLevel = 5;
' U& o$ Q2 c2 e7 j6 J" ~ }
9 \0 A* i; |# x- i2 j }
: X# @' h9 s$ j; Y }
+ M8 @- g" z" O: `) o2 d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& A% I' o6 y7 J5 f if( bGamma )
+ I6 S$ Z( g% p A. A {
& H6 l! `6 K1 G# ]2 [) {0 M: Q+ v m_nExp1 = 0;
" }0 X* U/ C) b0 f }* V/ D0 _. i$ L: i+ j
3 T( k9 R* h' t ( (CUser*)this )->AddSetChangeJob( nJob );' x6 g1 P4 @, S* D2 Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ i: o4 l9 B/ r; O0 Q* C
8 e' _' ]# R' t# k$ E
3 s& X' B6 D" {' S" K5 F#if __VER >= 11 // __SYS_PLAYER_DATA; {# S, n: P) t) y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. I0 S7 p: c& g! u
#else // __SYS_PLAYER_DATA' ]/ J8 b T* G( Q9 z2 [! J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 l; V: i# w0 i- T Y6 Y* }2 }3 c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& N9 m- E( ~* B: x! x: m8 ~* M( K
if( m_idGuild != 0 )
4 f7 K! z8 i4 e8 B L, N/ r8 ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 w2 U2 Y, e9 t7 n* |: y#endif // __SYS_PLAYER_DATA
: G' l$ a% s" j: m4 W SetHitPoint( GetMaxHitPoint() );
' ?" W8 ~& _& l- Q( P/ {/ }' p SetManaPoint( GetMaxManaPoint() );$ i+ t5 e& j3 Y9 Z0 y, K ?
SetFatiguePoint( GetMaxFatiguePoint() );& }$ P' s+ w C) v, z. x4 T) q& c
if( nJob >= 1 && nJob <= 4 )" ^* Y$ m4 q9 y2 L! Y
{
7 G8 U/ k" f+ E5 C m_nStr = m_nSta = m_nDex = m_nInt = 15;: H( p8 k! f& L! M9 j% m8 l/ _
m_nRemainGP = 28;! m! g- `) o. s
}# J* S% {/ T; t) k! r, @9 `# N+ d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 o% D i( u K9 H- z# s J! { {8 q6 d$ I/ [; f5 J" V' B7 X
m_nRemainGP = 118;
0 B+ l V/ r/ @% M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ @( @7 Q+ _1 E4 Y' q$ `- L/ m. [; Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 r. q8 I* w! ^3 n }( R& ^: ^ }% n; s# s! [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 F9 ~, G/ a+ T/ W: i- o: x9 d) v {" F9 ^& b! N0 g" A/ b! e4 \
CItemElem itemelem;
; a: V, U! T) Q" D `/ X4 j. O itemelem.m_nItemNum = 1;
9 d# u: p) V5 M2 D1 s itemelem.m_bCharged = TRUE;
4 i; _/ _2 M0 n/ J. a- h8 _# P BYTE nID;% }+ A, A* d. I
8 f$ y* A6 F$ A2 r
if( nJob == JOB_MENTALIST_HERO )' F* z e) G3 A3 t& x; [7 X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: C. U' W4 p% P$ Y# _, Q) t' C3 ~! x5 i
if( nJob == JOB_FORCEMASTER_HERO )$ a/ i3 J6 M& V( I% ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# i4 n9 v1 L/ `- u5 g8 g* |$ x- i& p' g8 M& [
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ a1 m2 v( m) D. {% W- j! ? }
# ?* M/ W" L C8 t: S! H5 M- Z6 g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. R/ _ i6 N" P: b4 B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 m4 H2 k1 H* Y) U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: }- ]0 |7 m5 _ k" z& [- F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 Z2 P9 j3 Y) T0 ~7 b ( (CUser*)this )->AddTaskBar();*/; m, R! o, N! ]2 C% s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: e2 {# U8 E% D% h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ J& ^* c1 e; z ((CUser*)this)->CheckHonorStat();
' ?' Y* ^" k1 _! u# M ((CUser*)this)->AddHonorListAck();1 h" ^0 X) P9 d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( L7 k! F! y1 S; S: m: w' g' J#endif // __HONORABLE_TITLE // ′Tà?9 W' [1 P( D1 i
}
7 h5 Q; K1 L, L, x3 G. e#endif // __WORLDSERVER& f6 ]1 x, T9 h
}
8 t! y% |7 k( N. x4 y8 }" q' o3 {4 d- [7 _8 W9 z$ \
然后你进入functextcmd.cpp并添加以下6 F. y( D$ q. Y" u' f& o6 Q2 i
8 `7 K. w2 j( _. \- H+ a( {
代码:
: @: {9 w9 q' \( F: o8 |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" o& l" W: @* {& X下面插入4 M4 ~% B' z) P$ ?2 }+ @
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 a: m- g' t' Z1 s
% y) a @* P, \, w* i. V
然后你去/ w( g1 G0 D& U. e" M
# x' n) n4 O# _* G" o g代码:
- _9 ?$ y8 _% t4 p) h代码
) C3 [" ]; Q- V- x" h, RBOOL TextCmd_ClearPropose( CScanner & s )6 b% ?5 d. ]/ O6 X! W! D D4 I
{
- p: V% e+ p( i#ifdef __WORLDSERVER6 g2 F9 w6 u3 i+ W
CUser* pUser = (CUser*)s.dwValue;
/ c' K6 \7 e) u g_dpDBClient.SendClearPropose();: w6 W$ F4 K7 m- Z9 }" T
#endif // __WORLDSERVER
9 c5 I) ]+ z& L$ J. q! p return TRUE;4 n/ @" {0 o, g' X
}+ B% x: f }/ o( H' a2 c
下面插入; ]& X: C( Y' h1 r5 n* G
BOOL TextCmd_rebirth( CScanner& scanner )+ z6 Q( h3 G" t
{7 G$ ^7 i% S' J) s6 T
#ifdef __WORLDSERVER" b. d! }1 p- H( ~, b: t# \
CUser *pUser;) h- d& J- J0 L2 A1 M7 H' B& S: i+ O
pUser = (CUser*)scanner.dwValue;
4 u$ P0 P7 @: G0 a* |& l) w' Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, n. R- |3 x' F3 k/ z/ DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* t9 m' \3 o$ ~8 D* P) o4 `else
) J/ b# @6 i( r$ ^, T) f$ W7 FpUser->AddText("你还未达到重生条件!");
7 I' [/ B# i) a2 m) ?5 h9 | R#endif
. y! O+ m" \0 G' j) k: ^return TRUE;7 W* }4 v8 \5 m4 L. m% O4 Z
}
6 \+ r' a/ a$ G4 ^: B0 M3 r, l* V
# K- o6 r+ S* I( ]% e) b9 E
: I. _5 ^7 A" @+ K# q1 R% p4 O1 u
- U& x( B* f+ {( |
4 r6 n- `8 e1 [2 n |
|