|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 d' h; x. Q f. G9 j3 O1 |* y3 M) z
Mover.h
+ [8 l$ |4 R. i5 x) A代码:
& o( d" f: ]/ n4 `0 T6 C# E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* v1 V. B0 E" @4 k* a7 \ Z
' s7 E! U" M' O! s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 T& a) n" |1 m- r4 q
! H! k+ h N3 b+ N6 |; f% V6 O然后你去mover.cpp添加
* R t" z/ q; B( Z- _5 c' w, G$ g3 V, r, z3 ]" w
代码:
3 }% j2 _; P t$ _% s1 P! avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ y; g, h0 A4 Z8 W2 l{3 r9 R1 j8 u3 b4 V
#ifdef __WORLDSERVER! R+ e8 G4 b" O8 t$ C c# @; z' P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 @, S; B+ b: ?$ k/ v% P7 M MoverProp* pProp = GetProp();& F0 U J& U4 r0 h
if( pProp )
( l5 [6 c: J+ w9 ?+ `# X# Y" L {: z# i, g/ u. `6 E3 R; Z% E, t
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. Z7 q4 ]- _5 q, p. m {
+ f1 |$ g! D* o2 J7 x1 w3 k5 I" V AddChangeJob( nJob );
* d! k' R4 o, Q0 H& `0 [' Y }else{: C9 V: e9 h3 o- S
return;
& A* [# @. @- R" h( _! ? }
* K/ C* U6 ~1 f int nPoint = 0;% B, d8 \6 p* T( j, i: U
if( m_nJob == JOB_MERCENARY )2 O. i3 b2 R" A2 Z- d% V% P
nPoint += 40;
: B" ^- u& j3 ]( Z else if( m_nJob == JOB_ACROBAT )' q2 z# R+ u1 }
nPoint += 50;* v( a/ y0 m$ Q f" A
else if( m_nJob == JOB_ASSIST )
2 O3 ]* S$ F' V# @, a2 y# t! D: v nPoint += 60;
" w1 Q+ h, c6 _' }$ [/ T else if( m_nJob == JOB_MAGICIAN )
- s6 T4 n& p) K+ [ nPoint += 90;
: g+ y- n3 j( h) h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 T' {1 B, F& _8 t
nPoint += 120;, f! G4 ?" n3 {% P) J; x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ [/ X" o4 [* Y5 I8 N nPoint += 150;; X. u4 ?7 Y1 b" h/ ]0 T' \) y
else if( m_nJob == JOB_RINGMASTER )9 r B. Y8 w+ l# e. y; ^* t
nPoint += 160;$ V# q, f @5 T8 u9 a/ E, H: W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& W% X' @9 r8 R1 e nPoint += 180;
6 a" i4 r! k5 r+ k else if( m_nJob == JOB_ELEMENTOR )3 T; C0 a: X! l6 p4 _; K
nPoint += 390;" `- u8 N+ e) e2 Z3 s* o8 ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 t8 s8 o) o* m, u; e6 q( Z5 X3 Z' O nPoint += 120;) p ~4 }4 H3 \1 R2 t8 H3 i! j. X1 M) `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 M' y4 S% h: b l( ]2 ]
nPoint += 150;/ A$ B; W4 \: [
else if( nJob == JOB_FLORIST_HERO )5 N, y( P6 ^1 a
nPoint += 160;
9 A! Z) U o) N; r Q+ l; i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
w. N1 Z- |; v nPoint += 180;
3 ~) n3 o5 f7 `% `, u5 M else if( nJob == JOB_ELEMENTORLORD_HERO )
! X+ @" e8 a9 B' U1 j. {; L* c" G nPoint += 390;+ h+ n' ?# H% m2 u/ C
4 k- f0 _8 Q+ i0 S AddSkillPoint( nPoint );' b4 C6 ]& I6 k, O5 q# b% W
m_nLevel = nLevel;9 k4 X/ A2 d7 s8 N
' g1 p* M0 T" L) Z* x1 W3 W SetJobLevel( nLevel, nJob );- o- ?. ~5 K& z' `
m_nDeathLevel = nLevel;# P( s F2 l' }( ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. ?! G8 G6 v: V8 U$ `: D
if(IsMaster())" m3 j- N4 p1 i% V, t
{
% Z/ r1 x+ Z" I6 T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( A' r" x& m" l3 R if( nLevel > 59 && nLevel < 72 )
8 m' m3 i/ ]2 G% K dwTmpSkLevel = 1;0 }) p8 @ ^$ @- Q
else if( nLevel > 71 && nLevel < 84 )5 S; c E7 j6 J: E
dwTmpSkLevel = 2;
6 |' P: D2 r4 V' I3 w else if( nLevel > 83 && nLevel < 96 )% v* Q2 K) R F; q: H) e' U
dwTmpSkLevel = 3;! k$ `3 D; n7 I6 l y
else if( nLevel > 95 && nLevel < 108 )9 g$ d+ ] C& @: V% V2 R
dwTmpSkLevel = 4; d* h0 `% z3 z/ _1 a* T* e2 J3 C
else if( nLevel > 107 && nLevel < 120 )
# v" K& k; U- R4 L dwTmpSkLevel = 5;
, r' S& \, I2 G( y, d- Q/ D for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 [" I/ t$ O8 F& X- r {
( G/ d- D8 b& p2 r& A, N LPSKILL lpSkill = &(m_aJobSkill);; l% f8 k$ s) J: j) ^
if( lpSkill && lpSkill->dwSkill != NULL_ID ). R2 A/ ~/ Y3 G; Z. z# C% }- m
{
! D2 B l4 i/ b/ M( U( u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 R, x" w' d5 Q0 k6 v2 ]
if( pSkillProp == NULL )
# D1 z& I/ }9 m$ d5 e- f4 Z continue;
' y7 L; |2 V: D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ _1 D" t; Y" r! J \( d
continue;5 y Q. F. f3 g
lpSkill->dwLevel = dwTmpSkLevel;; n& ^! T0 g/ j# x3 _! B# j! `
}
3 H- s* t- j+ P }7 j9 K# B+ z4 H0 `3 G' N' [; K F' `
}
/ C- d! E" \7 f7 M/ O8 N else if(IsHero())( d6 f! O" O1 z
{2 a' r/ a5 _2 a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : o$ y, l9 h" |1 [
{
1 g4 t/ w8 ?) s/ a LPSKILL lpSkill = &(m_aJobSkill);2 B& I! Y m; l9 R0 V
if( lpSkill && lpSkill->dwSkill != NULL_ID ) G. g0 P& `! f
{+ N3 B' H# ^4 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : @. \" ? g3 F% F( ^! R) C
if( pSkillProp == NULL )0 N5 D3 O1 `, R: A( L7 Q% W% V" M
continue;* D! C+ U3 o& d6 i, Q+ D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 r8 g, S: P# N% P6 l& ` H7 X1 E7 N
continue;
: s' L* G f7 v$ |8 P lpSkill->dwLevel = 5;! [+ p, ~. w; P. e
}
- g- ~. o$ Z8 L* }. P4 w }6 }# |! T: i1 j8 ]9 l8 t
}
8 L) y; t) K4 M4 b7 l) o else if(IsLegendHero()): T" a/ R3 m. _& g3 ]
{
$ F* P" a3 o% L: g: |8 R8 b for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 i9 B0 S# J( ~ { : M' X) P8 q6 i+ E! |
LPSKILL lpSkill = &(m_aJobSkill);! ]) o8 Q) k6 P" s
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 B* |% p8 y6 O& w& E: Z
{5 } [3 t$ ~ k4 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 d2 t; T; q4 F: m$ r( P& R2 ~" e9 h
if( pSkillProp == NULL )" `; l8 o8 J8 V9 m; ]
continue;7 a- ~4 h4 U6 R* Q) l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 k& J( @' g6 w# j- B k continue;! a* Y. f/ ^1 J0 F! m$ L# f
lpSkill->dwLevel = 5;; E" N8 m8 k* H0 U8 K! R
}
% h% k) K) @8 N* A& L: ?, r }
" @2 E( a, t3 x* W6 M4 c }
8 H- [' B- v( ^. Z7 l, b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 b& A- A* P* n9 A4 {- ?4 q. L: a
if( bGamma )
$ ?( \- H/ Y9 p0 J3 \4 b( F7 A {/ F) z4 o, Y0 u
m_nExp1 = 0;; P7 g7 }# | g
}
! `- l" ]3 l. C* r& g+ @, d8 E4 a; {5 S* S
( (CUser*)this )->AddSetChangeJob( nJob );& G# L; F( e F0 y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 H' T* N$ }: j" C1 T: B* \% n' T. x& Z" c
. [& a4 p: U: b7 o- o" O#if __VER >= 11 // __SYS_PLAYER_DATA
& N& K) D- U; m8 @' {. t& U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, C: e2 Y% d. \- R" l& Z' G% p2 Q
#else // __SYS_PLAYER_DATA
. T' b, \" M% k, m g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 x3 k7 S1 h6 Z. J6 V8 }. g) S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& [/ H' K8 X/ z E if( m_idGuild != 0 )
/ k) e- A9 m/ W+ R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 g7 V1 M3 r8 |' C8 `
#endif // __SYS_PLAYER_DATA" {2 z1 Q# D7 r- y1 S2 r W
SetHitPoint( GetMaxHitPoint() );
3 m+ ?( ~' i! }1 Y SetManaPoint( GetMaxManaPoint() );
' J2 h' R/ `# i SetFatiguePoint( GetMaxFatiguePoint() );
$ A; q l" N* y8 j, A, I1 s if( nJob >= 1 && nJob <= 4 )
3 |3 _, I( [- A _% U {' P0 ]* C0 \% F
m_nStr = m_nSta = m_nDex = m_nInt = 15;: X. ?4 Z" ^8 T4 [* x
m_nRemainGP = 28;% ?. B0 m( f4 i: l
}' X! |8 O7 Z( H' H* E; S/ e
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# r: @2 g" _7 b6 f- E( e/ \ ^
{2 v$ E6 ^8 |' p3 y! Y
m_nRemainGP = 118;! i Y! y9 M3 U: i2 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# } ?; J3 i+ c& A m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 `/ D d( _8 m. @$ l" ]' A }
8 s/ G3 \& h! E( Y1 a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) A4 P; [. K1 M9 N" O! ^% Q
{3 O0 x: ^) U! F2 ` z/ a
CItemElem itemelem;
$ `. R# M* I @ itemelem.m_nItemNum = 1;
5 d8 Y8 |) b& d( T5 o$ K itemelem.m_bCharged = TRUE;
( Y, e, ?2 C% X- w; C5 e# a BYTE nID;
% T" o3 B, X' y. x: }3 M% {
) p1 l6 k, G! h9 {, g% U if( nJob == JOB_MENTALIST_HERO )8 H$ Q' q4 S6 m
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. {, d0 O- O+ a- S4 O" k if( nJob == JOB_FORCEMASTER_HERO )
" |* l0 R& B# `5 C$ c2 R2 j$ ? itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 ?3 Q2 s0 p* }' b1 O6 z; s
3 x8 C# Z0 \+ j# M, ^" Z# z ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ Q9 T/ a5 `0 j' b1 |9 M9 M
}, `9 F$ p! R# Z! v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 \0 B0 p3 A5 ]8 a& @, d. @) C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 G) b- B1 v, `/ j4 d( B; W* `4 u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 U3 r6 j- {4 a3 r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" M* E0 E- }5 [! r# o" w7 Z
( (CUser*)this )->AddTaskBar();*/
+ d% |$ v+ a* ?6 } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
d: F; u- @1 l7 W+ C2 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- y/ Q$ a% v9 X C- A+ @
((CUser*)this)->CheckHonorStat();# q% r/ _4 J" x0 p+ V
((CUser*)this)->AddHonorListAck();
' j1 g/ U1 ?/ g5 L! A7 { g_UserMng.AddHonorTitleChange( this, m_nHonor);
, g3 ]# e6 q. y( \#endif // __HONORABLE_TITLE // ′Tà?
& z' U/ U+ G0 a6 p$ p1 W) n }
2 @4 v! C& g8 h# N0 L8 M#endif // __WORLDSERVER
4 R5 c- V- y" K1 s9 x0 o/ G} - R& _+ D( n/ Z5 r- L
# A( }8 s" A% x: k% h然后你进入functextcmd.cpp并添加以下
% c: f/ A0 Y' r: @* }+ s- ]$ x. q" T- d5 @6 T2 f
代码:1 G& L! q2 p+ k4 k4 L& a3 U
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" l% V1 Y A& H, n4 F! `
下面插入
9 a; m, P+ Q) |ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% Q1 Q: v4 g3 R0 F3 b, J+ ^! `; \( O% p
然后你去
- Z, v9 U0 D4 M. M F
2 z1 u* H8 x+ E b& t代码:8 K5 i' e- N+ @4 |
代码7 y8 r- }& P7 J% b+ o- F
BOOL TextCmd_ClearPropose( CScanner & s )0 n6 G5 T+ w% J$ _
{
; w* O/ Q1 W: G0 J6 p; F#ifdef __WORLDSERVER% _$ b* ]8 h! [0 j* _7 V3 `0 d7 N
CUser* pUser = (CUser*)s.dwValue;
/ u2 G% y% ~/ y g_dpDBClient.SendClearPropose();$ t* V' ]: |- J; n% K& O6 u5 ]
#endif // __WORLDSERVER
/ \9 B/ c* N: ` q7 Y return TRUE;
0 B( e+ [1 r# N* X7 d0 l/ Z, e! m6 z}5 t: E( J" M: p; k# C& z: ^; y2 g
下面插入
( }% y1 ^5 o7 w4 B$ I5 eBOOL TextCmd_rebirth( CScanner& scanner )) N" m( P/ d/ M( G
{
# d( f; r: T- T5 c* P8 `" R" t#ifdef __WORLDSERVER
$ |+ I, Z- f5 |! k' L, e' Z; V0 `CUser *pUser;5 f9 [, Y) K2 s J% _
pUser = (CUser*)scanner.dwValue;
; v0 Z) C1 D, U2 oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 P g* r. ~& ]' k, K/ o+ l" {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 I; G# a8 X4 ? \% U/ relse
. s0 ~0 @7 f+ p- Z( rpUser->AddText("你还未达到重生条件!");7 Q8 n o% ]: v( L( J, W. R; P* h m
#endif* d! X" A' T3 g) @
return TRUE;
8 ~' Y: A2 `9 f& a" B9 q} + {( h7 s" N2 |9 A9 w6 D
/ i a" M ?1 a2 S ]
) Y: G1 o/ m ]1 V7 D8 f$ }6 J+ L, A7 x0 D
1 f% E6 n& k! E
|
|