|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 m8 I7 t' J. \% X; ]: c, w2 u
9 u4 P! R# r: y5 m, W7 D2 RMover.h
9 b8 p# U. P7 \1 M, K3 H6 ]- P代码:
; A+ `$ j# m1 f& `% Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* a* {! K) c* _( v8 r
8 _$ u2 G9 D* |+ y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: a% `; n! Z R6 }* h( L6 C+ K( G2 g& t
然后你去mover.cpp添加 b1 P/ X( n) _' ]8 {0 Q' T& t2 X I
& T( W- ~. v, Y/ Q( }* D
代码:+ Q4 i3 k) j, k0 D5 p' X6 C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 b# H! j7 S0 n1 X/ {5 o8 h{
' C, s% u# v4 k8 i! Q& T+ s#ifdef __WORLDSERVER/ E8 S7 E5 _% Y3 W, _9 K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; i3 O3 p6 B" ^) S MoverProp* pProp = GetProp();
# N& Q- T2 d1 e if( pProp )$ N; K) O$ C' Z- D5 c* U6 U* t
{
0 w5 c: {/ W$ n& b5 L" B* o0 Y) I if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 U% j( S+ @8 H# u2 c1 z( s* I
{) A4 x v9 e+ c
AddChangeJob( nJob );
* ~, r$ J1 }. z" H; u$ d( Q6 } }else{
- n4 ~1 \; n8 A H$ w+ U2 C return;
4 e, x/ w5 n5 k; e0 y4 b" D4 x; t } `! X! @0 `) O4 y2 D' V- d
int nPoint = 0;
( T/ I3 T* z [, r- j( l if( m_nJob == JOB_MERCENARY )3 [0 ^: M' ~ P( F4 Q( A/ `2 D! N
nPoint += 40;
9 z$ @* u' b- {$ j: X else if( m_nJob == JOB_ACROBAT )/ U3 _% B1 }( G& o( @4 j
nPoint += 50;: D1 Z# a1 v$ m" i0 P6 w1 x
else if( m_nJob == JOB_ASSIST )
0 N1 Z! o8 q) I6 k8 M nPoint += 60;: A, \' k0 s3 G6 P3 J" c
else if( m_nJob == JOB_MAGICIAN )
& A7 e( h& l3 R/ W) Z7 u nPoint += 90;
8 B5 c# ], R% Y( W/ \% c else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 `1 u- c3 U9 O) c8 A2 R: j, z& `! o# _ nPoint += 120;
+ {! z' B$ Z* W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 C0 m/ U( _. B5 l$ D
nPoint += 150;
% M4 F; C4 C' _+ c N0 B- Z else if( m_nJob == JOB_RINGMASTER )
: t* c' n3 C, V nPoint += 160;- K4 E& G) ]7 J1 k$ |! ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; l8 z. G; k3 A; s; z nPoint += 180;
0 O% j0 q8 s! `6 l( a: m* C8 c7 e else if( m_nJob == JOB_ELEMENTOR )
, g) A( C4 l- f, K a nPoint += 390;3 W. Z0 t/ y/ C# S/ P5 K! t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- ^0 ?* L: p7 i0 S. J. D4 Z
nPoint += 120;
+ P& t6 n( T% ]# G# f! j1 p) V else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 I# V% J, ~" r8 F
nPoint += 150;
6 R+ K; o# k/ B9 T# e) r else if( nJob == JOB_FLORIST_HERO )0 @& s \: `8 D6 A
nPoint += 160;6 ]- b2 F, B% c& L9 s
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 p6 a9 k. f" \& F$ v
nPoint += 180;( d/ a/ j$ W" T5 ^" ]: E
else if( nJob == JOB_ELEMENTORLORD_HERO )
; G# P. ^ D& d( t& A0 ]" F' i nPoint += 390;
3 M6 ?( b; V3 M/ O1 {
( i" b! R4 z6 p AddSkillPoint( nPoint );7 B' Z& [6 F( E5 p+ f7 K. m5 g& U
m_nLevel = nLevel;
5 K e _9 z1 W6 q2 \* z) ]+ t7 w! D$ y$ r/ l8 Y: k4 s- C
SetJobLevel( nLevel, nJob );. O! b$ s# v7 I$ P, R7 J
m_nDeathLevel = nLevel; a. L$ `2 P& q+ ^2 z/ R/ K' R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ V7 r1 r) X0 D8 J if(IsMaster())! ^* H& d' [5 a! X
{& U' \+ b. C2 w8 _( g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! x. L) o0 C& d8 S8 w if( nLevel > 59 && nLevel < 72 )
6 O* F. n5 [4 |) q! o dwTmpSkLevel = 1;
7 w& C7 O% `8 Y/ m f else if( nLevel > 71 && nLevel < 84 )
" o" b& A; q* B2 J4 ^: \ dwTmpSkLevel = 2;) x: D, g4 D; E3 n U* U' {
else if( nLevel > 83 && nLevel < 96 ) v5 G3 x9 a% h8 O
dwTmpSkLevel = 3;
& L0 x4 D0 F) N else if( nLevel > 95 && nLevel < 108 )
2 g7 u* q5 z; x, _- ^ dwTmpSkLevel = 4;' @' ~# P2 W; y5 l# c5 h3 e7 d
else if( nLevel > 107 && nLevel < 120 )
4 ]0 Y/ n2 V5 l& K4 G8 ?/ w: T9 C& H dwTmpSkLevel = 5;* Z: }) [) l; M3 w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- F: L& E$ X" |! y/ H+ K. A {
/ q2 b$ u; \. R LPSKILL lpSkill = &(m_aJobSkill);
+ |; ^0 ?0 H- b, O" b/ A7 y4 w if( lpSkill && lpSkill->dwSkill != NULL_ID )' p3 k2 }4 M% E1 ?
{
+ `$ n0 q6 K7 b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# t8 Z w3 }0 R6 b) Y, v5 x6 D" ^: x+ G if( pSkillProp == NULL )
4 i' H3 ^4 x6 g: M. u; i continue;
$ \2 t7 \' @8 R. o% p: L ^3 s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* y' X# e6 j# Z6 F8 @/ e' a8 I9 [ continue;4 X4 ^1 |' m0 s( L. A6 {; F
lpSkill->dwLevel = dwTmpSkLevel; Y) Y3 e/ }+ s1 I. ]
}3 Z5 n, D- V1 R+ G) a
}
# I# ~$ i& U& r& s. I! f2 Z" i } b! T# L6 G" d; U8 c
else if(IsHero())
' |+ g5 B2 R" ]7 ] {
5 l9 J% j- g) `5 y2 } for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 {. H, n, u* K h. t+ P! T2 E' {4 { {
. m$ F. N, ^( ~5 j& j7 \9 ^ LPSKILL lpSkill = &(m_aJobSkill);( N" w" G9 W% ^& ^0 \# j: Q' o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) g/ \) Q7 |* V! [ V {7 |, P8 [& F6 ?; a9 r9 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 T7 G7 E8 @4 i if( pSkillProp == NULL )
- X" u& d4 {3 a' q+ R continue;
; l. w& M3 k7 } k# S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' U2 H" g$ T" @! W% V+ F# s continue;2 q7 T, C1 b6 m! _
lpSkill->dwLevel = 5;1 R* m( ?4 a* m, Z
}
5 M Q* } ?! W }
# U d0 Q: s1 c; W. l# j9 X( G }
! t b) \% [ ~" ?$ j) U else if(IsLegendHero())3 M4 s3 H& e) g( q7 x+ Z/ p
{
2 h$ _, }0 U( I9 @9 l& M" p for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 r9 ^" a( {! A9 S$ r9 W( o5 V
{
) r# m" ^: H& A T% K6 K LPSKILL lpSkill = &(m_aJobSkill);5 ^1 {0 d3 E% }& q @5 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 [' K: b3 z8 }
{
/ S4 Z. s$ ^- h" b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 s# Y, P9 u$ w! d9 b
if( pSkillProp == NULL )
# i& w3 R e! W; y) v4 n continue;
8 j5 n, E! w, m( P& J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 Z$ v* g- F' {, M, Y# K
continue;9 ]5 T3 _; i5 ^6 J! l& i0 D! Z& B, P
lpSkill->dwLevel = 5;
0 c* u- l7 n7 Y+ T4 G- d }
! k8 q j. }, x9 D7 c# V }
2 B" ~5 b9 E1 m. i4 b8 \$ X }
1 W0 P* u2 Y$ D0 o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 Z+ J: x0 k1 {: I! t5 h' K if( bGamma )
) T; G+ Q, w; _7 N- @ {
, u, c! U: q$ x k; U m_nExp1 = 0;7 z1 `( ]6 F" S; ^
}8 B/ e2 |% y4 m' [- ]$ X5 o
' ~# k1 [2 J6 m q0 ] ( (CUser*)this )->AddSetChangeJob( nJob );
+ z. b5 g6 p3 q! A0 x7 b1 u& L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ z5 j# }( [7 T! ^ o6 W9 B; k) X
, r P. E( ^* Q+ P2 G, j) g
% K7 B- k7 \4 H#if __VER >= 11 // __SYS_PLAYER_DATA" B9 @+ t! o R+ B& a2 e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! F4 A" M- g: r% P- g* g* `$ N#else // __SYS_PLAYER_DATA
2 D5 N3 C( ?2 Q( k! O3 H W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ l+ v' G5 }9 l1 _7 X3 [6 J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 e6 Q/ i7 j! d s1 X5 X D if( m_idGuild != 0 )
- s% w' ]# N5 f4 G& s( R- _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: W+ f5 f; o% y9 Q#endif // __SYS_PLAYER_DATA
' x5 I" ]& p% B, n SetHitPoint( GetMaxHitPoint() );. o+ e$ F' n& [4 M
SetManaPoint( GetMaxManaPoint() );
$ P- |) X! I3 |* I. e! ~ SetFatiguePoint( GetMaxFatiguePoint() );( w* K; a6 ~+ s, ]
if( nJob >= 1 && nJob <= 4 )
: g6 {/ I* G$ I; _2 U {
- N% u1 H: @( R/ U6 @) b m_nStr = m_nSta = m_nDex = m_nInt = 15;- v7 }) n# A7 u2 q6 y
m_nRemainGP = 28;" y0 d% b- K, B9 }3 Q5 F
}
% b/ r! F0 H. _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 N1 t3 m( U. I# o5 h# f
{ R! S. y# `8 `5 {7 a
m_nRemainGP = 118;
1 c8 L* R/ y o1 u5 A2 q6 ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 M3 l0 Z. E6 [& K/ i. ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ W* e4 O* P- p# ]( k$ @) a }
) a, _& r7 x: W% m5 e5 ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) S: J- R' \- B" V: Z5 n E
{* ` e9 K: [) O- e
CItemElem itemelem;
" R- Z: l/ b5 U" _; z7 W1 } itemelem.m_nItemNum = 1;
5 \3 [* g# C: @- f1 n* ?0 v itemelem.m_bCharged = TRUE;
* b/ ]) b) O/ G: @# P6 t* M* O BYTE nID; Z- d: }+ T: v3 N1 a6 u4 `( }( H$ O
2 H5 @# M" ] {( M
if( nJob == JOB_MENTALIST_HERO )
' S; |1 a) \1 s9 _6 g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 n5 R' r+ r, A- A! J* B2 m! H
if( nJob == JOB_FORCEMASTER_HERO )
& ?1 a) F( p: w/ w itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 H* H' E i* v6 `
U) P& A+ J, n5 Z" Z8 r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
?' Q3 g) ~5 _% M P. R }
9 P7 D" o; g W( }$ t8 L3 v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 d& d, L8 Z1 v% Y F& F
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 G1 G' a/ y6 x: n4 |% l( |" E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ w5 M: X$ \4 E: s0 _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. E \: t( Y$ W+ N ( (CUser*)this )->AddTaskBar();*/" i. h! H/ b+ u% U9 E0 a5 U" t
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' O; U0 D! n8 ]! K% n# Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 T3 V5 X9 T/ ]0 c ((CUser*)this)->CheckHonorStat();( W+ t4 H! r% B+ k9 G: S# j/ |
((CUser*)this)->AddHonorListAck();
' }/ [# S" r# m8 M7 Q* K/ w g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 I2 _, E! z( \9 s#endif // __HONORABLE_TITLE // ′Tà?
$ q0 h0 C7 l$ x8 ? V, P }4 x9 c, a6 x; Z6 q- u7 a
#endif // __WORLDSERVER
# l' y9 q! O% A3 G}
, w9 ?! n6 _: }. N4 q
8 N. ]9 ?3 C5 R然后你进入functextcmd.cpp并添加以下' M+ ~) P+ n4 ~( D0 e
F9 r4 P# j) y7 e
代码:2 h# O% } e5 a1 W& c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 r) ~* l/ ?/ W% W下面插入
% w. h9 z/ ?+ u7 z. AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % b/ C8 M/ a( |0 F5 M4 k5 f
3 ]. s9 i/ x7 d7 a3 H; X2 K7 F
然后你去
& E) a+ c! [$ k1 W* s0 m6 y& Y$ c: M
代码:
8 R' R* s' r* ^6 Q代码+ L" R' \9 |& i9 A. k
BOOL TextCmd_ClearPropose( CScanner & s )# X& H7 V' e4 R* i: F J- I
{/ Z0 {6 r9 t0 w
#ifdef __WORLDSERVER
; S. D {2 }& |. h CUser* pUser = (CUser*)s.dwValue;/ w; r" ]. \& L+ Q8 k1 z
g_dpDBClient.SendClearPropose(); n5 X% V& c0 R
#endif // __WORLDSERVER
8 a% f4 V' ~ n6 B4 x return TRUE;: [- P1 |1 X$ @# m; c5 @ ^
}
! i: A. O* X" k! u8 d$ h! k下面插入3 |% o" L: q" W! F. A7 ~: s9 z
BOOL TextCmd_rebirth( CScanner& scanner )1 [- H" {1 A5 i& m
{; h/ q Y9 c7 H5 R
#ifdef __WORLDSERVER
: |: c2 ~0 K3 M3 i( ACUser *pUser;1 t) b/ \; x$ A9 t8 {
pUser = (CUser*)scanner.dwValue;8 l9 t B, y( F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 N! h% V5 `0 D& B" D) TpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 Z4 X9 z" g3 K
else
8 ?( ]! U4 i- ]5 u- spUser->AddText("你还未达到重生条件!");
* K6 ?! `# J8 ~+ Q#endif# J5 l) p# M3 c( ?7 A& Y* u6 T
return TRUE;, R2 |. D! {/ m- C, B) m" p7 s9 f
}
" @- |& M; b- t% H- A% ]: y! v$ m5 @, j% T2 S: n
% A2 |$ k! e% K a, Q/ } m
1 K) P3 V( m) o1 {: O& G
. {1 O: F$ X) L) A* W+ d
|
|