|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! f( o. G1 w/ _8 F: a: H) m0 [! q, F' ]& F) o) _ s& _1 r8 A
Mover.h X" z8 b/ B/ w# x; u6 x* x
代码:
- q5 j1 x$ m7 a找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% V* x, c9 I& w1 }$ u( ?3 S
; o$ U6 {/ g- ? z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" ~$ |% Y3 u4 h# i9 D \% u6 M( q* b, N8 M$ e t( d1 @" P) _
然后你去mover.cpp添加! N% L* o2 D' d, j
: n* {2 T; M( [9 j
代码:
4 K5 Z& Z/ W- r, `- u. Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* m5 V8 k6 S2 g{
2 C7 A5 o" b$ k/ p#ifdef __WORLDSERVER
k F; Y, {8 X; b! r: j2 }+ r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó ]! Y# u s* o0 `
MoverProp* pProp = GetProp();- [% v# A; `# @6 Q
if( pProp )
2 z. j3 \ j' ^- T$ F {' M9 ~% ~4 ~. F# q4 @! A3 U% \4 _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 n+ d+ c1 v: {
{( @, H; V, [0 h0 R
AddChangeJob( nJob );
4 Z; _1 G1 P! I$ d }else{
& j! G8 u1 [# H$ Z; y; J% X0 M$ D1 S return;
, }' w' l+ S, Y! H8 h0 J' k. E% Z j }
( d: Q! B e5 F4 \- S8 x: M int nPoint = 0;, G5 E* m6 Z- t) z5 {) c8 `3 B
if( m_nJob == JOB_MERCENARY )* j! |% ^5 i l& i6 C9 h! `
nPoint += 40;- a" P, a( {/ G& R/ G
else if( m_nJob == JOB_ACROBAT )& l4 Q4 M1 o# e, c* w2 B
nPoint += 50;0 z8 _# J6 O0 [; k* I5 y* R% T
else if( m_nJob == JOB_ASSIST )
3 q7 ^, |. t4 F nPoint += 60;' R( K5 ~3 }9 ^& ?- z1 h
else if( m_nJob == JOB_MAGICIAN )
0 [6 ]7 o t0 S2 M7 @ nPoint += 90;
8 [8 V2 t: F' Q+ j$ [ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 B# r3 ]4 d+ Q l3 A7 K% x5 A) l: P
nPoint += 120;# a7 \8 W4 X! Y9 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), M! m, b/ E! f) l# U9 y% {
nPoint += 150;6 ^$ A' W/ |+ D H j2 P
else if( m_nJob == JOB_RINGMASTER )( W+ a( z& t! o) W Z
nPoint += 160;
# d# v4 L* q! H$ ?1 R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 J# p$ @/ D* {' G' A8 z6 B4 J( V nPoint += 180;
& f/ l0 X# ^; { b else if( m_nJob == JOB_ELEMENTOR )
% P% F. G; h6 r; T' p nPoint += 390;
# S3 @! ~! X1 n+ n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ x3 {9 G/ v2 R8 G3 m
nPoint += 120;! J( H: o7 B9 x$ d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 W# H$ s) a' N4 w4 L nPoint += 150;! Z, z. W% v9 Q: C/ I
else if( nJob == JOB_FLORIST_HERO )( B p h. { c7 e- T3 _/ F
nPoint += 160;
& f9 {) U& w' s1 I3 b! H+ w" g else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 c) j: T+ q g( J nPoint += 180;4 J$ c# O0 {. s% T7 C; t+ U
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ D- H/ t# A7 ]5 B9 S2 n. u5 Y nPoint += 390;
; v" S) k6 c/ |% `& D9 n w- D) v
- k; u- j& n0 A1 D AddSkillPoint( nPoint );
: I' I X! T8 L d/ K m_nLevel = nLevel;# O: [) ]. j$ O# p1 |
% X) c3 k2 U. ]3 A. a% h8 j
SetJobLevel( nLevel, nJob );
* d l3 I6 r! Y) `# x m_nDeathLevel = nLevel;
7 p/ m& p0 V* w! \#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ y( v8 t0 O- G if(IsMaster())$ Z& x$ i _( |3 i x. i0 [
{
- V& e- ~& I: Y7 L1 F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 I8 L; `/ h. _+ ^3 l0 R if( nLevel > 59 && nLevel < 72 ). p+ B) Z) C/ w1 @( s. m# @
dwTmpSkLevel = 1;
6 v2 Z% Z0 E4 I5 P# ]5 o else if( nLevel > 71 && nLevel < 84 )
' x0 S: {! j( k7 E; a' }. n, x dwTmpSkLevel = 2;
1 ] e0 v. p6 z else if( nLevel > 83 && nLevel < 96 )
6 C( O, w5 ?+ l: Z dwTmpSkLevel = 3;
( A7 T }$ U+ e+ |/ U else if( nLevel > 95 && nLevel < 108 )- y8 Q. E4 x$ Q x
dwTmpSkLevel = 4;
9 I9 N1 T& ^. y# r else if( nLevel > 107 && nLevel < 120 )* i1 L, _' u8 H5 ~
dwTmpSkLevel = 5;
& [2 N$ O: J) S% ~8 t) F for( int i = 0; i < MAX_SKILL_JOB; i++ ) & D: [/ W1 _# v7 ^: i
{ 3 A% t F c2 s7 e3 k S8 E3 p; [( b
LPSKILL lpSkill = &(m_aJobSkill);2 I6 P4 v; i1 b* \ v4 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& Z* H3 Q! i- F+ O! Y {2 O4 _, i% N) s" D, }" K/ a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . T* Z# E- Y* V; i5 j
if( pSkillProp == NULL )
/ _# y. i; `% w continue;
@. U; K- p* i) {- t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 F# ]# D4 n, |2 m m$ p
continue;; o6 w) J8 m- s: o+ K
lpSkill->dwLevel = dwTmpSkLevel;
& ?+ \' @- }: Z: x9 a" Y* k }0 _9 S8 v# o7 f( a9 e0 u* k' L
}! T- f/ D" U6 Z3 |
}# M) |3 x: i6 N' B" H1 T. H
else if(IsHero())
( E6 K% T; d+ V2 Z {1 D8 V; C. s$ N. }8 e8 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 b% t8 b$ @$ G6 p# j1 c4 Z
{
6 p# c# k% D( A U5 c7 O LPSKILL lpSkill = &(m_aJobSkill); ]& @9 r, u, W8 F I0 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 G* A' q) \0 C0 F7 m( ^3 X& x
{+ X* m- W; I. i2 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 R7 V, p O7 |, G9 j if( pSkillProp == NULL )
& j/ o2 P0 w+ ?) e3 n2 u continue;
% T3 r2 p5 |/ W" q: \- y; D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 W- i) \6 b5 R4 S- m; J
continue;1 u3 \0 }7 O3 [- R7 M
lpSkill->dwLevel = 5;
* W7 h& v+ ~- z B; m& [! a }
+ z! a$ }9 p! B, M }' b# L) ]) ` X) J9 Z; u. U
}
. ]. p0 [( ~5 X+ W$ j) ?: } else if(IsLegendHero())
( \9 I) y* V7 T8 n {0 t- R9 j$ v4 {9 `0 J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 i, E) j, D, n# b8 O; A2 ~) W {
3 e1 U* j2 i( x) S+ {: Z/ }& L7 ` LPSKILL lpSkill = &(m_aJobSkill);
0 K, M7 W- B( Y9 }6 g6 f if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 j8 c* {( |& i {
/ R$ b, b0 j' o' d2 \, O7 q4 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 K q+ ^' E% O+ S if( pSkillProp == NULL )
( {! b ?% f2 w s continue;6 Y% @9 J' B4 \( q- ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 G$ ^2 C4 o2 i continue;! N6 M4 S- t- x
lpSkill->dwLevel = 5;* `$ i% C9 r$ \# A3 K
}0 G5 l h+ ^" Q5 H
}8 k6 p+ M) r2 D1 Q* G6 Q7 c, f
}$ `- V8 t$ Q/ l$ v4 n; D
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% U' E5 I6 _! j" Y" c# J
if( bGamma )
8 R" d' O& r$ z* l! W {
% d! E: _9 j- h0 E6 S m_nExp1 = 0;
+ T' p, I) P$ r' u9 r' Q }" _3 a. I5 W$ A. g
- y1 r0 p) J! Q5 R8 T ( (CUser*)this )->AddSetChangeJob( nJob );8 j1 K k0 ~/ H% M1 i Q0 P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 @" y: H) d* k0 G( s4 ^7 _( p, i& L2 I) } i' ~2 |& f
' T" `1 K* ?, A% m
#if __VER >= 11 // __SYS_PLAYER_DATA
A/ T2 F* y/ z) N. ?, h) G; b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 f5 E" y/ Y$ K A6 I( R8 U
#else // __SYS_PLAYER_DATA
8 {" j, j* M+ B5 Q6 Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ t4 t4 S* K4 q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ K. r* K" J5 T( Y( h: i if( m_idGuild != 0 )
5 ~0 T; d) }6 Q: L' e# X. f/ A g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 }. {3 X. e) l- g
#endif // __SYS_PLAYER_DATA, P7 I* Z' M# R `
SetHitPoint( GetMaxHitPoint() );$ W1 t1 w8 A/ O. \' A8 N: ^
SetManaPoint( GetMaxManaPoint() );
' ~' f) ^" C; i1 r SetFatiguePoint( GetMaxFatiguePoint() );
* Z& V8 U4 h( g- Y S if( nJob >= 1 && nJob <= 4 )
5 Q4 }: R% J: p, j6 R5 ^3 W1 _ {+ r; Z# b1 {4 f) a6 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;: o# {# {* J% o, g2 J
m_nRemainGP = 28;
1 q- I8 V2 [) |! Y( H# n5 G }
" d( k- x/ [+ N2 ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 ~! [$ g V! ?. i {+ r6 P5 }+ J, f5 s8 F* L' e( Z
m_nRemainGP = 118;7 g5 ^/ @# G* e( I& D
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ R. t1 S. k+ e4 a6 A* F m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ H% X# B) Q/ }& w2 s Y }
5 l, q. }, Q8 |0 L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# n: |9 H0 I+ A; {* T' |' D {* M6 N. C1 l8 E) I: n, {
CItemElem itemelem;
Y9 q T* V4 l# C1 @ itemelem.m_nItemNum = 1;* R8 z; F' R7 P' x3 H# L
itemelem.m_bCharged = TRUE;
6 Z# N, z% Y& s, m BYTE nID;5 x6 ^0 x# ^7 z! J, T
6 n" w) o0 \2 j8 P* u if( nJob == JOB_MENTALIST_HERO )
+ G) L, f4 p2 [% U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 w! U8 v0 b2 ~ if( nJob == JOB_FORCEMASTER_HERO )
" U- B- {1 ?/ U8 N, O0 q8 ]$ c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 t+ r7 S o% i% o/ U# r- N1 l3 a
+ ^5 @. @- D. I5 j% n ( ( CUser*)this)->CreateItem( &itemelem, &nID );/ V( @* l; a, I! d/ o* ~- K
}
/ N" {6 V, b& ]6 g8 t& S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 l# Q' Y6 b' k0 e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 W( ~) r: Z% O' @, @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% x7 l, I+ f! X* k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 N1 L) T9 Z1 l* E# T! `4 Y+ v; r
( (CUser*)this )->AddTaskBar();*/
1 l$ s+ I8 u- U7 q7 Y, z X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ V+ P1 J6 O1 t0 Q# E6 R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ \1 ?4 x. @; s1 }9 k ((CUser*)this)->CheckHonorStat();& H7 H* q% O/ f- w' I0 D: [$ D
((CUser*)this)->AddHonorListAck();- t+ H; P+ k5 H: b! a
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 n! h9 ]3 q$ P3 W( O
#endif // __HONORABLE_TITLE // ′Tà?
4 y+ g# K Y b! k. u6 S }+ {9 E O' h8 g5 \& i
#endif // __WORLDSERVER+ U6 D5 p/ o" M
} 5 M9 k! c$ J8 [& ~3 W8 b
: y* N2 ]* K- h3 s然后你进入functextcmd.cpp并添加以下) u4 K8 z5 ?- X. S [
[' D0 }/ j( g% M
代码:: s* d1 o; n1 ~3 @
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* y# {/ {% ?5 B2 R$ k( q7 U! U
下面插入
( C+ t1 ?0 v/ G$ \& E/ fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& L; ^6 {+ F x) @* h( h4 ~* Z
" k3 H4 L$ `- Z; G" c然后你去
* X+ H7 B! O4 D/ \- E; `5 y' C) D6 C5 y* G8 f! e ~0 h
代码:
, c5 b7 W1 D6 [ f代码
; e9 G; }7 S7 G4 Z/ t1 gBOOL TextCmd_ClearPropose( CScanner & s )! d7 D. M K4 y4 z2 s- ^' r1 w
{
. v8 x5 {& g1 W. ?1 _. n#ifdef __WORLDSERVER6 W* f$ H! `7 S7 \/ A
CUser* pUser = (CUser*)s.dwValue;' D# r' X: ]% q9 w
g_dpDBClient.SendClearPropose();
" }( ]$ N, b1 N( J7 {+ P# h4 @#endif // __WORLDSERVER
5 u. w" C4 {6 Q return TRUE;7 C8 b9 _$ T7 l! V2 R
}
& t, |" H. y# [8 X) I3 e) w9 Y) D下面插入$ Q( t" f+ G! D- M8 y# ^2 v
BOOL TextCmd_rebirth( CScanner& scanner )0 V9 \# W) `% t% X8 A. A0 d* @% k
{- H: F* j# f0 \! I! E
#ifdef __WORLDSERVER
9 q s: g1 e( G' ]4 R- ]/ D8 CCUser *pUser;# J1 \' m, s3 W; l0 u# Q6 I1 o$ ]
pUser = (CUser*)scanner.dwValue;
7 K8 j# r. P& G" u# vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* T6 z' D- N8 W' jpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
\/ R" J. { ~8 G. k$ velse3 B/ ]/ x' }) X
pUser->AddText("你还未达到重生条件!");7 x& S) _' [5 x& ?" V. ?1 f
#endif
) o) v+ T- i7 R8 V( [; oreturn TRUE;
3 s% p5 }; j+ i/ L} : J) R$ X. F( [
: X; d# \& f6 {: }, f" `* k% u% @ U# d
: v2 E' b2 z k. |* @; } K. I! ~# V$ `& P3 v- C
|
|