|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, i/ L0 K0 T3 T8 ^2 C" I' t4 r3 X0 d3 u; ]
Mover.h
$ e( r8 G4 H8 j( _- J$ H8 k1 x7 F; J代码:
1 I! c2 _, t: U: N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 I) E3 U/ t! J( e+ f% H$ v5 ]; v1 X% y7 Z) a1 F) A0 Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % Y3 [; V! |9 Y9 ^, y! m
' |1 d. Q) z2 G然后你去mover.cpp添加8 @7 @3 b5 Z! R9 S. t" ?
/ }# D2 u- l$ R4 u- I6 H
代码:
, _$ ?) c9 f9 \; a; q* E; ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' ]. T/ T& ?4 V
{
# s* @' \& J: X/ y#ifdef __WORLDSERVER ?% y i5 Y8 c& T& C* I7 [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ N9 t9 k; [+ @. A0 ^ \ MoverProp* pProp = GetProp();; u1 q- D: ~0 q0 f3 H
if( pProp )
: s: ?. \2 U! J8 @' v9 O/ U7 A; O# E {$ R& ?/ @+ H1 s, t, |# k: W9 K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 l" T$ r+ E: @7 X; U5 n
{
) Q J2 q! [+ [3 H n K1 I# j AddChangeJob( nJob );: \- D+ H" l; M. O4 _2 N
}else{
6 l6 z) w) X% [ return;; @7 Q) }# M# C! J" M' y
}* V1 z* m2 [5 S% x' L0 {; U
int nPoint = 0;
) v3 Y/ k0 U: b Y if( m_nJob == JOB_MERCENARY )
: g/ }0 |; _, G nPoint += 40;
4 l( i- W! k7 P/ ` else if( m_nJob == JOB_ACROBAT )$ a3 W' n# v8 k I: i
nPoint += 50;1 V' i. D# D7 m6 Q, w
else if( m_nJob == JOB_ASSIST )9 c1 v0 c% Z: N1 s# \4 F
nPoint += 60;6 ]2 O9 p* X( s
else if( m_nJob == JOB_MAGICIAN )- f1 P/ {4 m) r% y4 G2 c0 w$ w% |8 Q
nPoint += 90;
D0 a5 C/ M m0 o: T else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- I, r7 f$ Z+ [- L: e" z/ `
nPoint += 120;
9 e, D. U( d5 [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ e- v5 e. F: f! d9 ^
nPoint += 150;8 k4 C- H2 ~8 F' T, e
else if( m_nJob == JOB_RINGMASTER )
. ]( ~4 X9 ~. j4 X% g nPoint += 160;
1 L# e( I* r. N% z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 j6 ^- w1 `) h( y9 o" g nPoint += 180;6 i, e) t9 A0 _8 S
else if( m_nJob == JOB_ELEMENTOR )
( w( S! e9 ?9 g- a2 S+ e7 o; D nPoint += 390; X, G5 `. C. ?$ M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# q4 v! ~3 V7 ~ nPoint += 120;
5 G# a5 H. k. { else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ R4 o+ t2 i8 _9 M* M
nPoint += 150;
& I' h Q( h; w else if( nJob == JOB_FLORIST_HERO )
8 X8 v: |7 ]- t( I3 s nPoint += 160;, M0 _* O+ C6 S& u
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) M8 V' k) V. p8 v1 j nPoint += 180;
5 L& \0 {% S' v' y% e else if( nJob == JOB_ELEMENTORLORD_HERO )3 D$ t9 F# b1 p+ y6 A+ b
nPoint += 390;1 v: L- U1 E- a& T% J
8 `. r( ^" ~2 j3 O
AddSkillPoint( nPoint );
( m, J8 Y, g" e5 \$ i; [& c2 ` m_nLevel = nLevel;
* D4 e7 E0 A$ D, {' `3 q/ @$ `; {4 f
SetJobLevel( nLevel, nJob );* \# ], G+ V7 c( e; k
m_nDeathLevel = nLevel;
9 |0 T# h9 q: u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 ?+ ]$ Q9 D* r" N' L if(IsMaster())" b0 ? }# ?4 s5 _5 d. U- N
{7 O {9 F( O; L
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( {7 P: t$ R; D# f" B; R1 S- V
if( nLevel > 59 && nLevel < 72 )
: {4 L; |2 z8 K dwTmpSkLevel = 1;9 H3 [0 h1 n. d. j! } S5 a4 L# }
else if( nLevel > 71 && nLevel < 84 )$ t& X4 [- K, @$ ~7 Q3 Y
dwTmpSkLevel = 2;* v, W! J. ?9 S( w7 z( T- Y
else if( nLevel > 83 && nLevel < 96 )
5 l3 R! g {% k) y dwTmpSkLevel = 3;
; s H3 e5 b c; r; K2 j$ j, n else if( nLevel > 95 && nLevel < 108 )
6 l3 Y# E4 S: T u, o dwTmpSkLevel = 4;
5 N) M) n+ [$ _ else if( nLevel > 107 && nLevel < 120 )
. N( ^) K, b( m; p dwTmpSkLevel = 5;
2 P5 r3 C9 M; y1 h9 N+ X8 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 Y" K) |2 i1 y! Z6 o$ Y q {
7 O$ Y& k: h: L u/ j+ ^ LPSKILL lpSkill = &(m_aJobSkill);
) \- h/ i% g6 a+ J/ t if( lpSkill && lpSkill->dwSkill != NULL_ID )( U" C4 K* w' h4 A
{* x- U9 L7 V" [6 G3 b( z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); M9 b; x1 u- I! d6 F1 ?# ~+ U& `
if( pSkillProp == NULL )
, H' J6 y4 O9 _' H% n3 N7 h6 o continue;8 U6 F/ \' ?* ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), {7 K+ M1 T* g2 J/ @) G4 V
continue;3 A! _" b2 z( x" D2 Q
lpSkill->dwLevel = dwTmpSkLevel;
) t) [* O4 e8 ~* Q, m, D }
, ` ] ]$ u3 ] }5 h4 I$ p1 U$ k0 R( G5 A
}6 }$ e9 O; V g+ B
else if(IsHero())
0 G& K5 K7 F# e4 ?8 C {: v8 d: h3 X2 Y) { W0 B+ q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' c H4 @( _7 ]4 \& g! J8 O {
: k4 }6 j! y( \% Z/ q9 j% O LPSKILL lpSkill = &(m_aJobSkill);: D! G( w6 T; @
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ @. b/ i! `9 e1 a, U$ z" `6 u3 O5 ?, C
{5 g5 R; g# b: H6 |( t- T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' v; L6 F: O( |" O. j if( pSkillProp == NULL )
+ T8 O, ?# R/ V continue;
# v9 g Q9 Q3 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ w9 c" o! V! U5 p
continue;
$ v& e {/ W; \; W% q lpSkill->dwLevel = 5;/ ?2 }* u6 |( @9 {" c3 n
}- a q% d$ y' i9 `& e1 K& P
}
5 l# A) b z4 I( S1 f }
& k) Y9 g- A, U X! ?. w else if(IsLegendHero())# y0 v) ]0 E* V- l! A& L4 r8 n
{
9 ~2 y( ~( v% U( H% u for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' M0 \/ r6 W+ w
{ ( y* P. F8 I4 q, c, }) }0 o! o
LPSKILL lpSkill = &(m_aJobSkill); |7 o) B' r b+ Q5 l1 {4 Z! H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 D( _4 n( |% p$ k- M9 A* c {4 n' w! p, c7 g3 E% Z: Z c1 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
n7 V6 P# }4 | ?/ y3 D9 b if( pSkillProp == NULL )
9 p% O& s' ?/ ?; F: G! s! p continue;/ s# s0 c! H* A# D' o1 H+ \0 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 i% n4 p* G4 B- o9 H continue;; X! G: m" A& T& p# n
lpSkill->dwLevel = 5;& n3 b! z8 Q( W2 O$ M
}
* e9 N' K) {9 m: y/ b3 _3 `1 `2 ` }
5 R: l* n1 G" i& O }
7 F w+ e W4 W: J' h' o& z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, {, T% x& O+ y if( bGamma )) f U; p9 T+ B; W& ]# Y7 h) l
{8 p* L# y+ s# A, c1 A
m_nExp1 = 0;+ Y7 ?) t L% t
}
9 I: ^( i8 J; T( j9 M+ [, G
# R* N( H1 E/ q# c) \ ( (CUser*)this )->AddSetChangeJob( nJob );' F* b( u( S8 M5 Q, _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: S% M. }" O" R9 b* P+ Z# ?
' S) F @: q9 [/ J
" \9 |. R' ]) @; y/ u" y6 l% p
#if __VER >= 11 // __SYS_PLAYER_DATA i9 k! H! J2 }$ |9 W7 N: B; r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 ~2 x9 n+ R/ T0 J#else // __SYS_PLAYER_DATA5 v0 z4 k% X( f7 i3 h2 G
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* t, ~4 A( h/ L, u7 `, q$ K' j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: i- {5 M8 \+ g# b
if( m_idGuild != 0 )
4 F, d8 O) L% C' j: n/ ` r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
m! W3 d+ I+ Y0 f& t+ ^ w/ {#endif // __SYS_PLAYER_DATA( l- q5 R! M" P) U! I
SetHitPoint( GetMaxHitPoint() );
+ y* J" U) }& ? SetManaPoint( GetMaxManaPoint() );
+ g. y( J) U& O+ ^ j0 c SetFatiguePoint( GetMaxFatiguePoint() );4 ^6 `( E( }/ V# j+ X
if( nJob >= 1 && nJob <= 4 )* t, n1 [7 j4 g
{
& x7 X0 q1 U8 E' I m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ P# Q1 y/ W9 F+ p4 D; I l+ h m_nRemainGP = 28; {0 y5 X# N# ^3 X/ g& t* A
}
' I/ h, g$ w* I if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; A$ t4 q7 `" ^9 G) N ^: _ { }: ]( J2 q' Q. X
m_nRemainGP = 118;- D0 e* I& X5 [! \& W" K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" n4 d; K. T1 b; x
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ Y8 ?! r$ ^6 v, A* _- Y+ X+ i
}
* F/ z: q+ v/ B B* f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): z7 ~2 y5 Q+ j
{
: [- L/ T4 B! K8 O8 F$ }' l" u% A6 q CItemElem itemelem;+ Y1 Q7 Q: U+ H% c5 r6 p
itemelem.m_nItemNum = 1;
! \& t* m7 ^; F" @3 n itemelem.m_bCharged = TRUE;3 n4 d% [& n3 @! k, f
BYTE nID;9 V7 x7 ^5 L# ?& X$ H% m, m3 A
5 q5 e* X7 z- w' D$ L3 w/ _" a
if( nJob == JOB_MENTALIST_HERO )/ ?( v8 U$ i# d$ \' W* T( x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 }2 W4 j8 C$ e0 F! A
if( nJob == JOB_FORCEMASTER_HERO )
0 r; C& x7 r! V0 p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ \) w, {5 U$ x. N% Y! F2 r* E: {
# |, ^) V- a' u
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; L% K* N: @0 e' n- q' n5 m. i6 P }/ _' P: @+ W0 ` G$ \
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 Y8 C" H- c+ n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" N- Y$ r4 I5 _: {3 Y) D% _8 S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 \/ y; t) t: x6 g* p/ `3 K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 D* u/ {+ B a0 `# }& s+ B. a# x
( (CUser*)this )->AddTaskBar();*/
- f0 f. R" q; X; Y" W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* n* M. [; f0 O, a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, a. g$ _, u3 ]' ^ ((CUser*)this)->CheckHonorStat();5 C) l3 X- e. b9 P5 Q* q
((CUser*)this)->AddHonorListAck();
5 Z) m* t8 b4 j$ l2 {1 D g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 b8 m5 {* |/ a( D#endif // __HONORABLE_TITLE // ′Tà?
; a, R; h* W, g N7 x. Z }
) o% z% y9 o% A+ J+ K* @! s& t#endif // __WORLDSERVER
; _) |# \0 R# |, Y}
$ u! h0 \, x' D, x# c) H" `. q7 b) U& E
然后你进入functextcmd.cpp并添加以下
( u# o% k3 g) u+ h; B4 x9 G$ T& P# j3 _! ]6 t0 @3 k% C3 e
代码:8 v2 b. F8 Z. B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" Y8 b/ X& v- |+ O' g# }1 k
下面插入
7 ^, {: g) M. |7 `9 K* G: UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 U) d1 @0 o! F
1 W0 T2 p( ]) f! d+ {: n1 L然后你去
8 q, h/ U4 g2 u7 X# w1 C ]( b* m: v" L1 ~ d( M3 s; J [9 Q$ O- [* M
代码:
; @/ d0 Y% k: A( l# ]/ v) J9 _& g代码+ {9 s1 ~6 ~5 w$ P- Q
BOOL TextCmd_ClearPropose( CScanner & s )# `# m- [, e1 R( j0 G. I0 _' k
{
0 r/ K+ U4 T( y* k* R' X#ifdef __WORLDSERVER
* s% B* [7 P% t; g, N G CUser* pUser = (CUser*)s.dwValue;
9 f' i2 K+ B0 ^. `- l0 E g_dpDBClient.SendClearPropose();6 c7 M2 A( J" r. v& W! j7 [
#endif // __WORLDSERVER
& U/ q, T! ?; D2 Q, W return TRUE;) r& V) Z ~0 Y/ q% e5 c, x
}
% q2 L; ^3 T" M1 t* L下面插入* T7 z$ U1 m# Y8 H+ L9 _3 n
BOOL TextCmd_rebirth( CScanner& scanner )
# e' P3 {( g2 ]6 S( ^+ g{
5 r W8 l- s4 X0 @#ifdef __WORLDSERVER
2 V: Z3 K# _. x+ s* I: q9 lCUser *pUser;
5 A0 W0 h9 ]% k! PpUser = (CUser*)scanner.dwValue;9 ?/ ]% s4 Y; w0 e2 i$ W8 \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! w; j5 `& E3 n! I& RpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; D; a4 s4 N* Pelse
* ^; S$ a, S6 B! A& s5 N+ w, spUser->AddText("你还未达到重生条件!");
Z1 g* l: {. G; P- c& h0 u#endif
: R+ O* G& c$ M h7 f/ ]& Z2 a1 Dreturn TRUE;+ M' o1 K8 h$ p0 _$ i/ N' ~& ~
} a6 n( u: E. P
( i9 C( C! _. t Y
- R- T/ d b) }6 c, P/ ` N8 I
1 B7 O6 v+ Q# w/ x# [( I, P
|
|