|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 q/ M0 L& D! T9 e' m4 r' h) U- P% W
, u- \3 ]; R+ Q. }5 [1 cMover.h
; }5 b! ^( B3 L, u代码:% S( Y5 A7 w6 ~1 k$ ^2 H0 y+ K/ O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 ^# a, s; B# O5 m4 z: M
1 M3 y4 M3 R9 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 C' {* D: O% c7 {" E2 t" R
, \! i2 |" _9 u+ \4 q7 G! M: |" I然后你去mover.cpp添加$ ?7 O: i) y; y- Q$ I
- }" k5 M$ `& X* P1 ]
代码:
$ p2 q& a L t; s2 c$ I- n' }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* T% `7 C4 ]" b& P( i! ]{9 J6 _% D6 Q# T4 k
#ifdef __WORLDSERVER
9 @4 E" Y) i( u7 g- @. M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' `+ r3 N/ a" h3 a, U' ]
MoverProp* pProp = GetProp();
, q) O+ G9 h: ?: S, X+ b if( pProp )
1 o1 w/ T. @1 v" W {
6 o/ ~0 O3 d- U3 C" L( I# ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )# @7 l m4 _6 v2 H0 s$ z3 M
{" B+ z) ]3 E, d7 p; Y: Y
AddChangeJob( nJob );
$ m$ w( l5 X3 L, L$ |8 d) l }else{8 n6 F3 k, v7 W1 n
return;7 h* W! N- _" @
}/ t' o9 w. H8 x% L$ f' u4 Z
int nPoint = 0;( ~# I* S7 I1 A4 }2 s
if( m_nJob == JOB_MERCENARY )5 b+ B/ h/ q& }) y
nPoint += 40;; r$ @) Y: I4 ~3 N
else if( m_nJob == JOB_ACROBAT )
. P7 @' C* N! {+ X* k. O nPoint += 50;
" n9 h7 e: i* j else if( m_nJob == JOB_ASSIST ); O" g2 m) Q: G7 w) @( b
nPoint += 60;
( O* Q) i; q3 ~! x/ o0 ?& B else if( m_nJob == JOB_MAGICIAN )
. E' A2 } |0 ~5 v' ?3 { nPoint += 90;
* t3 F3 x# x8 H' W3 F6 x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( D' ]5 C0 N& v
nPoint += 120;" u$ @* |1 O* m2 I* K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 U0 k9 f9 N' Y" C ^ nPoint += 150;
! r4 S; t+ q9 u, _ else if( m_nJob == JOB_RINGMASTER )- f# e8 J x: g
nPoint += 160;
/ e2 }2 v$ I; J& W% j/ J else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 r# R- Z, O* w7 a9 E# u% K
nPoint += 180;
' S, w# J, B/ s else if( m_nJob == JOB_ELEMENTOR )
2 d' q1 g8 V: N5 Q) U$ X1 i3 k! m nPoint += 390;
8 E5 o, o! R- k- s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 ?; d5 I! _* w7 u! }
nPoint += 120;
$ ?! B, @' H. T( C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( o l( y }/ }. t+ I- {4 R nPoint += 150;
7 L3 Y4 |7 {1 h5 j4 \ E else if( nJob == JOB_FLORIST_HERO )* K% g( A! M& K: ?
nPoint += 160;/ t' l7 |8 W/ G- l) x4 r% K) q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' q- Y% I+ k$ S o3 r. A( y
nPoint += 180;
. x: ]* Q+ G+ b! g! l$ n else if( nJob == JOB_ELEMENTORLORD_HERO )) l- ^- j2 I c
nPoint += 390;$ y5 e; c# w" [! D. O
) {) F; J! A& { AddSkillPoint( nPoint );: x$ g1 H9 F7 E% b. S4 D- V
m_nLevel = nLevel;
6 Y" j0 [5 e0 @& r' A4 p
! w. D, i# W0 i8 u5 E7 v) h+ o SetJobLevel( nLevel, nJob );! d( I& s$ ^ t; V+ r2 F
m_nDeathLevel = nLevel;
* B/ t3 A/ w1 {0 ?: E#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- [( Y3 s. S1 O# |# W; c! w& ^
if(IsMaster())
* Q. w' w2 c/ `* W# X3 R {
( L+ z% L9 T6 H! A1 X. ]- \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- N" z/ O0 ?# V( t. I if( nLevel > 59 && nLevel < 72 )* z8 Y- @5 d8 o; D' o3 N1 p9 f! k
dwTmpSkLevel = 1;4 Z& m2 T) s2 K
else if( nLevel > 71 && nLevel < 84 ). r% v; i/ u) a2 D8 B* G
dwTmpSkLevel = 2;1 H, Y/ I# d7 M& C7 a$ B& W8 j1 ], n
else if( nLevel > 83 && nLevel < 96 )
1 D' ~/ `0 V1 B- ]) n. Y dwTmpSkLevel = 3;, Y5 K" O5 s, e" w) U' d* T
else if( nLevel > 95 && nLevel < 108 )
8 F3 d# _3 H" K( h4 l( V dwTmpSkLevel = 4;" Q7 ?1 f+ H7 p1 t4 g O- W, {
else if( nLevel > 107 && nLevel < 120 )
2 t! S5 U$ S" o' B8 T dwTmpSkLevel = 5;
9 N* z: x' f6 i6 m for( int i = 0; i < MAX_SKILL_JOB; i++ )
& j" Y& B+ m! S) d. n: c {
! P( o7 S/ N; _ LPSKILL lpSkill = &(m_aJobSkill);$ ~6 G4 r# G. \' Q0 g* ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% s8 |7 p B8 a% M2 Y( q: \) ^ {
$ H2 Y! K- s1 O$ n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& X7 w1 d' D1 J if( pSkillProp == NULL )
8 ]% e! L. l6 z4 b! P: ?; u continue;: r* q- M p, n* r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 U9 m# w9 q* A" L
continue;
7 N7 z& _) P! Z4 }# }2 A: N- H/ F9 ~ lpSkill->dwLevel = dwTmpSkLevel;
2 t6 t( H3 F8 z- G' ^ }7 ~+ a! n1 P; j- W/ s& P
}9 B$ G1 C( _6 K) ^6 F4 X! L
}
5 X- }4 _+ i( |3 D1 l4 N5 m# ] else if(IsHero())
5 |6 {& [4 r2 @4 A3 h! d {
?. W# t* s9 l9 `, \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) % f* [& M' Z6 H
{ 6 }* \0 }+ R1 R) h6 j
LPSKILL lpSkill = &(m_aJobSkill);! J' j: @. L: S+ p
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ w/ M& k2 _! A7 n
{
2 R V! @: z( V! k* ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); E K. A4 A: f, d2 f+ w
if( pSkillProp == NULL )
% b# ?- Z6 b2 B+ ? continue;
5 k* d8 |+ E0 `: J: N+ N H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ x% l0 J9 L- {! G- j, |/ N
continue;
. _8 |; c: p% j9 p! c0 A# Y3 P" }* ~$ u lpSkill->dwLevel = 5;
) S2 a1 s' V" X: t+ N M }
- }! {2 l$ g6 D! v0 [0 b) Z }& @# ^7 H" ~- i/ L. o
}
7 K9 I/ N" L9 ^6 v3 Z6 O else if(IsLegendHero())
3 E6 q+ w& B9 T% D& c" l s {
4 v- b! G7 m! [( e m0 |8 M6 i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 w4 R% `: w; w+ R
{
5 ^3 K' x4 R2 l1 u+ a) {& P LPSKILL lpSkill = &(m_aJobSkill);7 k# e9 m0 H" \& E- C7 H) h0 ~/ Q) Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ F" l8 A! E; T! z8 i
{
: B9 O0 T, E/ r5 g( p: d6 ^0 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); g" A: D3 |2 r
if( pSkillProp == NULL )0 @ n7 g3 g/ d# v! [ b' W% i/ Q# y
continue;
9 o( M+ @; ^) ]3 q% p9 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ P9 ~7 v$ J6 M: L5 M
continue;
. t- j- u* n& k6 q7 m lpSkill->dwLevel = 5;- {3 v& n' J2 d0 _+ U- i7 n1 C
}
( W9 u% j. Y5 [. V# r }
( H# h( e, q7 x/ V/ Y$ \: m9 ~ }3 M% f) h& p: ^ t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans Q( F! @" G D6 q0 m8 z9 E
if( bGamma )! h( P9 c- S: j9 D0 f i
{
' A& ]0 o& |3 |, { m_nExp1 = 0;" o5 v7 G' U6 A& E/ a( o
}
% W+ a; o0 C0 G J. ?1 d2 M' c2 e4 M* M, ?+ h
( (CUser*)this )->AddSetChangeJob( nJob );$ L! w4 O0 @6 M$ p4 u
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% F- {. I. h% n' s! }5 R) J/ p7 m: v+ q% J7 V
; J) Y" R H8 U! Q0 ]4 F: b
#if __VER >= 11 // __SYS_PLAYER_DATA7 k a8 L7 E0 u+ r' G! v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, S5 \; S, y" T1 W; Z' \#else // __SYS_PLAYER_DATA. K Z( A, u+ B$ \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% x' |/ h0 R( t! G3 M- |" [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 ~7 B5 {& A) A, I
if( m_idGuild != 0 )! k" U: L. |' b( r8 O9 C6 V0 t9 [ G
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 T7 x2 }; X: C8 T8 [#endif // __SYS_PLAYER_DATA: I# w5 I9 F3 b; D( B
SetHitPoint( GetMaxHitPoint() );
( _8 p+ n d2 _2 U SetManaPoint( GetMaxManaPoint() );% y7 Y6 z' h, S2 G A1 e# \
SetFatiguePoint( GetMaxFatiguePoint() );( v8 a! Z# {1 l0 s0 N
if( nJob >= 1 && nJob <= 4 )% d" {- s0 ^' R7 T# x" d6 u
{1 f; X% y2 b' |* d' @5 N. r U* g- v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% K, f5 D& N. q) A; q m_nRemainGP = 28;8 i- l$ ?4 E2 K3 V- r z$ P7 C
}
- I: K/ a$ W, l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ ^* N8 z8 t/ V' \0 |3 g) D, m2 m) H: H
{
% Y/ H5 t' n) r4 w) k( X4 O4 p2 c m_nRemainGP = 118;
! P2 x8 g$ g3 Z, R( w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 R* @9 x( u# f5 |# T) ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;! i4 ?) O7 \4 g6 W
}
. R; W2 K% M- L; t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% \; H& k3 K' s$ n! T( [% q" m/ ? {
! g! O1 g' J& ] n# ]7 t' r CItemElem itemelem;
: q y1 H) W# G* g itemelem.m_nItemNum = 1;! n( o& W4 x$ \; m1 v& ?
itemelem.m_bCharged = TRUE;8 x e$ h8 b, U: \( q& g* G6 @+ G
BYTE nID;
% a9 H$ E8 n7 V/ ~: \# h# I- B3 p) k4 P2 m/ b* O2 T
if( nJob == JOB_MENTALIST_HERO )0 `6 }& f8 K$ n8 M& G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 T, i {" W. z* y if( nJob == JOB_FORCEMASTER_HERO )/ s2 f6 _8 l4 i3 m
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ L {. k* D; r/ [7 V5 k0 c" y
1 R; t6 `" A: S% V+ p2 f9 C
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* K! \, Y2 ]- j4 P4 O }
8 p, }! d4 N( S8 R0 w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 R3 F0 v% b6 s. s$ S- e- ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* \$ w: s1 e# y# p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ j* _! R; ^1 @4 v9 ? /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ @+ k/ F. \4 \. J ( (CUser*)this )->AddTaskBar();*/) }! F* L4 ]1 q1 P1 @: e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 R$ t' o; _8 a8 F' _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* Q" \, C, ^! A( \& V! p7 P
((CUser*)this)->CheckHonorStat();
( U' I4 p7 Q" R) L& w; A ((CUser*)this)->AddHonorListAck();" Y% x+ D6 d4 Y3 K1 [8 a
g_UserMng.AddHonorTitleChange( this, m_nHonor);* g' ]9 h, A1 v) ^) Z& Z
#endif // __HONORABLE_TITLE // ′Tà?
9 _) n5 n* [' D }4 j+ Q; K! C2 {" {4 |" @( k
#endif // __WORLDSERVER$ Z7 j6 Z4 t+ k
} ) n4 g+ F+ x7 a+ Z6 Z# @' d
, ]0 E6 E8 Q! S% O$ q" \2 J8 M然后你进入functextcmd.cpp并添加以下
2 y/ i3 I4 X* o& P5 L
7 s6 ]$ H2 Z/ ~+ G代码:
* c# Q0 ?. W8 K' X! R% BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( { U" ?: }' U+ O下面插入6 z3 F- O# [9 A7 s9 X3 S5 B
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ A7 w4 p( k* {0 ?) a' L: P
" v) Y! B5 A# `然后你去1 r: l0 L$ V5 H8 w
" H. S5 E! H4 ^! ?代码:
# A1 E4 s; E7 D) `- Y+ I& R* _代码$ d& {- X4 m& [& s0 ~1 w; m
BOOL TextCmd_ClearPropose( CScanner & s )6 D* m2 P$ x& F, ^+ C! {& n: } @
{5 m/ y1 s z+ l+ Y, I* M
#ifdef __WORLDSERVER
' @6 b% d! S; E! Y& i! }( y: i# z CUser* pUser = (CUser*)s.dwValue;1 m8 v" t. V- M! u8 g0 y
g_dpDBClient.SendClearPropose();
# a; i( y& L; H3 ~8 u4 S#endif // __WORLDSERVER; L2 G- |) B# o# K9 x# e _% m/ `: d
return TRUE;
. K. P5 x" P8 j5 h. d9 g}
* L( Q T1 Z# i+ F下面插入& C: j5 R. u% k( J! T
BOOL TextCmd_rebirth( CScanner& scanner )% Z- M! t" p+ f5 |) {' a# s
{
% d; X0 Y4 ?+ D#ifdef __WORLDSERVER
- K6 U9 U: x6 O) _CUser *pUser;" H) w e% C0 B1 P
pUser = (CUser*)scanner.dwValue;
, R9 G# K7 T3 ?- ?" q- M/ Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! y& _2 ^, m9 U5 o7 l `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 P# { }! o1 ?8 j: P1 w) Y
else+ [ K; |3 x5 g1 A& U
pUser->AddText("你还未达到重生条件!");/ g: \- |* L8 \4 [3 p+ h9 O7 b' z: v
#endif9 M0 f U) F3 q/ c# l; w, b2 f
return TRUE;
9 P/ U: W% q) i}
J: v4 ^2 V2 A
- h3 F( P5 ~- |* s2 [+ L+ Q. r( w0 C' m6 R
: I8 K+ h3 O: p D0 s
" I0 ]% n) ~4 l! T |
|