|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% e/ W) Q% L- b: Z
p9 Q0 v H+ e* i! z2 kMover.h$ K1 D0 e; U8 p# z2 x6 @
代码:4 \' Y+ }! f4 b L0 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 O( y$ Q) P- r) {. e5 T( q& L5 q N7 W
3 k* m- e0 X2 a( f' c8 s5 \% F. C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
f- y5 M7 S2 L1 P/ W# Y$ g
' U* A( S8 C1 i6 G0 n然后你去mover.cpp添加
/ T; {/ A; x3 R" `% U
6 [1 r d; i/ z0 d( |代码:
$ E3 f/ p! k2 Z' [) w+ `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) d9 t$ Q) G7 x
{
" d5 Y& [: ^ D% H- X0 |* Y% z#ifdef __WORLDSERVER8 U6 U. P# F7 Q& U/ h1 O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( C W: g7 X8 w
MoverProp* pProp = GetProp();
- q; t+ o4 W# {' [7 F _ if( pProp )
) ^9 z/ K/ T; B {
: u$ C) N8 c8 C; j! n if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 n9 O& o( L% e/ m, i" k. a2 {/ e
{
1 D# z7 c a+ \3 m AddChangeJob( nJob );% ]/ E# Y4 Y0 e% A
}else{1 c' H( }7 F9 y$ x( U8 N
return; O3 l6 R0 y7 X: u& p: B
}9 f) ]" x9 |1 Q1 [6 a
int nPoint = 0;% o" y, D" n+ S+ [7 o/ H+ y
if( m_nJob == JOB_MERCENARY )/ c/ ~; I* E. S: {5 F6 b
nPoint += 40;
; h1 x }# d0 J, [" t4 z6 f else if( m_nJob == JOB_ACROBAT )! c+ Z; K+ n+ J! d' @5 r0 _
nPoint += 50;- \4 {" Q9 M/ i5 j5 T" z
else if( m_nJob == JOB_ASSIST )
E6 S8 q' m$ y nPoint += 60;
) @; Z! O7 @( U1 T& J6 N3 T& b else if( m_nJob == JOB_MAGICIAN )( c' ]. Z9 A8 T" M1 q) [
nPoint += 90;# h1 V) ]) D' V. ]4 r( N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ A3 x0 I7 m' \$ ^' |: n5 A0 J nPoint += 120;
! R- a: r- @" Q( ^. ~& C- ^, W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; a* l' ^; o$ M0 n+ n# S nPoint += 150;5 W4 u; D5 G: {( F% z3 {9 Y# p
else if( m_nJob == JOB_RINGMASTER )
4 V8 {2 T5 s6 ?. W% S7 _ nPoint += 160;7 J" C: y$ R u4 J! ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 f; _$ l* l/ l6 J" v( u nPoint += 180;2 E# ^& R! d! x) S
else if( m_nJob == JOB_ELEMENTOR )
. v' s- W" i# x! y" ?% @# q nPoint += 390;1 h8 M! q* I3 o8 G3 J2 u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 E* r2 _; c5 ?' G% _( w. |6 b nPoint += 120;+ N! `$ e) b. v% s# Q9 [7 O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 u4 a2 V0 c4 K4 H6 f5 O& W nPoint += 150;
. \/ A- v% ]- V& G; A else if( nJob == JOB_FLORIST_HERO )
2 E( n- }) y& l6 c: g nPoint += 160;
8 b. Y8 G: s; t2 X5 S# J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) n$ U' F, W0 m7 k8 D
nPoint += 180;5 _ |7 r( m2 t8 A ~6 a' M
else if( nJob == JOB_ELEMENTORLORD_HERO )
, E; L- o. n; T- Y nPoint += 390;. P) ?- v+ c+ E4 Z5 k; o* t- P0 M
( R/ v5 o* m7 H2 K AddSkillPoint( nPoint );0 ~, c$ c& P% U( D! Y7 N) c7 t
m_nLevel = nLevel;' C( e3 i7 G% `' ?# r; h
8 K' G3 F& a6 k* Z- x- Q$ d
SetJobLevel( nLevel, nJob );
7 O) j+ N) V) B# D3 i m_nDeathLevel = nLevel;
( @6 E. u+ S1 k) G h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- O S1 j2 L4 h( R8 g
if(IsMaster())
! u1 d0 d, w: l7 t7 w" L6 d% f {) p ]5 U" p' I1 t9 t2 c) q# _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) I) C1 y7 G8 x0 D/ @* s# y if( nLevel > 59 && nLevel < 72 )
8 Q' t6 k6 |& [9 s$ v dwTmpSkLevel = 1;' p5 W. F, n6 P* Q+ u4 v& i
else if( nLevel > 71 && nLevel < 84 )
; U6 v) ?; y7 {% c; e P" J dwTmpSkLevel = 2;6 x; d& @- S# w+ O* d
else if( nLevel > 83 && nLevel < 96 )
& ]% Y" a( k3 ]* z dwTmpSkLevel = 3;
% L4 X y, b" A* u" T else if( nLevel > 95 && nLevel < 108 )' F0 \3 v7 B C6 z2 l# D
dwTmpSkLevel = 4;
8 ?! Y' o$ B+ H else if( nLevel > 107 && nLevel < 120 )6 d# N* z! R T0 |
dwTmpSkLevel = 5;$ |3 X/ l/ k. j/ i) A1 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) R! |# P- A+ ^. [ P3 z { 4 l+ B/ s* D% y, O
LPSKILL lpSkill = &(m_aJobSkill);
& C) P! U7 k6 ^" p, _( r8 y- h, t9 M if( lpSkill && lpSkill->dwSkill != NULL_ID )% ]% V1 q8 f/ S+ L$ B8 a
{
+ v8 s! A1 m+ g! d5 ?; Q& F1 h! P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& ]) L( \3 t' I if( pSkillProp == NULL ), A f9 j- q: m
continue;
; L9 V' G: ]" D' m# B if( pSkillProp->dwItemKind1 != JTYPE_MASTER); N, @! s/ _+ k% r% {
continue;
. h+ a* b, W+ Z+ h lpSkill->dwLevel = dwTmpSkLevel;
$ d/ @: W- Q/ G2 l4 Q7 k }
# y- B8 a7 t2 U9 y! Z }7 w, E! T7 F c6 B+ ^
}
' T8 ^- @) J. @! _+ s+ i! i& I else if(IsHero())1 i& b2 [( s$ ]2 w" r
{
5 C) l3 W$ @/ i% `- U- m& o/ I for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 {' d) j# i) w$ l2 V {
" h2 B0 M' b, a. h LPSKILL lpSkill = &(m_aJobSkill);! T6 B( {) |! v d/ G2 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ m$ F# ^5 \; Q1 V: v {
. _. D9 ]/ p+ d, F+ b3 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 S( m+ }2 O$ l1 Q
if( pSkillProp == NULL )
* \6 C% {% ^" f H continue;
0 y8 F# X# T- |4 c8 i8 e0 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* S& v9 D% d/ c9 A continue;
. \9 Q1 f7 N8 R" Q lpSkill->dwLevel = 5;1 L: V, c! a6 i" Y6 u) i
}0 L+ c8 z) H+ O4 E( M
}
0 @; }% j. ]! z4 g }: P4 l, a7 u/ t5 j: n
else if(IsLegendHero()): O3 v5 y" q0 j5 \4 z/ j5 b
{! U1 t. v/ O5 B) d+ Z B* B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( [# A0 ^( i; O, N7 w3 @# E
{ 2 Q: u* B3 q1 Y; V* s L/ C
LPSKILL lpSkill = &(m_aJobSkill);9 `4 O( z9 q$ }2 _: j& P& x! T& Q
if( lpSkill && lpSkill->dwSkill != NULL_ID ); e" D% O1 x* L
{( P0 U" b1 x* x4 Y3 L: J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! @0 p4 q1 a5 W3 u2 [3 t- S" G, o7 }
if( pSkillProp == NULL )0 O( r0 S/ U/ _- D+ Z+ f3 ]
continue;
}3 A5 C1 ^; D9 G/ g: N& j* N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% Q% l& D0 u2 z
continue;
( S& a( F. C: o" u1 \2 Z+ r6 A3 S lpSkill->dwLevel = 5;
& q/ o0 E: r' q' f# M }* k) A+ d) `. g( K+ {2 o
}
$ s: |3 g- T) p" O3 e }
* s; C% q" \6 E" I" y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 R U' v6 k* d" ~5 ]/ F
if( bGamma )
) i8 M4 ?6 ?7 S" G, l2 d& t {
8 \7 d3 P) p1 {6 {+ e. p m_nExp1 = 0;
9 m3 s0 @0 ~2 t' F" G1 u }$ T' ^9 p0 G7 g( F* y
% } b/ A# v, y. x ( (CUser*)this )->AddSetChangeJob( nJob );
8 y0 I3 o; {: V7 B, { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );4 t7 @, v- O$ P
1 W. g G* T+ N6 v( D
9 g7 ~. _& L/ A9 n, ~, r
#if __VER >= 11 // __SYS_PLAYER_DATA
& ^7 B- s' Q8 b! Q, O5 U4 O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 a" }4 ^9 @" l" d
#else // __SYS_PLAYER_DATA3 n4 M7 ]" O7 C7 \- k; n2 B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 Y$ i- R" c8 l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, ?8 x# U- B! p' Y" i if( m_idGuild != 0 )
" T! V* }0 M; W3 L4 L+ E g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 R' f N: m% Q- r
#endif // __SYS_PLAYER_DATA
" `. L3 a# R* Y; |4 c- O/ V SetHitPoint( GetMaxHitPoint() );
5 v* r; ^3 L7 ^ SetManaPoint( GetMaxManaPoint() );
6 h4 U* S3 P: f4 h SetFatiguePoint( GetMaxFatiguePoint() );$ J% x# s a& v9 j/ k! [
if( nJob >= 1 && nJob <= 4 )# j8 `2 m& M: @" L7 E; |
{
4 V" E. z8 d5 Z3 u m_nStr = m_nSta = m_nDex = m_nInt = 15;
' [! ?3 b. B+ X7 H7 s m_nRemainGP = 28;
P9 a: L8 L3 x( D }
. v. W' Q5 f% G3 C! ^: U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) l6 a+ x/ L/ [
{
$ v# V# k; F K" Y. ~3 ?: l* N m_nRemainGP = 118;) p1 R# W" [$ R1 q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) r; A8 t9 f' l0 _$ b2 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& X% O# a% I- V/ o9 S }0 \' o, X9 R% V3 e, @+ d: |5 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 B( K. U$ f! M' F3 W, L9 E3 _
{
7 q! r4 L& B# H+ P6 v3 \$ h4 }& P: e CItemElem itemelem;
' S, R! d& i( e5 Z ^ itemelem.m_nItemNum = 1;, P* @- f2 I% S6 A6 A. r
itemelem.m_bCharged = TRUE;# k. \3 r' e9 e/ K' k& \
BYTE nID;8 g6 n' k( b7 {
( W5 K3 [- U: w0 R' Y+ F) ?( t p
if( nJob == JOB_MENTALIST_HERO )$ H0 j3 O" C0 s: F* { c9 h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& d' e2 K5 M! k2 {
if( nJob == JOB_FORCEMASTER_HERO )
% i" J; j/ Z9 v J3 v2 V itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 [) O: `, G' Z. v' J% A
' w9 n \ [ E$ l: a% j# h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 Q5 L1 o7 L0 m. _1 H( G }
7 K9 L- B$ k3 k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; W! h1 D+ ^& ]' U
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) x0 F/ u2 a( l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! r/ g, ]# [: z$ _. P5 e# s
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
X. Q* t3 u) X" e9 ~) Q ( (CUser*)this )->AddTaskBar();*/ V5 ]+ e4 b" X" k; t% E0 D2 D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ Y0 e5 k1 y8 z4 A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ h$ u3 S" }- y4 W7 J h ((CUser*)this)->CheckHonorStat();
" w* X1 N2 x7 t2 H/ O/ K ((CUser*)this)->AddHonorListAck();
* R" ~, `, M6 U. b# \ g_UserMng.AddHonorTitleChange( this, m_nHonor);
( ^2 A4 O2 T3 P& M% I#endif // __HONORABLE_TITLE // ′Tà?
$ y9 K3 \" y" c" C& Y9 S2 } }
0 b4 R, A9 k- F0 _) \- z i: U- o#endif // __WORLDSERVER
9 E2 \- x$ ? |8 b+ p2 F}
6 G" H7 ]% g- b' M0 B4 P4 C1 c1 w: o
然后你进入functextcmd.cpp并添加以下1 Q! ^ @9 A2 b f
+ T! u4 d! x5 J1 B# s1 j3 g0 l0 q代码:
# X* \( W' e* ]" r9 KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. `8 Y; A1 ?; a: }& `- q下面插入
9 ? n& C5 G2 l7 d1 P5 i1 MON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 w5 P) f8 Y: ]" }5 V) Q) j) E2 s! p& x
然后你去
' P* x7 f% d- `" ^" z0 d0 F) ]1 F1 h
代码:9 C0 B# Z: q) s3 |8 O
代码, Y% Z. V6 Y4 H( F, S
BOOL TextCmd_ClearPropose( CScanner & s )
! r$ i7 }: J1 r ?# ]. T" A- s8 S{
: V+ t: s+ Y( {2 D7 k# E#ifdef __WORLDSERVER' J7 x4 P; ]& a5 i
CUser* pUser = (CUser*)s.dwValue;
% i J: Q$ S/ X g_dpDBClient.SendClearPropose();
% k1 F" e. v' r- b' }$ _: Q0 @#endif // __WORLDSERVER
; n1 I" D( t/ [) ]3 u return TRUE;
. S* H, v; R, y7 k2 t8 B+ S$ n# Y}7 D5 l* C8 Z8 v2 F' f5 Q/ I
下面插入
9 I; P) V5 C- Z |! @: A# Z) wBOOL TextCmd_rebirth( CScanner& scanner ) D& R* W- @* N' ^+ y
{
, V4 t( ]$ a1 N$ q0 I, w' O: [7 _#ifdef __WORLDSERVER' N' B5 w4 V& `
CUser *pUser;$ c* m3 t* z3 Y+ y+ B7 E
pUser = (CUser*)scanner.dwValue;
/ i. P( i( {2 Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ `1 b6 t1 @5 G' S" J* Y; S2 j% ?pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 i; B, I' D5 }- v* o2 Ielse: S; H1 u( D: c
pUser->AddText("你还未达到重生条件!");) T G) x! I, Z
#endif7 H8 K, {! d, w- ^; m
return TRUE;
; L; O0 C! r1 m1 }} + k+ u; r8 i3 V
4 C. P4 T3 F/ M5 o# z
8 q9 w& r5 B* m# {/ B
1 m% s& m1 u7 Q* i# f2 X& y
+ R# Z) H0 Q8 N( }/ a/ G |
|