|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 [+ G9 _( A; @- {6 s# o& w) i9 z8 B3 ]8 R1 \7 u r
Mover.h
}* J9 t0 l& @- P u& D代码: G, `9 }3 E, Z4 h: ?4 J4 C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 i$ v: | E1 }, D) Y. x7 k% F) s
2 e9 W% u3 w# ]5 l, N7 p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / m: N7 e8 } K' j( d
: v1 [7 y% U! |/ b$ Z8 w" t* Z
然后你去mover.cpp添加
$ U+ m5 N2 J; E" D2 Z% h
) Z1 F4 m; u$ b代码:9 A: N( L O" A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* v2 L9 K$ R f R9 O, ]( e{
/ Y6 U; Y5 B3 \; m( q& @7 X+ B6 P#ifdef __WORLDSERVER
# {# u# S. \7 u7 W2 ~* e // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ }, I- V" {* R9 p& S% Z' s5 p5 T
MoverProp* pProp = GetProp();
9 ]# e' t! v2 G0 k& z/ l& u6 N if( pProp )7 X- f5 y* x& j2 X$ `
{
# H9 e% }' w8 q4 P if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: x& [6 e# n4 O- ~% C {# c9 a" ~- f: E# |
AddChangeJob( nJob );
( N2 T8 J+ O5 u' `" Q }else{( D5 O7 k2 } m2 u; z
return;
8 `+ i* R9 n/ ?9 z( v+ x) v a }: r$ U- q: v7 [* n9 A$ t2 C
int nPoint = 0;
. E6 ~/ b. h& l: h if( m_nJob == JOB_MERCENARY )5 N8 N& h" i8 R+ z/ ]* g, w. ]
nPoint += 40;! C. ^1 x! H9 L/ s; Y. b
else if( m_nJob == JOB_ACROBAT )" ^( p5 J3 h( \; O& _: C
nPoint += 50;
4 v! w% U4 H! f3 ]/ v else if( m_nJob == JOB_ASSIST )
7 s( z7 d& ]# K% N( O nPoint += 60;( k1 [+ l+ M7 d7 g2 q0 B0 \! D
else if( m_nJob == JOB_MAGICIAN )
+ |% W3 O f2 R4 S# S8 F nPoint += 90;& w L1 {' J! c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# M h2 y7 w) H9 A
nPoint += 120;$ z" n u$ C; b* ^; \
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 y4 b: Q! ?5 n nPoint += 150;( w6 ^& X' J$ F- S
else if( m_nJob == JOB_RINGMASTER )
2 ^0 {! m( D0 M0 w( D nPoint += 160;5 r' F8 }5 \' W' K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 L7 F& j- [ X. ~* u2 ? nPoint += 180;
* K/ J: f! n) B else if( m_nJob == JOB_ELEMENTOR )
c; y. c K6 {- } nPoint += 390;
. ^. J, U& J" |- _8 u `" Q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): _% T+ a1 F4 a5 {# O" o0 v
nPoint += 120;0 M0 @; a0 R8 D# r' V
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ }6 Z6 R1 p- v% ]( ^. p nPoint += 150;3 f. D1 ^1 H4 c
else if( nJob == JOB_FLORIST_HERO )
+ i+ B2 A, n* s9 C- N8 N0 S8 {( N) _ nPoint += 160;, Y! u0 E: W. i3 D, \) b" S* v9 X: \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ u& {: i g$ v% t0 t
nPoint += 180;* ?4 M* V# o) A2 N E1 Q: r6 q
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 Q6 ~. b4 J! I2 T; k( G4 m nPoint += 390;
5 \) f' Q; B: D. O/ a ~
) k: O% }, ~, h# o$ w AddSkillPoint( nPoint );" x0 a. C, u! a
m_nLevel = nLevel;2 r+ D+ m6 B& d# ?, _/ i
3 v! f; w% h* W% E
SetJobLevel( nLevel, nJob ); w/ u' L" a* l
m_nDeathLevel = nLevel;
9 y3 Z$ m, N% F. {#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 |$ j" f8 V& i5 u6 T4 x1 A if(IsMaster())# ^; x* [' g( v, K! `+ H
{& M9 Z8 z* P6 K6 N9 S
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, z. O2 `6 i0 `% W& n
if( nLevel > 59 && nLevel < 72 )* G( U% y+ m9 B3 H0 e7 a: [
dwTmpSkLevel = 1;
$ Y/ [( @2 n+ G. } \$ w else if( nLevel > 71 && nLevel < 84 )0 E5 @, [2 o0 e7 ?
dwTmpSkLevel = 2;
9 z0 }$ B; `2 s$ Q9 X& _1 s else if( nLevel > 83 && nLevel < 96 )* p9 n2 r/ j# c7 b9 p1 }
dwTmpSkLevel = 3;
# X# P; y" U: L. g: A, m else if( nLevel > 95 && nLevel < 108 )
, B+ o& A0 j; r& k dwTmpSkLevel = 4;+ _6 F( C3 |. I. W: @, n' P# @
else if( nLevel > 107 && nLevel < 120 )
0 j7 E# ^, @+ R0 }& s' Z) _( T. S dwTmpSkLevel = 5;
9 P K3 p* A5 `+ `3 U for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 M; F# `) ], V& j5 X3 s { $ [" O0 q8 |# T2 X5 e" } R
LPSKILL lpSkill = &(m_aJobSkill);' v% h, t( c! V/ W f
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 }0 b/ n9 M/ h8 m. E: Z
{
4 E! }7 i$ a1 o/ o. \% f5 @- K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* I0 G5 T3 g3 ] if( pSkillProp == NULL )
" Y. N4 y! L& J: l continue;
, p) P' h6 P6 Y6 F) m4 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ L9 {% J2 Y& m- p4 _' A continue;/ a& Y# l f5 i; l& ?5 g
lpSkill->dwLevel = dwTmpSkLevel;
# c2 R2 I; U6 y0 K3 X( h }0 S! l; b3 Z1 e; L
}
: A5 ] [! D# _' v }
y5 r+ h" T( n9 v7 @ else if(IsHero())
R. @$ c9 f& v0 u! j {# m* [% R, I& f- _) \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 T% q% J6 p' v0 ^ { : p+ q# Y2 }8 y0 x8 E
LPSKILL lpSkill = &(m_aJobSkill);
3 ^" K, U0 S3 s! }! T5 v2 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )3 [. X/ G+ {0 N- I* Z
{8 x; b; L, j6 I1 ?! ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & N/ q2 Q z$ M, M' }8 L. V
if( pSkillProp == NULL )
- ?3 u0 m: @/ i% E' u# X continue;% G' x" R, s b/ U8 ^8 Y+ R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), o. o) l* w" z; l" q
continue;
( N8 }5 ^: C7 Z4 |0 ?7 |2 R9 [ lpSkill->dwLevel = 5;0 P8 c3 P$ [* y
}
8 E! C8 t" j/ C: X2 R3 g }
3 Y) \5 D% G- ] t* m: z }
1 ~2 O* b* [5 j else if(IsLegendHero())
' V y1 D2 F8 W4 m2 M) E {
7 o: F" g4 B5 s# X9 U3 l7 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) . c% b: s5 z u; W0 ?- Q5 L
{ - q, _; ? B5 ]3 W3 R7 W6 [
LPSKILL lpSkill = &(m_aJobSkill);
) W& R1 B( Q z9 o if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ \' _0 w9 h- s1 H$ r+ w {
4 Z- q, Z x1 B4 M6 a( D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 t3 J: c# k9 k* u. P3 i
if( pSkillProp == NULL )9 U5 W0 |, l& T6 ^7 h* [
continue;
& t: i7 D. Z8 j( ~9 ?& t; O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; e7 H9 A7 V9 h$ N continue;
: E0 ?7 a, f8 A' s+ T lpSkill->dwLevel = 5;
3 J1 a% i+ z. o6 `" m( ]" F }$ [1 a6 k) i4 H7 K+ n$ m. b. [
}8 N+ o5 \5 c2 I) i& w% S' d- z1 |
}
8 w) p' ?/ j! c2 u#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' h+ y; }/ n+ c6 @
if( bGamma )
+ a5 n6 v" Z0 y: ?& {0 a6 } {, x' Y; f: W& X* O0 ~+ o
m_nExp1 = 0;
1 M4 ]. Y3 d( d7 Z/ z* q }$ J% b4 W4 Z, g7 `4 @. `# X
" \1 N* a7 d8 N+ U* u2 ^3 Z% j ( (CUser*)this )->AddSetChangeJob( nJob );9 j( Z9 ~6 l% B2 I& M: a! ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, h/ Q' N( `: `4 N- Y4 M
5 M" A/ Z9 X- e4 V3 g- B1 S
/ |' f9 V% T3 l( r, G#if __VER >= 11 // __SYS_PLAYER_DATA1 j, L+ T* Q& g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ t! A7 F3 g" Y* P. t
#else // __SYS_PLAYER_DATA) ^/ c. O/ p7 }9 H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ b {0 y5 h) N& Y5 z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ @) S' o$ R) H: o7 t
if( m_idGuild != 0 )% Z) x& |9 s, R* _+ G* a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ ~* U9 b5 r2 G3 ]3 F0 J2 y) _
#endif // __SYS_PLAYER_DATA
$ a) _' |- e1 g- A: H SetHitPoint( GetMaxHitPoint() );. I7 p7 w d! z/ [/ S' \- U; O
SetManaPoint( GetMaxManaPoint() );
' k5 z h5 j6 g& r SetFatiguePoint( GetMaxFatiguePoint() );
& [& S- i: F t( c9 O if( nJob >= 1 && nJob <= 4 )# Y. ~, h+ C1 k: G" t/ v
{
5 r9 K+ a- o* V' Y% s8 j m_nStr = m_nSta = m_nDex = m_nInt = 15;- d7 H0 A$ N' L3 W1 v
m_nRemainGP = 28;+ x8 n( }! b- P. e( W% S
}
5 B6 ]' _9 V2 t; M7 u6 J1 H7 s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& ?3 w3 W7 J+ |. P9 P
{
' [- Y& c. ?% E0 _, t. J1 l0 ^- p: u: Z! g m_nRemainGP = 118;
4 r2 @2 ?) z# {4 r e3 T //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- @% {0 N8 M% K0 V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 ?/ j" W9 j1 ]; Z/ l$ j }# {( F# J' ^6 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. d8 `* f/ |# [7 M4 l {
' ]& a& ?: I. M4 b9 Y! e$ {% J CItemElem itemelem;
( P. J0 I8 A i itemelem.m_nItemNum = 1;* o8 @- K. ^; }1 m0 I8 W2 R2 z7 x, Z
itemelem.m_bCharged = TRUE;
! o5 ~1 Q7 f0 ~; k. v2 c1 n$ { BYTE nID;$ f6 W# p- L3 y0 _" H7 l. W
3 l) F7 ~$ ? T! `* n+ v" ]
if( nJob == JOB_MENTALIST_HERO )0 N6 ^' z: Z0 A( Y( g' s
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 z8 c' `% W7 x1 V
if( nJob == JOB_FORCEMASTER_HERO )
$ ?" [0 M" N- b& G6 U+ ?1 n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 G7 I6 r; u' M" ^6 K
* s, G( [6 H0 ]5 v0 g ( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ w Q; D4 Y; c+ n2 q! Z }
" x: \; |) N4 O6 I/ q) V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, H2 L# J( E% R' \+ ^% ]- p% b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 m) i1 Q. w- d- ^0 _2 h# o ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% J5 I- l" _6 G9 {9 ~
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 j4 D% I4 h0 J# W5 |! ?. `4 Y: C ( (CUser*)this )->AddTaskBar();*/) g7 U1 T2 u. `. G" c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( x! I; a2 M" \# [+ s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( ^ r9 b: }) d4 a; V$ Q0 f ((CUser*)this)->CheckHonorStat();6 j( v9 D3 P1 w% C# r$ y& j( u
((CUser*)this)->AddHonorListAck();7 w: H/ @3 T7 x" s1 O$ ^; z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ ^: x/ O9 K3 Z! u#endif // __HONORABLE_TITLE // ′Tà?( h& P0 W O/ M2 I2 T
}9 Z9 A& I, Z" v% K" Q/ U8 |; { ^
#endif // __WORLDSERVER
5 S$ ^/ w$ v/ w4 ?. ~+ Q} 4 j, C% K. n6 ~7 a; E& Q4 t
7 f7 W; d9 u9 R* V( B然后你进入functextcmd.cpp并添加以下 K# B" t; X. E7 l5 V' `" ^' O
6 z7 Y- s4 |4 {" i代码:1 _4 [- ?7 Q1 s4 }" C
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 e/ s9 ^. j" a下面插入; V$ U$ F% M) ~" Z5 M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- Z' c: Z1 [( t4 ]. Y( l# Q7 t0 W+ e, y3 \$ R+ ~, o0 A' X* ]' S
然后你去6 }7 b* F& D( ?; D* D: X
3 k4 w% B' p1 G& @; I I w* N5 [代码:
* P1 P+ I- s- ^+ K) s$ k# l代码$ R: T0 G: b5 O
BOOL TextCmd_ClearPropose( CScanner & s )7 A/ S5 [0 D9 s6 o. H
{2 @& F; ?* K5 P! z% A7 p
#ifdef __WORLDSERVER
% j9 C5 s( U% B CUser* pUser = (CUser*)s.dwValue;% W# O3 _' N& t# b5 A( e, p: S
g_dpDBClient.SendClearPropose();
V) {$ G3 ^% @" M9 j w#endif // __WORLDSERVER
, F9 W- Q/ x2 S& r return TRUE;
8 \- k% z. t7 i$ n' I% ~, t}
4 Y1 ~4 Q! h& [8 F% s下面插入) Z9 b: d$ }. a. ?
BOOL TextCmd_rebirth( CScanner& scanner )
% K# ^4 e- x/ A) V( [{
9 ]8 N$ W1 ~/ r6 u: |& O+ E2 i#ifdef __WORLDSERVER8 a, W$ g+ s* J& I) E
CUser *pUser; v6 Y0 D$ E7 @( c! Y
pUser = (CUser*)scanner.dwValue;
* L M) E0 V3 \" }; bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% u' @- {4 w6 \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 M2 g. H/ U I- y' k3 n* U/ M9 v4 c
else) p, i# t6 I8 o+ o
pUser->AddText("你还未达到重生条件!");/ F' Y/ p7 k& Y4 |2 a0 l
#endif$ @5 i, j. k3 z& v; Y" b
return TRUE;
" W8 f. s" y. R) @8 k+ `" h; D! r* C6 W}
6 e( J* l) w+ n/ }$ M# T$ N* y" x1 N% [) s$ y
. }( Q& a* i. x+ n% l4 k
5 ^/ I! c2 \+ d
% R; b& v+ o: z9 G
|
|