|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) ~: d% ?4 p$ m, z+ T2 f2 `! x2 w
( d" k {1 R# N3 b+ Z+ y0 J% v" D0 Y8 `
Mover.h9 `) B2 Y. L F1 ^' J
代码:( y; s4 v: d8 t0 r/ V1 c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! D' s/ y- u+ b! a6 S4 ?
, x" Y+ w# i: ~3 S# Y# Z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' r5 X" x3 X; E2 `1 L% ~( \
' E; k/ v" h8 f! {然后你去mover.cpp添加& C/ l8 P) ]- B, l6 n
4 W. `. F0 x( ?- o* }3 o
代码:' d# B( B1 Y& x
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 k& G, n. S9 p) H$ p8 T+ {{% }2 q* K4 A A
#ifdef __WORLDSERVER3 x1 n/ C$ Y$ x: H) I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ X* i& t9 | N3 z9 z' T MoverProp* pProp = GetProp();
# P7 W/ ]( ] b, h* n if( pProp )
+ b/ _! m: b5 N; j$ r( j {
% R3 v2 Q! F/ Q. @* W! t: g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 G" `% @' q- x+ @ {
( k0 M2 L9 y. p4 F3 I3 s AddChangeJob( nJob );
2 P. a3 L$ x( \( o }else{
6 ~. @2 I- o& Q+ {6 H; L3 t return;2 O8 z* M, w( G e2 b
}
U8 z9 R+ S0 o* F+ Z9 l int nPoint = 0;3 z- k" ^8 C0 i: c" w
if( m_nJob == JOB_MERCENARY )3 r: `0 O; o: i$ c3 i: U- S8 ~1 D. O* b
nPoint += 40;
0 n+ O. P3 \+ |2 e C3 g9 k else if( m_nJob == JOB_ACROBAT )
4 E' f! z+ \- | N nPoint += 50;6 U) N. d" ^* U) s6 t
else if( m_nJob == JOB_ASSIST )
( Q/ k% E2 b u# k) ]+ o0 r nPoint += 60;, o" Q6 W, U5 V6 x' g( u& V$ X1 K0 t
else if( m_nJob == JOB_MAGICIAN )( P* G8 [; k& b1 n
nPoint += 90;
, W$ b/ y5 U& N3 q& x& j else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ o* n. K! Q& s6 T" q& j! Q" w
nPoint += 120;
" X, I1 x& L! {: { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 s t h5 a" l" h0 ^: G! o- u
nPoint += 150; _. E# P& P6 v
else if( m_nJob == JOB_RINGMASTER )
( I& q6 r7 }* B a2 j: z nPoint += 160;) v* \ W$ S# v- s% E* o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! G/ Y) i T3 ^; A nPoint += 180;
& X7 W- W& A7 ~1 z- s else if( m_nJob == JOB_ELEMENTOR )8 k' m( r; ~- G. m
nPoint += 390;$ F6 y& M6 g) f% j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 U* z2 \: Z/ J& m
nPoint += 120;( ^2 d' ~* R* |" O5 {2 ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! {- ]$ Z5 S) i, D; v8 U# H4 ? nPoint += 150;
6 u, ~0 x3 N) U else if( nJob == JOB_FLORIST_HERO )
, G5 }5 R: p, [3 ^: J* z) {4 G E$ K nPoint += 160;4 v! o$ D" X' c1 [2 U' g2 y; L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. g6 w7 {, }! n( Z+ @" c, E nPoint += 180;& K: [" b# c3 Z3 D1 f1 V+ W
else if( nJob == JOB_ELEMENTORLORD_HERO )9 Z6 H& A4 J# k$ {% G- D
nPoint += 390;) Q' f% A( O$ |3 @* F: d8 |3 y
& A! F( K3 K) S8 }2 b" j- n
AddSkillPoint( nPoint );3 v' t. f: P$ H1 X/ g+ ^; y
m_nLevel = nLevel;4 b) d J& _( U' j5 q2 o" c7 [
5 d$ N5 ~/ F ^8 H7 P* j; `
SetJobLevel( nLevel, nJob );5 V1 U% r- c+ H1 y9 d
m_nDeathLevel = nLevel;
( d+ Z# f6 u* W, E; n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ `/ P7 c( K- l! l; F4 b- D if(IsMaster())7 W3 G+ v+ [+ Q! C/ {. q
{
7 S) v/ K$ k9 n4 r int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 J1 G# R$ C [& N
if( nLevel > 59 && nLevel < 72 )& ^6 H% E9 b2 b$ y
dwTmpSkLevel = 1;
+ p; F/ r' \' I5 o else if( nLevel > 71 && nLevel < 84 )
% H$ v. Y' W0 R: Z5 b! P% s( y dwTmpSkLevel = 2;2 m, k7 s w* u, v: i" j; h
else if( nLevel > 83 && nLevel < 96 ) A+ \$ j" i6 D; C3 b
dwTmpSkLevel = 3;
. @( e) V9 H% p6 C else if( nLevel > 95 && nLevel < 108 ), X7 x( D4 J- g, I% r
dwTmpSkLevel = 4;4 i! J; {* ?6 i3 s
else if( nLevel > 107 && nLevel < 120 )
/ u. M) o2 o ~/ c dwTmpSkLevel = 5;0 s! x9 a7 W Q; H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 v1 A, @% B! i; k9 v) m2 N { 0 l4 H# U# N( V# o! i5 |
LPSKILL lpSkill = &(m_aJobSkill);
4 n% p- y x, ?2 H) \/ R if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 A" r. O5 t$ P8 C( t {
E6 X) d3 X5 F7 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ^& T* |$ l0 `7 V9 E if( pSkillProp == NULL )7 f5 C, |5 k& G( [! |
continue;+ q W ]' W0 i5 W% a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 L+ c s3 D4 f: g continue;
8 I& q6 ^+ |# K lpSkill->dwLevel = dwTmpSkLevel;1 f+ q5 m1 D, J1 [- d' \8 h
}
5 E- I* V5 g/ ^1 \0 J2 _& f& m }- G8 J- q2 D" L
}
# y# q2 j3 J: C4 L6 a1 A else if(IsHero())) {% H `! A) t3 V, Y7 ?$ V3 }" C
{% j- E0 _+ G5 q. u8 W+ T7 R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , ]* }: O; w) ^% c6 c( G9 _7 h
{ ) u; S4 b( i* U/ J
LPSKILL lpSkill = &(m_aJobSkill);
. y6 \+ V* m1 L1 f' D7 b if( lpSkill && lpSkill->dwSkill != NULL_ID )
' N% X3 g, a: `4 h, Z# r e; f* F {) X$ z0 R- z5 K' m8 {$ t; r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' z9 x2 G4 a( h, o* C if( pSkillProp == NULL )
6 I- C7 b* z+ Z2 { continue;. x9 D, T& Q' P K$ L% S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 R9 f1 S: W( A1 x( f5 t1 Y4 E
continue;0 i, K" M9 }5 t8 D2 }2 j" E( m
lpSkill->dwLevel = 5;
" P/ r! T x( P$ b }% Y+ Z+ U6 N( Q* W' R
}7 T9 F* h! @5 s3 b3 s/ p3 q
}
( @ `9 l: Y1 y; V else if(IsLegendHero()): [7 s, ?/ Q: r# w4 q6 K
{ k7 c2 f: J% E$ @) G% b- S/ u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! z0 k7 a+ X, p! {! u
{
# q/ e7 j; }0 T) J6 `+ S0 G LPSKILL lpSkill = &(m_aJobSkill);
P ]' V; ]; z7 L; S if( lpSkill && lpSkill->dwSkill != NULL_ID )0 T% Z j; q- `9 Q2 u- h
{$ j6 j! s' i1 U5 r( W* s$ O$ E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 m3 [( X6 x a2 |
if( pSkillProp == NULL )( `2 d6 S8 d& p4 _3 _
continue;
, e- @8 `+ u0 W# p H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' |# m7 X+ ?" C7 I, b continue;8 L1 ^, W; ]5 S' f3 D. J2 H
lpSkill->dwLevel = 5;+ g2 w2 g; o6 L1 o8 [* O _5 }
}8 p, n! T5 u8 R4 Q. U; W9 {. M
}
# O4 ^& x8 R' ?0 V! S$ y) K# W8 f }
, l" a6 L6 ]* z' _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( t6 J8 I+ W* S2 v. k
if( bGamma )0 M$ H) r$ Y% I; t- o& _
{/ s: ?! `$ E: Z) U
m_nExp1 = 0;
" A' l0 e; V8 c; x" d8 N* l/ t }1 j( {( A1 J5 `* `
& F# ^" b& M' C; j9 q( p
( (CUser*)this )->AddSetChangeJob( nJob );' y2 F2 S8 ]/ e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& {9 U& |; Z4 f0 j
" r7 _, t. [6 ~- d9 ^+ k
6 \7 d0 ?1 O" V#if __VER >= 11 // __SYS_PLAYER_DATA
D" n2 L2 I w/ x' Z) z" r9 h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% j& M2 N, k% d \; `
#else // __SYS_PLAYER_DATA
8 C8 R$ I1 L; j; |' G$ u5 b g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 |: v! Y# O. T g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 S2 A7 p/ w- L6 K( ?. ^ if( m_idGuild != 0 )
* h9 ?7 K4 F8 b g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); ~4 P+ g2 ?. D" y- K
#endif // __SYS_PLAYER_DATA; Y/ g8 u. E( R( {& n7 X; n
SetHitPoint( GetMaxHitPoint() ); W( _, h1 i+ n% D$ T Z
SetManaPoint( GetMaxManaPoint() );1 g5 ^7 z& C7 q
SetFatiguePoint( GetMaxFatiguePoint() );( T1 ^2 I4 _: e# m$ O4 q
if( nJob >= 1 && nJob <= 4 )% `' r4 y2 L6 s0 g
{8 S- }0 Z% J- {# M; c. c! j$ V ~, x
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 M/ U U9 [: Y
m_nRemainGP = 28;7 A! O7 Z% N! }
}# Z; B. \. u& K$ x4 _8 C& t' W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); _, A5 H. j. P7 \9 X1 Q4 d
{" \& T% ^; c$ V2 P) \
m_nRemainGP = 118;+ R& I \7 s" `; `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- S$ z2 }7 z! M$ q3 y; s/ {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) t5 q" [5 Z) R: _) U3 r }( ?: O1 Y7 \7 e; g2 |; H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! v& D5 _/ \" H7 A9 T* E5 s* e {
- r7 _6 c+ S4 J9 x# V0 G CItemElem itemelem;* _) n2 Y9 ~! x' p8 S# R8 o: S
itemelem.m_nItemNum = 1;
$ x9 F: d6 x8 i5 y k- f) }2 o. [! G itemelem.m_bCharged = TRUE;5 }! C! Y. a/ A, T4 K, C# c9 ]1 e
BYTE nID;
+ s9 h' i; W# Y; f6 c6 P
& N6 f- J# e# i- _; j# H) F% |$ z+ _* e if( nJob == JOB_MENTALIST_HERO )8 W/ c3 A! M& O9 e Q& w& u4 f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 O' o3 ~" _: V, g
if( nJob == JOB_FORCEMASTER_HERO )2 K0 T1 L# H. T% m" ?7 d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; x' E4 [$ w2 Q2 ~! d8 m- a9 b2 s; o6 Y4 H) L Q/ H) z, a9 |
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 C/ e" o9 t3 C$ \: P0 Z/ ?7 h3 b
}6 A; g% ]- i7 {3 W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, k/ W$ d: l# e3 j1 _ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! |; l2 Q1 N& ?4 W6 S7 I0 Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: M, G( K& I9 T, G. A5 _4 x /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
H4 c5 [$ X2 e ( (CUser*)this )->AddTaskBar();*// D7 ]. k/ l8 W% n8 D6 h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 o! T1 l; I" U( |; c7 t/ m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. c. Y, g9 f3 y$ B% z
((CUser*)this)->CheckHonorStat();+ p4 J4 [1 p) X1 W) l+ H
((CUser*)this)->AddHonorListAck();/ A1 c( |/ T1 p& A3 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ c- `, [% B& O* _ g
#endif // __HONORABLE_TITLE // ′Tà?# |0 S( m; p) T, h8 N* S! d7 V* d( j
}
% L# R: q) Q, o" ^#endif // __WORLDSERVER
- e& `0 A b, y8 L0 `}
+ W/ y. o/ s0 Y" x* p* d+ [, q, O1 B3 v; F* ~- h# u
然后你进入functextcmd.cpp并添加以下3 s& i" D0 a5 h" r4 m( b
' I5 Q; y+ Q. N, V0 J, N
代码:
# T! w4 {8 H1 `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" Q5 [( x: E# U2 F! b J0 e! k
下面插入
" o% f3 I" @: N8 d2 sON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * p5 R$ V g" i* T
1 h4 J6 e) b/ Z7 t! j然后你去1 T' Z5 p) F- O9 ~
! c1 d5 n- X" R+ ?8 x1 B8 i代码:! j4 T1 `' F0 [' f `8 W
代码
! {5 v' X$ e9 W. u: ~ C1 kBOOL TextCmd_ClearPropose( CScanner & s )
" M; W r; G1 u8 D{8 Z+ O0 M P8 Y, m
#ifdef __WORLDSERVER
( g* G: U! Y3 _7 Z1 U# _- O/ A' g CUser* pUser = (CUser*)s.dwValue;
( _) F6 v# S# t) E3 ^+ ] g_dpDBClient.SendClearPropose();
$ E1 P2 v: [$ i1 r& Y* R, f#endif // __WORLDSERVER
% ^ y# v/ Z. M& {" i6 N- C) \ return TRUE;
2 X% y6 l* D) c5 Z* A: h}9 W7 k4 D3 m; }9 U9 w
下面插入
* G3 }& L; j. k( i. U8 DBOOL TextCmd_rebirth( CScanner& scanner )
D& s. \/ H) y8 k+ A: _" b{
& d' M# T4 s4 K3 `$ E% T#ifdef __WORLDSERVER2 u' ~3 B+ }: V( m
CUser *pUser;
9 v% D& @. Y0 tpUser = (CUser*)scanner.dwValue;
- X" j" f% u- W Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 ?1 D! A# H( S0 O" n: K4 z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 y+ p0 M+ F- jelse
h# y0 C/ y- c4 fpUser->AddText("你还未达到重生条件!");* ^' n2 m* t: W0 A/ \6 j
#endif6 A q) V6 r3 F8 s% d
return TRUE;
" W3 @ h2 S, \ K2 Y# n5 E, N( F}
( t, ]0 W, P- C* f/ `
- O! u5 D% Q( b$ e' W. T* L4 W& Z* a5 @
& _8 q- L* M6 {1 z. L/ a. N: I; B- X4 f6 n/ b. }6 x% E
|
|