|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 C, h$ b* s" \( q) v, i4 ]! \- `- b$ [# n
Mover.h& L' d) w4 s/ L# }' e) ^4 Q2 U
代码:
0 L5 i- \ D! W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ P+ M* s4 I: r) u5 |8 Z& P- G g* |/ i9 w) }
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 L2 g7 ?1 m4 ^. u; K
$ ]7 z7 f% D) f$ T. ~" ^7 g1 _
然后你去mover.cpp添加
/ x8 I- y1 L8 z3 @2 E2 y; G' L
. y3 K2 E5 e `+ T3 e代码:
* q5 m$ A) p3 vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& ~6 r+ d, Z, y( m
{
3 @+ r# W, @* X6 [/ `#ifdef __WORLDSERVER
- D: Y. U0 o- M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 P- i+ C7 Z, G. P MoverProp* pProp = GetProp();* V5 _2 Q9 M8 y$ ? Q2 h( x
if( pProp )
. ^, D1 a* b. Z# D+ M6 S {: O# i1 n6 s4 J
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ e! u( n: p7 V$ A& Y; {3 _2 z
{0 f# ]- |& Y7 q
AddChangeJob( nJob );; x5 z1 y5 R6 X4 o/ g0 U
}else{
9 E* o f# r* I1 S0 {1 L7 a return;4 ?3 ^' I2 L/ K! _: D+ t
}7 j' S' M8 r2 O6 h
int nPoint = 0;" l& F5 s! l- b. o
if( m_nJob == JOB_MERCENARY )
7 `3 ?5 Q5 \ n: Q6 i5 Z0 U# l nPoint += 40;/ i! x: S/ S r. i, w
else if( m_nJob == JOB_ACROBAT )
0 [$ o* q% b3 Q nPoint += 50;+ X. `: ?. w$ C$ w
else if( m_nJob == JOB_ASSIST )' Y# j N" _! W: c5 {
nPoint += 60;- m' K! b1 Q( s% z0 \
else if( m_nJob == JOB_MAGICIAN )7 d! k2 o2 t% R5 j! l) e% K+ ^
nPoint += 90;
: G. A) _8 t+ {4 R1 f else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' w' o# u2 v& i: X
nPoint += 120;
, o/ Q2 k: Q( m. T# }9 w else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 _% R( {2 O! m7 r( \4 K
nPoint += 150;
9 y s- x6 v) z0 I0 V$ z7 T2 `; f; v else if( m_nJob == JOB_RINGMASTER )! I6 G& x/ c# |- C
nPoint += 160;0 N' j* S, J% @" ]& @$ W9 f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 @! G1 O! c( p g nPoint += 180;. X' Z4 b+ @" s) Q$ B8 R
else if( m_nJob == JOB_ELEMENTOR )1 x8 p, W. B$ Y1 Y1 N
nPoint += 390;2 E0 _8 B" g# Y; [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 @( Q& H" K5 T9 K* s$ U4 N nPoint += 120;
3 }0 m/ q' Z; V( t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 H& t x; d- L& [* ~& b
nPoint += 150;
/ ^+ E+ i/ k) G8 J else if( nJob == JOB_FLORIST_HERO )
( {7 h. H" P5 E: A* J8 g+ Y nPoint += 160;
$ |% J# F9 E$ z6 }# Y* E else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). e4 P) f* o2 e
nPoint += 180;" S. u3 |) }' _% J, T5 L# u
else if( nJob == JOB_ELEMENTORLORD_HERO )' O5 ?8 W& [& R/ r7 J6 q
nPoint += 390;4 T! l9 `) S/ Q) R! _
0 L# R& g; w1 a) f, Z& O AddSkillPoint( nPoint );! V+ o! c8 ^& g3 a; |9 Z4 x
m_nLevel = nLevel;! [* @; {8 l3 r) t
: }, [1 G3 p! p# t SetJobLevel( nLevel, nJob );( I( m) A4 h/ i8 }7 h5 F
m_nDeathLevel = nLevel;# n1 F5 C( {8 n& y: X! k; n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, B4 M7 k8 G2 ^! |; n9 z* b; w$ l$ P
if(IsMaster())
, N( V: V) v8 }! l5 K {
2 d3 _0 e: X6 t$ q" V int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 v2 o0 m& W: R3 T5 ~3 s
if( nLevel > 59 && nLevel < 72 )
) b; K g3 u2 Z# I$ _% t; Q8 B- |0 O( [ dwTmpSkLevel = 1;: J2 N: T4 O2 b4 W4 m
else if( nLevel > 71 && nLevel < 84 )8 [2 w- Y ^7 K* z/ F+ N) s( b
dwTmpSkLevel = 2;9 a# J- b* Y8 b! B5 Q0 h% P
else if( nLevel > 83 && nLevel < 96 )
. `6 G; Q: V3 g- L0 D dwTmpSkLevel = 3;& m0 c l/ {( [3 O
else if( nLevel > 95 && nLevel < 108 )' ?7 g1 M1 k) Z" N
dwTmpSkLevel = 4;
( I" A8 L$ F1 K$ M% O else if( nLevel > 107 && nLevel < 120 )
8 @; V* _, S( l' e0 H* h- @0 \ dwTmpSkLevel = 5;
' ^* q3 Q m0 k6 j8 S+ d1 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) }" `7 }4 o- g: E1 Z. ~8 A
{
8 A( Z1 x1 T1 j* ^9 X& t3 Y" ^ LPSKILL lpSkill = &(m_aJobSkill);- b9 \; V0 g( }# S: C* S9 ]# M9 Q) g
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 b V% E- E" q7 ^9 w+ U1 d$ G1 s
{
+ p% ^% q) A& x! Q, D4 u+ f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; i+ ~/ T0 A1 H9 w0 W if( pSkillProp == NULL )1 u0 f0 T8 Q2 H+ u, ~- W, O
continue;
: \9 |* U+ Y3 ]9 d. X. j" P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! u2 a+ s; k. k5 Q6 m, O+ ^6 k8 ~ continue;9 U' e" T- y1 r$ O
lpSkill->dwLevel = dwTmpSkLevel;
, h0 i% W9 g+ ~3 u1 c: h% B5 f }& S. Z/ _, [" q J
}
6 \) ^) ?* A( f3 k2 ~# {% r }3 e5 A0 y1 t# v2 @3 G1 r! Z* S v
else if(IsHero())5 _# _ A. S1 Z, {$ G
{& ^* J6 u9 I- g7 w) m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 k; c9 I6 y. w6 s
{ 1 F t4 T+ x# B
LPSKILL lpSkill = &(m_aJobSkill);. M9 c- e! t& A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
_+ b" U' p$ C: {& E9 s K7 N" f& i {5 B7 e6 G; _4 |3 e6 Z) W8 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 f* l2 e; `2 ~0 P
if( pSkillProp == NULL ), i5 u1 y# H% {4 q3 K% ^
continue;9 o) W' ]: {$ k% {* j2 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) b p* s2 p" B. e
continue;
- p: |+ a% }) w/ q2 y1 | lpSkill->dwLevel = 5;& B H+ `3 F* k- z8 _
}
2 Y$ ~- c( a1 l) B1 B5 i }$ N' D" d' a3 P- m- e2 C
}
6 p" q5 g) N: j! b1 S9 K) G& y else if(IsLegendHero())
! V+ o% B9 o. k( ]* b' m* ]5 o {9 W7 p0 D7 o0 V& _; `1 F4 u X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - z' x! o. v# `9 `1 Z1 k$ h* _
{
9 {) V) C- q6 [3 Y( w5 z7 x LPSKILL lpSkill = &(m_aJobSkill);
. ]; |; W+ V/ @! F3 f if( lpSkill && lpSkill->dwSkill != NULL_ID )" P" I6 t. C' U% u( F6 \# o+ H' b- ?
{9 K( X$ U, w3 A7 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 h1 g! r2 C1 _- q7 u- @# h* m7 o if( pSkillProp == NULL )
3 T: ^& q# g" e2 ~ continue;
) }3 o5 G' w& d- ^- w* f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 J% w" p4 n- d+ i0 e, Y. f continue;2 V& }4 Z$ [% U2 r: f
lpSkill->dwLevel = 5;- x2 t A* ~) g" w! O! h
}/ c& l6 ^; B2 e2 ?. Y
}# x) |* i0 S# p) ^/ h1 K3 k; K, c
}8 o# ~4 d' b5 g6 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 j/ g; |$ i; \( e- y$ R* D if( bGamma )
9 f2 m* s' A5 K, y+ C. J# E; w {( h8 t. e# i* `, |3 u$ q" i; |3 R
m_nExp1 = 0;2 E) L5 K' ^ b6 O$ J
}
% }, n* m7 n: |3 Z, k
6 f, W( R" O+ B9 }1 S/ i) u9 K ( (CUser*)this )->AddSetChangeJob( nJob );8 {+ C/ a* w9 i* x+ V& t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ U( w; l1 i; S* c) B; S# w# F% m, l7 g7 I; F
# A' H! g, g4 _. k0 h9 h& U
#if __VER >= 11 // __SYS_PLAYER_DATA2 `1 H& P3 N& S7 Y9 [0 Q0 L' u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' \$ T ^& ^6 C( n#else // __SYS_PLAYER_DATA! i m8 t6 p1 A: o" V5 x% r1 _# {" M7 M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& A0 r" \9 g% M% U0 d0 K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) Y8 t6 p$ G, k; [5 i8 B if( m_idGuild != 0 )
2 y( x' z1 x/ l" Q" f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 b- Y) J: W" f* N& w7 @
#endif // __SYS_PLAYER_DATA
6 s @( A2 S0 j7 T x! w6 Q SetHitPoint( GetMaxHitPoint() );
6 N4 H) a+ j- _; D SetManaPoint( GetMaxManaPoint() );* \9 ]6 F7 Q8 p1 J* n8 h
SetFatiguePoint( GetMaxFatiguePoint() );
]1 p7 R" ]% K$ {( ]4 ]1 w+ |( R if( nJob >= 1 && nJob <= 4 )
( z( o7 z2 l! |6 Y% x0 g- Z- q {0 [0 K3 i) j9 F5 q- K. p4 ~6 h( E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ }7 G& [* |% ~- ? m_nRemainGP = 28;
- }, f2 T; }* ]# r- |- U6 s }5 h4 [; s! Q9 _) o2 \; S9 u; ^, A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 f6 ?- {. s# Y0 V, a9 Z {1 w' J% j6 e# U: j
m_nRemainGP = 118;3 _7 G: |5 M/ r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) i; d3 `( ~. O K9 b5 Y m_nStr = m_nSta = m_nDex = m_nInt = 15;2 [' ]: D1 @; }, v0 j
}
, m$ v" g* w4 r) w if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: l! J( V+ @* z- n2 l; ? {
, g2 _! e& \& h3 h" `0 M3 C9 I CItemElem itemelem;
" @: {7 ^8 r; d: _; G7 _: j2 i1 v itemelem.m_nItemNum = 1;
+ S* I8 t9 w* w0 S itemelem.m_bCharged = TRUE;
" Y4 h8 t% Y, _6 v0 E& a BYTE nID;
& x8 W' d% G4 s- ?1 m% X: ?5 _
- d, U. P: A$ U# h, k4 S3 V if( nJob == JOB_MENTALIST_HERO )9 R# z/ t) r/ q; |% F0 |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ V( ` a8 }6 W3 S if( nJob == JOB_FORCEMASTER_HERO )& h$ _4 K; i: ^8 F& e+ X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& L Z' \1 M9 q2 o- k
p: |$ r; |/ [4 ^ ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ }& j4 R7 v$ ~, }" A: d
}4 a# Y& @! d5 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; _3 _$ ] h" @# B, J) W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 s9 h% v9 ]; R: E) e+ r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); _2 x2 Q, Q9 }) M, R% x1 s' Q7 ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ ]" j ~" Q3 K7 h; H ( (CUser*)this )->AddTaskBar();*/
. p7 s. v8 d! | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" `0 c: \" {5 p- @- Y1 K d! h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. V0 H) h& w- W$ C
((CUser*)this)->CheckHonorStat();
, W f/ g) u# e3 |/ o) }4 T ((CUser*)this)->AddHonorListAck();
s9 Z. E. l- U9 @9 T g_UserMng.AddHonorTitleChange( this, m_nHonor);4 N8 f: ~' `* d, G3 l! v
#endif // __HONORABLE_TITLE // ′Tà?
9 _: v5 q' @1 Y' H }
" R# F* T2 z! f7 k#endif // __WORLDSERVER
; l: i: w- L0 f; k8 @} / Y8 j' h S1 o/ K! v- e% ]5 h
5 p6 U- z3 L( U: h& a6 F然后你进入functextcmd.cpp并添加以下
3 Z4 F$ ]+ ^3 z" K6 `2 U! A" P; g+ y" g* w9 I# }# b5 Q
代码:7 ?+ M0 S( V+ K" F: L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ B. ^3 F! H' U" `8 d% ` {: B! ~; T下面插入, O7 R# G! y2 [% b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: v: T# v; i. [# ?+ u0 k; n5 F1 @% j) D
然后你去; u' z5 q. Z+ V+ k* G
+ f3 S3 {" `$ v0 i代码:
5 |5 x0 b- q- k/ ]2 m代码* G6 ?( h; M3 |" V) J: g; Z3 ~! r
BOOL TextCmd_ClearPropose( CScanner & s )! [* ^- b0 Q# y# T8 c3 B w
{" X% Z: k# F4 X6 k5 t% Y2 g1 |
#ifdef __WORLDSERVER
9 Y0 g9 h" f N7 I1 z1 V9 R CUser* pUser = (CUser*)s.dwValue;# Q5 a' U' ~/ L! o1 j! E0 ^
g_dpDBClient.SendClearPropose();
9 A: U2 r& r2 F' Y: |, q#endif // __WORLDSERVER
1 O7 [8 J1 e. S# P return TRUE;
8 |3 E5 x, C$ L7 y2 J}
/ B/ q+ I$ e9 p! I下面插入8 e7 s# O* W1 {) e
BOOL TextCmd_rebirth( CScanner& scanner )
: u4 A! a u. E0 @0 i{ E" K' u* P. g/ k& W& _& y7 i
#ifdef __WORLDSERVER
: T' z1 Z* J7 l$ b1 v I$ I$ ]CUser *pUser;
; Q, _9 n+ z7 B) O' tpUser = (CUser*)scanner.dwValue;0 `# C8 w. M* M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 d8 O4 f4 ?0 f6 j1 } v; I/ |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 [ @; q$ }/ d7 R& Q) u
else
0 a/ E9 u2 T0 a# P+ gpUser->AddText("你还未达到重生条件!");: k$ {0 n: b& X1 O. B; Y
#endif& n3 Q# j) n: g; u5 Q: Z
return TRUE;" I3 \% C4 n1 c. u
} + S% l, @/ b+ M& b; i `7 z5 \) ~
. T; z1 W. x. a$ H; k
2 k& D3 l3 }5 o% l4 V: J
: C' x8 o$ B7 Q5 _7 x$ c9 X; f6 h8 i* U- ^2 w# c, d" U
|
|