|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 s1 @5 [% G, |& G) @9 ]3 T
) l3 m) ?7 q, s* [' j/ {
Mover.h
9 y8 D" `; f v+ j代码:
- r+ m* n. g, B' w: U找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 P1 F. w0 Y3 h, n! ?- Q! A
: v7 z7 i+ k! ]2 b下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
P& P$ e' O: @4 p( A# r# E+ H0 m4 k, c; u% b3 r
然后你去mover.cpp添加$ o& @1 R$ q, f% F, ^% a
& w/ R! J8 \" M代码:
c r% s( m8 ]9 D3 \void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 f6 h& M/ i( J{
% D4 y/ f4 n! \1 ?#ifdef __WORLDSERVER
4 I" t+ {, X4 c# M0 ^! o" Z8 g // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 |7 s/ Q l3 Y MoverProp* pProp = GetProp();$ I7 k' V6 J% d; T; h
if( pProp )
( N" F, W& [- G {* p& Y( X! D% \' C1 L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' J$ e2 o# O/ m' ~
{* {; H( |7 P! o
AddChangeJob( nJob );4 a' @2 F- H! T) I( T% B
}else{
3 n6 d; [- j1 R return;
. ^- ]' r i' o# s; H/ K8 G/ ^ }
% g' ~+ P' L+ X6 h int nPoint = 0;
& u4 k+ M, \1 i7 c" g' L7 K3 @ if( m_nJob == JOB_MERCENARY )
* b# M' G! z; l nPoint += 40;3 U6 b( E. E1 ?2 D) p4 v
else if( m_nJob == JOB_ACROBAT )5 X, l7 M5 ^7 d/ F7 Z$ y
nPoint += 50;* W+ G/ T2 T' u) h+ v
else if( m_nJob == JOB_ASSIST )1 r+ X' {, u+ z: ] L
nPoint += 60;
8 x# ~. S7 o% j else if( m_nJob == JOB_MAGICIAN )
' L4 N! \9 v6 j( r0 V3 Q2 t \ nPoint += 90;
) F0 O6 l3 o5 T9 v1 p$ W* }; F else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 z {5 O/ Y# y% K- H
nPoint += 120;7 C8 |. I7 I4 P5 u; t, _ C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): {, T3 u }. T. n4 w) u3 ^
nPoint += 150;
& k: w+ a% G) c8 j1 @ else if( m_nJob == JOB_RINGMASTER )
5 L' ?6 L/ X: v5 B1 ^9 n nPoint += 160;
" c' [) K1 h, Y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* g6 U7 _$ b- ~8 X8 J$ v! R nPoint += 180;' P* a" `: m: Q0 V9 T S% l# F9 U
else if( m_nJob == JOB_ELEMENTOR )- O+ J% Q& G2 N7 R2 X1 z5 p
nPoint += 390;; F2 C( j* Y+ e+ w, }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( o6 O, K6 B* R: e nPoint += 120;5 u5 j* ^: V, L# p. b7 U ?" @* X D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) B: `' U$ W% L3 H nPoint += 150;5 W0 t0 M/ b% F
else if( nJob == JOB_FLORIST_HERO )- q. J( N7 u7 g" f8 u! u0 Q
nPoint += 160;
. [: q ]1 Y( G8 M7 M! I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 \. G6 y0 K0 Q' J9 }7 ]8 _
nPoint += 180;
$ a' U3 [ Z" b/ Z2 A4 C5 U4 V else if( nJob == JOB_ELEMENTORLORD_HERO ), N* M, M" G; b& R4 h, k ]$ E; `
nPoint += 390;
/ g2 v# a" f- j; G- l- K& F' M! F0 E2 J9 J( f" |- c9 e, f) @
AddSkillPoint( nPoint );
" M: g/ g3 z1 ]1 S" `5 r6 S* ~ m_nLevel = nLevel;/ P6 U3 F9 b1 S8 A8 V; o# H/ z
, `2 v7 Q( A; c7 n8 n& R SetJobLevel( nLevel, nJob );
, ?5 q3 @1 ^5 Y+ z/ M- q m_nDeathLevel = nLevel;1 K# H2 ^; r/ K* ~' A- @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) V+ u! L2 s$ ], J+ r: t8 @' p6 K
if(IsMaster())
6 }( g6 Z8 z9 M. h" U2 `, Y$ R {
0 L- l3 O" y& W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& h& N& {3 r: E6 H" g2 a& D E if( nLevel > 59 && nLevel < 72 ); v" v5 T: j! Q- W6 |3 E g8 a
dwTmpSkLevel = 1;, l, Y" t1 r) T" x/ D
else if( nLevel > 71 && nLevel < 84 )! _, x" o8 O9 H8 m
dwTmpSkLevel = 2;" ^) _+ L+ }$ R
else if( nLevel > 83 && nLevel < 96 )% A+ e2 L& ^: E0 t# P4 b+ p$ s
dwTmpSkLevel = 3;/ `) T6 r. q! K+ r q1 T" N% z ~) e
else if( nLevel > 95 && nLevel < 108 )
- X! ?8 B# W5 A dwTmpSkLevel = 4;
/ x: |9 m, _$ N$ A! ~( t+ f else if( nLevel > 107 && nLevel < 120 )
0 s' X5 q* \4 F dwTmpSkLevel = 5;
' O: @! b0 R) w# `3 j# b7 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' M, X8 b4 e' x) j0 ~4 B1 H# O
{ 5 x* W6 @5 h: w2 J
LPSKILL lpSkill = &(m_aJobSkill);
9 T' r2 R1 E- k: E if( lpSkill && lpSkill->dwSkill != NULL_ID )
& q. d: K0 N3 C) K, ~ {( J6 j8 \" O) K+ K# W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ x: T/ j6 |- Z; I if( pSkillProp == NULL )( C$ l0 g! @6 e: m# [% Z5 `
continue;
! `) M' D: `! C7 ~: i* r: N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ C! J [5 G! d+ {( ^+ s0 x continue;) D w d% k5 y
lpSkill->dwLevel = dwTmpSkLevel;* ~/ l* t- t/ |2 ^2 B- R0 F
} P; s D% j+ s" j$ _7 S& E! g' Y
}
6 a7 p9 X5 N( F$ { }3 X( H2 R0 I& [" r
else if(IsHero())0 @, d) N2 j; Z. Y4 x0 n+ |0 ?8 C
{
1 P# `: v2 x$ N; n* M2 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
! r- O' e, c3 R. H+ u9 O' z2 } {
3 Y D5 _0 ^+ \) ^5 y LPSKILL lpSkill = &(m_aJobSkill);% Y+ C0 W3 {9 d h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 F/ P2 v1 [- T& a2 q8 q {
; e& M% h0 k( r; M/ A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. ~' e' }7 s7 @& c6 L& U; s if( pSkillProp == NULL )
# J: @$ |6 m9 q5 y( m continue;. q3 W; C; u! N: C" C% O: \+ m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 ], g1 A( T7 ~1 t
continue;' T% B& Q3 W" L* ~5 k
lpSkill->dwLevel = 5;8 g6 ^; Y2 |* X" q' k2 A* }* |$ s, o
}
; N+ A# `; o5 u- _( ^/ L9 q6 \" F+ Q% | }
" R) p* @/ R3 x4 m* N }
g( K# G: s: J: `' k0 Z) q: k else if(IsLegendHero())3 W( E: A/ B6 z' w% m( \
{5 F7 g1 [0 b5 w% I( S# h' ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 U# y2 l4 a; a: S3 \ u
{ 7 U0 z2 G6 Z" a- V. V+ L& ^
LPSKILL lpSkill = &(m_aJobSkill);- H! T& f0 _+ y. q/ T5 J) o- P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 q- T0 E1 t! Y {, N a3 T, k+ A+ G9 j5 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 l b# y' e- c4 v. |* E9 s3 c if( pSkillProp == NULL )
6 D! L' P+ n: j8 @ k continue;
O0 W7 K& P2 C: h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 ^5 z2 g, B c0 _$ ]9 e4 ?4 l
continue;* D p3 z% ]3 i0 J
lpSkill->dwLevel = 5;
( j- |3 E& y2 n" j }
( u7 d5 Y) E3 i8 f! ?+ p" g }! r0 p$ {6 ?. Q
}% k) G8 \ i5 C( u3 l2 P& q3 X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ |3 e D, i5 |# _& F V
if( bGamma )
( {2 O1 I) X& \9 j6 x* w+ q {+ }) o" i( W& E2 D% a
m_nExp1 = 0;5 Y% [2 I J; X/ [" H8 d2 X( }+ t
}* i5 n, r# \0 ?, i m1 O& O
: F' \# n. O0 R1 Y( a; }4 V ( (CUser*)this )->AddSetChangeJob( nJob );' @2 { o. Z6 r' J7 d* ^( G$ ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 d4 y) X4 h5 q2 |0 j! b) H2 f( f! v1 r; l+ E: o
7 Y+ ^4 C( Q; X$ f' B#if __VER >= 11 // __SYS_PLAYER_DATA
7 ~3 x" o& ^) ^' k; S* M; N( H* X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! r/ T+ J _( ]
#else // __SYS_PLAYER_DATA
8 U1 I! [! o3 {3 f/ l, M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* f9 V3 ]1 C: ^. F* n Q# t8 _* L g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% M- D7 D2 w# L! `& D* _ if( m_idGuild != 0 )
( q7 T) n0 x: i- B. |# ^6 Y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- e e9 M, {2 a6 }+ h
#endif // __SYS_PLAYER_DATA
! P7 a- |# U4 v/ `# {& M% p SetHitPoint( GetMaxHitPoint() );1 B. C9 Z5 }1 E# z& I' ^
SetManaPoint( GetMaxManaPoint() );
7 D2 ^& m" g) [+ P- m SetFatiguePoint( GetMaxFatiguePoint() );
6 L! R1 q/ @5 u9 o: j9 M if( nJob >= 1 && nJob <= 4 )
5 V3 }! L. A- [; I! U2 Y {' [% {! y6 W3 |' h% B
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 s/ V6 X6 \ n* e
m_nRemainGP = 28;
% U" C1 v( \6 e& E" m* R' s3 a1 q5 O }
# u# I; z; ~. \1 [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- e& J) @5 r5 U6 w( }' i+ {8 S
{) _% |' B" J! d( V8 @) W6 y
m_nRemainGP = 118;
* y2 F( ~4 R" X; Q9 o& K //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 F6 ^; ^3 I( @2 I, ^5 k m_nStr = m_nSta = m_nDex = m_nInt = 15;! G) i- p) u8 y' |- s
}4 j0 r: T' y1 {3 K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- w" N9 Y' N4 C U1 ]4 ?& k* L7 E {9 E* N. X' ` D2 v# Z* V! h
CItemElem itemelem; |2 y4 o [% w7 v
itemelem.m_nItemNum = 1;
! B" s D! S8 O0 J$ t$ b! @7 u itemelem.m_bCharged = TRUE;+ Z+ L& O ~! a/ f' Q
BYTE nID;1 v$ y) O0 Z5 `
5 b+ ~" M( ?" w6 e6 J8 i
if( nJob == JOB_MENTALIST_HERO )
9 l& v2 f5 T# e8 s0 O; f itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 b, o. V9 P7 q' |6 J
if( nJob == JOB_FORCEMASTER_HERO )
1 f* g1 [ \% _9 ^; o$ Q2 W9 x" j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- w) O0 O* u0 _
- @4 B% m; s5 w/ T: `2 ^ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 b' @) n' A2 g }' g. [& ]" @. l3 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 t9 {/ |' |1 `: n( E+ y) g( q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# g) R0 o/ b. [5 y: `* I" I7 p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" @9 x' o' r* `6 P. g' J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
b" V1 Z0 M$ P# f; |" i3 S0 k ( (CUser*)this )->AddTaskBar();*/
+ P4 g9 F5 i8 n3 A# F/ ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" _5 Z9 J( J% _# q# h2 N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; |* u( }0 S: k0 {$ ?9 K ((CUser*)this)->CheckHonorStat();) O- J6 B6 C+ y' u/ J" A
((CUser*)this)->AddHonorListAck();0 E8 M2 V: K& y3 s! x* w! Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 Y0 k7 n, k, c0 M* q#endif // __HONORABLE_TITLE // ′Tà?# `+ s( N: I9 E
}: U( m: A- R \4 N ^
#endif // __WORLDSERVER4 s, p4 a/ P; @% g/ \
}
1 r8 u/ C0 V& t F1 B h6 u% I: x! S+ U( h5 \
然后你进入functextcmd.cpp并添加以下
" ?# I3 g, t' w. H$ R) K1 N4 S \% u ?( ~
代码:
9 E# d& V% \/ O+ v3 A* I/ SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& p- q8 I/ k+ R6 y- L4 Q, t' t4 Y B下面插入# D. {( M2 O! Y. f8 X! C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; N9 Q F( D& [, H% j- x0 k: [6 j E% e$ r- v; h; }& o
然后你去
5 G* B, i6 Q( X* m! H
& U* _4 W+ m p1 a( C! Z代码: W) _6 j. ^" r. H# {/ \9 I2 S
代码
* S9 Y# o: f ] z) q! LBOOL TextCmd_ClearPropose( CScanner & s )
$ e. T. X" H7 D( r( b{
* v, L- l, B; [- M) r/ S4 m#ifdef __WORLDSERVER
5 E% [# O% J5 B1 ^ CUser* pUser = (CUser*)s.dwValue;! l' A! ?0 M; H; |
g_dpDBClient.SendClearPropose(); |) c" }# o% @/ h; `, C4 K2 e
#endif // __WORLDSERVER2 E# {+ D* n( a& S
return TRUE;7 l* O% q8 }. s" \
}
( N4 q4 G0 ?2 J+ B- j' D下面插入; E, [. }: @3 Q. d3 A; L' i: B- N" L
BOOL TextCmd_rebirth( CScanner& scanner ), z& P# E2 A2 ]# ]0 G
{
; @9 j: k* q# r* D2 F: n4 o8 r#ifdef __WORLDSERVER( f; B! B5 R( |: E
CUser *pUser;% b- v8 x' ^& Z
pUser = (CUser*)scanner.dwValue;9 y; `. k* U' u# E7 N! ?+ q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ z1 f- W6 v& `. x. E* Z1 }+ FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 m% R% e9 A& R) B9 eelse
D/ h& c! b) X8 H% G: B7 BpUser->AddText("你还未达到重生条件!");9 T! f; p$ A! r& ?" m6 A
#endif) u1 I* p+ x2 [( w) P3 x
return TRUE;- u7 n/ y3 U4 A$ G# S; [
} 3 f6 u8 k/ V$ s/ B. E8 R
5 \8 L5 o0 f' O. N
- V% l. _( J( M- _( b+ b2 B; t8 @( L J' ^; P
& b- { \8 M% i( h |
|