|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ t) q: a0 |9 i
$ |4 f( L K N1 _0 c* E) {
Mover.h
3 f" L, s- n5 B- @: u7 I代码:& S3 V$ \) X$ X1 g: ]9 W
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ Y" \' J1 }) f9 m$ C/ d
# s+ l1 \% F- J- S: f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" e: M1 d3 }3 r! A/ c0 C5 O$ {; S6 u
然后你去mover.cpp添加
! E0 o# C& }9 q; _* ~7 G
- f7 ^0 l3 }5 \7 m" I4 A7 B代码:) j/ y7 E) j5 D$ D- J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. v6 \& {! X N2 A& {. i8 h5 G{% S2 m7 y }7 F: n; R8 M
#ifdef __WORLDSERVER
/ I6 E% d+ A" l7 g4 H4 X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) ], P v4 f& Y3 |# D$ z9 T
MoverProp* pProp = GetProp();4 B/ M: f5 R/ I- R1 Q; P" |
if( pProp )
8 }! b2 e e% O {
0 c2 ?6 x" h: ? Z( o if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. Z0 l l( P4 h$ \ v6 [$ L" g {7 _5 S+ d- A' m3 M0 g
AddChangeJob( nJob );5 O' }* L5 N6 B% @% D/ z/ i% n
}else{
7 T2 C4 ]" E U3 M0 Z: c! k4 | return;; _" L$ T4 r9 e& K6 p; B: O
}
- c5 E, d9 i6 x. X int nPoint = 0;3 _( L' Y7 B+ ?# H# K+ p4 x8 Q; M
if( m_nJob == JOB_MERCENARY )7 j2 R: W& F2 {! Z$ Y
nPoint += 40;" ^& u4 y) c! x0 K3 N9 P; T' A9 W8 _
else if( m_nJob == JOB_ACROBAT )/ R" x) z( F [9 U
nPoint += 50;1 v- w2 K$ b" ~; X" O; Q9 T
else if( m_nJob == JOB_ASSIST )
' s/ n. e/ b0 t# W nPoint += 60;
% M1 H) G# p; E" {, u, X& S else if( m_nJob == JOB_MAGICIAN )
" M0 c% q7 p& M8 f nPoint += 90;
' u. c2 B' Y. m: @5 f% f else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ {$ t; e6 s6 T* y N) S( d nPoint += 120;7 w2 E; _7 I- S5 `# B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ ~- I; Y* @5 r0 t0 j
nPoint += 150;
( ]8 r+ l# ?% e5 j! I else if( m_nJob == JOB_RINGMASTER )
6 R! o( j5 l9 `8 `$ @ nPoint += 160;& E; n3 V; Z- \0 a& J p6 ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 U f" r8 }4 {1 E% R/ ~+ y
nPoint += 180;8 a# f+ j) ?' r: @
else if( m_nJob == JOB_ELEMENTOR ): q& Y3 S) _! P5 c( _
nPoint += 390;
) v/ {! r/ _4 R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& ~+ t+ }, K$ s) m3 s0 t nPoint += 120;' h& Y; e8 i: D' |1 O& Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 Q8 Z! D; B' b1 c9 q/ C1 G
nPoint += 150;
7 G) t9 [- R9 y8 m: ^ else if( nJob == JOB_FLORIST_HERO )
7 m" h T+ t9 |, `' P: b nPoint += 160;0 u$ M1 I0 n9 C& [1 w( _4 G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 A9 x% V/ }* c# G* A V4 Z) H nPoint += 180;
3 s. ^( n& y7 T( K3 ` else if( nJob == JOB_ELEMENTORLORD_HERO )
5 e# Q5 E' h: j/ e- M9 ] nPoint += 390;
7 r$ A+ p& ` P' i; V. @' Z, b, U$ t& a7 X" C( H$ L1 C8 m
AddSkillPoint( nPoint );
3 e t0 a/ g) R9 q m_nLevel = nLevel;
% f% U4 w; ]2 K9 V) y
0 X& M) {* J; r/ C1 }# f/ x- B SetJobLevel( nLevel, nJob );0 k0 L# u( D* C. c7 h9 z: Q
m_nDeathLevel = nLevel;2 I) P( q: S# O! T' i" m0 |+ v
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 Z5 e, \# X% d/ u' a# v& D
if(IsMaster())
. W8 c& m% j2 {6 ?& }' R {
7 H0 l1 R, w5 m/ x' E: s, R int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, q/ [" R8 _2 \2 f7 v5 _9 o. \ R if( nLevel > 59 && nLevel < 72 )
" e8 S# [! a' x$ m! N+ l dwTmpSkLevel = 1;
d, t: g$ q" m# g else if( nLevel > 71 && nLevel < 84 )
, ]1 ~% V2 {7 {7 ~5 Z0 l/ f+ b dwTmpSkLevel = 2;
, {/ b3 f3 _/ v& m9 ], o8 N else if( nLevel > 83 && nLevel < 96 ): C2 b5 V# r4 g8 H) j* m( b
dwTmpSkLevel = 3;" P. w5 P9 \/ v, K7 O) r. C
else if( nLevel > 95 && nLevel < 108 )
- t5 ~( S" H4 s4 v% c1 p: B dwTmpSkLevel = 4;$ I: v9 T, j7 {, ~
else if( nLevel > 107 && nLevel < 120 )9 A H2 s1 I1 i/ q3 |8 P" ]
dwTmpSkLevel = 5;
- v1 E6 C' T3 u+ p. v g1 S1 v+ W for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 b& v5 h! D4 x
{ / j$ j# n; ^# E/ z) \; @1 ]
LPSKILL lpSkill = &(m_aJobSkill);6 J# r$ O" u7 e0 G5 O0 H9 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 b5 T4 s0 C& Z% V' {7 e- L
{" O! ^8 x! r. \2 u3 w/ d: t, _) N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 N: I q( O9 Y( o" Q, @$ r4 R& z if( pSkillProp == NULL )
9 s) C! r3 A; D2 ?7 f& N8 I continue;
" d7 X2 Y* `2 ~; F7 ^# D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 |' s" a( X/ R) e continue;* [; v2 k/ O/ ^
lpSkill->dwLevel = dwTmpSkLevel;( v5 e& @) |5 A: w
}- c& S, j V! t
}
( E3 K4 ^; c% E$ B: \2 n }; Q2 z8 M2 a6 ?9 o
else if(IsHero())+ I# B |& x* L9 R/ V
{. j1 F- I( W; I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - J8 R$ `$ h& c) F; ^1 t
{ 1 E' N: C7 W+ b6 U5 j/ ^' G, [
LPSKILL lpSkill = &(m_aJobSkill);$ C( d' r2 l- P9 r/ ]& r
if( lpSkill && lpSkill->dwSkill != NULL_ID )' A; _# y3 h/ h& L, W3 q8 ^
{
) ^. V" x8 a" p5 b" O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 N: G4 o5 E8 y& Z/ T if( pSkillProp == NULL )1 |) n. r5 ~( Q C) b9 {; M: d
continue;
4 D* }. S. }' f$ `5 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ g; |3 Z) m7 k; G h: B3 B
continue;( W2 c. t0 v+ G9 @
lpSkill->dwLevel = 5;2 i5 |( u: }1 R& L
}
2 [/ U; C: K1 o* i9 K- J }8 t6 m* I/ S. n
}
, D4 ]6 m6 _% i7 ?/ }. a* D else if(IsLegendHero())$ l& \$ c0 I. w; Q& k
{
6 ? ?4 O9 q: O- S for( int i = 0; i < MAX_SKILL_JOB; i++ )
# ]# ^. t; t( e7 X { , p3 b% x. B! [& ^& [/ J9 X9 |7 [
LPSKILL lpSkill = &(m_aJobSkill);
, }- I5 v. J. X3 W, O if( lpSkill && lpSkill->dwSkill != NULL_ID ) H1 \/ b; J. h1 ~# v
{
2 u/ `# D$ s: a" }' n2 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. n/ O H3 o3 U if( pSkillProp == NULL )
. G/ x0 O% z7 Z# t continue;- @' m6 \3 ]. ?4 X- h- Q* v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" V' h+ R' b3 U* d/ [
continue;- @) w; s, Q# e8 I( {3 B9 s
lpSkill->dwLevel = 5;6 A/ M; a( ^+ W
}
' e1 `2 r; z$ I( q5 Q* M$ T! b& i }
5 L8 y" I$ a* @6 P8 R }# a' @8 [& n6 G9 P2 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ W" u2 i8 H3 C9 u3 r/ M4 A) H% U8 T if( bGamma )7 E: `7 K. T& V q
{; e; H' p: K* k/ T$ `6 m, O
m_nExp1 = 0;
8 _$ _9 o" e4 C }6 w* I9 P* l$ |" N2 q$ ~
4 r o, E6 S" G* ?% _
( (CUser*)this )->AddSetChangeJob( nJob );% P' v, u' k) w/ R4 w9 L' z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 I; \8 f7 d; a& M- r
# ]+ E# z7 J0 `
1 E7 T: f+ ~+ ^6 S+ w#if __VER >= 11 // __SYS_PLAYER_DATA* C- y/ |- R1 r* q5 M& e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ k# l; y, z$ \9 G#else // __SYS_PLAYER_DATA2 ~& I1 T( _% |: r; C- K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 t: H, Q4 W$ d+ ? f% f' w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 t/ ]- J* D: e0 E
if( m_idGuild != 0 )
+ T( |% w& j" {0 x* w! I. R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ ~: G8 F$ X: ^. d4 `" P& n#endif // __SYS_PLAYER_DATA5 E" U; M7 F% G8 P8 c
SetHitPoint( GetMaxHitPoint() );& Z1 S- ?. H- }1 M- b$ O' d7 g
SetManaPoint( GetMaxManaPoint() );
3 i- D4 \6 S# \0 b SetFatiguePoint( GetMaxFatiguePoint() );8 u: [$ X9 |$ a- N& C
if( nJob >= 1 && nJob <= 4 )
' x7 ` c: Q+ P: P9 J( `- k1 J9 i6 q# H {+ x9 @, J& u8 T: D9 n5 k9 v1 P5 y7 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;& d: p1 W m0 U7 C
m_nRemainGP = 28;
( m! j G$ f$ z, j, t' `* t" | }& \ v+ m! f1 h/ j/ S5 G! x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( O# ]( v( I% l4 \ {: V0 v! k, ^( E% e; Z/ P& O# f
m_nRemainGP = 118;0 T; _% i* ^6 }8 r# q/ B: F; s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: w7 i( K- u$ S; u' c; ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
- S% X& ]0 ~. G( @ }
) Z% P- y: E& `. t# K* o0 n& V( I if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 Q* x& }6 m2 w$ `9 \. t* I4 F$ ] {0 ?) y3 {4 d+ e; L$ s( F
CItemElem itemelem;; ]$ m! Z& U. B# L( g' }3 H
itemelem.m_nItemNum = 1;5 ^( V2 W+ o) h9 D3 b+ ^
itemelem.m_bCharged = TRUE;( b$ G. H7 I$ U- [8 G5 {
BYTE nID;
* t/ l6 }" J; |' @3 F9 _0 I# f5 \/ T5 P! B6 o
if( nJob == JOB_MENTALIST_HERO ), Q/ V$ m. C; i! H/ k. g
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 ^- [& `) _' z9 T if( nJob == JOB_FORCEMASTER_HERO )
% K3 U6 T" m1 y. v( T. m3 q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# v8 D, X) F" m. Q1 S2 P4 `( R3 y5 X5 w4 f* E+ t5 c7 d% ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 ^, s2 Y* P& i7 ` }& E3 m6 `' A" E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 J: d0 p3 q3 j0 R$ m- w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# P1 c6 B$ `8 K1 B0 i$ c% i. J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, t0 G1 @5 ^' g4 d9 Z- q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 w, p# Y: Z, v3 h3 \( R
( (CUser*)this )->AddTaskBar();*// d+ ~' N* F3 R: u T" M& f
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
S1 g- H, V+ I, d& {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 G8 m3 r# {9 M4 J
((CUser*)this)->CheckHonorStat();5 K4 z" F. N2 h
((CUser*)this)->AddHonorListAck(); h, }$ j/ a+ B9 r- e
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ ]" i$ H- s/ {9 T( q* \( W#endif // __HONORABLE_TITLE // ′Tà?
5 W5 `3 M' C2 b9 v' W1 |9 n3 m }# ~1 x: o+ C% ~6 \
#endif // __WORLDSERVER& ^2 v; |* ^! y; E" U6 m' }
}
/ J( A. }8 N! H1 {
( S" D( f3 n) b2 ?& g然后你进入functextcmd.cpp并添加以下: C- N$ i5 [) Q4 d
) Q0 q D% V# n# h6 n: q; B( s# g& v) R( {
代码:
3 r! f' ?( r3 G8 m8 B9 fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# v N( Z2 O3 v7 F下面插入
; q7 a- Y2 F4 ?( y; UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
e4 y0 F+ _' V O9 \/ b# {- v
) R# l g* ?% n2 A- v, w8 F然后你去& y1 E, B7 U" `( K& P8 X3 S9 W2 ~( S* k
/ ^/ n* X1 s3 }1 A3 n
代码:
! `* e2 P: t5 X7 I8 m" E: v, E代码0 u5 _' Z# @- p: T
BOOL TextCmd_ClearPropose( CScanner & s )
! W0 M3 d5 k/ t0 |1 S" Q+ J. q/ a{; f* @4 K) D' K; A! e3 P
#ifdef __WORLDSERVER
, f& t; O& F }7 K CUser* pUser = (CUser*)s.dwValue;
$ q7 |/ l; o6 ? y% }2 u+ T g_dpDBClient.SendClearPropose();
' D- Z& `6 l0 v- [3 w7 U#endif // __WORLDSERVER
# F" d0 z( D4 k8 l% f. ^7 ^* Q return TRUE;
- ?" F# E( ]4 d9 O' [, R}6 i |; ]$ r+ c. O( T
下面插入
) M1 z7 f! p$ a8 jBOOL TextCmd_rebirth( CScanner& scanner )
& I6 |: |" K' r: e{& z9 j" V# ?6 | m! ?
#ifdef __WORLDSERVER5 D$ m% H6 l: k5 L8 F" S3 p5 K: p
CUser *pUser;- x o. x3 Z8 M8 _4 S
pUser = (CUser*)scanner.dwValue;; I0 |" E0 D5 u9 h2 t4 x8 P! ~' x
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): K3 c( K0 P* p0 R! @- D" q- N- b
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); a( |; ?& _0 z
else
( z- {. h( J4 d: v9 |pUser->AddText("你还未达到重生条件!");. s/ H' E* A1 [# j+ k' ^
#endif* l+ k( ~/ W8 R$ G' O2 q
return TRUE;
* g* f/ ]8 g. c( r) _% {} 8 U' N/ b$ o9 z* W) j. E6 u
3 K; b) s$ D0 H! b& b! ]" k2 c
/ j; f" Y5 A, S4 S( `0 S
& x9 }1 m9 Y3 x, o- S7 o- ?; t- y2 P
1 d5 B; c3 Y( Y" N5 J9 E. H |
|