|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% z+ y- g" C! X3 [+ Q+ J8 V, v
; A5 Y$ {- }+ S/ n- B' V2 f
Mover.h/ U- {3 u0 N) T* k2 @! ] a! i
代码:* a" ^2 d' G/ j5 {; c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 A# d2 e7 J( s; b9 h) _
6 \9 D$ n2 f Y8 `+ w下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - } K, c" ~2 J/ _. Y' r3 K" U
6 v% }: g# J" J; u9 M; m- I0 Y. X然后你去mover.cpp添加& R7 m. q. @3 Q, h( L3 w
, Q6 l5 [% g' Q( X% j" y% v2 ?代码:" z; D& ~# P5 z$ { m6 N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 r4 D$ I9 }, p& i- F6 S- d{, c) \. s$ h* Y
#ifdef __WORLDSERVER
7 T8 h6 {$ m: W4 ?+ p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ v$ \, p" N$ n) g( ^. f! G/ _7 t
MoverProp* pProp = GetProp();
. i' o5 o9 Z9 i g( F if( pProp )
: k' I$ V! W8 x' B8 g+ e, o {
" \0 c6 t/ O, G2 b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- \1 e6 J ?4 B6 \8 C+ G6 t2 m {
' d$ h2 [2 G* _1 K AddChangeJob( nJob );% @: n9 O5 N6 F
}else{
: p# p; ~) q1 W8 g return;
' {) {: b4 a3 R( }% ?6 z; W$ F }' A4 {" r' q1 Y6 H/ d p6 X# L
int nPoint = 0;+ x7 x3 @" M( X
if( m_nJob == JOB_MERCENARY )0 u L6 G# l: I4 t3 E2 e
nPoint += 40;
" p4 w% B; U$ s/ } else if( m_nJob == JOB_ACROBAT )4 K8 J* c4 v6 A' ?! A; q
nPoint += 50;) L% ]: ^0 D( V+ U" d! A+ \! O
else if( m_nJob == JOB_ASSIST )
3 u1 `8 ^5 ]6 S/ P3 Z) E nPoint += 60;
5 w, b4 A" z; b! C else if( m_nJob == JOB_MAGICIAN )7 c* I) f* v* D
nPoint += 90;& j9 E, h0 ? R# d1 v3 y- C1 V. R
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 G5 z3 H" _* K5 a
nPoint += 120;* D( U) h# r% [( X6 _) O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 h9 x( L8 |" z6 D: G nPoint += 150;
* M( d8 |- V) T _" d else if( m_nJob == JOB_RINGMASTER )
- Z5 F, W! d+ [3 r0 x* A; d; ?, \ nPoint += 160;
% F, |* u) G& d4 B6 t6 d+ i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( U8 n- f. ]' c4 i' c nPoint += 180;0 m1 ]8 l" O) x; F) d g/ L
else if( m_nJob == JOB_ELEMENTOR )
! \: s! R( x% T% Z/ o' C nPoint += 390;* u. T) n5 ?8 s" W- j7 E1 Q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); Y1 r! Q, f% X: H
nPoint += 120;
! \( A3 u- d; {: ]. R( f2 I- e2 G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: _! m. L# d6 ` nPoint += 150;* `; Q' M. c, I" I3 ~
else if( nJob == JOB_FLORIST_HERO )
( m2 U9 Q# _4 F; o$ H ^) E! e nPoint += 160;
( q* T' ]( n- b' e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& m5 ]$ C$ o+ K7 ?2 r5 F nPoint += 180;
# l; U2 t& O+ O% `7 O# Q! J else if( nJob == JOB_ELEMENTORLORD_HERO )- j$ R! _6 R5 E
nPoint += 390;: m2 p5 F! t1 |5 c, e1 J
9 E' q2 B2 ?. T" h2 _9 j. H AddSkillPoint( nPoint );. {5 |# Q" D1 S3 @) h
m_nLevel = nLevel;
+ n% F3 l4 j' f! D' _
$ K. ?3 h7 F+ \: R+ S, X SetJobLevel( nLevel, nJob );
" P( ^* I+ A E m_nDeathLevel = nLevel;
i7 b& t1 S+ X9 K! e1 F9 }+ e* ~#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 L1 P( S2 J) s# u) F) Z6 x if(IsMaster())
2 H* d6 t+ _: P) E3 H, w {1 [' x( m; U. e3 t! n) N( \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 [# {3 u0 D5 J5 o7 ` if( nLevel > 59 && nLevel < 72 )7 @8 L- M- f! X7 `5 l
dwTmpSkLevel = 1;
: q1 B' d+ o4 f/ [! S7 Y else if( nLevel > 71 && nLevel < 84 )! T% v) }' r ^
dwTmpSkLevel = 2;1 a+ R* `1 ]( Q) w1 `; `* s! t
else if( nLevel > 83 && nLevel < 96 )
1 N6 ]) ]9 J3 Z/ D dwTmpSkLevel = 3;
( D9 |/ I6 ]" P9 d2 l ^# U2 r- u" K else if( nLevel > 95 && nLevel < 108 )
! ?2 ~, N8 D9 s& k! O% _" r( M dwTmpSkLevel = 4;
8 u0 Z: j% p& W9 x" e else if( nLevel > 107 && nLevel < 120 )
$ a7 d/ T/ I! v2 C0 A2 L+ J% U dwTmpSkLevel = 5;
) B6 I" G! u: m* M9 F for( int i = 0; i < MAX_SKILL_JOB; i++ )
W' A$ J7 W. U" T {
- Y: c$ ~7 I: ^1 n LPSKILL lpSkill = &(m_aJobSkill);8 l9 i/ @3 I( Q2 h: H# Q7 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 @8 c8 `( h, i4 E% ~ {! K: T4 i* S: j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
e) S9 C' G9 W& C8 I, j* K if( pSkillProp == NULL )1 t! h3 K* a! S1 O
continue;: G& n. l1 S5 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% e3 B# `+ n$ I8 |7 a$ M) \ y continue;
* C0 S' E: i9 L; g/ x* f5 ] lpSkill->dwLevel = dwTmpSkLevel;3 S; |% N5 x6 z/ i4 Q% E2 |
}# a7 J. E0 q: n0 L+ i! e9 w
}
7 h# `# r- w# k }
8 k- Z, v* f3 n" {2 K- ~% Y, a else if(IsHero())7 l6 H& s) C: ]& _
{
' \* {; J4 p5 \1 N& E m) P7 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 P: y& F0 A$ J {
3 t k! _% ]7 A. K5 f LPSKILL lpSkill = &(m_aJobSkill);& |4 O$ O! @2 W, m# n, `& w4 \4 n
if( lpSkill && lpSkill->dwSkill != NULL_ID )& `+ [! P5 R* u2 e: p
{
; N; o7 r: F# F& J( }! c# } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 r* v" I8 g+ ~+ S0 f8 c
if( pSkillProp == NULL )
9 Y8 M: v+ D$ D/ o continue;
- n3 b! |, z- ^3 X; \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER). w3 M k4 B2 {# \9 Y. p0 O
continue;
/ L$ ^6 ?3 X+ \) U1 C; O lpSkill->dwLevel = 5;
4 u" h9 c8 k- _9 y }& D, t: k0 G5 w8 o# @) j. k% w, q0 F
}
" F! D# t! c9 T4 m8 G }
/ X# H0 I8 E6 }3 K% g else if(IsLegendHero())
; K% y4 B5 D$ u5 X {
" Q( n- J. B. S( | for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 z: S% A4 x: w9 n
{
3 N/ I0 {( k8 _& o7 i% T) w LPSKILL lpSkill = &(m_aJobSkill);
% I) `& K/ B2 Z! _& O. _9 k/ E8 M if( lpSkill && lpSkill->dwSkill != NULL_ID )0 C% g' h- Q; T. C* J
{
7 H/ b6 c0 M. r# [! ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 p4 r$ |: {. q+ T2 P; F+ r$ x% o4 d if( pSkillProp == NULL )
' C) [% r. K9 B$ H4 f. a continue;
$ ~# l' C- Q; ~9 y& z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) `3 {7 P8 F0 _
continue;
2 @1 V$ G6 q/ H( m7 X$ s lpSkill->dwLevel = 5;
- Q4 E7 Y! `2 B }
5 u0 Q1 f r9 {( }+ Y }
: X1 R: w8 ~& h$ K4 L } w9 u' l! g9 G5 y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! c9 q- }/ j! ?$ r$ Y% G: S if( bGamma ). Q! M& n$ Q' l
{
. ?6 j0 v# M/ H9 u( B# y m_nExp1 = 0;6 y6 A) ?$ t5 h0 W
}
4 X+ y! i: |6 j
5 j" H# X+ b+ i9 g+ ^ ( (CUser*)this )->AddSetChangeJob( nJob );% u9 H( r( m; |2 q$ M; j/ {. \1 Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' M- v8 T8 Y3 L$ W- p; s& O
( H/ O) w/ u' M+ _4 _) H# r- f; C" r' ]
#if __VER >= 11 // __SYS_PLAYER_DATA# J# ?0 \, Y& S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 s, D$ L% {: ~- m
#else // __SYS_PLAYER_DATA
e( p% A2 d6 x( i1 f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 V2 m$ } g' u/ F
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 W' c8 R I3 Q V% ]- P
if( m_idGuild != 0 )4 q6 o* p& A" A" I- _( } |" q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& W& U% ~6 @( N" O# r, ]3 E; `+ v
#endif // __SYS_PLAYER_DATA
/ x1 w- ^* |7 I0 N5 L7 _1 i SetHitPoint( GetMaxHitPoint() );
6 q; _4 h) |. W0 F* z SetManaPoint( GetMaxManaPoint() );
; [0 ?, [3 B8 Y A; X0 [; V$ \$ \# J SetFatiguePoint( GetMaxFatiguePoint() );
$ a+ r! K3 p1 P8 C! @. c if( nJob >= 1 && nJob <= 4 )
$ C' Q3 V7 y( B+ V# \5 a/ u {" w: p+ d/ L& G/ n9 l4 E e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
J2 _4 n' }4 w, c' l/ o m_nRemainGP = 28;4 U0 _( B a( O/ o5 L
}8 E& p1 [9 U! J+ F' f+ E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ P. q: c% g S% ?7 r {
/ L. S2 {6 R, q: v8 V" B) q m_nRemainGP = 118;
% s; X9 F! o( T2 ]" ~ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' n- M6 Z) r3 k$ h
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 m: k" A! p" c h" s
}
( g* ^1 G0 I5 k if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ t, @6 j' K3 c9 y {
. \; x+ q3 x. `; }2 v CItemElem itemelem;
! y* W5 R5 H( W" k+ } itemelem.m_nItemNum = 1;
( l1 b8 P. z4 N! k2 P itemelem.m_bCharged = TRUE;
5 s9 s$ l% V2 q BYTE nID;
) M, t2 b0 V/ D; T5 H& R
' E4 O5 ]3 @% B9 g2 f* M if( nJob == JOB_MENTALIST_HERO )
. X- w4 t6 R m$ M- ~9 B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! u0 @1 z- i- z; ~1 F
if( nJob == JOB_FORCEMASTER_HERO )
, Y5 O# N7 P( Y- ?% G' }2 m: w& T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. E% N/ a8 A9 a5 O$ q
! k7 s9 j- i& R2 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 o( c( N1 S& S5 J5 ^" Z9 C v" X }
, k# X Q/ ?* u! U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 U. j9 _' W( ]0 }% W/ ] z* Q6 b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& H0 G! E+ D* r: Q0 C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 B0 G8 P! @. d5 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& U0 Z' y/ E* O6 e. }
( (CUser*)this )->AddTaskBar();*/
* e# e6 `# H% w, _1 R: K ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' G7 `9 o+ ]2 b$ E+ T! x6 B#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) l c& E5 V+ M3 O ((CUser*)this)->CheckHonorStat();1 H0 u& m) {% i: D) U+ p
((CUser*)this)->AddHonorListAck();# t/ Z4 v* C$ K! a) c$ O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 q5 J. p u4 b6 d f#endif // __HONORABLE_TITLE // ′Tà?2 e6 S) f! ^) N- p( c
}
# K4 L( X5 t/ S3 A, @6 O/ n#endif // __WORLDSERVER9 G5 |# a; @3 U2 d) }* a' p
}
' S3 F/ C T1 l2 S; z8 h
6 S. x( c( x' u9 ^ V然后你进入functextcmd.cpp并添加以下
4 r0 o& d' v/ e r: Q+ J: r
7 O e I, K. G代码:% a; Y6 o$ w$ \# ] }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ e# h. G$ Q6 f) }4 o! i1 H下面插入5 Z/ h* P1 z# [/ e6 R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : \. T; F# ]" D- h% l( V
5 B% U6 G( e+ y, Q% [/ m7 N7 r. v- N然后你去' f. P* s! x) `+ n0 l7 |
6 ]+ f5 F6 `7 z; k/ y; i代码:: |, p9 z, J) T0 q& A
代码
) {9 P+ h, w0 h4 h8 |. kBOOL TextCmd_ClearPropose( CScanner & s )# j+ r7 b- E- o0 D' o
{
* [4 s+ Y4 S$ B& i" W y5 }#ifdef __WORLDSERVER
" D7 ?1 T8 [5 E3 n% C CUser* pUser = (CUser*)s.dwValue;: S7 I9 x1 y0 [6 K3 `5 M
g_dpDBClient.SendClearPropose();8 V, {$ j! \1 S' c- j, K9 _- M
#endif // __WORLDSERVER
' \. X G; i# H return TRUE;, J- ?9 o0 i; W) q( q# R u
}1 F, q( U* O- _
下面插入; A2 k4 E9 _4 l( a3 v
BOOL TextCmd_rebirth( CScanner& scanner )
1 V9 f. {# j$ Z/ r0 y. }{
* J$ D' `6 a' w* {- G3 y! W' C#ifdef __WORLDSERVER
; w& ]( e8 B2 m3 K6 C0 P: t6 oCUser *pUser;
, V- n6 y- Z" l4 n% V: ApUser = (CUser*)scanner.dwValue;5 R! W. I2 ^+ c2 W. H3 n$ J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 h; w1 f+ P9 `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; F4 C! q: F/ g5 `5 ?. Qelse- q8 D& S/ w6 G* f* d
pUser->AddText("你还未达到重生条件!");* |# `5 T: P8 g9 d* b$ v2 B5 b
#endif
5 s$ O. L7 Y' ? F& ]return TRUE;
5 f3 F* d3 u1 o( k( ~* k. p4 h- W- v}
; U3 z) }% O0 c" N1 s
3 y' H; }, I9 B
8 k0 ]9 |1 \8 H" j' Z/ w4 b1 w! G8 S6 P
, f) H) p$ S' R: ~/ U7 y z2 s5 L, V; I6 o" N* h G3 F \0 W
|
|