|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- c1 q" \6 ^- ]9 w9 I+ P
7 T* Z' N, i7 B6 ?* U, qMover.h
# S$ U2 b* U$ B/ C" ~( \6 u代码:6 L3 m& r" Z6 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; P) ^6 t1 ~8 O. H8 E4 j
, g) ^: O% Z+ J& _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' n! Q! c! S7 v6 l
0 ]4 b/ {# G3 M& n* Q& u, Q
然后你去mover.cpp添加
9 ^) R( M# e H* S E" C7 p
/ I' j7 Q& }) D代码:
8 I: b# @! I8 e, ?+ bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& Z& W, P/ {& F1 F) T3 x
{7 n, }% J7 F8 O9 N2 F2 l
#ifdef __WORLDSERVER5 V8 ]; M; t+ v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! R E8 S. W$ q0 F7 _0 s- Y
MoverProp* pProp = GetProp();0 ^$ u+ T' I2 m& g% ]" F" t
if( pProp ). K; J& {& Y) @7 i7 b
{% w0 T/ }3 e& @2 ?) \% e, k! Q1 C
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
a+ f- g7 i# }0 T {/ Z7 s, F' ^" \1 \: U( i
AddChangeJob( nJob );' p! P' r- u G) m
}else{8 d, O( M1 H1 w, F! a5 k* X2 \
return;
! t1 J0 g9 P$ K, \/ U" E; i! L+ w }. p1 R, U6 {, t' H2 l
int nPoint = 0;( J! Z" t: `0 D" ]; L7 p6 ]
if( m_nJob == JOB_MERCENARY )& ^% u4 M, e' j% b8 o5 S
nPoint += 40;8 T Q8 E: k2 Y1 B' V5 b; [ U
else if( m_nJob == JOB_ACROBAT )
0 i# r" d/ `. O nPoint += 50;
0 t9 p5 e: J! t' j. h8 q else if( m_nJob == JOB_ASSIST )1 F+ F; Q4 z. D* n7 W$ z7 B
nPoint += 60;0 `# {+ e! o4 z$ C% l
else if( m_nJob == JOB_MAGICIAN )
: `* c {9 d0 O! t( t: x nPoint += 90;
f! @ R+ S$ I$ ^7 W! K' e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 O$ A* R% K4 z/ h, P% @
nPoint += 120;
7 R0 X$ }2 Z6 B3 N7 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): q i- q6 l7 h( R
nPoint += 150;
?5 \4 U) m) C, R! _8 h, O8 V else if( m_nJob == JOB_RINGMASTER )( r( _4 O( x9 ^2 D
nPoint += 160;
+ q2 ~2 D6 I2 q! j, c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ H- ~1 Q0 o( E& K
nPoint += 180;
- f6 J& t" V% ?0 {( n* I0 }4 H& g3 ~; i else if( m_nJob == JOB_ELEMENTOR )( e, n3 U" A5 ~8 p
nPoint += 390;8 q6 S- X6 F+ k5 C, |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. t$ G6 j9 |5 n0 B, r nPoint += 120;& \6 p% M8 }9 c2 x8 H
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ g9 N- }2 l% B* A nPoint += 150;
7 X, a2 b% m4 @: y) O6 d' P5 J else if( nJob == JOB_FLORIST_HERO )
- Z& r* D0 L" p2 m% M( i! | nPoint += 160;
4 `7 n9 p' I7 U. [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 s) d& Z* _3 Y! K4 E nPoint += 180;
. u1 `6 A& i1 N% ^ else if( nJob == JOB_ELEMENTORLORD_HERO )
8 D# }# M* S, N6 ~+ y nPoint += 390;
4 `4 I4 @$ }- F$ a; ^$ s& Y
2 o9 S* C( z, `; _ AddSkillPoint( nPoint );* z) X8 p% c1 s" c: B1 @: n
m_nLevel = nLevel;
2 K4 [6 Y. V$ w) e4 A1 d3 H
/ q" S( V6 L: M0 G( t. J% M SetJobLevel( nLevel, nJob );% j, m L& ~7 }3 G; c
m_nDeathLevel = nLevel;
% n' P0 L2 E( V, a7 l' _$ f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ k, @# v; c$ M. A$ ~, m z6 t3 O, D, J
if(IsMaster()), V0 A1 K- m# ]) \" b# @
{
" p1 n+ X5 ^6 H( J" {, J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. y+ ?# {5 v" N2 m if( nLevel > 59 && nLevel < 72 )
. q* ~4 K, I9 z. g9 n- Q0 K dwTmpSkLevel = 1;
+ D+ I0 M, H1 P else if( nLevel > 71 && nLevel < 84 )
, x3 F" Q% l8 C* {6 z7 {+ p6 } dwTmpSkLevel = 2;
/ B* o' m! \, \' e% v7 C2 A else if( nLevel > 83 && nLevel < 96 )
, N: _+ b& A+ Z dwTmpSkLevel = 3;2 v2 x7 f x+ S2 }
else if( nLevel > 95 && nLevel < 108 )
0 k/ m/ l& { z% }' N: J! L) F1 B dwTmpSkLevel = 4;, p' \3 G$ v( o# Q9 W/ l
else if( nLevel > 107 && nLevel < 120 )2 [# d `4 h6 I. z% `
dwTmpSkLevel = 5;
6 {8 v7 y# q' q, B/ [3 G4 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 i/ j0 r" M' I9 ]$ L" f { 8 X9 `3 _/ o" J8 C) Y
LPSKILL lpSkill = &(m_aJobSkill);
4 n* q- H9 Y/ V- I+ \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
% Y0 K$ P: P$ W {8 d8 X! F' q5 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 ?' M2 `: o& }0 R
if( pSkillProp == NULL )- ?1 b: D V' |
continue;! d# k( X+ d3 n2 q: T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) `1 e3 J/ t! f* Y
continue;
# e. `) q) u0 A& X% L8 l lpSkill->dwLevel = dwTmpSkLevel;0 `9 @' U0 ]* B0 {5 o" H6 p
}
4 I0 b% K% C4 [0 x- N1 K }! P5 E1 ~+ B) j) T; @& n
}
( z$ ~# u7 P+ M E5 F Y! R else if(IsHero())
0 t1 g3 G$ O; u: N% o' y! [& i/ w {
/ L9 @. O' P: f5 g, D" D* Y1 ]) a for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 n. j& r- r3 w) g
{
7 j2 p! G# z8 C* K LPSKILL lpSkill = &(m_aJobSkill);
' j/ |% V7 ?$ J* t if( lpSkill && lpSkill->dwSkill != NULL_ID )7 L* n6 B: B$ V, f7 |
{8 e) W; E# M4 |. ~+ M+ U7 Z1 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 k& V) H* V& t" `, v! \% y; Y1 G# o$ H
if( pSkillProp == NULL ), ~( W* p! ?& C" Y2 Q& d+ U
continue;9 I# T; z/ y3 ~/ u7 J9 r' g% T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 r2 z. a5 i5 r& k: {& a- h continue;
% w2 b$ I% O1 u* I4 h/ d lpSkill->dwLevel = 5;, v; ~& S) Q7 N) N. G4 e
}1 `# i/ ?$ q7 @ \2 I
}
0 s; W( _# K# \: a0 ^ }
% p3 b/ ~" |" ?7 y else if(IsLegendHero())6 o, c* s. C* Q( k
{
$ |5 F( U" |% g, d1 E; x6 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; D- e; ]- ~% {
{
W$ k$ v" D* F LPSKILL lpSkill = &(m_aJobSkill);. k3 y1 b' F0 C7 [4 y& j5 E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z9 |5 R9 E _ b u1 b {
: I t: }# N( u! `/ `$ ` z7 i: ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : e8 F2 s! T6 j
if( pSkillProp == NULL )8 `4 C! }5 N% o! R
continue;9 `* Y8 s' f6 x! |* ]) _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 G1 ?$ P% ?2 i, U8 l _ N7 p3 j0 P continue;. H: b' ~' ]* ]; S+ {# w( z! B) x6 g
lpSkill->dwLevel = 5;; _4 K& f- h8 i0 |8 _% M+ n4 v/ z
}; Q) n! J+ z5 y( ~2 H* k: W
}$ A D/ ?( K+ `4 E$ ]7 O
}
8 O8 x7 a. `* M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" M8 o7 H2 t% J/ c% r2 A if( bGamma )2 L- C) e9 ?4 P
{
9 r; A0 L; D' N# q3 [9 \( ` m_nExp1 = 0;
* y8 M0 x- ~: H }
- ` ?) n* Q, H! O$ M$ m4 D w+ }, a0 Q& b. }" k$ O
( (CUser*)this )->AddSetChangeJob( nJob );; S- m0 c. g4 v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 ^: S6 l" _1 e6 P
3 C+ w k1 O4 @) M4 |, M9 j* Z) p4 J; o1 X4 E0 |
#if __VER >= 11 // __SYS_PLAYER_DATA* L7 ]1 C8 H- `/ @: S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. c" X+ y+ f6 B& Y8 m
#else // __SYS_PLAYER_DATA
5 K7 H5 j7 j, H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: [$ P9 ~/ }$ t# x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# S' } A+ \" M/ W8 M9 J4 X
if( m_idGuild != 0 ); z; O" Z& {+ ~' O9 b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. a+ a# p* g) @ X
#endif // __SYS_PLAYER_DATA* X) N- p/ ?0 u5 b- q
SetHitPoint( GetMaxHitPoint() );
9 Q9 H9 x" V4 |; H8 X* s- e SetManaPoint( GetMaxManaPoint() );
8 r, v5 g) {, X% `% q SetFatiguePoint( GetMaxFatiguePoint() );8 B) ~- w4 R9 c; e/ ^, h
if( nJob >= 1 && nJob <= 4 )
: ^! h9 U; i) M9 Z- n; p {
: {9 X. {( r8 ~# A m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 ~: H( j2 h0 D( L6 L0 z& \ m_nRemainGP = 28;* S2 p9 B+ u; L& ]
}
4 }! U$ O! J, b5 h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 @) X3 `0 S) a/ u+ Z, c {6 n; I# k; l. g9 r4 V# i
m_nRemainGP = 118;
2 L& f3 A) J8 `7 z& x, L8 Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" ~9 J! p4 I2 d m_nStr = m_nSta = m_nDex = m_nInt = 15;
! C! D( V# p& b7 v }" A: q) Y3 j w0 ~' v; a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! P% e5 ]4 A5 |0 Z# v1 l. b9 k
{
7 X, T. t# `: J% O+ x CItemElem itemelem; x" d! u* J8 g& Z# x9 w, Q
itemelem.m_nItemNum = 1;8 G+ _( Z9 |8 u. M9 d# f
itemelem.m_bCharged = TRUE;* c0 m, u. Y* [
BYTE nID;
1 J# R# b5 g- K0 u1 D; `$ ^4 q2 I8 N
if( nJob == JOB_MENTALIST_HERO )9 R) d5 V& i* Z* U6 A- ]7 }7 d
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; d: v5 [3 [; `( T" ^
if( nJob == JOB_FORCEMASTER_HERO )" J/ I0 a J/ f) _/ o& f- r$ i2 ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ U/ u; o& a: ]/ h/ ?, e
( O9 }7 m _; l! N2 Q/ t5 G7 r ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 ?; F: ]* ?! h$ i8 d3 X6 M
}( U. ^ e4 r, `1 Z+ v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ ^9 t" O# ~2 C! x1 M# f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 |! y. {& A4 I1 d! { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. J1 i& y# L2 C# Q/ s5 R' { /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ N6 z1 o! `& w/ p+ h/ p3 |* I ( (CUser*)this )->AddTaskBar();*/1 _0 Z k; U8 U8 S
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 v. B6 ~" ^$ C* A" X7 p1 Y- y; |
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& k0 a9 `" V& N4 I ((CUser*)this)->CheckHonorStat();5 e" G f; C! c3 T
((CUser*)this)->AddHonorListAck();2 P/ x6 e5 Y" T( G/ o9 P) z! V
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 ]; P8 J1 [* s) Z3 m#endif // __HONORABLE_TITLE // ′Tà?
; y" R, _, I0 O$ w) c }
$ t. I6 e) {, `4 W6 r( Y" D8 }5 h#endif // __WORLDSERVER8 R0 U! T0 c4 w+ E/ S- h* [* ?
}
& L& c2 E; {2 h$ A* G
2 ^4 p. T4 P$ J" d) N J2 \; ]" t然后你进入functextcmd.cpp并添加以下
" t2 d: B; N4 H
8 {4 D8 Y5 o7 W" \代码:
* v! g# ~2 B9 E D$ }- lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 l! A4 H: L1 v$ n) q下面插入
; w5 ^" A% j' N7 [8 jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 }2 I( k7 c$ S7 o4 o- J
; ^5 a0 _8 |4 D6 r8 b. L
然后你去& A k, B' m* l( I0 w. s' C
0 I d0 u# u4 ~7 ^代码:
/ w' v. C8 W- J; y# c1 _+ E代码
: ?- X- }* R, x f) V4 N8 sBOOL TextCmd_ClearPropose( CScanner & s )
& W/ T* c4 [* S$ [: Q{8 `2 Q2 ]0 E, ~$ r0 w+ `% s
#ifdef __WORLDSERVER6 s* {. _! Y" D
CUser* pUser = (CUser*)s.dwValue;6 U4 _( K6 v- |
g_dpDBClient.SendClearPropose();, F! G! c* H; m; A% ~
#endif // __WORLDSERVER
' H7 p4 I2 ?. i L, c return TRUE;
# f+ h$ N& y* k9 [! v% U+ I5 T}8 J& x; s9 ~* O
下面插入7 n$ m- @1 Q) M! {) @% `
BOOL TextCmd_rebirth( CScanner& scanner )% u' ?- p+ f, y; n g7 u1 S3 n( A
{7 p7 O6 h% k# w# Q
#ifdef __WORLDSERVER2 h! o6 M7 M8 X: |% y
CUser *pUser;
/ C% b: U+ I2 i' P! Q' OpUser = (CUser*)scanner.dwValue;7 @0 q; a1 Q, }( B' `4 F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ I( C1 v1 u4 j [# E! y) k2 i8 R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 C O6 k4 x7 Q# r7 jelse' s4 r o. p% i3 E" l$ W6 `
pUser->AddText("你还未达到重生条件!");) S' |7 C: i% t
#endif' H% R9 l, }; O0 E: Y# ^
return TRUE;) M4 g. w6 E* ^
}
/ Q b4 ?" F# R9 Q
" G* h* m. @$ y' Z7 x* D: R) W+ i# |. U" h& S q
' F% S3 I- t1 m9 L2 `7 p6 r Q- p' F7 @
0 ~ r6 p5 e" s
|
|