|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 { t* v j U: t/ {7 ]4 b3 c6 Q6 v
: F2 ], {/ `2 P5 t+ z+ E8 H/ x$ }2 @
Mover.h9 I6 |% A1 D" _/ _# C& z
代码:
7 A& p. S4 ~# `. o M! B2 N5 D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 s7 G$ C, m( ~% f5 l& C# s, J8 F: {+ D# N1 j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 B) P7 B: |3 Q8 H# X1 }9 |1 Z" M! k2 T; y2 b
然后你去mover.cpp添加
& c% j& f7 c3 O7 i9 t0 i% `, K( s8 X# L! [5 d
代码:8 A" Y+ I- _) W6 c0 e5 {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) I. f6 a( p- `2 s{
1 `! G1 L' x& T2 t1 H#ifdef __WORLDSERVER1 U$ |6 X0 m/ }3 e0 b* k" }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& n4 }$ B+ g- h6 A5 K* T MoverProp* pProp = GetProp();( D& ~* |) Z* F
if( pProp )7 z6 c- h9 J8 z# _( f9 A5 }
{
4 m0 s2 [+ k2 M; I if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 I0 H" Q( R) j2 Y! V- f+ Q9 F' v! ]4 D
{
& i, i. ]7 Q9 N" b8 L" C AddChangeJob( nJob );# Z6 h. i! [6 i1 z; O3 J
}else{
# d# R; X& C5 m5 N return;: ]" [; R2 P& P$ O, n0 L9 c9 n
}) |9 E1 S* h6 H4 s! y* c
int nPoint = 0;
8 |# V: x/ p1 h7 R if( m_nJob == JOB_MERCENARY )
5 }, P3 {# p5 |/ T, i( Q8 U" ] nPoint += 40;
4 t7 H) V, P6 H" F- T4 r else if( m_nJob == JOB_ACROBAT )6 V1 i) w, r4 I& T3 {% ~
nPoint += 50;
, o/ g5 L3 \. o1 z" p$ { else if( m_nJob == JOB_ASSIST )
4 x7 a1 j# W7 w" r' P* x0 F nPoint += 60;
0 A c( G1 i9 g* K3 s4 t$ D) ]" K else if( m_nJob == JOB_MAGICIAN )
+ s! a& g# a% O% ^# ] nPoint += 90;
1 A6 r/ p: ` q. } else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( x# }( T7 g% Z5 n& B! O ^ nPoint += 120;
1 W7 g' b* d1 \4 |0 d" E9 x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! L2 r+ b j) F* {0 l& V: W
nPoint += 150;5 C' F W' e# p1 ^6 g A
else if( m_nJob == JOB_RINGMASTER )8 E! c' Z) ]( f9 n1 o5 C/ `% U
nPoint += 160;
% b5 V9 M( h* `) Y' z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 l" \) r/ u4 N) F; l( z6 v& _ nPoint += 180;
2 ]0 F L7 M3 ] else if( m_nJob == JOB_ELEMENTOR )
- J {0 X s! l3 Q u9 r nPoint += 390;
. C/ l# v* {5 \# v- _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. J1 |" a% |& @ nPoint += 120;
' i9 `! w2 f8 F! }8 N8 ]0 d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ x& p2 d" S: ^1 H/ u2 t% H3 X3 O3 ` nPoint += 150;- @; a8 [- T8 L0 p" P2 ?9 ~
else if( nJob == JOB_FLORIST_HERO )) Y1 X7 e$ W- R9 U ~; B: I
nPoint += 160;
+ A1 V. \2 T1 \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 e! K: ~8 i2 C; A2 V* _ nPoint += 180;, T0 o. o0 v4 I3 t$ M
else if( nJob == JOB_ELEMENTORLORD_HERO )
# S; s1 g0 \) j+ r nPoint += 390;
$ n) \8 u2 K; L% C& O% G, G# Z5 X0 @; g p- T
AddSkillPoint( nPoint );
5 h! H6 A: b' ?; x& M1 E m_nLevel = nLevel;0 w0 p' C, U$ f. j1 x j
5 f6 W7 Q l- w3 k! _ M: Z! u) ]6 k
SetJobLevel( nLevel, nJob );7 B* p+ D' O8 y/ s, E& D: J
m_nDeathLevel = nLevel;0 J0 I. Y: R, ?( q h! b* U% ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- U3 Q/ s0 w" s1 N' m# {1 s3 p7 T3 m if(IsMaster())3 q4 \, v1 b7 U- l
{
: }7 I+ s4 y; O; g int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" X2 ^ v- Z1 [$ J
if( nLevel > 59 && nLevel < 72 )2 c+ ^$ n1 ]4 ~
dwTmpSkLevel = 1;4 f3 X( P9 [. k' U0 j& c6 J& S
else if( nLevel > 71 && nLevel < 84 )& \( e( ?* X& Q- d" E
dwTmpSkLevel = 2;7 H2 L& \- U" R# U0 M! {
else if( nLevel > 83 && nLevel < 96 )9 {' q$ W! x: q" \3 D ]4 w
dwTmpSkLevel = 3;
" u1 ^+ a) }3 c: m9 G/ j. [ else if( nLevel > 95 && nLevel < 108 )* ^. B, Z; b% x5 y& W2 g& B
dwTmpSkLevel = 4;
2 \4 |5 O" k4 s( p else if( nLevel > 107 && nLevel < 120 )
) D3 P! e4 c0 w- S dwTmpSkLevel = 5;; |! ~" ^: u* y' M1 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 \2 Q9 J: G5 P( _9 A' K
{
# y; G) i) l, H/ A! t. O& Q. T LPSKILL lpSkill = &(m_aJobSkill);2 L. T& n3 I7 k6 K* E
if( lpSkill && lpSkill->dwSkill != NULL_ID )" X- s* f b+ Y& v! H4 s
{
4 m, X5 _# m, U' V3 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- O" ~8 W4 J& L6 O7 K+ t+ R0 } if( pSkillProp == NULL )# V; F4 T+ F% |& r$ U
continue;
( n8 z5 v* }& j+ w* }; b# L! X+ e* d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 M! u% X S/ l" N3 ~5 ^ continue;
0 I0 s8 i* v) F4 @, v" B; s7 J4 c lpSkill->dwLevel = dwTmpSkLevel;
. {! e6 I1 c! m, p/ u) G6 \ }9 R2 Q" y0 O4 s2 ~ A
}
/ C5 O3 p' i# W& }( p }: l% B6 p. V5 B% s _+ J- {: e% R+ [" C
else if(IsHero())
6 L# N2 m6 e$ {5 T+ J+ o0 ^ {
. ?0 ?# P6 n3 F& q3 H/ Q8 W! g6 a for( int i = 0; i < MAX_SKILL_JOB; i++ )
}! ~+ R/ e3 H8 K- a- x { 5 h" U0 W: z% L
LPSKILL lpSkill = &(m_aJobSkill);( U# b8 h6 }* U8 U" d+ G, c, z' w) }( c9 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* O$ G# y6 P9 c2 x {5 {- c5 P( Z" s1 ~. z+ N8 ^1 l N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 Z3 w! O2 h7 Q1 d
if( pSkillProp == NULL )
) ^3 W/ s0 A; c2 X G continue;
# g1 ~ N4 t1 V7 F; K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ J" @9 W. `: u$ H$ L: l$ t continue;
0 ]$ S6 C8 I4 c( M( n: j+ } lpSkill->dwLevel = 5;
* J7 G* P2 E- s0 L, _7 l H: Q3 n }' [4 Q+ ]+ h& F( D8 R
}
% x6 R. \! E% N* a B }6 S0 Q9 J7 _* v! m4 ^9 h; _
else if(IsLegendHero())
3 R7 y, t; t& q" ^% z {+ s( ?1 s' k U5 d9 d* q+ W& _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 s6 q$ i" W( N {
/ m- \3 c' G7 ]8 p* n LPSKILL lpSkill = &(m_aJobSkill);
0 v4 e7 U2 A v2 _* U if( lpSkill && lpSkill->dwSkill != NULL_ID )2 `1 Y0 b% \9 C$ O6 M! r
{
2 Z) A$ m2 l4 ^, s2 C0 H) o1 O' P4 ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 B% S7 ^. ^6 e4 H) V
if( pSkillProp == NULL )
8 d4 B- H/ h6 v% h- x6 M3 f continue;5 ?, ]6 q. U* b! _# K, i) n$ i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 H" {# ]/ y- J& L
continue;: d" o0 n# q+ E
lpSkill->dwLevel = 5;0 C' A% | M0 b2 l& K3 Z6 f/ x
}
: [! V2 b/ I, a% z3 ~ } F! Y, e' M1 f6 s
}/ ~) X/ a4 a5 r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" v: j* L& ?6 u/ ]# ]5 ]
if( bGamma )! b7 B# R6 \: W2 [9 Y
{% A7 L7 H' I7 C& Z: C. H6 E% w
m_nExp1 = 0;: M( c0 Z0 r8 H# b
}
1 }, S5 x6 T. O. ^$ K) M! r# O2 J( s- L# H5 j( k0 v
( (CUser*)this )->AddSetChangeJob( nJob );
9 Z. a- C, q( _ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 }; G# n& S( O
+ B, \8 \0 J/ K [
1 g/ i+ C: a7 L9 z: x7 P& P
#if __VER >= 11 // __SYS_PLAYER_DATA
- d6 u% {% q& S7 w2 c1 ^0 m9 e+ m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 a% u9 Q1 L' [# F3 O8 a
#else // __SYS_PLAYER_DATA; J& t" A: s, C6 L) u. o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, p9 D- o+ `, i# N6 S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" I# E- i, e G7 {3 `: c/ m) A if( m_idGuild != 0 )% Q" ?' U3 z2 D* j; Z+ j3 c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 ^3 l0 }; h$ n8 S& `# L9 w#endif // __SYS_PLAYER_DATA4 X& \ Q$ n* ?- @* X8 \* d* Z
SetHitPoint( GetMaxHitPoint() );1 {" ` `9 B0 H1 M& ^5 M
SetManaPoint( GetMaxManaPoint() );
, y& ]4 }8 W7 j# \$ e6 ] SetFatiguePoint( GetMaxFatiguePoint() );
; v) g9 Y# m9 l% q1 S if( nJob >= 1 && nJob <= 4 )
7 {0 a( \4 r' n7 L; H {
) o+ K6 S" [) q4 i3 V. \9 @ m_nStr = m_nSta = m_nDex = m_nInt = 15;, \! q! Z0 ?/ ]/ }) p
m_nRemainGP = 28;
: L+ ^: z' ^, X: n' Y( M9 i; D }7 }/ G) |9 r$ p! }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 \% X2 S2 @3 x& Z( w {4 J5 R. q7 ]2 d1 e# A
m_nRemainGP = 118;8 v! R+ l) Z- r$ a; I' I3 l1 `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( z6 `( T6 S, @8 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 W; ~6 n' r9 A/ @ q" ~: [ }
) N7 G2 G2 w/ P* Y u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 A* k( S9 m' ~( y* Y' J' N
{9 s. Z4 c7 h% |# V8 e/ G7 Z9 w
CItemElem itemelem;
4 d6 F% C7 ^4 |0 b; M3 W0 q itemelem.m_nItemNum = 1;
" Q5 o1 s1 J2 b5 Z itemelem.m_bCharged = TRUE;
7 T4 r+ y+ r0 K, _ BYTE nID;/ a* N, j% O1 ]8 |; T4 y
0 q3 P8 i3 `* d: x if( nJob == JOB_MENTALIST_HERO )& r) g6 u9 W1 i$ R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# r" R) X* j5 e- b if( nJob == JOB_FORCEMASTER_HERO )( A0 f7 R4 L" p* ^; c9 B" V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 i9 e! z3 q$ q' R' d5 e% C9 T! w' S+ O
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 H# ^* i! I1 ^5 m5 l$ w }: ?. K; u7 T# V9 f- J, x& w: ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) Z' T) p/ x+ q5 K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ G/ m5 ~6 Z, l
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 c) \* R! p2 u( T& }- q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 z& U0 `% y1 F1 x+ [
( (CUser*)this )->AddTaskBar();*/2 O% @: [- Y. O& I n9 r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 J2 w! T4 z: u) v. J' S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ F; B9 T b) ]& S3 v
((CUser*)this)->CheckHonorStat();
" t; e7 }9 R8 ^& s+ B ((CUser*)this)->AddHonorListAck();5 n ^. J5 \% D
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# L2 s8 @- P! ^8 i; Q. `#endif // __HONORABLE_TITLE // ′Tà?5 J% |3 A" ~# C9 m1 @$ O) p
}6 {' F# y0 K8 G- a9 ?
#endif // __WORLDSERVER
2 ]! q5 U, F' ^} - B5 d5 q# o" y9 \/ I
0 \( S! X) u b. a b然后你进入functextcmd.cpp并添加以下
; _3 C! V) r8 L! G/ Q& |2 B" u7 V% }3 l1 r8 D- {4 X
代码:
3 y7 ~( C! _2 V, Y% ?- t, _; H; M/ GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' q$ g; {: Q2 E c+ f下面插入$ s2 O5 a# Q- K s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 ]) X' M/ B5 v6 a* l
# _0 T0 K/ z! R/ z3 z$ ^然后你去4 y5 ^* F" X7 v& _% o2 n6 `
0 p6 q5 k! P8 i' V' u
代码:
5 F0 i$ x7 M: k, e$ l5 Z" R6 ~4 i# W代码1 ?3 \0 d: {1 `: n4 t. b
BOOL TextCmd_ClearPropose( CScanner & s )
3 g u1 k. A7 H9 c" l* k O{& i: p$ y+ {7 F' ]: Q" `
#ifdef __WORLDSERVER0 w! E9 o2 a' y
CUser* pUser = (CUser*)s.dwValue;9 m. {1 {0 @& z1 g U) E
g_dpDBClient.SendClearPropose();
5 C ]/ u- @' e#endif // __WORLDSERVER8 T* A& ~: m( i" s* ~; j, G
return TRUE;
6 A2 }, P1 G4 j/ v}* H# W$ W1 Y4 L1 X
下面插入
4 @& c( |# z, @" w4 J9 qBOOL TextCmd_rebirth( CScanner& scanner )
4 a8 Z. h4 b% I- k{
/ i- k2 Y5 i) a; ?, d) z$ ^#ifdef __WORLDSERVER
( f) k+ e; J$ K7 ?/ S0 K9 SCUser *pUser;* U5 k( G2 ^) i6 S* ?4 k& Y
pUser = (CUser*)scanner.dwValue;- e2 [( C4 N7 T1 c+ r6 ?4 }" O) b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ g( `* i, k3 k* _( ?. B0 ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ Z; {8 U. P7 Belse
8 b" q1 ?) d6 d, }; i1 _7 GpUser->AddText("你还未达到重生条件!");
4 ?* Y6 I$ f: I2 M; V6 U#endif
0 c) h: S. l2 ~: }2 t3 W3 Vreturn TRUE;$ ]9 k( Q: p5 N2 y2 a! U) y/ B
}
" b5 e! e+ T; {9 L7 _0 l
! m4 w% T# n& d$ T& t
7 H# b" F+ }1 ?7 B
5 N( u. c9 Q( z* f6 c+ H9 b9 B% f- s8 `2 H: ?& {
|
|