|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( l; r a7 ~* f- x; a _
7 t& [1 A. q; K' x! `" P- h; I# P3 ^Mover.h; C% l5 Y& v% C$ Z3 \9 Y
代码:
7 B6 X# z8 m, N: U$ H找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 E) D- X* D! U, S; B0 ?8 b' x+ s5 e! h/ T4 E% E# u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 d+ a. s5 {% S9 a; V
; \; f0 i' x! Z& Y然后你去mover.cpp添加+ x \' {% s( l. _$ z w
1 `) V2 { A0 ~/ ]5 n代码:
/ F" R, k7 \) ^, cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) j$ l: _; T; ^( A$ C{3 p! j7 ~( L/ B% @# \) g" p9 w
#ifdef __WORLDSERVER
, k% |2 m6 m/ K ?" I // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó s! [$ _% ?3 w3 F2 t9 I
MoverProp* pProp = GetProp();
1 k- P( h/ f- H5 ~' a if( pProp )
* _, Z5 b( D$ ~6 g, z {
+ f* a- u: n8 g; o; b if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 W5 p9 A9 v; ^4 f( q: v3 _$ k# x, L
{# H/ e/ G. l9 b3 L7 Y; U6 f
AddChangeJob( nJob );
) P+ ^ t) l/ w# _/ \' \ }else{( G9 N2 B+ ]! K# L; Z# Q# x) T2 P
return;9 V$ {+ ?9 z- @
}
3 N7 M; D9 V l7 F" o int nPoint = 0;
4 w; A) Y& \: ^1 |3 w if( m_nJob == JOB_MERCENARY )
2 b& k/ [/ C$ `% b0 T nPoint += 40;6 m4 a& l0 N# j, N
else if( m_nJob == JOB_ACROBAT )
2 f4 L7 ?+ f a4 j$ b; M+ `2 e nPoint += 50;! \& Z2 w7 I) S8 i8 y* f, T z
else if( m_nJob == JOB_ASSIST )
, B3 Y# P. \9 P Z: W" W, K nPoint += 60;
. G0 F2 J$ v, W# v/ x! D" H% G else if( m_nJob == JOB_MAGICIAN )9 d1 B1 Z: w, w+ \6 m% o
nPoint += 90;
5 K( ?: M5 N1 h3 Y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 N, |) W* [+ @* w, _ nPoint += 120;, K3 w/ p% v/ a8 R' \+ C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) w7 c: Z6 t2 j2 o, d2 l) i+ ?2 v
nPoint += 150;
" o. U8 }1 r+ R9 [ else if( m_nJob == JOB_RINGMASTER )
9 E" `- p+ [. N. V1 Y j1 Q) M nPoint += 160;- p# p& Z, A5 L7 h& i
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )2 P. ~3 d+ n j; z7 g/ g
nPoint += 180;; j; n4 O1 H* Q p
else if( m_nJob == JOB_ELEMENTOR )/ u9 }$ `+ r0 A$ X8 K, f
nPoint += 390;
( D. |( W( |8 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 `) r8 x+ L2 D% Q; ~( Y
nPoint += 120;
- i- d; Y4 \9 @ ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 [2 k+ c+ W3 t nPoint += 150;6 b! Q$ [9 ^* x) t
else if( nJob == JOB_FLORIST_HERO )
9 j5 j0 m5 N3 o- e7 _/ W- n1 M nPoint += 160;
& c5 Y, O- T( E, U' S+ y+ G else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 Q& F# g+ g6 c$ j
nPoint += 180;" O0 T1 E" x# U3 [7 i! }& S7 P2 E
else if( nJob == JOB_ELEMENTORLORD_HERO )
# b& a. C; C, ? nPoint += 390;
' H$ }* E9 |9 J' w- o3 `' Z! c% l) s
AddSkillPoint( nPoint );
! @ x* a1 ^9 R5 T$ Z7 p m_nLevel = nLevel;
% S6 }0 D) C5 |, ], ?& n- ^* u8 i* ?* ^; {/ t# ?* p1 {
SetJobLevel( nLevel, nJob );& G( Q9 `4 T6 \9 \& M
m_nDeathLevel = nLevel;( C4 M/ F1 j( r+ \" m1 L; m% X/ n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, G4 S" K# ~) q, {9 N6 _6 |
if(IsMaster())- y% O$ i, F, o: x+ |% B, H
{
; `* Z. s7 Q% F+ u8 y. `- n) i% V! ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 ^2 H& C1 M5 t+ p( U if( nLevel > 59 && nLevel < 72 )
# ^5 f# `) A0 d' r7 Y/ w( v: J dwTmpSkLevel = 1;
. _8 h" Y* p \* } else if( nLevel > 71 && nLevel < 84 ): @5 a* v' k6 u& H* F- X, B0 ^
dwTmpSkLevel = 2;
. N k$ a( A* |: l6 w; N else if( nLevel > 83 && nLevel < 96 )8 f2 f" p' s E* ?; K# m
dwTmpSkLevel = 3;' u4 v0 d' q% s, e0 y
else if( nLevel > 95 && nLevel < 108 )
1 |/ {+ R2 ]& m' m2 S dwTmpSkLevel = 4;
6 V; j: s' X% L- p: n else if( nLevel > 107 && nLevel < 120 ); K8 b8 b' t: _# t c! S$ T: v3 k
dwTmpSkLevel = 5;. i6 S& Y P# \: n2 S8 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 a: F9 F5 k) ^ { # w# e# f0 D% `/ k
LPSKILL lpSkill = &(m_aJobSkill);6 z' _* Z& \+ T0 M, ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 {+ F! f) }' B3 m
{/ a% `9 E# D0 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + V) N D8 `. Z* e
if( pSkillProp == NULL )/ ]6 _# v+ g+ I2 F8 h1 M
continue;" m7 O7 K( |0 d: M: ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ ^" k+ d* p) |0 M continue;8 }$ h5 h' l5 z( w, i- v0 _
lpSkill->dwLevel = dwTmpSkLevel;
' ?. {/ d, C2 D7 h h! I# e }
4 V5 ]2 W) r l+ J }9 X8 Z# R' h: H' ?8 Q) G3 _" Q
}
$ K) a% l( ~- w$ e2 j3 f/ A* Y else if(IsHero())
. I. n) v( ^0 w6 |8 i {
* T! R, ]4 `6 C; ?4 f9 t1 _4 _# K for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 L7 k* P7 r" s- T+ P, R
{ 0 b; K s8 Y3 @! X& N
LPSKILL lpSkill = &(m_aJobSkill);& {: m0 t; k# s/ u, E
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 j+ Y- V- ^# c/ q* G
{9 t2 h. ]9 [# H$ o4 o+ Y+ B2 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 h# t% E# `3 [: U' z
if( pSkillProp == NULL )
& G% Y( M3 H! S4 N) g6 F continue;% H5 G6 p7 l0 j `' x9 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 n S. v7 f1 w* ~, Z) r
continue;
$ l8 Q. F, h; O! g3 B lpSkill->dwLevel = 5;; E: V0 q' o8 V5 ?
}
3 Z; S, p" _. m } q& ^; G! C9 [' Q( S0 c
}, `4 n9 \ P3 K- |% X
else if(IsLegendHero())& i% k4 j, t+ k6 Q$ U# L" c
{0 O3 A2 g0 I; \7 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, f$ M1 g& c' h1 H) x! E {
) G8 A8 [% O+ R" E LPSKILL lpSkill = &(m_aJobSkill);. T- S" z. W8 Q$ w+ e$ C+ J2 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )* `/ j# \: x" c: ?3 U1 u3 |! `
{
7 T* C6 Z( z* W3 {$ \+ P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; M. s; J& z' f1 E if( pSkillProp == NULL )$ Z. x9 Y1 k" `) _% N) S
continue;0 t- Z; C# Y8 g4 }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- Y1 @) r/ M: W4 p1 k' C
continue;
- r8 X8 ]. ]5 t8 ^$ W! I( j lpSkill->dwLevel = 5;
0 N8 i1 U8 d' x& N5 B4 e. i; D }( F+ N0 [ x# }1 Q! S) A2 t
}: d/ k1 W% y% L0 c3 a6 u
}
7 J. }! |& ]" N5 L#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; G- _8 l, o! h8 \' e& s4 K if( bGamma )2 u# B6 x; R, m* F; m9 d
{" X1 k/ _6 T0 W+ p Z
m_nExp1 = 0;1 [$ x3 ^' o( }
}2 t* \- w& Z' s1 g9 T L& e
5 _: ~4 ^# H' g
( (CUser*)this )->AddSetChangeJob( nJob );
8 T6 N" J% w( J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 R) m3 `0 [- I W
5 `- A, @* B9 k. D$ `" t0 j# b8 @ T/ q# |
#if __VER >= 11 // __SYS_PLAYER_DATA
; V# p; j# y1 W9 ^6 i4 _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 I& u( e; ]: g1 ?#else // __SYS_PLAYER_DATA3 M. X- }/ n# W h4 ]& t
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 z$ g" J; u) J4 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, ^# Z7 l1 [; |; J$ @3 E# T4 J if( m_idGuild != 0 )
! D1 L$ S: S. B0 |8 Q' G g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 x9 |2 _# R" a4 w/ y: _6 _#endif // __SYS_PLAYER_DATA
. o- }" V: ^' ~$ y1 `& J SetHitPoint( GetMaxHitPoint() );
/ m. t5 c8 u N ]3 Q SetManaPoint( GetMaxManaPoint() );
1 r! s9 m2 N8 T/ F$ }4 p, ^& h$ r SetFatiguePoint( GetMaxFatiguePoint() );
8 ?2 c: r: G$ ?6 D& o if( nJob >= 1 && nJob <= 4 )
0 B/ ]/ C: k0 U9 E1 |& m# N8 q { l1 L2 N* l3 d8 r4 h' s1 O+ W
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 E6 U! ]* I# D8 L/ x( B; S
m_nRemainGP = 28;
7 \: `1 F( f- l/ A# A1 _/ S }
0 Q( K4 D9 c7 ]' |* J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), M3 [- y9 j' Z$ B0 j5 h: [4 p* a$ Y
{
; ^' k& {9 s5 E* s m_nRemainGP = 118;0 V) M4 C1 _7 y9 ~7 \, A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" e9 b: T7 g. C. R) B m_nStr = m_nSta = m_nDex = m_nInt = 15;
: {" m8 n) z8 g" h+ ] }6 {. a+ ^: G6 y, i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 z" X5 R, _/ p# R' C
{
4 d# O0 A0 G( Y6 ^0 M* G9 Y CItemElem itemelem;3 f, e a3 B b$ t5 }3 ` r
itemelem.m_nItemNum = 1;
5 v0 l: O: [5 N. _7 B. z) Q itemelem.m_bCharged = TRUE;; I t# _: g6 G$ _" B: y
BYTE nID;
! f3 H/ x; O5 q( P) M2 a- z% P7 j1 E2 T L. ~
if( nJob == JOB_MENTALIST_HERO )
! L" h( J% I2 Q; H itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 e2 T0 D+ u7 r! b; ` if( nJob == JOB_FORCEMASTER_HERO )4 V8 J! r* [ h3 @1 c! o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* b# H4 H1 Q7 ?
$ z( ^1 B" l6 m7 X: u
( ( CUser*)this)->CreateItem( &itemelem, &nID );* O$ H" L; Q7 D5 l1 i8 ~0 ]
}
7 P/ h& J3 y2 h$ t) K8 P6 G8 } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
f6 @4 x9 }& n' A0 P: k A& b8 X0 D9 y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 ~8 p& b4 x) g y% U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 h5 t! w0 S% G4 ]) e1 a+ S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 E; ]0 ?7 I. ~& q, u7 a ( (CUser*)this )->AddTaskBar();*/ @& @( A4 {. _3 k" c- d. i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) \! i2 y! \3 p% x2 _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% O. S& p( ]. y8 A# c4 q ((CUser*)this)->CheckHonorStat();% @0 U" p) ^/ l2 F# `$ A
((CUser*)this)->AddHonorListAck();; w4 n& c9 e" i& ~" y/ s
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ l/ D. L1 v- o: W
#endif // __HONORABLE_TITLE // ′Tà?/ l: J3 q: _( j* u# m
}% I+ k1 }) o* @) @8 o5 V9 c8 m p
#endif // __WORLDSERVER
9 E3 |/ Z0 E* F, |+ f/ M9 z* f( |} ( g [+ N% X+ C+ F" ?8 S& Q& O
9 c" t4 W/ K' E然后你进入functextcmd.cpp并添加以下
6 ~& ~# U' H: ^' S! d2 Q; w; J
" }( Z4 w# J2 Y9 v$ y# Q代码:: x$ F; H" U! U9 l" k' e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 U) p; ~ _' Q3 t6 O下面插入" }& O8 v8 x3 t. |9 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) H! n2 o# n S, Y( {+ C+ Y
7 w$ K0 p, D5 F8 _- F然后你去
4 j" h) D6 L! p6 Z* T0 E: O# J; ^
代码:
4 y6 L, H: Q8 k0 N* d" U' z代码2 N: w( @1 D6 i1 i
BOOL TextCmd_ClearPropose( CScanner & s ) k- e2 f, N9 n8 v$ X5 ^8 ~& f
{
) B; _ i! w+ p4 i+ f. F/ M" c#ifdef __WORLDSERVER# \ _3 X2 e7 b/ z5 l
CUser* pUser = (CUser*)s.dwValue;
- p5 u* o' l& a0 w g_dpDBClient.SendClearPropose();
; J, X6 [; W# x; g6 O" J0 [#endif // __WORLDSERVER
P4 K- N7 T. N return TRUE;
+ P% ]2 j3 t8 e, ^. d}
; R4 h2 P. \& M2 c& u! x下面插入, U1 d4 O7 P* ?. S6 T
BOOL TextCmd_rebirth( CScanner& scanner ). r8 M$ W5 w6 C2 \8 C3 S9 p/ i
{0 Q: V/ e0 Q; u
#ifdef __WORLDSERVER
( p3 w7 K' m/ F. @CUser *pUser;
L* R$ s0 o6 h7 t& r- qpUser = (CUser*)scanner.dwValue;
! I$ I& m. Z$ o3 [& s$ o0 Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ l5 O9 e8 I2 @, h& x
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" e0 R1 q* d' R0 x- b; P1 |4 Pelse
: C# s9 ^. X* [2 c$ d4 epUser->AddText("你还未达到重生条件!");
8 _9 g! n7 r& s7 U1 k#endif
, y( t. o" W$ Yreturn TRUE;6 P: r! P' U4 R1 r* V$ Y
}
* D6 k( h4 X4 _, f1 }' Y1 j0 J6 \' J6 _' Z0 i: p
' p2 V5 H7 |1 Z' w4 m- I/ L
' _" ` s0 G/ \6 h: p w
: c, e6 v% K, R8 { |
|