|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# g0 X% W. u, p8 r
- ~7 @3 L# N% t
Mover.h2 \) G3 j8 ?: ]) G* V! @ B. A: w3 J
代码:+ J3 ~7 O! ?# I* X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 K! Y" e9 [# o) g, r, R
+ g% g/ ]8 o( Q" I下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, {" v; X5 l4 _# q5 v7 C9 J8 [8 T$ A6 v% s. O5 t. r6 q
然后你去mover.cpp添加( L- \1 q, g% t+ Q4 c: A3 B; @+ y% f
! F: ]% R5 V' v' j! v代码:
4 w- |) Y& _! M! b0 k- `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 h2 C; }/ n% O' s% J{+ g3 X6 I! f( z! ]' k
#ifdef __WORLDSERVER; k! F1 J ~: Y; R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 z% p$ @0 G& Q. X% Y9 ? MoverProp* pProp = GetProp();
/ R0 T) ^) @; Y- K: F) h6 B if( pProp )
$ x1 a6 `1 G( K. m: w( Z. h0 z {1 B0 c% F4 c4 s7 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- I: c Y4 m- \# }1 l! G {# s* G4 w3 a2 |9 `' d
AddChangeJob( nJob );: ^% b, D+ t1 A5 ^, K, A5 o9 z, G
}else{
: h8 [. w" t+ b) q% y) f9 ~ return;+ J+ Y' ~% i7 ~9 C* b% T- f
}
- d, |" O- @/ x6 E* J6 e! F( \ int nPoint = 0;
, ?3 Z7 b b) U( J- Y E$ j% L if( m_nJob == JOB_MERCENARY )
8 T& g& \$ K& T: @ nPoint += 40;0 E: E% {5 t, [9 s
else if( m_nJob == JOB_ACROBAT )1 ^# x E* _/ C! m9 U0 p+ H8 y" d
nPoint += 50;; j, P4 P# i8 h7 S, ^6 e7 ^, M
else if( m_nJob == JOB_ASSIST )$ X7 H7 `8 j% s, S& ~5 C6 B
nPoint += 60;* }! N& w1 c6 C$ _5 \8 `7 N; k
else if( m_nJob == JOB_MAGICIAN )& I5 y* C1 u3 W% L7 h2 l! V1 Q
nPoint += 90;
3 V# c( R ]3 l' v2 h6 z% I+ l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 q' M, z5 I$ W
nPoint += 120;
' Y) D/ `, p" R3 F9 n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, c% p, n6 [6 s; ~4 G: x: L nPoint += 150;& ?& H) W7 G t; i& U! A7 H- A
else if( m_nJob == JOB_RINGMASTER )& x [* O$ v$ t8 d/ p. J* T# F# a
nPoint += 160;1 U$ R% t& f r6 a- U6 f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ T! J$ z: D' @4 b. e% W
nPoint += 180;
$ v" d! n; B8 G$ p$ H) ~ else if( m_nJob == JOB_ELEMENTOR )
8 k f3 K3 m$ | nPoint += 390;$ y/ o' `: j) e3 P' O9 d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 r; {! e9 N- g. q% q nPoint += 120;! B+ Y+ d: G' O& U, X M$ w6 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% ~0 v6 p. i3 X: A' i% k nPoint += 150;
) d1 N, m9 n: l else if( nJob == JOB_FLORIST_HERO )! s9 |) ^7 h$ ~' _
nPoint += 160;% |- h+ O4 b" d& K2 o
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, Z3 T: ~* L) \1 e* S nPoint += 180;5 \3 j3 L! K R5 {
else if( nJob == JOB_ELEMENTORLORD_HERO )
- @4 `& p# d! i$ r nPoint += 390;
L. r+ g! e3 N$ B1 W
6 X! e9 l7 Q( I3 J. r h1 H% v/ S AddSkillPoint( nPoint );
# X" ~1 e8 Q7 X8 L3 h. s m_nLevel = nLevel;
/ ~9 v5 k" o# R; L. Y5 S
5 R, z% P1 N8 @+ u& o5 ~& L SetJobLevel( nLevel, nJob );# n# y, o* x2 R* D! N& n
m_nDeathLevel = nLevel;2 U) O$ @7 c- V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- Q! R7 ?) R! K# a, p if(IsMaster())
* m8 ]/ b& ]( ? p& w$ x6 c/ s {# Z$ g- h9 z3 @) u* s: J% |. H8 ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; c6 X8 d5 w6 @) ^2 w* k
if( nLevel > 59 && nLevel < 72 )
, v: j" `/ L* ?" g+ B dwTmpSkLevel = 1;
+ f1 g- M5 L6 F6 C/ G else if( nLevel > 71 && nLevel < 84 )
/ E6 I" E1 j8 b& D' x dwTmpSkLevel = 2;
" R* }, i6 H+ v else if( nLevel > 83 && nLevel < 96 )
9 Z+ L) K% B; V+ R dwTmpSkLevel = 3;$ W. E, r- E2 v& C- Z* g& T9 Y0 G
else if( nLevel > 95 && nLevel < 108 )
0 Q( b$ O, `% @' |4 H dwTmpSkLevel = 4;% [, z7 g2 Q7 a& \
else if( nLevel > 107 && nLevel < 120 )6 e. v1 E3 z. V$ B( {( k# v4 w
dwTmpSkLevel = 5;. B; ^. l" `- Y; t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ K2 C- D* d$ V- `& U, g6 M: Y
{ $ H& d; O$ [4 W' d$ E4 |$ T
LPSKILL lpSkill = &(m_aJobSkill);
. ^7 S2 l) i$ O9 s% v8 q if( lpSkill && lpSkill->dwSkill != NULL_ID )% R- a0 O% m: z1 Y
{4 d3 I) [: y6 E% }- H) o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ G0 b, A! W( X2 M7 ?" k) l if( pSkillProp == NULL )
c+ d$ ?4 ^% ]+ w5 N! P2 p continue;6 i6 [0 B: E7 B7 Q" W- M7 x+ b, g* v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" D$ _# ?/ r! x/ v6 t3 i4 k continue;
* t f7 w9 X* y3 I lpSkill->dwLevel = dwTmpSkLevel;
3 Y; t# m2 _/ p& r1 Q5 @/ f }# G2 d j/ j- k0 ], ~- Y
}, r! i' t: H% E" t. M
}- r# u, t0 ]$ l* {$ Q) }5 P' w
else if(IsHero())
2 J% Y: e# P. t' D {& y+ y; y6 B0 u7 z* y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) D/ B1 n; o- ]5 p9 q { 5 S7 q4 O X+ ?. P9 [; v2 |. u4 W5 a
LPSKILL lpSkill = &(m_aJobSkill);2 ]3 Q* u8 T3 M
if( lpSkill && lpSkill->dwSkill != NULL_ID ) t" `( m3 P2 B' R6 \0 `& E9 B
{# C2 z- q; r) @- v4 H. P$ l( n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 ]! Y% X5 v3 E+ i6 w- L3 q if( pSkillProp == NULL )
# k9 T, `9 h7 K7 \" z' \% T& o2 ~( @ continue;9 c9 r t: G* a6 K9 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, G. X: o5 q ]1 l h continue;& t2 d1 J/ b) D4 ?( w
lpSkill->dwLevel = 5;
0 }) O+ o" w! m1 i }
+ ~( y+ Z4 h8 c7 B+ ]( a+ l }
& Z' |/ H) y- @, ~6 n" P9 T; Q' ] }/ C0 p/ o: R8 [2 P" P
else if(IsLegendHero())7 M0 k, a# H( V5 H2 T! \0 q
{4 p& { b0 n4 C/ S6 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ~9 X/ ?1 d$ V! r- C
{ % {# I1 w! z, W4 ]# n: _1 S
LPSKILL lpSkill = &(m_aJobSkill);, _1 q" z! S3 r. a( ]0 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
C' z+ {2 B3 I1 v9 S {
0 d8 T( O0 r6 R- U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" ^2 M' u2 y" X if( pSkillProp == NULL )
1 ]7 u$ N. }1 V8 G: \ continue;6 r; d, g6 M0 V( i" J: W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" V+ @# \/ I3 b$ B$ P0 v9 D& T continue;( L) p4 n% J5 X4 J- Z
lpSkill->dwLevel = 5;
+ N2 m: p9 i6 G0 C }6 Z% V4 z& T) m9 C
}
C: F! z! I7 d' s4 }7 B* Y2 H6 B }+ _5 p& V$ z, }+ }8 n& p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% Y J3 b; j0 v! E% j if( bGamma )5 D: E6 X0 Y) j2 U/ ?( E
{
; M4 K, z5 M9 }2 L% n2 v( u7 b/ C m_nExp1 = 0;; _! ?: g7 H/ b1 Y1 _/ ?4 G c! _
}
{- }9 T5 y7 D P5 m: A; ?$ E7 S: |+ v- b: R1 v; ?
( (CUser*)this )->AddSetChangeJob( nJob );
4 i A5 O) V' b% l, S1 c9 o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; V1 k0 d+ k( D# u' g
. n* m* x, g% H g
& C: ?7 t0 \9 ], Q( e5 j#if __VER >= 11 // __SYS_PLAYER_DATA
& `" T8 l- w4 G" x2 R8 S; u; r g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); R) T2 w8 r% L8 f0 `3 N
#else // __SYS_PLAYER_DATA! G9 q" Z' u" S9 p8 O; r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# M3 |9 J: m$ j! k/ {2 A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 n" N( m. ]3 O2 O
if( m_idGuild != 0 )
) _, C- C; i B1 r: y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& D" }( U t0 F# b, U) Y#endif // __SYS_PLAYER_DATA$ C E- T) y2 _/ Z8 h
SetHitPoint( GetMaxHitPoint() );3 O2 [/ n' Z0 D7 }, Q3 U
SetManaPoint( GetMaxManaPoint() );" A0 l1 J e3 k8 c$ e: t3 G
SetFatiguePoint( GetMaxFatiguePoint() );
1 \7 o$ Z4 @" E( f' e+ J: u" C if( nJob >= 1 && nJob <= 4 )
* _# G5 I% P5 s/ q$ ~ {0 R; \. a' a/ ]6 v% R, _, x( i7 P# u* f
m_nStr = m_nSta = m_nDex = m_nInt = 15;. H; e9 w, G @2 j9 G. p
m_nRemainGP = 28;. u/ ^4 c2 g: c- t$ R, V, w; e
}
/ d, H( b$ ~9 N if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" B) a' {$ T/ ^/ F+ Y+ z
{
6 {0 ~7 B, I5 N/ a1 P/ ? m_nRemainGP = 118;6 t1 W5 {) R. t( m& p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 i5 g6 v6 R3 x* x. H0 n8 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
g0 z6 p' s5 s3 T$ I, B }3 |* Y0 x& K8 l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 @1 p! ^0 c8 U* I2 @
{1 B( C- Z1 O! {
CItemElem itemelem;
, Y+ H- i" Q4 o% i5 i itemelem.m_nItemNum = 1;
b9 R+ o0 ~2 ?0 [$ b itemelem.m_bCharged = TRUE;* Z% i2 }1 J8 N7 a
BYTE nID;
# Y( d. M0 i% w, R8 |8 E p1 [% |! ]: B8 ? ~0 A8 |
if( nJob == JOB_MENTALIST_HERO )
: P3 U5 P/ p7 p/ U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! i8 V9 ~2 m5 }3 n; U if( nJob == JOB_FORCEMASTER_HERO )6 Q. ~0 s: z8 ~. F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 m) K; l4 S8 X* h( I8 H K- J
% q# F2 m( o) }+ H O* ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" @( `8 c$ o) g, i( T' ]$ ~9 W }
/ p& W, ^$ L) h g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' n. G0 r+ ^) u N3 [% J' }) V4 j- A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* v2 v) z1 R. k ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# W# z! i* X& h' m! r" g( y+ O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! w7 k4 d c; ~, m, @2 o6 [' { ( (CUser*)this )->AddTaskBar();*/
+ }& a1 _( z6 _, n# u8 T! n ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, p- W( A8 V9 c# w( c#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 r( B$ Z; W! ? A& R/ h0 V6 q6 t+ f
((CUser*)this)->CheckHonorStat();) H8 r( M" I, G, F) b7 o: Z- _- a
((CUser*)this)->AddHonorListAck();1 Y/ I0 y+ Z# u. |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 a, I3 @. Y; d( I5 _ |# q# z#endif // __HONORABLE_TITLE // ′Tà?3 X8 Q" ~5 w- C) i: s% N E1 v
}
1 W5 G, {& U1 ^# C#endif // __WORLDSERVER5 @' v" M) Y& |1 M9 p) G5 n0 B
} % v8 w/ w2 z1 {# D5 F
* E) b$ j) U6 h* w6 s然后你进入functextcmd.cpp并添加以下" E- Y: ?$ ~ o8 _2 h6 d8 Y
j: _# |3 p3 r3 d代码:# k% h9 E0 ^& Z7 h' c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 s' }4 c9 u$ L$ B7 j$ I( s
下面插入
: ~- I2 m% T, Z. ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 d% ~7 r$ |6 I1 f
- p0 v6 w9 x* e+ D然后你去( j2 `# u3 k8 J( f Z7 k% d+ m3 {( C
8 [* p3 E5 c( c4 V4 m1 n8 X" H代码:
6 K9 ~3 `7 f$ I代码+ i1 l+ p9 J8 v8 S6 K
BOOL TextCmd_ClearPropose( CScanner & s )
# j0 n9 x i6 U. \ d O{
5 i' Z+ b: v5 g5 c0 J#ifdef __WORLDSERVER" p: S! _# |: h+ I, t8 {
CUser* pUser = (CUser*)s.dwValue;, j. r4 _$ Y- X# n" q% g
g_dpDBClient.SendClearPropose();
# V* F9 ~# L# r9 e8 f8 j#endif // __WORLDSERVER7 L/ b+ l$ H8 h% V+ T& m
return TRUE;6 z6 ?4 ]! R0 c! |) ~! r! a D: d
}
0 z" T \ a9 w下面插入
3 {* ^! @, P4 g1 ~. |BOOL TextCmd_rebirth( CScanner& scanner )
* l5 H% r) Q1 ]( N; h) `{
; ]2 ?) _1 ?) E0 }2 V#ifdef __WORLDSERVER8 S+ m6 F$ p3 L5 I" ?9 @9 M
CUser *pUser;9 }8 e' }$ B: v" x' c' {: { f9 K
pUser = (CUser*)scanner.dwValue;0 v# C2 a, U/ X* G/ e; A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) e# g; T9 ?" [- {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% G7 R y1 z+ T6 R+ jelse
& R$ T4 L$ C7 p8 H* y7 J/ upUser->AddText("你还未达到重生条件!");
, j# {2 s; I8 _0 r/ S: u#endif1 w! G3 G/ Y% f; t5 b& W! H
return TRUE;* w$ y$ ]) S0 E
} & u$ v# [& L# y; P3 ?! m
4 O! B% |& M/ _
. x* K H. d) M |/ k; T" Y
! f2 m' f5 n9 l" }
; d9 Z4 D! S* G I; Q b) r |
|