|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 i: P: }7 W& }2 O% x9 h) `/ d9 ]" ~8 B. t; q
Mover.h# S: ?3 y+ k: z3 D
代码:/ W! O: \( g+ Y! v# e, |' T
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) F9 O( Q7 h3 ^
, P) H5 r- J3 E6 t+ {3 q* O, O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. I4 L1 V1 Q5 ?# l C% \7 N2 T
& X. } r( o% E) k然后你去mover.cpp添加# F# k+ [; N* j- v! b& [
' N- T7 j1 f& r$ }4 K
代码:% ?3 t( v7 y- e Y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& n f* A7 P; ? X$ G" ]* d9 m
{
: q% p \5 K: {#ifdef __WORLDSERVER
4 s3 B1 g& u% f" ? // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ ~, n1 C2 K t! F! ~6 s* `
MoverProp* pProp = GetProp();
6 q9 g- v# W( Q+ C; h X% A0 s' G if( pProp )% h" E V( L0 _: s+ v
{ s. G! y( k) r R- J
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 e. E) _$ c- Q6 q9 H& j {
: u' X2 s1 Y/ m- _# `: e AddChangeJob( nJob );
h) x4 N+ b9 S! n X7 Y }else{
4 [% p; A$ \; d7 _, e0 @* f6 c1 f return;1 W7 e9 V" A8 V' q+ G( q( q4 S
}
' l5 E2 O( }0 @9 V0 Z4 \0 X" X0 p2 H2 C int nPoint = 0;+ w4 e: D$ ]! T
if( m_nJob == JOB_MERCENARY )' E6 d( ~. r) J Z$ G( @
nPoint += 40;
1 F" V, U& a0 |' M7 [5 Y1 u- i else if( m_nJob == JOB_ACROBAT )
2 j! x. n9 A8 |5 L5 F8 \5 S0 y c) p1 N- \ nPoint += 50;4 H) q% g& G" `% z# H
else if( m_nJob == JOB_ASSIST )+ b# H w1 |+ D5 j: A1 p4 [
nPoint += 60;" Y% o0 V6 [3 N8 ]2 ^9 D3 V
else if( m_nJob == JOB_MAGICIAN )
7 z+ B6 e, O+ K* {% T9 m+ m, k# Y nPoint += 90;
4 T0 \2 q* D, m1 Y" g) _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); B8 H( P6 Y, S" S, F2 N# T" l C3 x
nPoint += 120;
; p+ _& A( [( [8 v" H6 {' B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- k+ v" S8 C9 B& w$ p* W4 ?
nPoint += 150;
. z' Q$ R$ H/ K+ T: J7 C) H else if( m_nJob == JOB_RINGMASTER )8 ?( g$ _. ^+ d- M0 s7 f, a
nPoint += 160;$ q) {, d* r' U }4 p( f" Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* Z8 u% p0 A, S* p8 |' A
nPoint += 180;# E B" n" D& ^# t% K0 Y
else if( m_nJob == JOB_ELEMENTOR )
6 p! m* o+ P% d2 E nPoint += 390;
8 K& w6 R. c. h: Y9 C8 J+ \% d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 a, o' p4 E) u- T% g5 U0 M nPoint += 120;
3 e! @5 f3 ?1 k/ W2 C& r7 Y7 C( `( o, L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: X: x) s9 b5 w+ R( W# S7 R nPoint += 150;
% C8 O7 ~5 E0 g i. Z2 o4 t else if( nJob == JOB_FLORIST_HERO )) G: b. B% b, n# z$ l
nPoint += 160;
1 [. t8 j8 W5 t* {. ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* Z' t t+ h$ i7 m& k nPoint += 180;
: y v7 d' S6 T" R/ k& f5 ? else if( nJob == JOB_ELEMENTORLORD_HERO )
, } S0 s5 l* u/ b* D8 t( d7 y nPoint += 390;
$ X" I5 p2 F, t4 Z1 |" V# h
# v4 z ^2 z8 h. [( j AddSkillPoint( nPoint );: \- v9 L2 b/ F, ~+ }
m_nLevel = nLevel;
% M+ }* O$ O3 S7 X& Q- z7 ], v3 n( _2 G) l# o$ M7 l5 {0 @- E& n- v
SetJobLevel( nLevel, nJob );* f& R) L7 N5 R7 ]
m_nDeathLevel = nLevel;
# O. Z* Y+ m+ t8 N1 W% y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 j6 j4 h% y `7 C- Z0 J2 Z( x
if(IsMaster())
! V# V" O1 W1 J5 R3 D {
2 Q7 Y/ e" P( J% u6 C' m int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 d2 L. K3 Z% @& z$ d4 ^
if( nLevel > 59 && nLevel < 72 )
" z) j4 V/ n- \! ` dwTmpSkLevel = 1;
% E0 J% w1 N1 W# P6 }# e$ v else if( nLevel > 71 && nLevel < 84 )
1 g& |9 ^3 A5 [0 X dwTmpSkLevel = 2;
* @2 Q' D( s( [* y( I' t; K7 K else if( nLevel > 83 && nLevel < 96 )/ @1 ?5 b0 s x3 e8 j, Z
dwTmpSkLevel = 3;
! p- q0 S$ R/ m- u1 N+ k else if( nLevel > 95 && nLevel < 108 )5 X4 @' f1 `; K- p' V
dwTmpSkLevel = 4;. C" [& K: u1 {/ ~- c
else if( nLevel > 107 && nLevel < 120 )
7 O3 h [! R* r dwTmpSkLevel = 5;
, ~& d' v! U# G0 w0 U. Y% p for( int i = 0; i < MAX_SKILL_JOB; i++ )
, S$ x/ A. l8 |4 k, ~6 I1 @ { ( {! L! t7 T' c8 F. z
LPSKILL lpSkill = &(m_aJobSkill);
' c$ @5 u; m9 L$ ~: S0 e9 V- H' ^) n if( lpSkill && lpSkill->dwSkill != NULL_ID ). Q- n0 w( X; s( E! ]# z
{& @/ ~, I1 Q' F4 v: G4 C+ ]+ p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 B @) ~, E. Z n" ]9 f2 N
if( pSkillProp == NULL )
( U9 S. @$ j/ n# P continue;
& Q2 l* R0 Y5 ?& s0 V% W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- }. S! y0 e: [" _9 z continue;
$ [2 \ P8 L2 b) N lpSkill->dwLevel = dwTmpSkLevel;
$ `9 r0 U$ Z% }9 F }
+ r. ]/ A4 V, A1 h" }: {& X4 v) ]; x }' [1 p, l$ p" N
}9 F A% [- ]/ i8 b# N% X
else if(IsHero())
1 ^( Z; l4 c& ]' o {
! y7 r# x7 ~9 [' N; ^ K for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 p% j1 f w, B& O0 E9 u {
9 s0 P! c! @- J; |! a LPSKILL lpSkill = &(m_aJobSkill);' h8 {) d: n4 i' A* b, z7 s/ p* |& j6 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* |# u' \4 D0 u) y6 a$ \ {# T2 ^% L6 l: D! A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 p. c/ b( C: t1 M8 o
if( pSkillProp == NULL )
/ n) _7 Q9 Q1 j7 C5 v* a& t continue;. P& ~# M* K7 q4 F, @# v1 C4 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 \% R( b- [4 N- P1 ` continue;, e6 k2 K- u; A5 f- }
lpSkill->dwLevel = 5;
7 l' N0 U2 {- A }
* E2 a4 {; b5 s6 v# X }, v+ v h' l3 x# U
}
* _& C) ^3 O; B else if(IsLegendHero())
3 F2 x8 [$ \& p) @9 o! I2 m {& `5 J$ c! T8 e. F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 r& l. z+ `. f( }0 j; H
{
' v( P* P( `, q LPSKILL lpSkill = &(m_aJobSkill);- @8 o9 z1 l7 d t3 N5 E3 C1 s. y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 S2 ]/ I, S% q {% V4 C* q9 r' R) T. H+ M* o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! D" C$ P: s4 f1 A6 C" J
if( pSkillProp == NULL )# s; b& H" { s; s
continue;. i0 R$ N0 m3 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) P2 D$ @" a3 f3 c5 b continue;, `$ N" V9 C5 m c' w6 p! A7 F
lpSkill->dwLevel = 5;
6 a7 c; |* ]" f! H+ @# O }# O1 E4 Z% S: m3 |. b/ x) Y
}( f# N' B! d, s1 v P' M! ~; D
}
2 a7 k& X2 a+ U+ L, |#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 R. b4 D/ W0 L. u0 H5 v6 | if( bGamma )
. b4 Y# @+ ]# I0 x; Q0 X {
+ M7 s+ A$ G. D+ _; Z m_nExp1 = 0;
8 U6 F' y# b% b4 ^$ m. b1 x) G }) R, r M. G! k; y4 M( \3 Y
0 J9 W5 H5 d3 _& c1 X8 G
( (CUser*)this )->AddSetChangeJob( nJob );
+ s0 c( C: G. z3 ?$ c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 Q! S- o3 Y1 T0 e/ c
h1 {/ I* j' E0 p" L% i& X4 f" j; r0 ~. \2 M0 Z5 }8 O1 m
#if __VER >= 11 // __SYS_PLAYER_DATA
( \3 v7 {. h: Y5 z8 r6 \& z# j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 S8 W3 {+ Y8 z8 B#else // __SYS_PLAYER_DATA
. B! x) W2 z2 p- j$ N5 W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- l7 [0 ~9 d9 f' _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- k! S3 J( W" d+ L# E/ O' r. V if( m_idGuild != 0 )
+ @: H5 l+ e% V* O4 N/ A; h2 B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ ~) M$ i( I, Z. Q
#endif // __SYS_PLAYER_DATA
& W* i2 y% n/ r% y9 T$ l SetHitPoint( GetMaxHitPoint() );
1 c8 [' ~$ Q: U7 s/ r7 V6 X SetManaPoint( GetMaxManaPoint() );
" l4 ^; v$ V5 u0 c6 V$ f: x SetFatiguePoint( GetMaxFatiguePoint() );
9 \2 O' U# l3 ]# w( p+ r& W5 G if( nJob >= 1 && nJob <= 4 )
! I% b6 B: K# k+ }) K$ d/ J {1 ~! ^ i! V1 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 f' N$ o0 g9 q7 y, C m_nRemainGP = 28;" j: W `, c& _+ f
}5 ~7 A9 ]" w9 I# f$ m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 p ]- l3 g. m; t
{% O! c8 x1 U) G7 }
m_nRemainGP = 118;/ m y, ^+ Z2 ~+ h- Q5 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& _ |( V- I% w* A
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, b- k/ b- f# T3 e$ P# Y2 W }
$ h9 m, ^* m; x! y3 |2 R if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% z G ]; T0 C( I {
+ ?2 [; v$ [/ t8 K+ v4 k8 f CItemElem itemelem;
' I: \% _- Y1 i1 | itemelem.m_nItemNum = 1;1 `% I4 Q7 s( G m/ |
itemelem.m_bCharged = TRUE;
o+ n" k: @! J BYTE nID;) E. h( o' f4 H7 l
* |4 f6 A2 u* r8 T5 O if( nJob == JOB_MENTALIST_HERO )7 q9 E7 a. J+ [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ {* T' t T. d- a5 W& L
if( nJob == JOB_FORCEMASTER_HERO )
; }, Q+ N- a8 r, ]% W& x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' W$ y. H! V: B' |4 J
& F9 u: `! Z2 M" k$ o \4 k A ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* s2 U5 q+ C- X8 Y! D }
0 \; S& F6 s" d# j& m' b g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# B: W; Q' f* q: l. b& @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& k0 Y2 o: T5 I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 g( c5 Q# H$ v {+ m
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: U9 I8 ?; [. z, K5 _/ O' ~ ( (CUser*)this )->AddTaskBar();*/
9 K+ A( F5 p( y# [, n, M ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: F( X6 t C9 I( O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( @+ Q$ ^8 k9 z/ s
((CUser*)this)->CheckHonorStat();
4 w0 g, x$ L4 D3 o- G, Z0 V ((CUser*)this)->AddHonorListAck();
0 d& V' X2 T1 d! W g_UserMng.AddHonorTitleChange( this, m_nHonor);
) h7 ~2 h0 O8 p8 ?; o U#endif // __HONORABLE_TITLE // ′Tà?
( S+ W5 t- O8 ~$ s8 _- f }4 _3 ?3 s- P5 h- O* O
#endif // __WORLDSERVER
2 Y; o5 z2 {" R' w}
- q# k$ {; r8 I
0 z+ _( ]! Q3 l1 a然后你进入functextcmd.cpp并添加以下
7 Z2 P! C7 H$ s, b% e" y! p" ~0 a" y6 r/ Q1 Z" Z! Z: T
代码:, V# J, K) f' G
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): q9 e& f* J4 D/ x# X
下面插入
( m5 D) r2 O. T9 k. L& \) U, r' kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % H% T$ o5 h( D* B8 C1 {
9 _% @ i' i$ x3 `; B+ \2 x然后你去
" X9 y3 w; R) k+ ~6 V& }3 S1 r! a! b+ ]& V0 p3 O
代码:5 J$ c5 u3 C3 h. c2 y! k" n( P/ l" `6 h
代码5 B. m t1 E5 V+ p( A
BOOL TextCmd_ClearPropose( CScanner & s )8 ~. f" p+ [ d0 t( W3 `2 M" W Z
{
7 Z' D7 {/ l: L/ Q8 i( ^#ifdef __WORLDSERVER
0 T1 E% B9 A' j. E4 d CUser* pUser = (CUser*)s.dwValue;6 ?( T+ e6 B; _5 o( U
g_dpDBClient.SendClearPropose();3 x7 a$ d! d7 B4 R7 Z
#endif // __WORLDSERVER
$ `7 G) a9 N0 @9 w, b( L return TRUE;( W; a1 M3 ~3 s: g' `% w; Z+ e
}
, X( q/ Z2 V2 D y" [' s: z下面插入
; i8 F0 H4 h: K7 CBOOL TextCmd_rebirth( CScanner& scanner ), q- Z) @& J; ?% g) N
{
7 |7 D1 @: D9 n' U& V" O#ifdef __WORLDSERVER
& w! H& F1 T+ O5 ~CUser *pUser;4 g) L7 f( k! ?& _0 O" ~
pUser = (CUser*)scanner.dwValue;% Y: Q7 r; }, J( E$ s+ L5 B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' S- y0 @0 K$ m& ipUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 j3 P6 i, Y& ]0 f9 Q
else
^6 T; s" y8 d1 ^4 c' @pUser->AddText("你还未达到重生条件!");8 v0 F0 x+ ~3 h
#endif
$ C3 v7 X$ K* I4 v. S# y' S X. Q7 vreturn TRUE;6 X5 }6 y! ?8 p/ n- l' M4 Z! R
}
8 O; l! K. q3 Z2 Z3 @7 e1 e2 @# o" T
' ?( \1 q" {. H0 Q v
1 n2 y: E- ?5 Y8 E$ P+ K
* ]2 M2 q7 t7 u$ i6 A+ j! G |
|