|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# E+ x7 C% J2 S. @3 Q, K9 M
0 W9 w7 d' M( e* V( \+ FMover.h
* H: D, n2 ?# S+ d; R: `6 [7 e代码:
; W; j( x8 o4 [6 |' B' D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 b" d$ B- T9 C) u: x4 J( t2 Z, ~
6 \ A" h% c1 {# A下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, v# |% r: j; F+ l% L2 T0 t6 G$ g9 Z$ e- p
然后你去mover.cpp添加
- u6 x# F4 d: t& N# U8 z, M+ F! v
代码:! {1 z: o; i+ P7 o+ r7 A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- j/ w2 K* {$ H{
$ m" {. U7 y9 u. D% p#ifdef __WORLDSERVER; K$ |8 w. k* t' m% H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 K" i4 Q% u' y/ y: y MoverProp* pProp = GetProp();
( g+ Y2 N) m# w3 }- {$ { if( pProp ). Q4 w/ H, n3 H8 h/ _8 b
{
$ d0 c7 d9 y9 S if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( @5 H s2 u( R# y# `+ n& d, n3 @ {
0 \" L5 ]$ d3 P: V AddChangeJob( nJob ); S& E! b# X; X( R7 o3 F0 A
}else{% Z& p! h$ R% t% V7 e, m, L
return;* K7 `! D8 V2 r
}
* c {# ~9 t3 [! H int nPoint = 0;
9 @9 S& y" G1 `2 [2 _0 d if( m_nJob == JOB_MERCENARY )
2 U: d- O* D1 P( y8 c$ w2 { nPoint += 40;
9 d. j3 @4 R* u! r# Y8 |! W. q. \ else if( m_nJob == JOB_ACROBAT )7 f6 X' M, A2 S6 |
nPoint += 50;
, i) x9 i6 W- v: t" @( B else if( m_nJob == JOB_ASSIST )8 S s H2 k: v' u9 M, U
nPoint += 60;
! X% `7 o3 p- ~3 v else if( m_nJob == JOB_MAGICIAN )
+ c& i3 u5 k2 v+ N: G6 s0 D nPoint += 90;' p2 [7 ^; f% _2 d. q7 x8 L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, ^) @, l E9 z1 ^% m7 ] nPoint += 120;
1 J6 }. ]* o/ Q: l1 b6 D. _+ ` else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: j' _/ T/ p3 w1 u nPoint += 150;$ x' R5 T' ?3 Y2 u
else if( m_nJob == JOB_RINGMASTER )4 `- D4 D3 \+ }$ @: e6 a# ]
nPoint += 160;' g6 P, N& ]4 e9 B- C1 r* r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( \0 s/ v' G/ x# A; A nPoint += 180;9 ?0 F {0 g& v) v9 O- ]
else if( m_nJob == JOB_ELEMENTOR )" T% x$ y8 P0 }# r
nPoint += 390; k1 {$ L& W- J5 [$ x a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 U# Z g# t/ W# x2 ]" J nPoint += 120;. S/ c1 z3 A* `0 S1 k! @' f9 x: Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 U, m2 r+ S5 m' b nPoint += 150;
: x, s9 |8 y: }. V; F# k% {$ p6 }7 k else if( nJob == JOB_FLORIST_HERO ): O' M+ U* u& r
nPoint += 160;
1 P3 a) Y# L+ v" H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 Z; U$ d$ }# c! F+ F. B* j2 c
nPoint += 180;
7 }8 i& ~3 g8 p& L3 N# i/ a else if( nJob == JOB_ELEMENTORLORD_HERO )
L- P* x& e& O o nPoint += 390;
' R- Q. v) S f4 `& {' a7 q' M4 n: C3 F4 M; r
AddSkillPoint( nPoint );
, z- G& H+ d0 _/ h+ v m_nLevel = nLevel;
1 J% p* C$ o' A
. r* B7 N, _0 U) A) e SetJobLevel( nLevel, nJob );
+ _: n5 I' b! h7 m) x( v' Y m_nDeathLevel = nLevel;: t5 O; v, Y. U$ S+ ~* p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 I: c- V% w5 Z; c+ m6 V if(IsMaster())0 T6 m* w: ], w, f
{
2 e( v6 l$ M% G& H+ `! B int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 S* c# K% V: c if( nLevel > 59 && nLevel < 72 )
) A: X$ `1 O! F+ N dwTmpSkLevel = 1;( C9 d3 t. I' y$ b* {
else if( nLevel > 71 && nLevel < 84 )" H' |/ i, [$ l- u' x2 p( t, P
dwTmpSkLevel = 2;
9 G- B/ B* {8 ?$ U4 U else if( nLevel > 83 && nLevel < 96 )# J+ U: Q: a$ |3 N4 [
dwTmpSkLevel = 3;2 S9 ]- u$ g% y- v1 L
else if( nLevel > 95 && nLevel < 108 )
3 R& J" f9 I+ h9 l& K dwTmpSkLevel = 4;
. s# [. g1 v8 P* ~) b" C else if( nLevel > 107 && nLevel < 120 )2 |6 ]( |% }3 r: B
dwTmpSkLevel = 5;. }/ R P/ e. q4 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 }# Z% K/ q# s# X { 2 \4 O3 }2 ^% D* N3 @
LPSKILL lpSkill = &(m_aJobSkill);
4 h6 c8 T& S3 [3 I0 p+ _ if( lpSkill && lpSkill->dwSkill != NULL_ID )( L0 \3 m; M; T5 `9 J: H8 s
{' Y" @9 _+ |* b( [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # k3 e) U5 F9 A3 M. v
if( pSkillProp == NULL )8 k& g8 v$ M' k, l4 e O) s/ ~
continue;+ v0 i8 C/ r, E) x X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- |/ J/ m& o2 J9 H8 M
continue;5 @: b8 h! M, X F+ H/ h; d
lpSkill->dwLevel = dwTmpSkLevel;
# H& K. j, t9 Y [; x1 {1 D }
, q% W/ f, C$ B. [# a. W }
9 \% F( E8 t8 ~8 K1 H! @ }
) D( V( m( u3 {) ]; ~ else if(IsHero()), t" g& j* J; j! K5 a6 Q
{& C4 |8 w3 r4 ?2 x0 S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 N8 e( o, [/ K8 K8 m% d9 b
{
0 s8 z9 d! m' x& x LPSKILL lpSkill = &(m_aJobSkill);
! O' x) h% J7 J1 L3 v6 D: @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
, [4 |, V) b) g2 u, I! D8 L { a2 X/ k( _! W# M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; n; S/ G6 K. ^' A$ Y3 H if( pSkillProp == NULL )
1 [, R9 P5 ]( Z continue;% a4 u* g* l2 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- O: C! d4 x) C+ z9 R/ x continue;
, X4 d; m1 [' r! j% Z8 s9 w6 a1 Q lpSkill->dwLevel = 5;
0 I9 N% l$ V, l }
9 C6 h) d) o: i# v$ M }: F3 n g) O @/ O/ L7 `( y
}& E- b. G1 a7 l: s. Q8 @( P6 s O) [5 [
else if(IsLegendHero())
1 i2 ?3 c" S0 [. Z/ q7 c( Q {
9 C' I. K4 F. \* d( p5 T3 c for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 @4 p- {- K0 }$ Z2 w4 v/ c" x {
6 _2 E5 ?. L" r: i LPSKILL lpSkill = &(m_aJobSkill);
' Q, @* Y% S8 y# {1 m6 f if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 }9 b4 g! }5 c8 p8 u {" ]$ L7 U3 G3 {5 ]$ H- v( b5 e$ m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) t" K; L, M# j7 @4 c
if( pSkillProp == NULL )4 M8 K& {1 i: |% i
continue;% |- t& H! x4 _. W% o# S) X; w. Q. V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 @; s! j3 m: p9 z continue;
. | P) A p+ B5 x5 `9 W lpSkill->dwLevel = 5;
# P' ]3 j' J/ M }) e3 P6 V h$ R6 X( P6 ]
}/ z9 @2 y7 _" ~# r9 y
}, I6 [. r, J, z; v
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) q4 g8 C- A. _8 \% q$ W j if( bGamma )
' X! u3 n8 H& e& j9 d8 q# L9 I, F. s# W {
0 O# a$ V& e) k" A+ t+ A m_nExp1 = 0;0 v! W: p+ V) \4 ^# G+ o
}! h6 M* g% h1 j. H0 `- l1 B
7 o" P9 a# B8 p5 U- r
( (CUser*)this )->AddSetChangeJob( nJob );
/ d' K/ X+ y: I7 `, q$ p8 J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ ~# T/ V* ], o! }' z
- F Z* ]: P. r
; A5 Y! m0 ?" f" \( E#if __VER >= 11 // __SYS_PLAYER_DATA
* @* J2 n2 D8 B8 v/ ]) _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' _8 Q- \( B" U6 z. I0 e#else // __SYS_PLAYER_DATA
! u" w" i4 Y' u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 O; O# \# J# h, F% y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! U6 d$ y2 }. f( d/ ^ if( m_idGuild != 0 )* P9 @ {5 k+ W2 \" g" I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& A$ A- V8 e$ D K! U$ H$ v$ s F
#endif // __SYS_PLAYER_DATA: N. t. ^8 \1 H6 f
SetHitPoint( GetMaxHitPoint() );
( }3 p5 {, ^4 J2 \+ x z7 b SetManaPoint( GetMaxManaPoint() );
' F) g$ k# P3 E/ x& A/ V8 L SetFatiguePoint( GetMaxFatiguePoint() );
6 G8 d% K. X6 a5 Y if( nJob >= 1 && nJob <= 4 )% c) |. E/ ^) L( d
{
! v& u% Q3 @6 a. Q# Q% F, K m_nStr = m_nSta = m_nDex = m_nInt = 15;" Q1 Y6 A6 |0 R* @3 i) ^' a
m_nRemainGP = 28;$ [" j& T! `* j6 N5 w# U
}# _3 Z; X, T' h! L- B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 {8 q. h* X* f( I& r
{4 }6 g6 {: I( i& r6 \$ m
m_nRemainGP = 118;8 H2 b4 A! q/ }- S& j4 H% N' T$ b1 N+ d$ {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 ?/ A$ n. e+ x3 q- B# C( T1 S m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 W- j! n& U8 e) A" P }
" V% D k8 _4 }2 H6 l7 U& j, r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 `: |2 _8 A* d) `, C
{" D! J, J% ?8 @' ~/ X
CItemElem itemelem;# X* N+ G6 W! p' _# a* @
itemelem.m_nItemNum = 1;
z5 [* W1 Y0 @3 {$ c/ _ itemelem.m_bCharged = TRUE;
2 I" b% W* R) C- F: c( [8 x BYTE nID;- O& X4 I" I+ {, j5 k
( W j( I- s4 |/ T$ p- k
if( nJob == JOB_MENTALIST_HERO ), _3 y) S- H) Z8 v9 E5 h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ z: L- u7 m9 J i
if( nJob == JOB_FORCEMASTER_HERO ), a' I7 ~7 F3 P5 n$ Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; }5 m$ A4 R& B r( t! [0 ]7 [3 g8 E
9 r4 T7 k# J8 y H ( ( CUser*)this)->CreateItem( &itemelem, &nID );! f* B' Q. e# v1 o% e
}
5 C( s! ]' M& _9 l% N7 c5 z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ n) K4 i1 G% K, `4 }# T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) {- }) G! [4 m: F3 M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 E+ w3 o* ]' Y% G+ W, v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 N3 u- n) [' \
( (CUser*)this )->AddTaskBar();*/0 S( z# g N( L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ O4 n7 n- L& o/ ^) G; g# g
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# D5 |' H3 V/ u, N3 G3 N+ V% g% f ((CUser*)this)->CheckHonorStat();
# I+ z- V( f* ~1 w9 T ((CUser*)this)->AddHonorListAck();: _3 t, E8 ]# D, R" L* g& }2 P5 E
g_UserMng.AddHonorTitleChange( this, m_nHonor);. {/ P+ n! d0 w, F( z B
#endif // __HONORABLE_TITLE // ′Tà?3 Z; j! g, z- J; ?" l% c. ?
}+ _2 a! w8 S+ k2 Y2 ~! I. M5 h
#endif // __WORLDSERVER) R' g0 H& a" L/ C5 |; g
}
' e# i, l4 t! n7 P
/ W, a$ i, k: Y然后你进入functextcmd.cpp并添加以下
# e$ I6 L0 c: b
* G& L D2 e) v% y. t! ]. U代码:
5 F/ I! G2 Q0 EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) j" M- H% n/ W
下面插入
3 x' V0 \! w+ f1 r# K) X5 i1 h. xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 t5 m; C% g# J; Q. Y. D0 C
7 O1 X( I( m3 v- T然后你去4 J9 ?2 l, }8 s& s4 l- @+ p
1 e. t2 h4 @5 r- E# c- ^代码:3 t& [! J( L: Q& P/ }& t# s. Q
代码% t9 z& t( v8 `: X
BOOL TextCmd_ClearPropose( CScanner & s )5 f: [) x! T5 C+ J' Q
{9 W. ]1 j. p8 ?; s5 E* a- x, R
#ifdef __WORLDSERVER+ _) k+ |) r+ I
CUser* pUser = (CUser*)s.dwValue; e# D5 P5 H1 s# r, h
g_dpDBClient.SendClearPropose();* D6 S/ t& c/ h _
#endif // __WORLDSERVER/ g- f: F5 O+ S
return TRUE;
3 c, c8 n5 D( Y7 \% {# B1 E) `}
* T0 N0 t l. T& e& o) I8 Y下面插入) W6 q" j6 T2 N6 V
BOOL TextCmd_rebirth( CScanner& scanner )0 n. q- a/ g- k( S8 [
{
& f: [( Q; }' D" O4 L& T3 T) n#ifdef __WORLDSERVER
& X% Q$ k/ a( c. ZCUser *pUser;# z9 y p/ C! _ G* u8 c: j
pUser = (CUser*)scanner.dwValue;
, I# K$ w! U P* Vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 D: b; x0 Z- fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. A4 B( |$ U8 E, O# C( P7 ~else& ]' b! g! a$ K% G
pUser->AddText("你还未达到重生条件!");5 Y; }0 S; E1 i; T- d7 I y! M
#endif
: T3 d+ N5 w* `/ G" w# xreturn TRUE;9 I, v. U3 ~3 D" Y+ ?1 c2 Q7 N
}
& `5 E, C! i2 a1 b+ G1 f0 k9 E
! T% ^# ]0 v7 z7 G5 x1 `2 C' D6 G$ n x3 v/ a
/ ~2 p0 D, `% w6 [$ X% l8 Q% K3 M1 d; ]& N# p, U, b
|
|