|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ H4 |! ?# Z- ?9 C8 V0 T' Z7 p2 e
6 `+ d- A" }4 wMover.h
4 c$ H% t5 k8 W4 m8 J0 D+ M代码:
! k. |0 R4 }# q/ ]找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" |! l/ e9 x/ y; k- i- e' m
7 l+ M* U% j& s4 f0 }& a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. c. M5 X" \0 b0 D) S7 r2 H
) ?" y" B. V) Y0 U8 O5 W$ e u& o然后你去mover.cpp添加! f- N6 R! J1 H. I# [7 n0 ?$ h
# l" }) f/ J) f代码:
) F6 z5 t+ K9 D) e* _4 Z4 `, ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 S* m" p! k2 W) f- k2 p
{# u; T. n& T2 ~1 w5 k5 n4 S* n+ x
#ifdef __WORLDSERVER6 ?/ A& M! s {% c9 C% Z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ o5 h% ^+ z6 \" X MoverProp* pProp = GetProp();
0 {9 k w! J) T) {4 b if( pProp )2 u3 P. |4 c8 W9 t! [7 \) o
{
" f2 E8 I; _3 W# o if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 H3 f$ Y6 b* W9 w {1 q7 a7 |& d: F; ^' C
AddChangeJob( nJob );
% g3 V0 z+ h9 c9 ] }else{7 L$ u$ ~6 O5 w! T& Q3 d9 m3 U
return;
" C X! ?5 o5 l m }: `; `3 S' o/ V+ R+ c$ V
int nPoint = 0;
: i: H3 ]# j8 h; X) x9 } if( m_nJob == JOB_MERCENARY )
) `- z+ A4 m$ A! I nPoint += 40;: a# ^( c2 M& _0 v; V
else if( m_nJob == JOB_ACROBAT )( Q# x, [: f" o x% C3 K" k
nPoint += 50;
v/ x* n' D, n9 `1 W else if( m_nJob == JOB_ASSIST )4 c% N4 ~' J& s. e+ c
nPoint += 60;
( _7 y$ Z. I; B8 U% B: } else if( m_nJob == JOB_MAGICIAN )
% D3 y9 }+ i2 i/ I1 t3 H, \ nPoint += 90;
6 h# \4 Q7 ?; T& Q+ t- i' t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) f5 M7 K( h, y$ U nPoint += 120;5 g, V& _7 w3 }0 S, ~. n2 e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* n' O, J. }5 Z) u7 s+ {
nPoint += 150;1 g O; I/ W& Y4 `& m/ z
else if( m_nJob == JOB_RINGMASTER )/ x+ r! T/ n4 u* n
nPoint += 160;; h( q: f% d _+ U! W9 X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 i" x6 m, P5 ]' V. x. c- B; h' Q nPoint += 180;
( i3 X8 z* \+ w! a+ }$ T1 H7 ~! Y else if( m_nJob == JOB_ELEMENTOR )0 ^2 t. W+ W2 h7 S
nPoint += 390;8 }8 R& f( ]$ ^3 o/ D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ ?- S4 O1 X5 k7 S K: Q
nPoint += 120;4 X4 S: y, N: e( w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 K0 I+ x: ^: V b" K/ C
nPoint += 150;) D. I) v& k0 p. C8 A8 u
else if( nJob == JOB_FLORIST_HERO )
8 V/ }3 S2 M ]$ f ` nPoint += 160;: s: l1 g( R4 q$ z: f. e3 s% \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. d1 c U+ \6 ?8 ]: Q- d nPoint += 180;8 |6 w3 B! @3 i' W
else if( nJob == JOB_ELEMENTORLORD_HERO )6 s) z% F- q4 V2 e& y9 j
nPoint += 390;
0 b8 v M; X6 w% D$ B% x
7 x" }9 r# }# s$ T) w AddSkillPoint( nPoint );+ P9 f0 N8 W& N1 r$ _: q" M; Z
m_nLevel = nLevel;
/ N( T) A- h' v. y1 W
: B$ c0 g4 c5 y) Y SetJobLevel( nLevel, nJob );) ~$ ], ^$ Q, c* e
m_nDeathLevel = nLevel;2 R. ]# M2 X; o; Y I/ |3 K Y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" \; \2 o# A- @7 D: C: L if(IsMaster())9 b; P, W' i) B; y5 u# N
{
" B6 }& |' H* H. A* A* z& i int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! K6 `1 Z% a. O H& P( x if( nLevel > 59 && nLevel < 72 )# K9 U. O* x1 h! U \/ u
dwTmpSkLevel = 1;& h6 V; y$ n8 m0 x6 G; C+ N
else if( nLevel > 71 && nLevel < 84 )
, I1 a) e3 e& o3 A8 A& y dwTmpSkLevel = 2;: L4 f* F# F# C5 u$ |
else if( nLevel > 83 && nLevel < 96 )
: M# [+ n0 r& y" F dwTmpSkLevel = 3;
0 o/ A3 d2 j# z/ ~& _' Y- \ else if( nLevel > 95 && nLevel < 108 )- Z, c6 t5 z, P0 R+ T% _0 L' O2 l5 `
dwTmpSkLevel = 4;
0 C8 j6 U) l7 X8 z1 |# e else if( nLevel > 107 && nLevel < 120 )8 s7 [9 a7 m! l: L
dwTmpSkLevel = 5;
0 z9 ?3 H& @! S0 Z+ j' v# n8 u for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 y. N9 C Z* d% J+ B9 N: E7 E' ? {
7 H" P( q& j+ w% I1 _8 a" S LPSKILL lpSkill = &(m_aJobSkill);$ S4 {2 R6 P& Y) e5 E
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 f( k( c( N, L- y( h( T3 f4 w6 X% y. N
{
/ K t! o4 |& `; |- H: D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( A$ s% N6 g- s' Z& ~! g8 F if( pSkillProp == NULL )4 r; w2 p* C8 [/ X6 _
continue;
- ~* F+ T! x) z# j5 C) Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 U( b% ^+ W! A; ^$ O4 H7 H
continue;
! x: F: a, j8 l lpSkill->dwLevel = dwTmpSkLevel;
' Z9 I1 j$ C$ E `% z }! h$ ]. u( h* E7 l
}$ p; @, `5 d$ \. X% n
} y4 j+ w# _6 g
else if(IsHero())
: f4 u+ x6 l0 _ {/ P: i4 y5 L, J/ ~8 o6 O8 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - b8 E6 x" B: G5 z% F* ~
{ R4 D1 \8 W# ^' w; i: z
LPSKILL lpSkill = &(m_aJobSkill);: F+ r- X6 V6 N; U7 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 Y; _- U) p& f3 \5 ~& o3 n) F# n
{
2 w- p& n9 R4 ~3 ~! q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : D1 R# J8 n) ?! k0 q/ R) F' x- P
if( pSkillProp == NULL )
9 I+ l9 I* B9 r/ n4 V continue;
/ Y' m4 T7 \+ }" V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
u2 I2 y( ]" S! E' ` continue;: H/ ]+ [. Y4 e
lpSkill->dwLevel = 5;
+ \) L. D9 U- W; b }7 Y* \4 Y _, b. W2 u0 {& V! ?
}1 c1 [6 T# v" Q) x2 O" Q" s9 I
}
! O0 S ~. L4 J0 a else if(IsLegendHero())
/ U# |9 s& A- D" A+ u {& w+ \) F$ G6 E2 ]/ D$ @9 ^% C% { M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; Z$ c' Q4 e8 W
{
" B, {* T& l' S& a LPSKILL lpSkill = &(m_aJobSkill);2 j% g/ m2 T' `. \" E" c; ~. }- W* I. u
if( lpSkill && lpSkill->dwSkill != NULL_ID )! U& E$ F1 O" f) X7 E- d
{
/ ?# g4 d+ ?+ I* q8 e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" n; P4 O9 W( B8 m) d if( pSkillProp == NULL )
) G4 o; u1 I! [# S, ^. \& U continue;
& D, P7 i4 l7 z7 ]# |) l% e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& c/ O( Y' R4 t6 ~0 j8 N2 Z
continue;
& W" N/ o7 [+ Y lpSkill->dwLevel = 5;4 D/ s, F9 }7 x- q4 m
}
1 R- K" P* k/ B/ ]* R ]4 o) { }
. U4 }- b1 i1 c }
' e% E/ O! S( t a+ s9 `#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" f" X$ O8 k# `& l0 z B. X4 m% B. [5 ~
if( bGamma )
# N- \) P/ ]& H1 L {1 f8 k: j, x5 ]6 {' A0 _9 ]" e
m_nExp1 = 0;
* D( G" p T: `" v( M3 k% J7 A }
/ _4 B: Y: Z$ R6 R
. u" o3 R1 p$ W# H5 x- X ( (CUser*)this )->AddSetChangeJob( nJob );1 s) l0 Q3 o$ _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ i- f' O4 Y3 q' l' [
% Q* `% j9 @# G# {
T( q( }8 _+ |5 D2 o X#if __VER >= 11 // __SYS_PLAYER_DATA/ Y g+ e+ n1 m3 B+ e, z! ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 `' \. Z5 g/ D+ h/ P! M+ r
#else // __SYS_PLAYER_DATA2 o e6 Z4 h F. b
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& [1 H0 Z) L7 B3 o' c0 Y# E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; l, K( \! i2 p
if( m_idGuild != 0 )
) G6 T# j7 z2 ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) ~5 \1 i1 D3 F# m+ i#endif // __SYS_PLAYER_DATA
' ] ~8 z/ W$ W! m3 P3 s3 G7 {; _ SetHitPoint( GetMaxHitPoint() );0 ~% o- ^& D2 k8 e( C L& e! `+ h- z
SetManaPoint( GetMaxManaPoint() );8 e8 T$ X, O a5 c8 _* D, W
SetFatiguePoint( GetMaxFatiguePoint() );
* x! W# W' o- ]/ ]% A6 P if( nJob >= 1 && nJob <= 4 )- D `$ n! |' j6 a& T2 \' b
{2 J& c3 h8 z! y4 S8 a6 N7 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;, }% h& y+ F3 j
m_nRemainGP = 28;; C) P; ~5 {2 S. P
}
) Z) M0 C: f! k- @3 z" _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! m4 C& x3 ?! M* b* N
{7 }9 q5 [6 E1 S
m_nRemainGP = 118;( S$ G# r: ]# D
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, _: I. D0 T0 J0 w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: @8 I1 F0 T6 `; U }. p9 h( ?) a) E: i9 ?7 N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% q# A' h' a7 }' a/ p+ v s( s
{0 K. `3 z$ L$ Q
CItemElem itemelem;
2 F6 u e' q) P4 S itemelem.m_nItemNum = 1;
" y8 M2 X) V1 |' G- t3 G* `" ` itemelem.m_bCharged = TRUE;
: C& A) o* _. x) [; A9 W% p BYTE nID;
. p Z" \1 D% `" t7 {0 }4 H9 Y( y( v' q. ]. f$ t
if( nJob == JOB_MENTALIST_HERO )
& t/ b: A. Q1 Y# K itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 ?' x2 F" d; L0 R* {: u6 }1 |! |8 \
if( nJob == JOB_FORCEMASTER_HERO )
) k) W0 F6 Q- m. ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# i) c+ l, S' @3 b( x+ Y& [
. T$ C9 D1 O( x0 d
( ( CUser*)this)->CreateItem( &itemelem, &nID );! ^/ Y* [/ z9 m( Q
}! C: v( _3 E. }/ d+ k" S6 d" ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: w, k% D* N" ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ p. D) B' O O, v
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ V+ B9 q1 {* ?8 i3 \* @% ^ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# ?$ l1 c8 M2 C ( (CUser*)this )->AddTaskBar();*/
: O, ~/ [- p6 f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ k7 m2 c) Y1 {: ~#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 H# U. ]6 z6 `3 t @( ?! G
((CUser*)this)->CheckHonorStat();2 e$ Q! Y) |( J/ d
((CUser*)this)->AddHonorListAck();
) J+ P; L& M; z# w g_UserMng.AddHonorTitleChange( this, m_nHonor);
' V3 ~" ]3 J- h" K( J#endif // __HONORABLE_TITLE // ′Tà?) T& j j2 ~) P- T5 Z6 @5 n5 l
}
( g3 r: |4 Y8 n! @+ {1 g; }( p, d#endif // __WORLDSERVER
3 k5 n. \6 o1 F( q2 C} 5 y& | b1 R5 `; U# s8 u
8 y2 X' u/ l' x5 I0 \然后你进入functextcmd.cpp并添加以下7 P/ p; u7 }5 f' s: H# u( a2 S
( ~8 c- t% J$ n0 O6 \ I( I0 ?
代码:, c9 F+ D& q" l5 w9 P8 @3 f$ W8 H8 ~, t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, H& d- v# W, w5 d! C) J下面插入# w+ p8 Q: ~( L3 u& k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 o! v2 n7 `( y5 }0 ~/ r* S
( c2 H0 b) `0 |! j4 _* H然后你去
; L1 \/ }4 d Q' z% X U+ i* t3 _ k
代码:
# m; a3 O# W1 n1 N代码5 X. q. H* Y& ?% l" w
BOOL TextCmd_ClearPropose( CScanner & s )
1 y4 d6 a" m7 s9 T{
* H# W$ X( f/ v# x# e0 L#ifdef __WORLDSERVER
# u, H8 t$ g: \: F8 O CUser* pUser = (CUser*)s.dwValue;
% r6 X5 X5 a' ^. ^6 G g_dpDBClient.SendClearPropose();
$ T( k! R, g4 V; `9 L+ l#endif // __WORLDSERVER
% F) K7 @( e4 ]* J' f return TRUE; |- D' }, i& J& N7 C+ H Q
}
5 b2 h# v7 h9 w+ L* g+ \下面插入( g9 r" S7 f, H7 f/ ]
BOOL TextCmd_rebirth( CScanner& scanner )" a8 T% K) _% Q, c
{0 @9 b6 f) g" |! Y% u9 ^3 G
#ifdef __WORLDSERVER+ }5 S0 ^2 {5 Q7 h
CUser *pUser;
* l0 r+ t L- ^" S8 }pUser = (CUser*)scanner.dwValue;$ Y% V; N7 ?* F4 H: `5 G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% H7 |; w, ^7 X; V& n; C( q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; ? |4 e: [ N+ e, k D8 }else
7 G8 L4 S3 ?/ b( ^- J+ N A7 m; epUser->AddText("你还未达到重生条件!");' K6 s% V) Y' | `
#endif
+ A9 c: _ s6 X1 p1 ?' L. vreturn TRUE;
2 B6 i! c" O. P" X2 T5 }} w) @0 f& O8 |2 u" l- \) x
( L, Z# s5 y, r, [ c5 v8 V5 l; f
' l9 V. d/ u0 B
" ?' [' o8 d3 U+ a: f! P6 L6 k5 Y8 `4 ]% @
|
|