|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& k: k/ r" X1 f
6 D( G8 \' K( q) X1 _9 f$ v) uMover.h
+ h0 j8 I. F3 P6 n( Y8 p _: A: W代码:
- Q% _) D& E1 U8 i K. `( X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ M: y8 L& ], b1 w2 Q
% a8 Y- E7 X# q' U+ P g5 o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & P- g' o+ N9 T
$ U3 |3 a2 L" ]1 N4 x: j* Z# e* t然后你去mover.cpp添加
8 h$ P9 e2 L0 {7 s* R0 ]7 h% o$ g5 m3 m
z! k2 t4 Q8 i( J9 S) @: q代码:
9 t( [, g V/ m. Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( r: x( ?& Z: Y ], L{
# a7 s: j5 }6 a, a2 o0 m8 n/ `6 p#ifdef __WORLDSERVER
9 l1 O4 ~) F$ i: `3 W) O+ |% S // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 h2 ^0 B, J) T# m3 _# {8 j- k
MoverProp* pProp = GetProp();: n1 ~& Y! n& u, q
if( pProp )! n* F7 W1 C/ d* |* f7 b& x2 m
{
" b8 k7 J e+ h7 w if( nJob > 0 && nJob < MAX_LEGEND_HERO ); L- f2 C; f. }) Y; X
{
/ \- _' Q8 ~6 ^ g AddChangeJob( nJob );
4 [( u6 K# T2 ^8 b2 V5 t }else{- {2 K# Q8 ^+ N$ g6 W; f
return;: E9 `5 E/ ]' i& Q7 }3 R5 A- ` [& ~
}" d, b. s" f& V
int nPoint = 0;
]3 m& z l( q5 Z! P" {/ Q" K C) D if( m_nJob == JOB_MERCENARY )
) X" E9 `* ?4 n: v. G5 i. ~ nPoint += 40;
5 [. I' C. l9 ]( p4 J else if( m_nJob == JOB_ACROBAT )' M8 ]: Z5 z9 R6 E
nPoint += 50;" t& E" z( \0 q0 m, [
else if( m_nJob == JOB_ASSIST )+ B7 D0 O" h; M8 y
nPoint += 60;
& L0 `& \' c9 J1 r- z! P8 X+ I else if( m_nJob == JOB_MAGICIAN )$ K" {1 n& x R' \) r/ v, i
nPoint += 90;
! a; \; W1 E% I3 _/ ]# J! l4 r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ s* J1 e+ n$ g% T5 Y8 J( ]4 J M
nPoint += 120;
) v% u, M. B4 o4 N( T5 | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# y' W. z' V W' w nPoint += 150;, _0 N! W3 t4 O& _
else if( m_nJob == JOB_RINGMASTER )
* B7 [4 B* }) | nPoint += 160;
- k+ }) ~$ C3 l2 H) C- n- m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& ^, ~- V0 K4 W6 J# G nPoint += 180;5 ?( {0 B) E0 w3 g: y+ ?
else if( m_nJob == JOB_ELEMENTOR )
; u: Y1 _6 _9 o( p1 }9 w4 Y; M nPoint += 390;
4 I/ x# Y# M" |! | \7 ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 j8 B2 R$ y- \, D4 x
nPoint += 120;* F( ^9 A- o# n, Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% y! m9 r& N! ?/ ^7 x- v nPoint += 150;
0 \ P, w: {9 F) T8 |5 q4 M. \ else if( nJob == JOB_FLORIST_HERO )5 \, A) o1 N* l! R1 n
nPoint += 160;4 x3 U J+ J$ Y9 M+ ~- o
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 ?1 {' _# `+ {% F3 V7 t d nPoint += 180;+ z" [, [( o7 n. K) l
else if( nJob == JOB_ELEMENTORLORD_HERO )
: ~' p0 ~8 O) M: ~# k& V% g" ]; M0 J nPoint += 390;+ b+ R1 t7 Q) h( q, L Q5 \
6 q; B4 b+ j8 s) \
AddSkillPoint( nPoint );
8 v: z, E0 E) H2 q' s* D( r2 ~ m_nLevel = nLevel;
5 ?* g8 ~9 B% t9 |, t
- H7 s& [/ U* f" ` H SetJobLevel( nLevel, nJob );
1 H; L' {6 A, q$ u1 K m_nDeathLevel = nLevel;
% v$ y8 H _3 K4 H2 J4 N& w#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 U# `9 ~5 S, ]+ j% z: |: J if(IsMaster())
; L+ s. L- h' N# `3 F' n6 ]0 x {
8 G$ Y% W' k( E int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 T$ C" h# x& t) a if( nLevel > 59 && nLevel < 72 )5 e( L1 w8 G9 L1 y% K8 p( Y; k: x# K
dwTmpSkLevel = 1;7 B( W( b2 f/ W/ B
else if( nLevel > 71 && nLevel < 84 )3 J$ m6 e8 c5 f9 {8 A
dwTmpSkLevel = 2;$ e8 l9 z* P4 l3 E' q
else if( nLevel > 83 && nLevel < 96 )! |8 Z c" _+ b# E) n7 ?3 H9 c8 k
dwTmpSkLevel = 3;# w* z7 m2 O* c* G7 F
else if( nLevel > 95 && nLevel < 108 ), w1 W$ @4 K# _8 |& d- g c% h
dwTmpSkLevel = 4;
2 y& }! i$ f4 s* Y" i/ G4 J# y/ Q else if( nLevel > 107 && nLevel < 120 ); k& X4 r( f; l0 f% L U" e
dwTmpSkLevel = 5;
+ v( Q8 { U* t$ f2 i: s for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 D9 G/ ^/ Z4 z% K( `( ~* y { N8 r4 A$ i- ^7 s B$ \
LPSKILL lpSkill = &(m_aJobSkill);
) A2 N& y- ~5 w if( lpSkill && lpSkill->dwSkill != NULL_ID )5 j* g( H" ^$ D
{4 T0 Q3 ]7 L' m# s4 N: N. a0 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ n) k, s7 l5 k- x. \4 z7 W4 ` if( pSkillProp == NULL )
& M. n a8 {- ~$ A, S' |8 [3 C continue;* I. R: Q8 j7 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# j. d$ H; f* L; X
continue;; ?) P7 k, Z* z; a S1 }$ b$ c
lpSkill->dwLevel = dwTmpSkLevel;
' Q: x. @! u2 x: Q }5 V8 O5 Z! d( `9 b' r' ?
}. p/ L7 H4 X- r
}& f! F6 ?) x* |, j/ a
else if(IsHero())
+ k4 v# E# c# O& ] {& D- D/ k/ w' u1 f5 ^3 C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 v0 C1 Q1 _1 d r {
8 f+ ?% C2 @1 [% ~ LPSKILL lpSkill = &(m_aJobSkill);
; z! y2 U- w2 F- q2 Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
& f* \( W" u! G% ~ {
8 c; P; w. {- h# }6 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ ], f0 z* s' F0 {0 _ if( pSkillProp == NULL )/ A5 b8 u6 |: s8 O1 s# K6 w
continue;' U* l4 Z R1 c8 L$ r2 c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( O0 j- S9 P6 `: Q% z* \) Y& w/ H continue;; ?+ A J$ L; Z {0 h9 d( \
lpSkill->dwLevel = 5; V. R& e9 P; O) Z. W
}
, [, M4 A# N$ ?( E8 l/ q }6 g) ~7 Q+ s' n# ~6 _
}5 v3 x' z7 h/ | n5 }) H7 u& M. o
else if(IsLegendHero()). j) h) r. W8 H8 K7 Y" V
{5 X6 T; `' E# s5 y3 r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: C* C1 Y( P L6 g! l { 1 a$ K6 f9 W: F, i, c
LPSKILL lpSkill = &(m_aJobSkill);
7 {, j7 a7 p& }9 }( Z( B7 X if( lpSkill && lpSkill->dwSkill != NULL_ID )0 x% E' ~) H: U7 @) G+ c! J. e8 ~
{
" _3 `( g) L; T$ A: t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 ]: K( g6 e9 S
if( pSkillProp == NULL )
8 [/ I- E: u/ z. {! s continue;, A' _$ u4 S: H# q5 s) O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ I! B3 d, a' I5 \ continue;
, z* L7 w- h) U) k$ N lpSkill->dwLevel = 5;$ X5 Q) w8 G X0 L! D( J4 S
}. ~) h6 e9 v, h$ `
}
( e" B% y$ {! q3 X8 e0 c+ N }
/ M) O ?; w! G1 Z" d: S# p) H( f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* E4 i1 z0 {' x
if( bGamma )! ^# j7 a3 j4 z8 T7 U$ }/ W
{" K9 i7 G) S: P! v# R$ q
m_nExp1 = 0;
0 N- O; Z# y \ }
4 L7 e$ M" S2 ~4 A$ I1 ^9 V( x; ^! p5 t; ~ \$ D
( (CUser*)this )->AddSetChangeJob( nJob );0 k" m' R# g5 {5 e$ X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; i" M6 Y! c( Q( b3 J+ u- W0 ?, C/ u3 x$ o, Q
6 m# E3 ]7 G: w, f1 Y; O& c b
#if __VER >= 11 // __SYS_PLAYER_DATA. |" B+ S% P. p7 |' |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ f2 d7 R8 k, _# h7 I
#else // __SYS_PLAYER_DATA
: z! z7 k/ _, u5 h: I, o, k; q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 H% E" w b- ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 o5 n: p% N+ b) K if( m_idGuild != 0 )
9 J; h8 c, _ v/ A- o5 R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) l2 A% t* j4 F3 [* E& c#endif // __SYS_PLAYER_DATA' V$ W# Y3 `* z5 K& F" l
SetHitPoint( GetMaxHitPoint() );
( l9 W$ M& N5 D; v SetManaPoint( GetMaxManaPoint() );) X+ i: V! Q6 b3 P9 w
SetFatiguePoint( GetMaxFatiguePoint() );
V/ Q/ W; c. X4 D' H if( nJob >= 1 && nJob <= 4 )% d) {- O7 k+ G% z0 ^. r
{
! j0 i2 j. `, { \0 l# d m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 }% B% F% a0 l m_nRemainGP = 28;- e5 j- D; h) q' b
}, R* z; I/ j/ V0 k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 w; {$ f5 Z# @6 r" C* R% z3 X4 o {3 v4 M" o4 _2 k& J6 U
m_nRemainGP = 118;; L( H$ B1 G* k" r6 Y) ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- z* O- c5 X4 ?! K+ u; s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' P% M! C) v2 p3 [" y& L! K" @: r7 ` }$ {8 p7 d; G! D9 h4 v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
Z3 E7 k) @- Z2 R {1 p$ T4 j: J0 ~
CItemElem itemelem;2 }/ F% ^% }3 H' M/ e
itemelem.m_nItemNum = 1;+ n5 f3 N9 y8 ~- l
itemelem.m_bCharged = TRUE;
% p% C/ D, y* }6 m* \, y4 l BYTE nID;
# O, f( g: v& Q, X/ p @5 z2 b+ r1 e8 r9 D' x4 b4 U
if( nJob == JOB_MENTALIST_HERO )
8 o- g" j9 N( Q# Q* l; z- @ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. z/ R) b8 Y, v if( nJob == JOB_FORCEMASTER_HERO )- j6 s+ b# I8 v9 T' e6 f8 i1 Y# u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 ]6 K; T7 W8 `+ b
5 A0 A9 x8 R; Z, F% s. d: g' a ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* [- R. a: w+ U) V2 h }" L& X3 c& ?, `! }% O9 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 n/ M9 A$ ^: D8 D6 z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 `/ |2 _' \! A+ B+ Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, I) o6 h- p; C, N$ o1 i9 k /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! T% x) a7 f2 n
( (CUser*)this )->AddTaskBar();*/
! R9 \7 C1 x7 v4 O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ F! M" E7 q$ M! j6 y7 @; a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" J2 {* }. e& u ((CUser*)this)->CheckHonorStat();
- B: u1 X/ L- [8 o ((CUser*)this)->AddHonorListAck();, S- Y. y1 C, P8 {0 F0 \2 o& _$ J
g_UserMng.AddHonorTitleChange( this, m_nHonor);8 ]; p( Y5 j* t: Q" X8 n
#endif // __HONORABLE_TITLE // ′Tà?6 s5 t5 Z: `- b; H
}
5 m7 P; N& K* B4 Q! l#endif // __WORLDSERVER
# P( u5 `% g! y8 E3 h B}
; _5 W$ ~/ a0 Y( o+ h: d% F6 m. I+ q$ G+ S3 P+ ~% e0 C
然后你进入functextcmd.cpp并添加以下
+ Z1 ?. m9 Q9 N" T% ]4 x
' x4 Z& M- q7 Y6 X9 C/ `7 u: e代码:
/ L% J! s8 n* G7 ZON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& o+ P: g2 ?* a* l$ e
下面插入
, N5 J$ Z) M" h. }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 M7 y! k2 w& v. f
* J! }7 {0 ?* ?7 L, s# Y& \然后你去2 h9 x/ `( f/ |) N5 u
! l" h; g7 d) _% X2 ^* a代码:
: y4 K2 o+ l6 `; ^2 [* M% h1 o+ g代码2 b) g- h: t; H
BOOL TextCmd_ClearPropose( CScanner & s )
/ N: B0 `: h$ O' O2 u' I{# E+ r7 ^0 e7 \9 t7 }
#ifdef __WORLDSERVER
, Q! n7 @, B j' ? CUser* pUser = (CUser*)s.dwValue;
" P3 z# O4 D6 P4 `/ h% m7 B. h g_dpDBClient.SendClearPropose();! {8 l$ k5 F# @, H7 R6 \7 \
#endif // __WORLDSERVER
" g$ s# m B% M return TRUE;8 c: p$ N1 I9 z4 k
}1 p2 R8 V' s2 p* f" ~( @0 E
下面插入
0 Q, L0 w" `7 lBOOL TextCmd_rebirth( CScanner& scanner )1 F8 }$ X. p( D7 j
{
0 R& Z3 A0 Y/ b5 k& p5 v#ifdef __WORLDSERVER }$ J- b) C' v' y8 t* a" \
CUser *pUser;1 e( |. ?3 I/ ~0 a0 X
pUser = (CUser*)scanner.dwValue;
# ]) E8 i6 b1 K, ]+ L! c( |1 B$ xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' A" j) x9 X3 l$ b1 ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! {' C: f1 \/ Y6 Kelse: B. D; ^- {3 ^" I7 Y" b1 B/ w# p
pUser->AddText("你还未达到重生条件!");
$ F6 s, ^. g+ I; v#endif9 c: p6 x1 |, {- V" \- c J
return TRUE;! Z2 f8 Y) I7 n& A4 h2 D
}
- Y1 K' q3 ~9 u+ c+ [: F
9 Q7 L6 j) H* _/ \% \" D2 P
- ^" d/ I8 v1 \% r9 s' T
6 r7 {# ]1 \$ n6 J1 u
' y W v' B2 g; I ?5 ^ |
|