|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ ?# p K K2 d2 H' U& V8 P( k. D5 q9 M! |- r
Mover.h
$ | r/ a- y- P2 d代码:# K0 Z; @3 X# J' F
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ I$ O' N3 c ?0 I2 B
0 _) n! ?' Z% D$ N g Z" `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 G1 J$ k5 P6 a& [, @: u
# z0 U i: |% A( y* A' i1 u
然后你去mover.cpp添加
/ [+ j' W. v4 u- r4 B: |
+ S y0 M8 ]1 i" E) i7 s代码:
9 l) `2 D# k# qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ I8 X) [1 Y# |0 q. c{( K" k+ E# C+ M2 K8 b2 M
#ifdef __WORLDSERVER: x: a1 }; k; i, M. ]$ F( h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( d& o* b) {0 h9 z1 R4 `$ | MoverProp* pProp = GetProp();, y' J3 l3 |; W; q( J6 E1 u
if( pProp )
5 N7 t/ H9 v @9 X {
2 h! x* n R3 t; E0 }" t1 ?# A if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% F# J6 Z V/ Y2 c9 _9 s {
' \+ }. D, l6 u0 |; @" u AddChangeJob( nJob );
2 z7 N$ y: U! W }else{9 |0 l2 o$ b8 [, U9 M6 v, s$ c
return;
; \# w/ g: c# S) Z }$ o9 p' M" I' {+ N$ @7 N( V' |
int nPoint = 0;
9 H1 G$ z Q0 v! G, Y if( m_nJob == JOB_MERCENARY ). N% f7 n4 @7 N* i- O
nPoint += 40;% Q2 o2 W4 n2 O Y3 @9 H
else if( m_nJob == JOB_ACROBAT )1 k& M8 v1 y2 W
nPoint += 50;2 s8 O( X0 w" H4 _, M2 P# F
else if( m_nJob == JOB_ASSIST )
5 ^* U# v' e, v2 ?. D; J3 ] nPoint += 60;
! c( B( a0 ~& D6 D6 Y% J4 l4 f1 } else if( m_nJob == JOB_MAGICIAN )# e3 X ~ I' J* X* B
nPoint += 90;
$ O/ g$ m+ t& p( V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( ~. A4 N1 Z$ Q. Q+ j: {$ D
nPoint += 120;
. o: m+ h4 c! a3 S, N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) x/ `, U% g8 L' o+ a; H
nPoint += 150;
% I, ? M7 M& A2 K4 M3 d; H1 n, } else if( m_nJob == JOB_RINGMASTER )% ] K$ d4 v! u/ ^
nPoint += 160;
2 @$ X0 W5 X K5 `0 @ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); [. _" e$ b: V3 h# v9 J7 k' B
nPoint += 180;
$ q% q, n! H4 i/ h/ N" Y else if( m_nJob == JOB_ELEMENTOR )- n, \: ]" g# `1 d0 c- `1 r
nPoint += 390;
+ v* q+ A! u3 x* } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). ?; G* f+ a- P( s5 |( E- P3 o
nPoint += 120;! B, l9 e9 g( K: [$ [; L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): ?2 D5 e- T5 g6 N
nPoint += 150;& ?9 y% s) ?- W/ Y9 L2 I
else if( nJob == JOB_FLORIST_HERO )& i$ M3 d/ q( R- p! V
nPoint += 160;
/ O& c$ P0 p' G7 i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 I1 s2 m, [2 r
nPoint += 180;7 b$ c# O3 d: \2 H( z
else if( nJob == JOB_ELEMENTORLORD_HERO )# Q% |3 @% k, x+ o3 c
nPoint += 390;8 A% V5 j% Z& p5 ^( i' i( F6 i! S
7 z/ h. g. W8 s
AddSkillPoint( nPoint );
9 x* C1 t% ]- x m_nLevel = nLevel;- h! A9 D$ K2 M1 H; a
d" Y' \7 ?+ H; d" N0 N SetJobLevel( nLevel, nJob );
" t8 h) {$ i0 i9 P% i m_nDeathLevel = nLevel;
$ r8 |; O7 J0 G) W+ {3 v+ J#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& z+ u5 t) X% S4 \
if(IsMaster())
, V! @! F8 B5 Y# U7 P$ I. _ {
$ F3 U/ ~9 K3 o3 Z6 O* ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; k* n+ h) L+ [( f! Y/ Z1 r if( nLevel > 59 && nLevel < 72 )
; ~: A) V! v. ^, I3 S4 E dwTmpSkLevel = 1;( B+ f2 g7 j& x( {; h
else if( nLevel > 71 && nLevel < 84 )* Z6 T. o2 s( b' p. L- A) D
dwTmpSkLevel = 2;# f2 ^7 r! A0 e3 K, U7 A- E
else if( nLevel > 83 && nLevel < 96 )
& T/ W: @% H& }3 p) f. n4 E dwTmpSkLevel = 3;. b6 K5 K7 ~% F
else if( nLevel > 95 && nLevel < 108 )
; J. C6 X+ f+ k. ? dwTmpSkLevel = 4;
" ] b& Q( A4 t e+ D! X else if( nLevel > 107 && nLevel < 120 )
; C* C1 B1 `) ?" D) z4 ` dwTmpSkLevel = 5;
: G. z* p# k) h6 J+ d for( int i = 0; i < MAX_SKILL_JOB; i++ ) & d9 k2 d! d* Y5 g
{
1 X* }( D+ E; s2 P ~& N/ T LPSKILL lpSkill = &(m_aJobSkill);
; Q: R& N1 \2 u: y$ i1 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID ), n5 N1 C8 a# M; K) @
{
0 v6 k& _7 E, S0 K: Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 k% ^3 O; A7 j. e, H3 d1 [' m
if( pSkillProp == NULL )
* r) O2 [ ?% w) x2 _ continue;: {$ i0 J6 S5 E' O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- V3 |, N/ r' w* r1 F: d continue;8 {0 ?' s2 |9 u5 ?, W: j
lpSkill->dwLevel = dwTmpSkLevel;
; U3 B$ ^5 I7 r7 m1 E }
- r1 G/ O; f% c }7 b: l( I5 w+ M2 J- ] O
}
; u O- h, E: C) S- w1 d' X$ w else if(IsHero())% O) g. M) b% F' o' o
{
2 Y2 A: T1 R6 x/ \8 w! _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
% u+ H, s$ f- A {
9 A6 P# j! t$ {2 J9 i LPSKILL lpSkill = &(m_aJobSkill);# k1 N' x# H. A2 F \ j( E1 Z! f$ }
if( lpSkill && lpSkill->dwSkill != NULL_ID )& m8 q$ [1 e& Q4 k5 \, Q( O8 J0 z
{
* t; z0 z3 V8 }# i8 t G" N# r f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 W( d7 Y, W$ Y2 }7 a if( pSkillProp == NULL )- B; C! m1 D% ?( h4 A, y. D( y- ~- F
continue;# d2 P+ z. h1 I" A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 f9 L: ^# k2 u; K7 }' z0 I; z continue;/ K6 m0 _- R" }# T4 R( e2 Z4 n
lpSkill->dwLevel = 5; L; E( u9 f: r4 m. `
}
5 G7 a& f- ?7 z9 G2 a' ^5 j: H6 n }
' M) w5 P9 }8 r9 d }2 M& `# O6 X+ @, f$ b( G: _) B7 e
else if(IsLegendHero()), e# H# `& q/ R7 I6 J4 ] w
{1 d3 _6 f, D2 Q6 t3 |+ ^$ s) t$ t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - g( o/ W% S3 Z) q# |! O( z. X6 o3 G s& K
{
/ y4 E6 G; V: b7 ]6 l9 z LPSKILL lpSkill = &(m_aJobSkill);# ^" r4 J1 z" h$ G* e% w( m3 [
if( lpSkill && lpSkill->dwSkill != NULL_ID ) z3 C8 Q: ~# D" U( O2 S7 }
{
: t. p W6 |0 e. A _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 f, {: q3 k# R& C' ?8 } if( pSkillProp == NULL )/ |2 g3 Y- ?2 w' h6 p4 C4 ]3 z
continue;2 c% Z3 {6 u& B' d; B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ {: @+ H+ ~4 c
continue;, O& @- f- d, Q) O2 K
lpSkill->dwLevel = 5;
' M$ q4 t1 z5 C- x g) D5 e. _4 P& i( q }
0 K/ R# c8 J( B$ Z. D3 T/ K* `! O7 d }! U2 ?8 Q2 I; E" J2 q0 T( x
}: T( h {! {# |* O `# V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 L% }, }% Z& ]9 I& X if( bGamma )4 J- C3 H0 D/ O, x
{
1 o0 O9 I# p5 i( v# C% z3 ~ m_nExp1 = 0;* a0 |5 o& E+ y. H/ |
}
/ C) H$ O! m$ }6 ]( a6 w
* C% B/ J6 ^+ g9 ?3 a z ( (CUser*)this )->AddSetChangeJob( nJob );
# y3 q4 s( O! p g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' a& U0 p+ U* h' _
6 \% ~7 G1 |9 {8 `. J, X
5 C7 b2 }4 ]( i5 i H#if __VER >= 11 // __SYS_PLAYER_DATA- i1 B7 @' j$ X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 S) ^7 O+ O7 F V
#else // __SYS_PLAYER_DATA. k3 j M4 P0 j/ B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ B8 X8 u& E# }* b* D# L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# M. I$ f& ?- x2 b. d
if( m_idGuild != 0 )
) `7 t' ^3 `8 d: [4 V7 w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 x* V0 V- h. e2 G& C$ z% F#endif // __SYS_PLAYER_DATA
7 h. b, @% c2 ?4 r0 {/ @ SetHitPoint( GetMaxHitPoint() );# h9 q+ ] W# }" y$ }
SetManaPoint( GetMaxManaPoint() );
- U7 z6 _! z9 A. }% T! X4 e SetFatiguePoint( GetMaxFatiguePoint() );
- Z! n: m' g, F' f) C. C if( nJob >= 1 && nJob <= 4 )
! a* w2 }- A9 r2 Z7 ?+ Y. _8 @, y {' k6 ]9 J9 Z! Y; v8 N& {4 a; H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: w+ Z9 K5 ~) I8 [ m_nRemainGP = 28;1 _& f( P' ?. w$ C r! b7 [* S8 l
}
7 |" E6 c n" V9 w! j2 E" v if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 r) \, e4 [3 j$ J. E {
7 D4 Z) P- a I ^% }# Y m_nRemainGP = 118;' R+ S! N# z! b! @& g$ Q4 z" X8 O
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, q5 S, A3 @4 r( [) J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 r+ d6 |- C4 D# X U }7 r5 |* f8 ]4 L+ e) `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& }6 V) v( M' o1 X7 I% ~ { ]' g6 G8 N* }$ j
CItemElem itemelem;
4 t$ T' W; I2 [ itemelem.m_nItemNum = 1;* H* P( |. v& i
itemelem.m_bCharged = TRUE;) H+ Y; s0 Q; e5 }) F; ], b+ C" ~
BYTE nID;( K5 x6 ]4 F3 V, Z$ u
1 t( r- I: Z( n7 j$ ` if( nJob == JOB_MENTALIST_HERO )
6 C B; _$ |5 w# ]3 `$ Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 u: c1 K, ~$ K& J* M0 `% [
if( nJob == JOB_FORCEMASTER_HERO )
1 a7 t8 B* \4 ?0 [4 F6 | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" f6 C' O) z9 @$ N4 i2 ^8 Z% d T
( ( CUser*)this)->CreateItem( &itemelem, &nID );( O7 C1 i* k9 @0 C
}3 v' T7 {2 h6 |+ I- R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 \5 L0 I4 ^( ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 p. }, f( }- w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 z( _; f% \" u: m- {6 o3 H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 F$ A3 a- D% ?# O" e, s ( (CUser*)this )->AddTaskBar();*/
3 p0 f G: |0 g8 p( v/ r, x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- \0 j$ V. Y6 r f3 M. P#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 q& n6 R7 M' J9 A: d
((CUser*)this)->CheckHonorStat();( U, r& X) o# |( x9 j
((CUser*)this)->AddHonorListAck();
* C, @3 d- {4 V. h6 `8 w/ ^: X g_UserMng.AddHonorTitleChange( this, m_nHonor);
# k: ]1 }! W4 ?7 E4 d#endif // __HONORABLE_TITLE // ′Tà?6 y/ {& v4 s$ B, k1 ]) ~8 S
}: [2 e7 _5 _* N
#endif // __WORLDSERVER$ g- u- x" R# K
} : Q- I9 _8 F* Y7 }' m% p4 T
) e% Q7 X& |3 X! f5 d
然后你进入functextcmd.cpp并添加以下" ]: N- b' ~, H7 w1 B
4 V5 C& {) R8 l/ h8 _
代码:
( w3 e$ j( s9 s+ x; wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 b1 |8 r) _1 w下面插入
y4 ^, q d8 z4 _; ?ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ J4 b* _: A" u
4 b) C) |$ p" q% r然后你去
: P3 B- k `2 @8 b* x8 x+ S6 {! B: `# k w9 X s; d r# [9 t
代码:
" v$ J& N% I( w4 G* u* e3 k代码' T% ?2 g: X( P3 J
BOOL TextCmd_ClearPropose( CScanner & s )4 g4 c, Q& @* p: e1 g; M$ z+ K0 E O
{% g* Q2 I; a, E2 W2 ]6 ]
#ifdef __WORLDSERVER
3 P+ C% \$ q7 W3 `6 D CUser* pUser = (CUser*)s.dwValue;
% `5 _3 w4 ` A/ n2 {8 i2 q Z: Y g_dpDBClient.SendClearPropose();/ P! _# E! W' a7 K6 S% T
#endif // __WORLDSERVER
! {- u( H% v9 L0 d- h0 Y0 k0 z return TRUE;
2 P- D- z; ~2 N1 R1 j. x}
$ T. e6 E/ s7 w2 \9 }下面插入! l5 i9 Q: r: I8 b( g
BOOL TextCmd_rebirth( CScanner& scanner )* [/ J6 N" [0 R1 k- M; H7 n
{
. R" k/ E# O$ Z1 k#ifdef __WORLDSERVER
- ^- B9 s* N; {* Z3 h) f& c0 x$ ZCUser *pUser;
8 P/ ~# Y9 z3 c# B! BpUser = (CUser*)scanner.dwValue;
0 D- e$ R7 V' _1 l/ H- J4 D2 Mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 p7 ~# x v3 D; P3 H2 XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' D" t% x% }7 f+ b% x7 v gelse) M6 Y Q4 y' T4 I' @
pUser->AddText("你还未达到重生条件!");* U. ~6 a: Z) f! S
#endif
3 X2 u0 q$ h0 @/ W$ z% h5 Xreturn TRUE;
2 n# W* l2 J3 M' y$ ~- B}
7 z' X+ h8 S7 [* T* Q& p! _0 e
# V: _' W# _$ q( E" |; g8 {4 \9 I+ X- D
9 g" h, F# d2 q7 z8 e5 k1 _' O; p7 i# N8 K
+ t* u0 o# f) \* o P% }
|
|