|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ m" g" E1 H. C% F L; V! M1 @
3 W' M5 s: Y& r; sMover.h
1 Z$ |9 j/ L' i: m( l代码:
2 f1 I7 {% u5 Z1 V9 F找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: k& ]* k; `6 {3 a% I- s
1 p, f' Y; p6 _% H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - o g$ W* G I$ ]' D4 i
. I H% `; |5 x然后你去mover.cpp添加
! m; G' C5 p7 a' c) s+ k$ a4 c
$ O7 z& |) i! i2 e代码:
7 D5 H/ y6 b r8 Q, y) Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 O/ L4 u) C% h
{
0 P4 z/ d" f% o/ E; v/ n. s) X; @) i#ifdef __WORLDSERVER
% Q& G" e+ T* ]# c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, F) g2 a {0 M# @
MoverProp* pProp = GetProp();
- K* d( [2 V7 A A' F1 n if( pProp )- @- R* A2 A- D% p1 |7 G* v/ e. ]
{
- X) |; C: E- F+ ]. ]; h+ w' U- Z if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! n& U2 p/ E3 `5 G- Q* }6 x4 ^# y {
' V& m# P8 q! f* o* E* X* r8 W AddChangeJob( nJob );- Z3 l' Y5 m- B) t' j* J! ~9 ]/ x
}else{* s5 `& p9 S$ N4 |4 u
return;9 Z4 S7 o: l3 ^
}- b- O3 c0 w7 X
int nPoint = 0;
' l; e6 f5 w9 n, ^# L if( m_nJob == JOB_MERCENARY )
+ I8 C3 d- _+ q6 j% V nPoint += 40;
* Z2 a8 c0 b' }9 K# p4 H5 M else if( m_nJob == JOB_ACROBAT )
B! k2 e9 e. W! _9 Q/ P nPoint += 50;8 @8 J7 N" l- k, } ], P! U8 K
else if( m_nJob == JOB_ASSIST )* h5 g ]' X1 U- N* [
nPoint += 60;
/ X7 E6 T+ ]: _3 [+ J else if( m_nJob == JOB_MAGICIAN )! B! l) q7 a. w+ u* m4 @
nPoint += 90;' O9 ]% w% W7 h/ t" q# f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 K+ G2 M! T2 ?# b; \, V. ` nPoint += 120;
2 H$ }2 C; j! |' ^' l! K else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 M$ R5 H5 c# ]" @* B nPoint += 150;) O+ N$ t4 ]3 N2 w2 g
else if( m_nJob == JOB_RINGMASTER )0 V: F+ M |3 T0 L: Q
nPoint += 160;
0 N: ]0 ]% N$ O; P" d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 m4 K0 v' v' R5 j; j4 H nPoint += 180;
9 X, ~4 Q& _# v else if( m_nJob == JOB_ELEMENTOR )7 N$ ^# {% K0 d
nPoint += 390;
! C: @8 p( F( b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" ^. }0 i, I0 Q
nPoint += 120;
1 O. g6 L t8 i+ p: ], C+ s0 C7 ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): W: l- g- i, \& x& L! T
nPoint += 150;
) U/ U7 C5 Z# q; p! ~ else if( nJob == JOB_FLORIST_HERO )
m1 f+ Q A5 O( h) u" s0 S nPoint += 160;2 k8 V- j6 B& x% [0 c& E7 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ G2 ]' |) f( I7 ]( E
nPoint += 180;
0 r2 U- H6 t& G2 u else if( nJob == JOB_ELEMENTORLORD_HERO )8 k$ W1 r) p! g. K8 t! l
nPoint += 390;
: C. E% |& S" E4 |, M' f0 D6 K$ o0 e
AddSkillPoint( nPoint );/ Y& [/ S+ h- [0 b; E7 _
m_nLevel = nLevel;
6 }0 p% |3 _" a- n9 [% f
. Z& W' S3 ^' X5 E6 ]% K8 {7 { SetJobLevel( nLevel, nJob );
& \" I- X# r h! n9 Z m_nDeathLevel = nLevel;1 ]8 o' b7 w8 N/ t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) @. }7 S8 \+ Z9 L/ q if(IsMaster())
0 I/ }+ Q; m& L8 g2 m, ` {
" e) y2 M) E7 Z* ?5 z9 r2 j int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& K; z! \ _7 Z) r* \ if( nLevel > 59 && nLevel < 72 )
1 h7 b' m) ?5 L# r; \0 S0 | dwTmpSkLevel = 1;# x" ~( [" t0 h6 B7 e+ _
else if( nLevel > 71 && nLevel < 84 )7 r" ?+ u8 P- v9 }4 W; i% }
dwTmpSkLevel = 2;- I) _8 Z' F: y2 [, Z5 Q9 s
else if( nLevel > 83 && nLevel < 96 )# E2 B! y" B& H5 `7 _
dwTmpSkLevel = 3;' [0 }. H3 ?6 _& R3 B5 Q- ?
else if( nLevel > 95 && nLevel < 108 )! e C* m4 A7 p- \4 J# }0 H: w
dwTmpSkLevel = 4;" w- m9 @9 ^) o% `" h
else if( nLevel > 107 && nLevel < 120 )! a$ J& \. @( A
dwTmpSkLevel = 5;3 r, Z6 u% F/ _# c" R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. T# V K8 A/ }6 P/ f% N: D1 g { ) l$ N. ?. q4 g/ N
LPSKILL lpSkill = &(m_aJobSkill);2 K" Q" @' g1 O$ ~1 f. Y% S
if( lpSkill && lpSkill->dwSkill != NULL_ID )" Z! ^% \/ T* u0 f, D
{
+ A' J0 ~* O* Y# L8 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . t' t3 p7 @# m1 g& |' ~! z9 Q, n
if( pSkillProp == NULL )5 ?* Y$ N4 A7 C$ _0 K; [8 D& F
continue;
* a, [) P/ @- K2 {2 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
S' }- P1 [4 X8 N; x; Q7 l continue;$ w8 W7 \" J$ ^. q" H' J
lpSkill->dwLevel = dwTmpSkLevel;
9 F( k) m+ X4 p- e) z: t( ^9 L }; C! V! i6 a) V* p! D F2 W
}0 H j: M6 @% h! R) D4 b# t
}
0 p7 n& f& w2 U2 L8 O$ B else if(IsHero())* I7 O4 O# A7 h( C6 f+ p+ _' f
{3 n _+ ?8 z- l3 s% X8 }# n, {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 q% }% l0 M e+ E; M {
7 Z$ I p' J1 ? x/ }; | LPSKILL lpSkill = &(m_aJobSkill);
4 H5 j3 [* M E9 Z9 g# E [ if( lpSkill && lpSkill->dwSkill != NULL_ID )/ Q! j& m4 _9 |) `6 u6 [
{6 u( Q7 Q; W! J' }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ C5 X3 g: a3 P1 X* P2 W/ g4 p
if( pSkillProp == NULL )# ?2 Y8 o/ P6 I( a7 T2 ~5 M
continue;
( E/ _9 Q- W' }: ]4 X( b if( pSkillProp->dwItemKind1 != JTYPE_MASTER). I2 D3 E1 d3 A
continue;1 h' p$ C0 ~! {& S+ e" E8 n
lpSkill->dwLevel = 5;
1 M( {9 v4 u6 \3 U }
E# L* G" r- p }
$ z# R- Z0 ^' L) O3 H }
) S3 k$ p3 F* r U3 `; ] else if(IsLegendHero())9 {6 @; @2 G7 q# p- x' |. e a, G5 ^
{
; G9 U( h/ p* r; K* L for( int i = 0; i < MAX_SKILL_JOB; i++ )
' q' a! N( E! B( G { # `0 V0 h( ?. n. s( n# C# H
LPSKILL lpSkill = &(m_aJobSkill);
. i5 {+ Q) B d+ [/ \+ h if( lpSkill && lpSkill->dwSkill != NULL_ID ): d, r3 W3 p& h6 V
{: w' _2 v4 O3 Q0 F; O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" f9 K2 f9 ^% b5 ^; G if( pSkillProp == NULL )
$ P2 f* N3 _ U. Q6 A, C continue;2 k- Y. w% J0 X9 R/ ^! D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) J5 i% Q+ p9 g9 U5 n
continue;) s' U7 [ p5 y: V- y8 M
lpSkill->dwLevel = 5;
5 ]3 V( F! M7 C4 S! ^% [ T }
2 i: W( n, \7 L6 m' t% K1 l% e }
; T( E" s- e: p R8 S% ~! @+ @; t }2 D* J. w) H7 y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; n3 Z+ v$ Z6 r1 b, z
if( bGamma )2 _ l; ]# p( s7 U8 [6 o
{0 q, l: l, P% l7 K7 M5 L$ q" e
m_nExp1 = 0;1 D2 T( }4 G8 n3 x+ ~- h
}, X3 f* R7 Z, S, @9 y4 ^4 i5 T6 H8 s
4 o" r z3 E" n8 ~2 [# V q' h6 R6 r
( (CUser*)this )->AddSetChangeJob( nJob );
" r0 |- N( p0 x1 {( t0 \* c, p5 _ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ u/ w$ ?: ~+ e# S( m" c
% z1 x2 d/ ?1 U; }$ g+ e' S2 E/ ?0 c8 _
#if __VER >= 11 // __SYS_PLAYER_DATA
/ V2 K+ d- b0 _/ X5 X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ S: B$ N' g5 R; j; w# k4 S$ [" M
#else // __SYS_PLAYER_DATA
1 ^, n! @& T. |3 z( w0 e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! {4 @8 Q8 y$ o. `2 U% M7 J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 D; l/ s6 ~# [0 O2 ?* d
if( m_idGuild != 0 )
3 N, [3 N, g2 M$ k# S) x* t- ^2 |$ f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& u8 Q8 K* x4 w
#endif // __SYS_PLAYER_DATA
4 C8 y- w* E3 }3 l SetHitPoint( GetMaxHitPoint() );
6 @6 f& N3 J9 p! q+ P SetManaPoint( GetMaxManaPoint() );
3 O' u& J& R( z+ i3 s2 G SetFatiguePoint( GetMaxFatiguePoint() );
& C# `9 r7 u1 M4 f$ n$ `. E' {2 i0 S. Z if( nJob >= 1 && nJob <= 4 )
5 m6 D, \9 f& |. j. V# E- p {2 F5 V6 @+ s7 P8 B+ w2 z* P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ h: v& B( s' @9 \, x m_nRemainGP = 28;' Y3 P5 c _, i0 X3 `
}5 g# K. I$ K" n" i& d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' k* S: }+ ~+ U1 {4 Y {
( p6 _- s0 z+ d$ X+ s1 {4 X m_nRemainGP = 118;
" ], R& L V6 s# `1 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 @5 t0 C; l$ N4 Q% k& K0 G/ q m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 V2 s+ M# s; G( h }& W: H5 V2 D6 p& t! d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ J% `( n& A& { {
5 G9 f+ X% v1 c+ m& M6 @ CItemElem itemelem;
' r: A2 y) @ w. [9 [ itemelem.m_nItemNum = 1;
0 k( E0 T: s5 K0 q. `/ ~ A itemelem.m_bCharged = TRUE;
# o, r8 {8 q: T# I9 S6 i BYTE nID;
' H( |+ y/ Y; { C% c! s5 h7 \7 U7 @! o( H" ^& j
if( nJob == JOB_MENTALIST_HERO )
* t* y: D9 c( F itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; Z" p; h; S9 q) G2 d) A
if( nJob == JOB_FORCEMASTER_HERO )) W" D: o0 ~# T# ^. }
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! E5 M: b7 a3 P# R0 s* ^
1 K0 e4 @8 J5 y ( ( CUser*)this)->CreateItem( &itemelem, &nID );% O! [! t" h1 i5 r' ]& A& ?
}; I6 y& Y8 @$ c: O8 f& b9 [$ s& L( P Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 R7 Z% r9 ~: f% J0 A; P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 l; h8 V+ N) P: k! }7 ], q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: f* g0 q7 i) L& b- [2 h0 u7 { /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 v, T: y2 J" o8 M& V ( (CUser*)this )->AddTaskBar();*/0 Z; `8 _1 u# J2 O I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 s% j; w% C( u+ H7 I* @8 D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 w4 m, g& g* O( k
((CUser*)this)->CheckHonorStat();0 R% z* Z0 {+ Q4 A5 v
((CUser*)this)->AddHonorListAck();3 S5 ^6 A0 i+ ~2 I
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 f! w. _- M" A A. ]
#endif // __HONORABLE_TITLE // ′Tà?8 J9 N' E/ E1 V/ l- Y: d4 N
}7 G. t* b; I/ u5 F: v8 z- J6 A: \
#endif // __WORLDSERVER- k( T; ~& k+ ~4 R- d
}
: v: g5 o0 C( {9 I
( H5 O: r( C% ~6 {然后你进入functextcmd.cpp并添加以下( r4 ?8 v1 x G$ W/ Q' H
. i9 l' _$ _. j. d' K% ^! a4 X代码:
1 p( M7 i7 ?) a- B6 S7 W) XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- m5 i$ G |0 F3 c B8 p) f$ {4 v下面插入- W' s$ k, A. s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * r1 M ^0 I( \- |
; h8 y3 h$ j- R! l: F% F
然后你去& O) O. K) K) Q6 |$ J, f- c5 m
; a3 _3 i, T" E: Z0 v: n代码:
* U- s! l3 C5 e& D4 K; T6 ]. O代码
% t/ U _; x: ?8 i! {2 c, oBOOL TextCmd_ClearPropose( CScanner & s )
* O3 q) B4 h1 y' y, c+ d( ]) J( l{% x) `4 d# D8 ~
#ifdef __WORLDSERVER
/ n! ]! b; @* J+ z0 R! ?% _ CUser* pUser = (CUser*)s.dwValue;( |) y0 L& A- ~* R! R
g_dpDBClient.SendClearPropose();0 B; q# K Q# K* C' A w7 M9 M
#endif // __WORLDSERVER
9 S9 o% Y- D3 J, @& A {" @* N0 k return TRUE;
8 \& X' ]2 g' g' \( R; ?4 Q+ v}0 o0 k% b; U$ G
下面插入
1 r5 l6 V' p' tBOOL TextCmd_rebirth( CScanner& scanner )6 n" f' ~: W. @4 ]
{
; ^9 v; ~/ L7 e#ifdef __WORLDSERVER, a, U, A2 F# t; r
CUser *pUser;
0 q: V5 l8 `7 \2 I7 @1 x/ [pUser = (CUser*)scanner.dwValue;% J1 N1 j. e: ]1 H* m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& |8 w) [1 w: E: p3 g6 J. S! J! UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: Q0 i! S' d# g4 }+ Xelse
2 }3 E: Y" J4 [' @pUser->AddText("你还未达到重生条件!");( G' \4 [0 W: p( C. s
#endif
( K4 f8 U2 J5 q3 s$ t$ _return TRUE;
) m2 P# q0 b0 b; J% \}
& P# r' @& X& l# i4 M% L. z$ Q8 |4 C0 [8 C4 M; ]! ~
% I8 g. c' I) r8 s! u
5 a c/ f1 r1 k* n1 y {
$ l8 V+ D/ P6 w5 Q
|
|