|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- m' ]4 s/ h% _$ R( v
: ~4 p$ _# D+ W4 zMover.h- m/ ]* Q: [# f/ j8 W6 d7 L
代码:
* i7 S% B. u' q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 d; n2 X; ^" _) m
9 E: e) A7 @( Z" u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" {5 ^) _5 B+ Y G5 F0 P; {# r9 |) i, N0 s, o3 r1 Z0 f! l$ E5 ~
然后你去mover.cpp添加 h( P3 Z% b/ T1 I! {
& j8 G) n0 t& q( B代码:; `1 g6 U# _8 q, s# c: E% V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 m" r0 \# N9 Q" a* D$ J
{: |9 s4 K: |2 {" l
#ifdef __WORLDSERVER9 J% o. @* ]( L6 F1 R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' O% L" ?+ C+ v* D
MoverProp* pProp = GetProp();
- {. p/ V2 x& w9 R# ` if( pProp ) ]$ H' q$ \' ^* h% X) a
{
$ a0 i6 n' Q( k- p if( nJob > 0 && nJob < MAX_LEGEND_HERO )) ^% q3 ^! E w
{
( X7 f& [5 d$ i' d4 |3 K/ d AddChangeJob( nJob );4 |8 a& F2 k: }1 E7 P$ \
}else{
5 Y5 n# f' X" t$ u1 P; F return;
; l$ f( t1 Q5 B3 [$ V( w }3 i% N1 R7 ~) B6 O" y$ B. Z% L
int nPoint = 0;
9 @. K7 \: w2 ]$ @3 V% S: f if( m_nJob == JOB_MERCENARY )7 Z1 t& y# h: e% e7 W. r. Q4 L* h6 f
nPoint += 40;
, X; F7 \" X7 l: P Y else if( m_nJob == JOB_ACROBAT ); d! L+ y- R# r( T6 e
nPoint += 50;
/ n# T% Y" M p. u else if( m_nJob == JOB_ASSIST )0 D( j7 x2 m4 p, i: c
nPoint += 60;
$ r, I8 e1 q7 z7 u else if( m_nJob == JOB_MAGICIAN )
' x. [3 g# N8 k. S# H. w& G nPoint += 90;3 N6 u1 F1 h" D; r# E1 _; i" o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )/ j9 t5 L9 r( b* ]0 }6 m% T7 e0 ?5 d0 A
nPoint += 120;
4 r/ u8 i* J1 Z2 p8 j1 h( e else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) Z7 N; o5 p1 S5 @; m7 P. @
nPoint += 150;: K8 b1 r% q# }" q+ @
else if( m_nJob == JOB_RINGMASTER )
0 L& E& H% W4 w4 P: R7 x7 W nPoint += 160;
5 \' c) w- ~/ d4 L) Q' w5 }$ k else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). j |: A9 _5 d
nPoint += 180;
$ g# |% x& N/ L2 c' l# U& k else if( m_nJob == JOB_ELEMENTOR )( Q( H$ V. T2 ^: j4 _2 P
nPoint += 390; z. Y9 W% k i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" x m- i5 U7 _# x. G nPoint += 120;4 N. g8 z" g& O2 @
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 o0 g O; c' j1 D
nPoint += 150;
8 F% {0 p) e0 v; s% o7 [ else if( nJob == JOB_FLORIST_HERO )
6 C6 x9 \ N; d5 H8 y, `; I nPoint += 160;1 E, Z" K+ {& D+ [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; V; U" _$ e8 H8 U [" E6 [ nPoint += 180;
% x1 E$ m* { E, c2 A* b else if( nJob == JOB_ELEMENTORLORD_HERO )
% ^' [5 `- U5 @ nPoint += 390;* f: _9 I* g* T- T2 H
# S# B# B1 r/ M3 o& o& B" H" q3 [+ Y AddSkillPoint( nPoint );
1 T% [ M& k1 ~ m_nLevel = nLevel;5 j' S7 [1 {! p9 B( P: C
5 k. N5 i! E$ B( }! R5 D SetJobLevel( nLevel, nJob );
v- q4 a4 D2 D2 D" X m_nDeathLevel = nLevel;
6 p- B6 ?+ C) [- P& n' f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* L, L; X t7 D N( v
if(IsMaster()); X& J( Y0 F% d& U+ P: s+ z$ |( X
{
+ G* ?1 v" H) R; L. V# |& h$ E9 o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' C$ u0 Y& M s% Z! D2 \* ], ~
if( nLevel > 59 && nLevel < 72 )
; L; M N: N) T$ ]7 {; t dwTmpSkLevel = 1;
$ N( ~# e9 }! y, X( w6 w$ P else if( nLevel > 71 && nLevel < 84 )" m+ F! L! w! e* u* V1 k2 ]
dwTmpSkLevel = 2;9 K. |/ E9 ]$ B$ R! i0 m; B0 Y7 Z
else if( nLevel > 83 && nLevel < 96 )9 Y# C1 v0 e5 k/ d! }5 Z0 t' r* @: z
dwTmpSkLevel = 3;$ J& z' g- f; m
else if( nLevel > 95 && nLevel < 108 )) {' L8 _9 X. @1 I+ ]
dwTmpSkLevel = 4;
- y7 i& A! n" m M3 j' _+ N. T else if( nLevel > 107 && nLevel < 120 )
! a& }/ K/ h% ?7 T dwTmpSkLevel = 5;
0 a6 j) A- I* T2 M8 I8 |3 w+ [1 B for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 e2 x" P, S3 T1 T+ R$ q {
% H* A7 h6 j4 A+ L6 x3 U9 v LPSKILL lpSkill = &(m_aJobSkill);* u: {$ [% ?! N1 O3 F E, L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: {6 M3 n) D Y2 x# N- U {7 [, P2 D: P* f8 Y2 y/ u; u8 y7 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % T2 p8 d" b* O" a _
if( pSkillProp == NULL )
4 p, {& O" z; e+ _! S# N4 c, s2 p4 N continue;
3 ?! V& @8 O) {7 B8 W* o! ^6 T% [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. W1 n8 z& ^1 H# i) \" m continue;! |, R v& e9 f% t' [
lpSkill->dwLevel = dwTmpSkLevel;
1 W3 Y R$ F9 D+ T& V }1 D2 c+ q- O3 Z# M& d9 F" o
}
' _7 L$ {, [" I; _( f }8 |* [: [1 h$ E7 O* }0 G Q" r8 T
else if(IsHero())7 w! b6 @7 a# c' t# B" R
{
1 M5 t, o1 `3 H+ B3 a for( int i = 0; i < MAX_SKILL_JOB; i++ ) " o+ \0 q' Y5 s7 T6 \: B
{
/ [+ g) m/ H h) C( d& c LPSKILL lpSkill = &(m_aJobSkill);$ o; V. ~9 M. R7 M$ D+ u7 C( |8 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )# }% L% p: g2 E( a/ U
{% y" N# m$ v& v) g- m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 X1 l+ V# z3 y" e# H
if( pSkillProp == NULL )/ N" E4 U4 F8 m$ W3 z) h
continue;1 E8 Y" x7 J. l' w8 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 b3 |0 A9 Y% \! `$ x
continue;
9 g8 h6 w4 S4 }) k) z lpSkill->dwLevel = 5;% T% i( N2 r1 d6 I) r
}: W; Y7 S9 R6 H3 l1 P5 p
}
6 @0 [! F3 H0 ~4 f8 Z! b }! q! E; O3 }# \& ~( ]! \
else if(IsLegendHero())6 D- u9 w. j. m* d' G8 m
{
* X4 H7 o/ z, V1 {; C* i for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ v, R0 R- ?% J0 h7 A {
4 w( v) i; I8 a7 H LPSKILL lpSkill = &(m_aJobSkill);) L$ i% ? W6 C: K0 M: }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! l; V8 Y: B) y' q0 y$ E1 C, D" W3 Z {
( ^, j2 `8 \: Z- a# \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 O* P0 f- t# E$ V' _
if( pSkillProp == NULL )
9 ^$ I y$ g) Q& u continue;: @2 p* ?, ]+ |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" Z; X D" \1 g5 `4 q; F, ~& Q) `, u continue;3 }9 B9 g- B" o- Q# B, l/ `) k
lpSkill->dwLevel = 5;0 |' ^- M6 Q2 A1 G n3 b- o
}
# ]% {4 ^( |4 ]% W6 O' ?/ L }
- A5 ~ k$ R# x2 a2 b+ o( L- P# M$ T }
/ I4 S; z( v8 E- Q- ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 ^+ _+ ]& l; q6 P. R! Z
if( bGamma )
) H5 z$ [2 i5 u7 z6 e {
9 K% t M. k- T' Q8 y0 P5 V6 A m_nExp1 = 0;5 J& @" a3 K6 G* U1 f2 @
}
, e; G) ^& X' x& r& [" n4 F0 h
" L' ~) _; _+ C2 |& F ( (CUser*)this )->AddSetChangeJob( nJob );
2 C W; s) O2 ? g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 s' |5 @* P* x$ g8 V5 N
7 p; _+ e# L' ?# j; a7 m, I" D' b* j
#if __VER >= 11 // __SYS_PLAYER_DATA
8 P; H9 L- n2 S. D( k. b& `9 U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 _* ?6 P% ?1 i6 m N. U#else // __SYS_PLAYER_DATA' b, c) v$ R" E6 e( q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- Y) o2 @4 k: C* T0 p g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 w* C8 }: ~( _) o8 ?3 V( Z- d
if( m_idGuild != 0 )9 `/ l( j" f) L# Y+ S9 o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- w- _* r. @: e- c) p
#endif // __SYS_PLAYER_DATA
6 Z. d; N. {9 _ SetHitPoint( GetMaxHitPoint() );
% Q8 J" o+ k5 e$ D9 ^7 s( ?2 n$ g8 \ SetManaPoint( GetMaxManaPoint() );
7 y$ p0 \+ J* Y SetFatiguePoint( GetMaxFatiguePoint() );# I% k4 r: {3 E5 Y0 u
if( nJob >= 1 && nJob <= 4 )
5 v& l& I% L6 q {1 t# N* E. `' j1 n7 ] t
m_nStr = m_nSta = m_nDex = m_nInt = 15;# a- O$ S# s/ D j" Y
m_nRemainGP = 28;
" _6 ^5 r; @" `: I, U4 p: u C }
8 c! X" I$ G2 R3 E/ O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 {" r4 _& \2 y3 a8 r2 U {
! C9 ^: d0 z7 q, D3 W9 n+ i) S m_nRemainGP = 118;
0 `+ s6 p ]/ U+ { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ k( a; h( Y8 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
& ^) S5 c1 ^- C/ \1 V }
6 w6 J9 A5 I. F& D3 E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) d" r6 p% I( s( }" J
{
3 G9 a4 G) b9 d$ H; | CItemElem itemelem;8 Q+ P. [( D _* h
itemelem.m_nItemNum = 1;- h% s: z5 g4 e) c3 u6 [1 F& m! M
itemelem.m_bCharged = TRUE;
* e8 V9 V( I* l/ V. E7 Q2 U! B% A BYTE nID;" @& w. `- w) Z5 D' B5 t' @
: D; t/ x1 ^$ c+ x/ }' E2 _* h- b if( nJob == JOB_MENTALIST_HERO ) g L! `6 x/ S0 A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 }3 B, Z/ V& F8 V# d if( nJob == JOB_FORCEMASTER_HERO )
: S; i4 H/ o+ r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! d: ?! Z0 U: @& f
2 F2 s l0 \& F( c8 A7 y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 z, j) L& z( L+ O9 A }2 W: Z( U7 t2 n9 X; D* U2 ^9 S4 P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% ^- A6 I: m2 t$ F# t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ {2 F1 r% R$ A; r/ x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( N8 R, p, g' {3 J& z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: u' r; |: G) A, M3 C# D ( (CUser*)this )->AddTaskBar();*// K! o7 h, @7 R: }
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% T! O6 ?$ a8 U, r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) n/ q; j* b6 A/ B8 s, M% Z
((CUser*)this)->CheckHonorStat();
* I& D7 _4 o& b/ g$ L ((CUser*)this)->AddHonorListAck();+ G. T+ V+ c; a1 ^* ^
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 V. Y7 y7 _/ d' k/ e% a. f: I
#endif // __HONORABLE_TITLE // ′Tà?- e' R% m6 D/ K: p0 z' s
}6 h# V+ P/ Y6 K/ X+ ~
#endif // __WORLDSERVER
' z# S4 |* _: Z: w} - A( e+ K8 O9 ?# Y
2 [" X4 t4 b5 i' {2 S! D然后你进入functextcmd.cpp并添加以下& K6 [. P2 |' O2 X. m5 h C
# e6 W/ k7 F' ?/ Q0 T代码:
6 T" c- z5 B+ [6 O- [; kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) [- K. t% d. q下面插入2 Q0 e9 N+ r6 h# s6 b8 S6 s% p3 ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( d8 t1 g! e9 @8 Y8 D5 T
+ m' v# Q& N: X# w然后你去- R& N( T/ }( X7 S- z, G
. @8 T: G T6 M/ E6 U
代码:
8 H2 f- Y& v! ?" {$ r代码' F% o9 _* G7 o% r2 B* [8 x) B
BOOL TextCmd_ClearPropose( CScanner & s )$ I3 s( X5 R& v+ P0 K) K
{
1 S' U$ x* ?8 w4 w$ I) V#ifdef __WORLDSERVER
& l/ J5 ` U; O CUser* pUser = (CUser*)s.dwValue;
# I) R* z. ^% I" `( i' B g_dpDBClient.SendClearPropose();+ U( s1 \) B/ _ f
#endif // __WORLDSERVER& G g* S: ~6 n0 U, \4 O. ?
return TRUE;
% A1 \6 U- N! u! t0 m}5 \4 E/ f& m; f# E! c; s
下面插入
# _( ]. B G- w9 z/ f5 W9 P6 @BOOL TextCmd_rebirth( CScanner& scanner )8 p5 D: _* [! E
{7 f' T- @+ v0 B j- F* S! w5 Y
#ifdef __WORLDSERVER# `% s% k) L H
CUser *pUser;
. N; C& `- j4 ~pUser = (CUser*)scanner.dwValue;- ^. p9 r' C y! ?
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( w( ^5 T6 n3 z# a \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 W5 Q5 h- h; y4 O3 Eelse
7 }" v& t; d$ V8 M6 bpUser->AddText("你还未达到重生条件!");
0 L) |% j/ m+ l4 J. a#endif2 `, y3 J6 t2 i( h
return TRUE;
1 z3 e+ G3 \" F6 E- d7 K5 d/ j! Y}
8 c& I% B( i& ^
- r& b, j. P3 b" V2 |' z! ]) R$ N, J
3 n) M+ t6 j' j. h5 U- e. Y7 o4 f
}, P7 ~$ K9 [& R! H
|
|