|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ X5 r( B d! E8 [& M# g- N# Z4 d( C! A. n6 Z: ?
Mover.h
; ~& W' P- r1 |% P1 ^* c- A `" s代码:/ r! A& z( Y, Z% v. r w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& Y/ U7 ^# p! g1 j1 U4 Y
( p" @# P5 \8 ~1 N D2 j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 u& J p6 \* |% {
' |! u; G1 A0 x5 ]
然后你去mover.cpp添加) a4 Y# q. Y0 `7 n# v
3 [( c2 x0 Q# I$ d6 @; i- L代码:
I; x* l$ }: e$ Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: B. H5 t& C+ I# g8 D; L{
' |' k' H+ t3 o; D2 ]5 ^ P#ifdef __WORLDSERVER
# ]4 y& ~2 f- S, e8 N2 | // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 @ t( m$ {' U: G
MoverProp* pProp = GetProp();" m' Q9 w& p* {8 {) ^
if( pProp )
3 S2 Y2 Q- P: d5 T {% x: [) G0 u5 Z4 `
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) Z7 j5 P d: S9 u9 i
{
& w* V) d( _- e q& K AddChangeJob( nJob );0 f u- M! b2 x( I
}else{8 W3 p& w: W B
return;1 ~. V/ R; O- |
}
! {. ~. \0 x1 M& c9 E6 X8 J int nPoint = 0;
4 ?% w2 v" ?" r3 y% p9 O7 \% T* | if( m_nJob == JOB_MERCENARY )
- q" Y$ J) y( R nPoint += 40;
& P9 p/ A! c4 K+ z else if( m_nJob == JOB_ACROBAT )( n5 j9 x a5 G& p
nPoint += 50;
/ J4 M2 {5 B- k. l else if( m_nJob == JOB_ASSIST )
- R2 v+ b+ m& ]6 a- R H/ m/ Z nPoint += 60; r2 S6 n# [. i; X! n! p
else if( m_nJob == JOB_MAGICIAN )0 t5 {7 p" t3 T
nPoint += 90;
. i2 r0 R7 A* C. S& P r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! |/ _% {0 A( H( A! v- N4 g nPoint += 120;
, q% g: E% d$ ~% Z# H+ v5 K% p6 Q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! K6 q! X r; d4 o nPoint += 150;2 l" l; B# o \# i2 `
else if( m_nJob == JOB_RINGMASTER )7 L' m9 \* U6 R3 s2 h
nPoint += 160;% Q' X1 @. {/ S
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' m5 Y+ T% S$ T9 V5 p nPoint += 180;
% E1 V) G. o; N/ _- C1 n+ X else if( m_nJob == JOB_ELEMENTOR )
* h* Y7 U2 \% `- ~ nPoint += 390;- {; [7 V9 d: X0 c
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ j) W, J6 T9 E( T6 x) L nPoint += 120;
2 s2 U" N# J7 L5 L! A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: Y5 R7 D$ k) l nPoint += 150;, p# T0 m( w3 _# E4 j6 ?
else if( nJob == JOB_FLORIST_HERO )/ Z7 R8 P$ i. y& S' ~5 ]
nPoint += 160;
2 r1 H/ C6 Q" Q/ M1 X( c+ o8 H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 _/ j, R3 j7 K. c2 z4 V nPoint += 180;
2 `( @ l+ ^3 ^ else if( nJob == JOB_ELEMENTORLORD_HERO )3 @5 A. l0 W- A4 e- u! T
nPoint += 390;
; w& {& r3 G$ ?+ R+ U2 H
$ }# p/ |& U! d+ C AddSkillPoint( nPoint );
0 B9 C3 \- Q' D( b$ F) h' g# R+ x/ ~ m_nLevel = nLevel;6 m5 [8 F2 x" c' d% w% e b6 e6 u0 z
$ Y% ?2 \4 [$ k- c$ Z2 \
SetJobLevel( nLevel, nJob );
0 A7 F. F+ B: T1 X4 I m_nDeathLevel = nLevel;
+ D/ V! f+ r; {# {/ h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. }) G' F2 a7 o1 c- |( {
if(IsMaster())
% D/ w: Y4 V, L) }. Z) S& ^# g ` {& B- S# h9 P4 Q3 O" I) w. |4 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 I4 M% [* Q/ s; B8 D3 h if( nLevel > 59 && nLevel < 72 )
( \" E3 l1 S5 Z/ Z( W: X$ [ dwTmpSkLevel = 1;# p0 t0 L( j, r
else if( nLevel > 71 && nLevel < 84 )
6 b6 @3 p6 w1 V3 C2 r5 d dwTmpSkLevel = 2;
* V9 N" |- m0 g0 a else if( nLevel > 83 && nLevel < 96 )' P: A( G: f" _0 Z; K) w2 w
dwTmpSkLevel = 3;! E/ K# b' B! |, x
else if( nLevel > 95 && nLevel < 108 )
7 c$ d* b- z0 i/ t/ U& {/ O) G dwTmpSkLevel = 4;
8 i: X) q) {% |3 j else if( nLevel > 107 && nLevel < 120 )/ M, @" b! ]( I- n( I; p4 m1 v
dwTmpSkLevel = 5;! x1 _" s& P& l2 X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ l$ Y3 g5 c- Z; m/ g% X7 n
{ # [/ ]* ^7 o& j. d& K3 Y* h
LPSKILL lpSkill = &(m_aJobSkill);
: m4 D2 G" P/ y' ` if( lpSkill && lpSkill->dwSkill != NULL_ID ) {4 @# }. ?1 q
{
. l& O9 Z6 d2 w' v6 w. }) z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 i* m3 ?9 d8 c2 ~ if( pSkillProp == NULL )( }* \+ D4 Q$ d4 @
continue;
" f) Z% Q0 ]) I2 e, A0 u% S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 m' u/ T# K$ j# v. G continue;) m: }0 U- q4 X- l! x: r( V8 B5 P
lpSkill->dwLevel = dwTmpSkLevel;
, `0 B: u0 t# s) \ }
' r4 r4 F) V; P4 y }
: A( K1 J2 ]8 Y8 `+ t, M }* i8 X$ z5 F) U# {; Y
else if(IsHero())
# P; C- k; ^. P {
- Q+ m% l) X% V8 j5 ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! k+ N0 S, u4 i$ Y
{ # w3 u' Z( X# Z0 i7 X
LPSKILL lpSkill = &(m_aJobSkill);
4 A c- d/ y( f1 f6 L if( lpSkill && lpSkill->dwSkill != NULL_ID )
. J! o- V( C2 b; w {
. L) [+ F5 r, c# W" v! d" @& w a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 ?$ {4 |4 Q8 G: a if( pSkillProp == NULL )# D+ ]$ u$ S8 J7 r4 \) w& M4 K
continue;
% x* Q6 u: ^% I U) B C3 l) E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 w1 U% x: s _! y) |7 U
continue;
( {8 e( X! V! h; p3 T lpSkill->dwLevel = 5;7 Y' {% g( C% b' z# H8 ~
}- n$ @6 i# \" j$ z Y2 ^$ [* w
}" g! ]3 `9 {- [
}
' r1 X4 p9 R7 K- {, u' Y# K a* P6 w0 J else if(IsLegendHero())
$ C2 {1 v; |$ W: G* A ? {
3 g3 |) c9 p5 T/ P& N for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 @% p3 y: j2 y" A3 O" J. }. i" D
{ : X. R5 X+ l. U" g( @/ o$ i
LPSKILL lpSkill = &(m_aJobSkill);& _: }1 d& f9 j) x/ y
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 |4 P, a0 u% r. e5 j0 G& t) U
{+ u! H& P/ ^; p+ A1 r% Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 m- T7 C+ F# ^ V if( pSkillProp == NULL )0 R' T, H- L; ]# c0 J1 t
continue;
y9 B0 |: c: P2 B( O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* @0 m2 L0 k: W) A) _6 h Y continue;
e; ~: ^4 {- H, Q lpSkill->dwLevel = 5;
0 U5 S" g; ]7 Q* Y% u' C+ M) N }9 I8 v: ?; O6 B" X, p0 E/ f' e
}
* G& G3 e! m Q }) r2 C) ~/ t% A, W" c+ E1 v$ Q a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( m5 ]! Q/ }( V) U if( bGamma )
. a" g) z% W, X$ x1 q7 _6 }! ? {9 q# i% c) V1 s* ?8 \
m_nExp1 = 0;
1 M* _: \1 v+ G1 }2 S, W }
) A; u% o# z9 ~& ^! ?/ p0 o+ d: A+ z2 \. F
( (CUser*)this )->AddSetChangeJob( nJob );5 n9 ^% E6 z2 n( w( x4 R( e6 K1 m& G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& P3 S0 j% n) n, F4 o, F# n7 A! K+ n$ u( q4 y+ E* E( w
# R; l6 R' [1 f; I9 \#if __VER >= 11 // __SYS_PLAYER_DATA# S2 s: j" l D( D
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 e9 w0 Y+ N9 ~/ H6 z#else // __SYS_PLAYER_DATA
' U) e* W' I& z7 y" {* C# o9 x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. F" R0 ]. v* k7 D, f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ U/ x D3 [) N% }. |! v0 r* X if( m_idGuild != 0 )
5 y2 c6 m5 l+ c) Z, U% { g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ {: S7 {. r' Z2 n2 C3 |. p#endif // __SYS_PLAYER_DATA" F; M4 c% u; m+ k- Y
SetHitPoint( GetMaxHitPoint() );% h4 |# J5 {% W8 }1 z0 P+ ?
SetManaPoint( GetMaxManaPoint() );9 q2 @ Z: l. e- r- @! h
SetFatiguePoint( GetMaxFatiguePoint() );
0 _; M: G) d" @$ A/ p if( nJob >= 1 && nJob <= 4 )
. }6 x& g4 @: J1 C; n8 V0 ^ {: t: R3 e _3 E( c1 K8 `$ M( S" ?" [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' g+ o. m* ?+ q m_nRemainGP = 28;
) `. L) @6 S2 }4 q* y4 `# ?' t }2 y2 k( M8 a/ u$ J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; H3 m2 f5 C: l {
: b8 X1 i% g; I5 j+ d' J m_nRemainGP = 118;
8 e& Z. t8 P7 ~' Y2 l. {1 j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% @# {4 C8 T% L+ ~3 a# N m_nStr = m_nSta = m_nDex = m_nInt = 15;, L' V4 F, k& f
}
) I! Y* h- I5 {5 \% |7 W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 x" c% |1 o. d7 F {
. ], r8 p# u/ u# z9 l CItemElem itemelem;
k7 w2 z7 _) T' v: i: V; u itemelem.m_nItemNum = 1;
% [% G0 b2 T7 E% S2 _ itemelem.m_bCharged = TRUE;& X* [5 S; L. G/ Y# U
BYTE nID;
# e, k3 I2 ~- X5 k& r# z3 _1 A# b" ~ c) ^, j" e' m1 u
if( nJob == JOB_MENTALIST_HERO ); R2 V; r6 [+ y/ n0 s+ ~! w# ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% M" M! w: t: Y
if( nJob == JOB_FORCEMASTER_HERO )1 R' V& f& W- [9 T9 T/ F- ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: ~ t0 K" U) n" P2 f& v3 d, Z8 @2 `" m- w
( ( CUser*)this)->CreateItem( &itemelem, &nID );: E4 [( Y% C h D1 s8 s
}: h' k; W( u3 Z8 H7 i; s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; |! k! a5 u+ L+ }& L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- G. `+ n: y/ Z2 ~+ b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) Y9 q' ?. s1 K+ K& Z s, T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: E. A0 y" n0 g6 J9 e2 E
( (CUser*)this )->AddTaskBar();*/$ g1 `& d; u+ c+ G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( V; R' V5 f; a5 s& Y& ?: T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 M5 g) S0 S. k, Q ((CUser*)this)->CheckHonorStat();
1 o7 h H2 j" w/ l. P* t1 | ((CUser*)this)->AddHonorListAck();
# R$ c7 k7 G7 H. L9 K5 h g_UserMng.AddHonorTitleChange( this, m_nHonor);9 x& }3 t2 E& M7 A1 S7 E, f
#endif // __HONORABLE_TITLE // ′Tà?
7 H2 `! ?) k+ [ b! ` }7 O( k+ c6 B+ C- S! V8 Q
#endif // __WORLDSERVER8 `5 R1 u$ C1 ]
}
2 p4 k) l, K5 g% l: n4 z
. {7 {3 R# g# L2 f2 v然后你进入functextcmd.cpp并添加以下' R, D6 `6 S4 E8 \
9 s# m3 E! J- ? k代码:
! h& ^: ~; _1 A# Z) c) |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 G, Y. }2 S, ? m9 Z- x
下面插入
% I* f1 b, h& v: D& E9 xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* N4 G7 ?# {; r+ ^/ V( ^
% a, J7 ?3 v$ ?% }' `然后你去0 K! w2 K& k% r
5 t1 q' }, }8 f) |1 f* \3 F代码:. l$ i" ^* e4 M5 J z- l! M+ q
代码
& c p7 V( p8 H7 H. zBOOL TextCmd_ClearPropose( CScanner & s )
# K8 D8 O7 L6 Q9 i8 d{1 [1 N2 Y$ [- J* g5 B( b# i
#ifdef __WORLDSERVER
5 S/ @, o6 t+ K6 F" A0 u8 `; V1 o2 M CUser* pUser = (CUser*)s.dwValue;8 s# g$ F" y6 r( Q
g_dpDBClient.SendClearPropose();% z/ s6 q5 ~$ f7 M; k) U0 J( E" L' j
#endif // __WORLDSERVER
) {; w& Q8 I' s) Y' C# q return TRUE;: P0 t2 L8 g) P7 u6 a" s
}
$ J1 E, ?( ]( f; v+ ~下面插入( D; w( y' }- w+ `! ]$ ^) |& Z
BOOL TextCmd_rebirth( CScanner& scanner )/ P8 O" E9 \: ]* C: A h
{
7 D+ u- J( P# A, g. h) v#ifdef __WORLDSERVER/ n1 ]. z7 j' u9 O& q! g. D
CUser *pUser;6 p4 ]2 X7 P* y
pUser = (CUser*)scanner.dwValue;! Z/ e* i( D7 f: b6 _5 R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. u0 q3 N% s4 ~: K/ rpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& y% ]; a5 c5 E2 _3 K7 lelse8 H, e( O* r2 D6 u$ D V
pUser->AddText("你还未达到重生条件!");1 d% ?5 _4 M: ~5 D
#endif
; t" u! }- E$ l: @return TRUE;( w4 m" R! m. [3 `( T
}
7 W5 T1 N8 I- P: T/ [' R( W+ L. w3 P% E' ~1 [" `
) o7 X4 j$ z1 Q3 u* n% p
$ p- B; Z& m- B" c- w- ~* ?
+ L2 s& k0 {' H2 B* X B, ` |
|