|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% L$ L m5 j6 \" v) @+ Y. V4 {! F* N0 v
Mover.h
0 ]9 ~1 c& U7 f" M. Q1 t' _代码:, [$ V0 W# J" s% \( w9 s) F R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; v0 x* g6 z) v* n; A
; l- n3 u9 K" k0 f" k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : a' ^7 c. y) A3 [0 E
& n- c) g% b/ {/ b0 V
然后你去mover.cpp添加
' W$ Q5 D8 }4 l- Z$ U6 F& c* p" H l, I1 j
代码:
6 c U# _* _5 [8 y# k: K. m- B4 J( Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% \- D$ W) `- k{- H7 L! v9 ]7 H
#ifdef __WORLDSERVER- V% N2 E* m9 ]2 a1 G. o" K* N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 y4 f! u+ k- p( } MoverProp* pProp = GetProp();8 F- C! R/ X+ M$ K. W8 u; U
if( pProp )* ?6 Z- U3 E( T, V2 _
{
: k y1 n" b8 Q- J% I if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- |, {7 \8 z' f6 d! I {; D& V5 u. |% |5 S8 j
AddChangeJob( nJob );" b9 X) h' @+ g' _
}else{( B2 M! L( Z- C: M h2 r) A- F
return;2 q! F# o4 g5 x
}0 s2 J9 J& ?- w6 `: \0 Q% z6 t; y( t
int nPoint = 0;! T, F3 z8 A8 W/ y
if( m_nJob == JOB_MERCENARY )
- c: G( U n- D/ W1 r nPoint += 40;
$ _! }) V, N3 H0 t, ~% U9 q0 S- b else if( m_nJob == JOB_ACROBAT )9 {3 d; N6 F' i" y- o
nPoint += 50;& [$ k9 V+ J# r" i' S4 p: p' `
else if( m_nJob == JOB_ASSIST ). e5 z- I+ }: l' n
nPoint += 60;5 ^" f) b8 x( c% a1 \5 n
else if( m_nJob == JOB_MAGICIAN )
3 A5 ^, c. E) p ?( n+ p& M nPoint += 90;
' {* S, e7 |4 R: Q/ r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 t% b( i8 b( n! P' r! t p
nPoint += 120;% h g% \( j) @1 H# K+ U. k2 O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) s0 h4 _8 c) D l* u, \( R3 D
nPoint += 150;0 F) A8 C) L5 ^4 m4 }
else if( m_nJob == JOB_RINGMASTER )! N6 c% ^- P# A! \4 O
nPoint += 160;% S3 {/ a3 E7 U* }/ f; r4 g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 S1 |2 U0 _3 N. ~) C& T6 @
nPoint += 180;- K3 i* m; x5 V3 J: `
else if( m_nJob == JOB_ELEMENTOR )
! A5 `4 B g4 ?" @6 N nPoint += 390;
[/ V8 i$ Y* |: x+ _1 t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 y% @0 L9 }) V nPoint += 120;5 i+ }( z& D" \
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' K5 i( I& M8 p; {' E; z2 u
nPoint += 150;
6 Y3 ~6 U7 |# W1 t* j% g else if( nJob == JOB_FLORIST_HERO )0 S+ z& ], h0 i$ U, D
nPoint += 160;
8 B$ S/ ^# a. p. x( l# h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 b1 J9 c: A$ ?3 C4 W4 Z3 a
nPoint += 180;) ~7 b0 U$ t; z# B
else if( nJob == JOB_ELEMENTORLORD_HERO )9 X Z [% I5 t; `% f4 \8 V
nPoint += 390;
% K& |( a" z- K8 C) j+ k! @* Z% @/ U6 x) @- ?& O t
AddSkillPoint( nPoint );
2 n1 h& ?5 i( v4 | m_nLevel = nLevel;) K) L3 F) f/ z
5 J5 S' c5 e% V& S/ W0 b
SetJobLevel( nLevel, nJob );3 i( B: H8 E& c; J& f+ g7 J
m_nDeathLevel = nLevel;# p- T4 X0 w+ D) J& X5 \+ ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: _4 ^, r5 \, {, S# E# O Z if(IsMaster())
" X( k$ ^3 V) G, R0 i0 j {% M& F" t2 Y% A4 k0 n" P% c$ ^) ~$ z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; x* T8 M. Z; k) E5 p. L& _ if( nLevel > 59 && nLevel < 72 )5 ~4 I/ h6 W: w, ^" ^: [
dwTmpSkLevel = 1;
% y+ j0 `& w# o U V4 r' _ else if( nLevel > 71 && nLevel < 84 ). v ~! i& `& `( d! Z. {; H( Z; H
dwTmpSkLevel = 2;
0 U `; o/ O" B) _ else if( nLevel > 83 && nLevel < 96 )
2 [5 ^1 _- P2 J! b. I" t dwTmpSkLevel = 3;# X0 d' }9 x1 B4 Q" Y/ L, a5 `
else if( nLevel > 95 && nLevel < 108 )
e9 \2 ~3 H$ q: g- s- s dwTmpSkLevel = 4;
o- ]3 W2 z5 C4 [ else if( nLevel > 107 && nLevel < 120 )
r: b7 z) d+ |$ W$ n# u dwTmpSkLevel = 5;
9 f. a. q8 R+ e/ J6 m for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ l P7 k+ a* s& Z" z8 j { ' T( D/ T. ~1 k0 Q% a
LPSKILL lpSkill = &(m_aJobSkill);# q* t1 o: c F& _: D8 r+ T x
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 W! \. h! |2 V% k. h1 r
{
/ L9 i/ i( C' d: U* H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 J$ j4 s1 B2 |# r if( pSkillProp == NULL )1 M5 `! n/ n! J9 h& B8 I) t) r
continue;- v$ ?0 v. b+ M7 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, c! [! B+ b3 `" D2 O continue;
, L: n4 F9 y: g2 f: R lpSkill->dwLevel = dwTmpSkLevel;+ m1 A; |' a5 S, u2 e$ a c; e) B" n
}
% d! ?9 o% B! D: x* _ }
4 ^) \$ u# k3 _2 i" V" e( N } m0 ]" b8 s2 C
else if(IsHero()), U U. b! F2 R5 U1 f' V* D
{" x( n6 T: d; K$ s! g" b6 E* m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - S+ c! _' G& o$ H3 c1 W6 E8 C
{
3 O; g6 @/ q# |3 K8 F- ] LPSKILL lpSkill = &(m_aJobSkill);
: {' @" Z& i0 m3 w5 ^7 b3 `) @1 A if( lpSkill && lpSkill->dwSkill != NULL_ID )8 f( q$ I( }. C6 s; P9 I
{
q1 F+ u8 O4 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 Y+ c8 Y' o: o5 \1 h: m4 b7 y
if( pSkillProp == NULL )
6 Z8 V0 k2 j0 v7 M8 f continue;) \3 x, |2 {" ~: M% @0 W7 P0 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 G; p; {, X% ?! g- Z
continue;
5 \7 n1 h6 ~( T! c+ J8 T% I2 X lpSkill->dwLevel = 5;+ t! z( D" T( A" v
}. j, ~- u" [# t6 U5 T
}
+ s8 u- C$ J& Y0 m$ m }
, h$ B6 w6 m2 B2 r else if(IsLegendHero())
5 q& i; F+ U3 v1 p9 q" j! x+ H' x {7 n( E% d( Y, h. O" L. p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" U, k a; s& G5 x. c {
+ I2 d5 \7 u" l/ _0 M LPSKILL lpSkill = &(m_aJobSkill);1 z+ K) ~. h( P$ n+ E" }
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 ^# U/ v, Q$ U% ~7 @+ c5 ^
{- Y/ ]' `6 ?$ [" A9 V* M, [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 t3 H o3 ]6 u4 ^7 @ if( pSkillProp == NULL ), U4 W' e$ v4 N& s( B
continue;
, V8 A5 o/ \% k- X" o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# I8 ?9 I6 W4 g' b; E
continue;+ w$ Y4 M, g5 \; O; Q5 k. A
lpSkill->dwLevel = 5;
1 U4 c1 h7 V+ x4 U, Q } _1 {) l, G/ h9 D9 @4 l* }; V6 e1 b
}
! _5 F2 e @! \ }
7 N3 v' k2 F, ?9 |! ?#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! p% ?9 h* i4 _. U
if( bGamma )
: P+ s9 ?# I3 t {
: A0 [+ Q- a+ w1 ~! [ m_nExp1 = 0;, }( k" L) N* Q# Z0 M" W( {" H; f
}) N. l& S7 s a/ I
( T4 Z. k5 p. y1 L" Q1 l* i
( (CUser*)this )->AddSetChangeJob( nJob );
) \' ~, Q0 R$ I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 V) K2 m l- G0 n- \- J8 Y
& Y/ C2 V& L5 H% E/ E6 A @# Q! D( z' G. M) G0 \
#if __VER >= 11 // __SYS_PLAYER_DATA
, `& ~5 _0 p7 l/ d5 P2 ^% g& ? g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* ?7 X5 c i) @2 v3 Q#else // __SYS_PLAYER_DATA6 h% V! N( D1 _) b4 n- B; e+ Y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 c9 z. n7 n9 a
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 ?, c9 X( r! ? ~' b6 u. s
if( m_idGuild != 0 )6 |3 G% l. `3 j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( y9 l+ g. O1 a
#endif // __SYS_PLAYER_DATA6 A+ e9 n3 V7 o
SetHitPoint( GetMaxHitPoint() );( G3 I& r$ H" F4 x6 J! a- l
SetManaPoint( GetMaxManaPoint() );. I1 w. Y J1 o
SetFatiguePoint( GetMaxFatiguePoint() );+ B3 s& S; U" c+ G$ I
if( nJob >= 1 && nJob <= 4 )# q% {* A2 j' d6 s4 V
{
+ d. X9 D y$ W" W8 L- o m_nStr = m_nSta = m_nDex = m_nInt = 15;# E% Y- w3 \" `0 v: o: B5 a4 M
m_nRemainGP = 28;
8 w! {4 N" N+ @; O& e }
9 p9 a) ~7 U* G0 Q: J7 _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ Z" c* \/ Z8 ]/ U4 O' R0 \
{
! V) t9 i/ b' O8 y m4 K" j; s m_nRemainGP = 118;
9 l0 p4 B9 @1 X$ }+ v* q7 q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# u1 E7 |" {2 q# Y2 K m_nStr = m_nSta = m_nDex = m_nInt = 15;, a5 k9 l1 D8 s# L) m+ g
}8 l, S l4 Q" r( E8 ]: P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 t$ y; ~' b% r! f* K {( X' d4 l7 \) _6 u/ d; ]
CItemElem itemelem;4 F8 [/ ?. ~+ B6 H d2 p2 N+ p
itemelem.m_nItemNum = 1;
0 |, T5 h7 Q! j+ o itemelem.m_bCharged = TRUE;
- A4 Y2 `. j( Z8 U$ U BYTE nID;( x, q1 U0 e: C9 s5 v1 N9 S2 E; L! @& g
: F3 l1 N; @$ T4 Z9 G' h F if( nJob == JOB_MENTALIST_HERO )( x' p7 @' ^( v- l1 u) u: g
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 D6 P, h, n; U; C u/ R* c) \ if( nJob == JOB_FORCEMASTER_HERO )
# w( G# J% y/ M- Y3 J itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 G) Y9 n. l/ e( o! F% |* r+ I% X3 Y! l% q
( ( CUser*)this)->CreateItem( &itemelem, &nID ); h* b& y. h* c1 L9 _
}
% d! @$ F% M1 X% ^+ s; T T( I g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ H* F5 D( f" J: f) V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 h. g0 |3 R# i2 |' x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 B1 s3 o2 i6 P/ U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' x7 h5 [' Y1 O0 [4 n
( (CUser*)this )->AddTaskBar();*/" x& i3 I( j& ~; i7 L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 o4 b* x7 U' r* i; a3 S
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* D- J$ z5 k9 x: ?8 U$ j( @ ((CUser*)this)->CheckHonorStat();3 @0 E$ B( l, {* G
((CUser*)this)->AddHonorListAck();3 r. w: }: H8 L1 f: M& P7 x
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 j' p4 d9 s/ [% ^6 w# _
#endif // __HONORABLE_TITLE // ′Tà?
" v8 X( W7 k8 a' J9 O }
, r) P. ~. u1 m: O#endif // __WORLDSERVER
7 p5 Q6 ?2 Q. U. C$ f4 ^3 G& A, m} 7 W- K% X" I5 M3 B( f
; _8 y1 L0 Q& B7 r$ s然后你进入functextcmd.cpp并添加以下( m- Q* k9 V9 K) k% d! F
4 D2 m5 m' G; n+ r7 p
代码:: M3 u9 E- ]. B' Z7 T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 J! t3 l6 p3 o; H3 o% O
下面插入: [% N- _" l7 m8 {0 L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 O3 w, H6 @5 }2 P" M4 E! u" T e1 j1 R" C/ n f% c% o! V
然后你去) g5 L. `7 \3 }+ U5 `: _ a/ e/ s t
5 i, d8 G- B. U4 l6 Y
代码:
; g- |' U- m0 } L$ D# V, E4 E8 n代码
' z& L* i0 i5 a. @5 K3 ^BOOL TextCmd_ClearPropose( CScanner & s )
b) E& C2 o5 E3 l{( b3 v/ _9 R0 _2 j" B1 \5 l$ C
#ifdef __WORLDSERVER
% C( }, X2 O7 p3 n CUser* pUser = (CUser*)s.dwValue;0 f& T' }7 N5 ]
g_dpDBClient.SendClearPropose();
7 G* q0 ]0 v6 d5 C1 l! u#endif // __WORLDSERVER# w! z% [5 @$ Y& \9 W
return TRUE;
0 ^- I: K" B& Q5 c& l& t9 |}
8 P6 p) [1 E2 u/ K/ W. Q下面插入
- G5 I% [; q1 [7 s, aBOOL TextCmd_rebirth( CScanner& scanner )
2 ]2 F: w9 u7 y/ y{0 c2 H- W; u; i0 D3 w& Y
#ifdef __WORLDSERVER6 H3 M. x0 T5 c
CUser *pUser;
; Q# Y9 [% m# {4 a- H1 ipUser = (CUser*)scanner.dwValue;5 V! `3 T/ o. V3 N% B/ F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); U8 |4 S Q* X: s6 a0 W. p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ M, a0 y3 E6 {. ?: i2 C0 A! n
else: f6 d; r# C1 l5 p8 P( U
pUser->AddText("你还未达到重生条件!");
& d* S6 F1 C& \0 }& b7 f' T2 X#endif
5 c& y' v# Y( h8 B+ ]return TRUE;
2 _, A6 K2 T: E7 R* z# J$ f}
) I2 j1 c1 G' y7 x+ \( R9 H/ w8 i Z* k
1 t; k! T" E; u( Q2 F. ]7 c) w* K; c$ K4 M2 [. {2 x' q5 L& L
$ `/ i8 H4 P" }+ u* w |
|