|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% h" M! Z; [% u2 L# A
0 y5 f) M/ |/ _ M- N0 J! KMover.h
( t# j w: w0 q1 M代码:$ B; S1 M8 s& ~' `$ ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* l ~: s9 h; t; v# ]
1 ~) y& e, X% S7 Y% `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , V9 q! l9 d) J5 r
: Q$ u1 g A3 P然后你去mover.cpp添加
4 `% i' b3 n! q# H: @4 {6 S% c, _7 J6 {
代码:
8 Y1 P) d& C- J/ Hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ n' v! G S" }
{
, i' C7 @; F6 h7 T- _/ |#ifdef __WORLDSERVER l: y5 T/ _ f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 v, `2 ]2 \5 K1 k# r
MoverProp* pProp = GetProp();
8 x$ t# a9 b2 n9 m: ~$ V if( pProp )& ~; A: {, F, c( l5 e
{ A( X# z6 j& i! `8 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% I9 w( e' i9 `: q1 N+ s+ n
{
0 a4 j4 N& p' ]3 P3 m3 B! ^3 z AddChangeJob( nJob );
7 f. t' M: S8 J }else{
1 W, a6 v( V) v: i4 B( f1 b; X" O9 Z return;
$ K6 n! b' a X& |6 d V5 t }4 K- l/ y; n2 z% ], A* t1 v2 h
int nPoint = 0;+ R1 z: m* X* B. s3 X. c+ K% e. H7 P
if( m_nJob == JOB_MERCENARY ). H0 F% u6 P# }2 c
nPoint += 40;
( J% q, M. J& ~3 I else if( m_nJob == JOB_ACROBAT )
0 ^3 r& V6 U. I nPoint += 50;; F& g6 d7 m3 ~9 {
else if( m_nJob == JOB_ASSIST )
% ~0 ~- P" r3 `, h* M( p! ]: M nPoint += 60;
* |' v5 P+ ?7 e6 M; A else if( m_nJob == JOB_MAGICIAN )6 a) Q# q8 |. c* J! i8 B
nPoint += 90;5 V; e8 h+ ~& d* S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 u; n# l) }5 y) l; C
nPoint += 120;0 q: V2 _8 ?) K+ [& S
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 P" E" K2 y7 I; M& r5 c4 {! l5 j
nPoint += 150;
; j( q8 c& A! n ` else if( m_nJob == JOB_RINGMASTER )
. @( {+ m! B3 @$ } nPoint += 160; U' ]4 c1 M, n0 ^, S' o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 K/ e: i r+ d( _) { nPoint += 180;/ P1 e9 J& p# j/ ]& C
else if( m_nJob == JOB_ELEMENTOR )
- p1 P' C( o0 ]& N nPoint += 390;
T* M. f5 s, v; c6 W else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). l% a. c' H0 D8 ~9 ~2 C
nPoint += 120;
& H/ u- s. H! m else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
H2 n/ P8 R" h3 \: J! {$ K! |2 L; s( d nPoint += 150;
8 U( w1 q! ^/ b4 _% j4 k3 w6 c" n1 h$ n else if( nJob == JOB_FLORIST_HERO )- e) p/ v& A2 }0 {4 g
nPoint += 160;
% k, M' m: M7 D+ f) z5 L else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% }' B$ }" g F$ Q2 V& w$ z
nPoint += 180;
" z5 C, P# P' k. |* q4 M3 [4 x else if( nJob == JOB_ELEMENTORLORD_HERO )! l2 u" W6 e- w" {
nPoint += 390;
2 u1 ~! j8 W* e( X" P* H {& g. k4 k8 y5 I) K0 W+ \! P9 O
AddSkillPoint( nPoint );+ P5 [3 e/ K. c
m_nLevel = nLevel;+ L9 i8 f& ], ?% Y8 F! E$ `
' h0 Y+ B4 ]6 i% t/ Q4 Y4 k
SetJobLevel( nLevel, nJob );
% ] k( h8 T& _ m_nDeathLevel = nLevel;
0 q4 P& K+ q% {& l6 b0 {! Q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 E4 ?& t0 L- v$ m: t4 v
if(IsMaster())* w" ^! D3 ^7 f9 F
{
7 u% j: t/ k- O' a int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 L. L4 M w: n: y) _5 _
if( nLevel > 59 && nLevel < 72 )
" L6 a# H- I6 q/ B) t: {) ] dwTmpSkLevel = 1;
) B* x; `8 \4 G6 G else if( nLevel > 71 && nLevel < 84 )7 d0 |1 w8 b! Z0 R
dwTmpSkLevel = 2;/ O3 k5 P1 e d/ e1 }
else if( nLevel > 83 && nLevel < 96 )" o% a9 p( D/ P
dwTmpSkLevel = 3;; F6 v+ V# [2 M8 @% x: m7 ~
else if( nLevel > 95 && nLevel < 108 )0 q+ e* a( \7 h; J9 e( Z
dwTmpSkLevel = 4;- f, |& e; J- p
else if( nLevel > 107 && nLevel < 120 )
( C3 j0 V) k( }1 W dwTmpSkLevel = 5;4 \9 h! o/ q/ ?2 J; M. j1 }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 T/ X( F, d) W7 n! L D
{ / H# c( t( i' T- q# D8 |" b0 v8 S+ w o
LPSKILL lpSkill = &(m_aJobSkill);
* I- H% p& Y" U6 H5 V$ J5 O5 P if( lpSkill && lpSkill->dwSkill != NULL_ID )
. P' Z3 Y+ W5 ]! k {: G) \0 O3 B5 H; j4 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 M6 ]/ d" i! p
if( pSkillProp == NULL )- g) @% i5 V" x- I5 p
continue;, k0 G2 B" x) }0 ~8 g3 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; j \" J3 o+ ~# W) n continue;- a9 m# c. _6 ], w! r0 G. R) s" v
lpSkill->dwLevel = dwTmpSkLevel;4 ~* l( \. X0 ]/ }9 x
}
* C( Y( n" }. x% u- s' y3 L2 n5 t }2 C0 [; }9 i( l6 H
}
% d/ M3 t( n- g( C9 W } else if(IsHero())
- Y$ ?* G! A$ [- X1 r8 H7 u {% U. T8 E5 t5 a; x- M! w9 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , z( t% F0 q3 i6 e8 |
{ 5 a+ l7 Z) N# N5 W, T
LPSKILL lpSkill = &(m_aJobSkill);
9 a, N# [5 D2 W1 c) F0 [" } if( lpSkill && lpSkill->dwSkill != NULL_ID )7 }% r8 U8 q& N7 ~* S
{# ~% u* T( m; |8 [1 x/ _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 t5 U: U/ @, O" I if( pSkillProp == NULL )* ]1 w8 V" w, J
continue;- e+ u, E5 b5 J4 m' o' y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- m# `$ j% t% Y& G' ?9 U
continue;( {2 @5 B" `6 j% l- b( X
lpSkill->dwLevel = 5;
8 ~% K) U+ H7 ]: V5 h }
% J! g/ ^& j# i& }, B0 B }
1 ~2 u4 L' |+ L }" r0 a7 `. U$ d. g5 t- T D1 E1 f; |" s5 Z
else if(IsLegendHero())0 w6 G' o$ n, Q, {9 g @$ z) Y
{4 d( x' q- s8 x$ K$ \1 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, u( B) H9 m' v7 B4 H( V& q. Y { : k% c( s) A7 p
LPSKILL lpSkill = &(m_aJobSkill);4 ^4 t+ m6 W. g1 ]4 W) H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 |. E% ~, k y' I {( a) ~/ K4 k5 \9 W* A, `% Q7 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # L' |" e6 L% ?
if( pSkillProp == NULL ); a2 V8 ~! m! T' a
continue;
+ S s7 T1 H9 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 y4 ~) O! k0 l continue;
/ j7 B7 K! d/ Q R! |7 h$ o lpSkill->dwLevel = 5;( U: b7 ~( h$ I0 m
}
" U4 w/ A+ x" Z$ A' P `- C! X }
G3 G2 J# q' U/ r3 L2 Y1 Y7 ~ }2 D& \, o. v( m- k% S( h6 j3 Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: D5 p% p- M$ L2 k- j, c if( bGamma )
+ Z; ^ T- e% ?& g1 { {
+ w! O+ O+ @# k$ O, ?# g m_nExp1 = 0;
2 z9 l- b; s- z1 b. [8 _4 U: L }
4 V! j; J2 q1 C1 u) e; n* j( ]( \1 ?* u+ q4 o1 W4 K+ u* i
( (CUser*)this )->AddSetChangeJob( nJob );
6 F4 t& }1 f3 m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: \& Y4 B, B. \8 N
. v, O& F c$ g: C1 J1 | R* b5 d4 C( h- }
#if __VER >= 11 // __SYS_PLAYER_DATA
: t1 a* |' V* X, u2 a0 T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ \1 E2 q- P* E7 J
#else // __SYS_PLAYER_DATA$ j1 o2 A+ D4 v; k2 G! U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: W3 P* A# j) `* H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 a5 k$ `. q% T, }
if( m_idGuild != 0 )
# u3 |+ `6 k3 D& B8 }8 }* {* Q( O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: E5 J1 x0 O- ]6 g; P* `9 ]% W5 x
#endif // __SYS_PLAYER_DATA, K7 J1 `( F5 z
SetHitPoint( GetMaxHitPoint() );
( o k8 D: E! c [5 w2 z7 Q SetManaPoint( GetMaxManaPoint() );! j8 o' W, w! o) B0 S- _
SetFatiguePoint( GetMaxFatiguePoint() );
S, @/ b; l, y8 ^ if( nJob >= 1 && nJob <= 4 )
- Z: U2 U( K& e7 f& J5 S! _$ w {3 I$ I2 M7 O( Y8 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;' x! K4 \; C+ m6 v
m_nRemainGP = 28;
1 J' }; a) P& @$ r }
; u" ^8 E+ w- t! L+ Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ u) Z0 m7 V% a
{1 ]* _8 f B% \- c* N7 [0 e9 V% R
m_nRemainGP = 118;) f. b. s7 a0 D9 i7 U
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ y8 n6 G6 {+ t2 ?( I( U" v m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 s1 p: H f) ^- J }
V3 Y+ i2 t4 Q+ [3 H q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" Z- G& h# u) ^5 {3 n
{. m* W$ l8 e) o N# b. X( l( A
CItemElem itemelem; I# ~7 y0 I! g! o; w& C
itemelem.m_nItemNum = 1;
' T1 n) m7 N7 y! z: W itemelem.m_bCharged = TRUE;. c; o+ M# V2 J
BYTE nID;/ `) U6 E3 @* l, S' {$ X' c
. U; y0 z( P( y- B$ O5 [$ W4 Y# j if( nJob == JOB_MENTALIST_HERO )8 y: M6 {! U$ q0 _( L) Y4 X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: k7 f8 I9 i y, ?# S! h% ^
if( nJob == JOB_FORCEMASTER_HERO )
' S! L8 K1 P+ N y* P' D h itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- @& e( K5 X4 z; E7 L& ~
. H8 F9 e2 \" K }5 u3 h6 W
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" C0 m2 A: `5 U3 Y* v: E6 _ }- }& o/ Q D- N x+ |! Z" d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! s) r0 y7 q- R" q' s+ ?/ V1 n7 p ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); Y7 [( k* v$ O% k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 f u3 t* `, h1 F* I3 R6 a6 t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' w2 {( O, @( W0 e0 z6 W! o/ M$ n ( (CUser*)this )->AddTaskBar();*/! s* e/ F2 Z" e* w2 @" t5 k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 ^2 X/ Q- a; j5 M* s5 e5 F8 q) Q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, U) [, D% b9 Y5 I# R+ r! {' }" | ((CUser*)this)->CheckHonorStat();
' L, _8 a9 P1 b3 }4 U ((CUser*)this)->AddHonorListAck();
3 P2 s# @ O5 a4 f( o- H" y1 i g_UserMng.AddHonorTitleChange( this, m_nHonor);
% R& ?% {9 V7 T$ v2 {! e6 W#endif // __HONORABLE_TITLE // ′Tà?
3 C: [/ Z3 }- M& X+ \2 D& \% L }
/ x" W" ~- `5 q8 v. d% F7 X#endif // __WORLDSERVER
% s6 c& q' i- \4 g& ?} + j. T3 @; y' z; K2 V o
7 i2 |6 U& L$ ^然后你进入functextcmd.cpp并添加以下7 Y* _# x; I6 ^, g% Q
$ w! ?7 b1 h4 u3 h6 L* C$ r5 v
代码:
" P6 {& i" ^/ @9 s: E# E' vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( ~9 [) e/ N; V. {
下面插入 b9 I# O7 i. Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ x3 A# |6 r m9 E# Q% t, r" x# G; p z& Q6 t6 ^+ O
然后你去
3 n; x8 ^* G/ K$ _' k- X2 |0 R. f, Y1 n/ G7 Q+ ^5 `1 r6 ?
代码:
' a2 S9 ?2 X2 e0 z代码
4 Z* i; ]- S8 Z% ~2 mBOOL TextCmd_ClearPropose( CScanner & s )
5 p5 ~' ?5 t; Q# {{
( m& b8 Y# X) ^- Z#ifdef __WORLDSERVER
/ W g$ C" c* a; r' Y" \1 T CUser* pUser = (CUser*)s.dwValue;" e+ n @- u# b, {+ N
g_dpDBClient.SendClearPropose();
1 w: Z" W; g' l% I0 O, y#endif // __WORLDSERVER
5 I3 h+ r$ J& ?! r0 }- G+ \ return TRUE;; D( z ]. l- Z
}
9 r6 {# U( `( q5 ?) w下面插入0 ^4 J4 n* ]" `& X" m' G- g3 u2 _
BOOL TextCmd_rebirth( CScanner& scanner )5 m# A2 a0 f$ g) H; N
{
# Q( u& Z' m. n7 T( ?#ifdef __WORLDSERVER
* K9 D, r5 V, [5 e, a6 NCUser *pUser;
" ?! T2 S2 t5 Q) A! F. a, LpUser = (CUser*)scanner.dwValue;
5 n* _% d% a$ s6 E, Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 _/ A& g! p* {6 l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 O/ c) k4 X; H$ [5 w
else; e& Y# n8 F* O; }( C
pUser->AddText("你还未达到重生条件!");
9 [, g, v" N7 X4 z `7 i/ e; z#endif
" @9 H# Y+ o+ Mreturn TRUE;* A' S! l: Z4 M
} ( t. L* F- A0 y+ f# B# P o3 h: k
% u: l& ^! [% X+ ]
) q1 J* S/ a+ Z! A0 X7 S& M! X9 O, b1 h
( E2 _4 m! `/ V3 k/ h: | |
|