|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 L% T8 ]3 G3 m7 W- y1 s4 e: L$ H" Z$ \( C1 [2 s2 H2 x+ b6 |
Mover.h
/ f) Y2 D- i/ I0 E/ H代码:
) l8 x3 C/ u ]2 u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ h7 z. ~: x5 e) y* h# _2 g F, l+ x, ?9 {1 ^6 e1 {
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! {) e' Q y5 \; }) W6 u
: ~) n& f, z; O. p# R1 p然后你去mover.cpp添加5 u" N( r, A/ r S k C( F6 R
4 @3 a% g" D+ y' o/ D! ~代码:
" C0 P% w% d" o- |" {void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" y4 m' {" }8 R# F- V( D
{: T$ D. r }# u4 R) a
#ifdef __WORLDSERVER1 T9 M! J" k; E+ p! K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% R/ p) Z+ d. P+ I& q
MoverProp* pProp = GetProp();
" o2 h2 z8 b9 Y8 `& R6 Q( x; _7 k if( pProp )& J) _+ \- y/ H
{
) K f/ o0 N# e+ |1 F- x) j/ @& k if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ r& h. G% ~' s$ a
{5 x$ S* E5 b7 N$ M7 I& b
AddChangeJob( nJob );! |" X Y. [0 ^1 u. p1 C8 y
}else{
! @- n* I/ U k; D5 N% Q% n* v return;
, Q0 p5 K. S% r3 p& Z0 b8 v% \ }* R) ^) R" S4 _: |
int nPoint = 0;
7 e# Q5 E. K* e( @" F9 g if( m_nJob == JOB_MERCENARY )4 c: E7 j: U, f5 `: L( @! H
nPoint += 40;
3 m/ S+ c; D6 I$ M2 G else if( m_nJob == JOB_ACROBAT )/ l2 o* {1 R# N& z4 z& g
nPoint += 50;
, i, q6 l! P5 k0 Z else if( m_nJob == JOB_ASSIST )
4 [4 y( u" [4 T nPoint += 60;& i1 O" _9 S+ H# }8 U* M
else if( m_nJob == JOB_MAGICIAN )
+ K* x) d3 Q4 T0 ]1 q, q) J) X# W6 B nPoint += 90;
+ S: y. q+ m# @" S! T D/ c8 h8 ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% ^7 X' P! e) t* o/ g1 v nPoint += 120;3 M4 l2 B a5 F9 ^# r. b
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ q1 X3 w) [+ `" x3 ? nPoint += 150;+ D9 z/ |9 E/ ]* n; x# Z/ D
else if( m_nJob == JOB_RINGMASTER )
0 [" I$ f# r* F nPoint += 160;
9 J$ @2 t Z# i( s* B1 O3 X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 t a8 Y% n" q3 W! o nPoint += 180;
; w8 L) V$ D( t2 {) y* R else if( m_nJob == JOB_ELEMENTOR )
5 c- H1 x: F* f. l$ m nPoint += 390;9 r: z0 P: c+ C7 `$ d1 o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 a7 `" F- I/ l& |3 L nPoint += 120;3 O0 F# g' T* u' L9 b6 I6 L5 a; j2 R
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ ^9 i8 i" I3 r% W( l& {
nPoint += 150;
2 Z& f/ n; [: ~; [. [7 u$ f# C; ? else if( nJob == JOB_FLORIST_HERO )- M8 n. Q! v* t1 z. B" Z
nPoint += 160;
) |, k4 V+ I5 H- Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" y; Q0 P- `* p* [% C/ s$ S. B8 x% p) L nPoint += 180;; O8 c; b% O0 j+ f$ j
else if( nJob == JOB_ELEMENTORLORD_HERO )( C) D6 `+ w" {4 U7 \4 P$ O( d* @
nPoint += 390;0 ]6 {8 K* Q; e
5 d4 k# o" {+ ?+ O
AddSkillPoint( nPoint );$ K$ w6 J' R( Z/ c4 _8 K
m_nLevel = nLevel;9 x! Q4 K' v0 v/ z
$ B: r& W6 b" l5 D* Q1 p# F
SetJobLevel( nLevel, nJob );
1 V7 P u+ n7 q1 O& a( u m_nDeathLevel = nLevel;5 I9 [+ D% p8 W+ U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 T4 w& M- v$ M5 Z if(IsMaster())0 x( n& f- e- z; I* e
{
0 d* `( K+ \) m int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 p" W# J% W/ d% x+ C) Q' k9 q) W
if( nLevel > 59 && nLevel < 72 )
- ^ ~' h/ [0 b! W9 \ dwTmpSkLevel = 1;
/ X; l5 r" o' W' ]7 S else if( nLevel > 71 && nLevel < 84 )) G! [( M7 ]+ {8 R
dwTmpSkLevel = 2;' o, \( j/ H1 M* V' ~" A# f8 ]% P+ i
else if( nLevel > 83 && nLevel < 96 ): t. O. J+ V$ ?/ `$ X4 ]
dwTmpSkLevel = 3;
9 \4 F1 d2 _4 r$ P3 T8 l else if( nLevel > 95 && nLevel < 108 )
: [: Z* O4 _- n; d dwTmpSkLevel = 4;
; f9 ]1 p. d- ^" Y# c% F else if( nLevel > 107 && nLevel < 120 )
3 c) ?+ r+ J3 ]$ X9 \# X dwTmpSkLevel = 5;% p) [. Q! M; u3 U/ _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / d8 G: A8 } u% t! B+ T% G% N
{
1 x2 Z0 p* S# M3 J LPSKILL lpSkill = &(m_aJobSkill);
7 N+ m1 s- U6 E; ]8 O3 c$ @/ j if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 i+ a4 e0 U! o/ q {% V4 ~% V3 O) O5 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , ~4 A: R9 G2 M. {
if( pSkillProp == NULL )
3 @4 B ^4 V8 y continue;) z6 I8 T7 _( ^. G5 B% q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& z: g2 v# l' l5 N# {
continue;$ N2 E& _& a7 }6 n9 V, S
lpSkill->dwLevel = dwTmpSkLevel;8 S+ O& K2 }, q* q5 c* |) b' |
}9 u+ x9 R; H' y0 u0 \$ e
}
, b& v/ s# H& t R; O) ^ }# U8 s: v8 a4 h
else if(IsHero())
* \9 i9 o( Q; T8 G( M# v- H7 j2 L' j {
2 C0 E9 M; A$ G0 \' j for( int i = 0; i < MAX_SKILL_JOB; i++ )
; u) Y6 x! G* |, F. ]4 h" S" Q { 0 Q4 x' S9 r1 g; }' }: m f' }3 e# |
LPSKILL lpSkill = &(m_aJobSkill);( t8 a( M: I4 h. g, M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) [1 x, O2 P% ^9 k. C7 A {% t0 [5 P v7 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 e, U5 c0 N# \) E% k% T+ E. u
if( pSkillProp == NULL )
( v) W6 @0 C) C& _ continue;4 A. C; s9 ~ W% }% Y! q$ Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); _( W) Q9 |6 W8 G, x5 J& W5 c: z
continue;+ k) q" E5 o( z' |5 q+ l- o# {
lpSkill->dwLevel = 5;
4 o1 d) l1 c% E6 |- C! X) L/ ^ }
! l& [6 f( n0 x! J. x/ D( k8 W }
, W: ^9 n& ~$ _ }0 V! [$ O, K" D/ \# a5 s, j
else if(IsLegendHero())/ n# a0 p$ C' p4 G) g: _2 g0 u7 d
{5 u9 g6 Q$ Y' n6 h% h5 ~- B6 \3 m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ M9 t! M2 Y' B/ @1 v/ o { 0 X2 |; B7 F" f% f7 _+ ?7 h) O
LPSKILL lpSkill = &(m_aJobSkill);$ L9 J3 l& p/ M; k
if( lpSkill && lpSkill->dwSkill != NULL_ID )* ^' z8 W# O$ l7 x4 K
{% O' p1 w* Y9 U1 [: b- ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 X: Y: w" M) P
if( pSkillProp == NULL )3 i; v/ {) Z& h8 {( ?
continue;
: l) ]1 {, F' t) P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* `: M& J" A# b2 C$ f8 [ continue;3 i9 Y& ~4 ]: C" |, P
lpSkill->dwLevel = 5;
! p% C$ l5 [1 f# B }
5 \9 J$ T8 C0 l1 ] }( {8 G2 r' V0 Q, H4 X
}
- K) C& A7 N; g4 [" f. O f0 M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: v* N6 l" ^" {4 |; o/ W. T6 M if( bGamma )% J1 L: y" e! ~& F
{
) B7 F8 Y0 S9 ]. t" N$ m6 s- u m_nExp1 = 0;
: ~4 E" j6 F6 r, c7 J, z0 p }
6 g' s& L) @& ~( z$ M
, g$ j8 S' n0 p# W2 ^+ r ( (CUser*)this )->AddSetChangeJob( nJob );
" [! D% _9 x6 \4 k6 M0 f( F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 T; }# r' G' R) B! z
& O# h/ W9 ^. M5 o8 f4 @% g6 p- I- z) ^3 l: {# P, J' V/ k8 Z g
#if __VER >= 11 // __SYS_PLAYER_DATA
" ^. V' Q7 ]4 R- r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' Q7 E' z: E+ p1 b+ `#else // __SYS_PLAYER_DATA
7 B" |& [7 M$ y6 g+ h: I2 p4 \( { g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 s( s& |9 c* i9 N* r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( k4 `8 J2 i& Q& P! Z: B
if( m_idGuild != 0 )
& I+ y( s. V F R5 ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 u5 ^6 H! j s' C8 _8 b4 u- N5 Y
#endif // __SYS_PLAYER_DATA& ~3 h* O7 f \8 B
SetHitPoint( GetMaxHitPoint() );1 n+ k/ d) J( k( ?
SetManaPoint( GetMaxManaPoint() );9 _1 i/ R) q0 F2 d n
SetFatiguePoint( GetMaxFatiguePoint() );* B! n1 e$ A+ f# [& w A/ W
if( nJob >= 1 && nJob <= 4 )9 ^" x: ^$ n7 j, @6 [1 A0 B& ~
{
% o7 o. R5 h/ n, w* k# n m_nStr = m_nSta = m_nDex = m_nInt = 15;9 t; W- O/ J& P: g/ E- w! K$ e
m_nRemainGP = 28;' X8 v5 n- y( K8 f' p7 R2 h
}
; p* }' s7 }: @# @- D3 U) H4 X* c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): k: e3 v% C# f6 U( z/ y
{3 V# z9 Y( s2 P& P; m9 D: A3 ]
m_nRemainGP = 118;0 V: d# v( n/ D O" w& @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% ` W v1 K8 Z# w2 k m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 i5 A, z; f# N0 z7 @' c }
0 X8 u9 ]# @8 A; b6 D9 X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ @ Y" e- ^; i
{
8 J* M2 O$ I, F+ m" t% D. Z T CItemElem itemelem;
+ U! t4 y) m' ^: v itemelem.m_nItemNum = 1;
$ K- |2 t3 q# _( N. A4 G itemelem.m_bCharged = TRUE;
1 _. K9 a5 M2 J. Z. _ BYTE nID;( A) d: _3 r4 ~9 m2 M
: L3 a$ b0 r6 n( z" P
if( nJob == JOB_MENTALIST_HERO )
( ?1 O* S5 }5 z9 t itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: R( r+ |5 E9 z8 r( A" q8 @) q
if( nJob == JOB_FORCEMASTER_HERO )0 y2 y$ m. M- |% k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) [" Y8 n! ~4 K' G1 S7 `6 B6 a2 s& P
5 x# g* k! @8 T! n" e j& o0 I
( ( CUser*)this)->CreateItem( &itemelem, &nID );7 Q7 ^ c+ K. u* G; l
}+ M U& I1 C: v F i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' y' X7 m' f9 s* S: U- e! a* K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ t9 u) f- V/ {' ^. r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: i2 a" m5 y4 B3 j6 M0 ^ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; B8 L8 n1 l- V2 `2 Y# Q ( (CUser*)this )->AddTaskBar();*/0 S/ X/ M# c! \" t$ i p0 }
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 [: c# w8 G: z; ~) d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' k+ ~$ b9 M+ g! S. [, ?& a ((CUser*)this)->CheckHonorStat();
! s K/ K; x& W. A7 } ((CUser*)this)->AddHonorListAck();
1 d2 R5 x* Y0 ]2 X, F g_UserMng.AddHonorTitleChange( this, m_nHonor);
( C3 A# ]+ R) @6 C# C- I* `#endif // __HONORABLE_TITLE // ′Tà?
, {0 H- Q9 `9 G( h" `; e }9 N2 u+ k' q( U ]
#endif // __WORLDSERVER
( K7 A% L( g, I}
h( s" L( s* t7 C! |' m4 y+ I0 q6 ?0 x# I4 K0 h
然后你进入functextcmd.cpp并添加以下
) k' ~$ x7 R' ]% C! R) @& g A9 ~( T& {' `2 h/ h
代码:- o: Q; h6 W* J9 n1 x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( e6 @& T z+ j8 P
下面插入0 H1 ^9 q2 U& o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 ~- X6 _) G% t5 s m/ G' N/ a
& v/ {" i+ l( D9 A1 @" L. s" T, V然后你去
/ Y! ` E2 j3 [# ^, q# w$ H# J D# |3 e8 [6 B/ b4 E# `5 T
代码:
- W: w& l2 e: K$ q/ J代码7 u- O! N1 n' ^9 K% R# `7 x
BOOL TextCmd_ClearPropose( CScanner & s )$ B! X: j# T6 x) M% t
{9 }* {+ k8 t- X5 b
#ifdef __WORLDSERVER
8 w+ ~3 z9 c O) r; g7 h# m7 T. R CUser* pUser = (CUser*)s.dwValue;: W P9 w4 M. b
g_dpDBClient.SendClearPropose();! u( g1 r2 I" {" m$ ]* U8 K
#endif // __WORLDSERVER; l7 v: ^" d( L- y" i9 o, M: d. N' j
return TRUE;2 q4 L! b" J$ p* {3 x6 _9 `
}
$ I3 i4 }3 i; U, E下面插入& a! q5 h$ `7 i# A+ m8 P" \
BOOL TextCmd_rebirth( CScanner& scanner )& R" K) ~" i8 E% q
{
0 g3 Z) D/ a0 L/ J#ifdef __WORLDSERVER
0 t4 N& L9 L6 @! lCUser *pUser;
; Q- l& H8 o" TpUser = (CUser*)scanner.dwValue;" f2 W+ K4 P% l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 ~) z- K4 n- L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# \* V+ b( D& P& u* a
else# \8 K4 Q2 v% J. _
pUser->AddText("你还未达到重生条件!");
) D; Z& C9 v1 f5 r# f9 X#endif
( E) _* ?; V. ]4 Treturn TRUE;
/ W3 c! r1 s$ ]$ J1 A8 k) Z* N4 i} $ z( _0 ]6 z/ i4 H
% N8 g7 j, G! @) c5 r
4 Z9 ]) o: |4 O4 o% }
" ^" ?! Q% ]9 j4 Z) {- X% K9 a
4 b$ R+ Q4 A g% A+ J; Q |
|