|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- ?" x; o8 A" W
+ H+ R- ?$ u5 z! }
Mover.h
$ m1 @* R/ S" N$ F+ }# |9 W. D5 K/ a, H代码:
, ?/ P# Q0 P; u# ^4 N( l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- \8 F5 {. e- U2 ~1 q1 u0 \! }3 i0 x
* N- O% n5 p1 I8 ?/ |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , V# Z; Y6 u( t; y
5 Z- i3 Y* w2 v- J2 R- W' M
然后你去mover.cpp添加
& b( a: I4 }8 @
( L5 b1 k1 M$ V" ]代码:8 X! ~; z& R9 l+ c, M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* I1 a2 z' S( u
{
+ e; A* K3 _& |3 M#ifdef __WORLDSERVER
1 ~* a& c; M) C2 X4 } N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" F f( F6 G' a3 c& b9 o MoverProp* pProp = GetProp();# c5 ]$ J/ S' B/ U0 p# c/ i& I0 ?3 |
if( pProp )
( I% o8 X6 e! K% t. E {4 z% t' C/ D% F* {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 \$ T, J& w9 j {) r* {# ]8 b* ~) W
AddChangeJob( nJob );" r+ r. _/ h- Y
}else{
$ D: ?1 H+ c! Q$ Y return;
7 y+ } N2 e0 _: I! @" R6 g3 G3 r }+ ~. r3 k: Y' h6 S4 ?5 J+ u1 j X
int nPoint = 0;
8 W# T @8 |% ?7 ~ if( m_nJob == JOB_MERCENARY )1 _3 v7 ^! z4 ~9 E
nPoint += 40;
/ N l3 I$ @/ h else if( m_nJob == JOB_ACROBAT )! j% t4 a# c, R8 {; r( q
nPoint += 50;! s* x9 X' ] c3 ?8 x1 W
else if( m_nJob == JOB_ASSIST )
) | h( d7 \# S( p% o( ]8 q. v nPoint += 60;. [8 D; K% M& v# |
else if( m_nJob == JOB_MAGICIAN )
) p" m# @6 ^* t# d$ Z: P' g* q nPoint += 90;
, Q$ L0 E3 m5 B0 d2 n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 W: m5 }0 \6 {- p! y2 w nPoint += 120;- c* H B: d ]- f# }* _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 [1 l' G$ q$ @" d2 J nPoint += 150;
1 n+ j% v& }* k% N9 w else if( m_nJob == JOB_RINGMASTER )" Y: ]2 |/ p( z2 S, F: h% A
nPoint += 160;
3 |% ?& e$ d* r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 ?( e% m4 n1 R, @& I nPoint += 180;
! J# ^6 z! Y4 O+ e# _/ z k else if( m_nJob == JOB_ELEMENTOR )
- w% H- g/ u5 I! O! [* p7 B% B8 v nPoint += 390;; g- a( z* ] c$ u+ c8 M- V& D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 [ ^0 v0 E, Q: q# h6 g0 k
nPoint += 120;
+ i. l: a8 n# N2 P$ S) L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( t" Z2 D8 w! n0 z: Z; E$ k
nPoint += 150;5 I) ^4 G' {0 Q( {6 W( Z
else if( nJob == JOB_FLORIST_HERO )
% J8 D; W* j% o, Z# P. M1 w nPoint += 160;1 [& h- B6 A# B- W5 h
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
E0 i' N) d, c nPoint += 180;5 F# y2 @, K( z8 f' O a& Y' W
else if( nJob == JOB_ELEMENTORLORD_HERO )1 K( ~' P* G! H* G4 A
nPoint += 390;; x4 Q' u4 `3 B) T" K8 f
! J" }9 l8 q4 H" T) C0 u1 _ AddSkillPoint( nPoint );* @7 J4 v2 E; D/ M* J* S% W! K9 B
m_nLevel = nLevel;$ x% P8 T' o1 }/ Q1 S0 q( y! Y
/ y" s0 b8 S0 m SetJobLevel( nLevel, nJob );
" k" L9 b" K, F K m_nDeathLevel = nLevel;4 C# @- K$ l4 M9 ~, h6 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* I# y2 T" ]9 d7 M
if(IsMaster())
7 B+ h" ^5 e4 {7 c( q A% f/ i% R {
- z+ d7 w6 p2 t1 V/ ?" U int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 y+ X& l, e# T0 J) |' w: {( S
if( nLevel > 59 && nLevel < 72 )
$ D% S# {5 n! I0 ]6 y, |- { dwTmpSkLevel = 1;
% |: _; s7 d- N) }- [8 M$ l( L else if( nLevel > 71 && nLevel < 84 )
* t7 g( z; E7 ~* }* O dwTmpSkLevel = 2;( ~4 r* N$ `0 z% r P" P
else if( nLevel > 83 && nLevel < 96 )) z( y2 ? b/ C+ a' D5 U
dwTmpSkLevel = 3;
6 u8 G1 m, |( ?( @8 ^8 b( z5 z( E else if( nLevel > 95 && nLevel < 108 )% \8 d# ^+ T; o$ h* x4 U
dwTmpSkLevel = 4;
* v1 v; v( w( C; A/ M5 z8 L else if( nLevel > 107 && nLevel < 120 ). y$ L9 V& N) }8 I6 I% \
dwTmpSkLevel = 5;
' E( g( F- l5 G/ v: o, p+ R/ f for( int i = 0; i < MAX_SKILL_JOB; i++ )
# \$ C7 ]# G- d3 R6 [ {
" \/ w: a: E4 `" T5 x! i; b8 C7 h LPSKILL lpSkill = &(m_aJobSkill);
5 t% a- Q/ z1 G4 d' Q if( lpSkill && lpSkill->dwSkill != NULL_ID )0 {6 ?9 ^5 |( `" g: ? c* X
{
* V% l) J# h g/ E+ E* q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! O; _7 F; B: A4 x+ N if( pSkillProp == NULL )0 M$ [% o5 H/ C o6 V2 s
continue;; U. X' S& N+ N {# Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 ~* x6 @$ U5 Y+ t continue;8 T& n. R& q+ Y e' r' q
lpSkill->dwLevel = dwTmpSkLevel;
$ }" D$ k) Z1 e8 Z' | Y9 i }( N: J2 T5 o3 Q# d- C" B9 ~
} f; p1 g1 G3 C0 s% u# R
}
l7 W, y6 z5 L( t else if(IsHero())( s9 X. J2 h: H% r* p# `2 m
{
6 x9 `- F' V/ l/ _/ n1 L' I2 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' @0 D7 i, ^! H$ N( W4 e I; y( @ @
{ W0 {/ Z2 Y! W1 ], H5 c
LPSKILL lpSkill = &(m_aJobSkill);
9 o# H {0 t- @3 D! e9 M4 p7 J4 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 v6 U% y& ]" j7 z+ N9 Z$ } {
3 G. [# O, f! O) W9 g- e8 |( G0 r$ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- A8 b& `1 I$ L# ^ if( pSkillProp == NULL )
" J4 G" t4 Q! O# B8 W, y! o continue;$ ~4 A. t3 j1 }# l- Y7 ^" n* L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 K( Q; c* d! w9 \ continue;6 J0 [: @: M# K4 d, S
lpSkill->dwLevel = 5;
( B- J" z. \- p0 ~; ^* N }
# P9 Z }" A9 T6 N: ] }( L/ }7 B/ G4 V' \) @' u2 C% y& v9 F
}' d5 b; s& S) M, p3 i
else if(IsLegendHero())
5 }; M2 A4 K3 G# n, z4 z2 S, ` {
8 L" p5 d1 j7 F" S for( int i = 0; i < MAX_SKILL_JOB; i++ ) # R- O5 @! i- v! ]3 }
{ : @$ |8 W. v) G; l
LPSKILL lpSkill = &(m_aJobSkill);, G- T8 C- n# ^ X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' O/ o: p# s. C. \6 Z {/ b/ z( {5 h, o2 v$ I: D/ x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : F. K" D1 k2 O' ~. s
if( pSkillProp == NULL )/ m* t+ ?7 c" }7 L
continue;, v9 B, I9 Q3 W l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# E( G% r2 S* n/ }' M% B# d: M continue;5 d/ C& B; b- ]3 d$ H5 @- |8 _
lpSkill->dwLevel = 5;* [. Q9 l' I3 h
}2 P8 i4 U1 M$ J% c: s+ c0 A
}
% n( O( } W! L }/ c4 Q8 p5 |0 P) C0 g/ D# q s$ o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 B) @# v+ x: @$ w if( bGamma )0 A5 v) ^2 ^: B c4 I% Z3 ?
{
# k6 @0 ^) F3 x1 n& G m_nExp1 = 0;; T( d( Z2 _; l& h* Z6 q
}
. k1 |& n* t3 |+ m9 N% F
8 H/ T" y3 M6 K+ c5 x- u. ~ ( (CUser*)this )->AddSetChangeJob( nJob );8 Y" [- j" r* |+ J- j0 s
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 q6 x) t" [5 X, o
- o6 z# B; Z9 W- q Y3 P
6 z) j& R6 D& j2 u5 a% `% @
#if __VER >= 11 // __SYS_PLAYER_DATA
2 y6 r1 a) m, R U# Y0 a+ k( w' } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 Q" D, q, E8 ]
#else // __SYS_PLAYER_DATA3 R% g7 i. o3 e* l* g: X, S. P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& t" w; C- [( P' K2 v* Z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 L' C: Q6 M3 R' z( P
if( m_idGuild != 0 )( V1 |6 l$ G6 B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% U# n) \2 `* \$ p7 j) c- y#endif // __SYS_PLAYER_DATA* b9 b9 U+ y6 ]# j$ ~: ~. ^+ e
SetHitPoint( GetMaxHitPoint() );
- O1 P7 R* V l# Y1 ]$ B SetManaPoint( GetMaxManaPoint() );3 c$ B Y& R6 t0 L3 S/ W
SetFatiguePoint( GetMaxFatiguePoint() );, ] c- W# y, _4 q9 Q+ b) Q
if( nJob >= 1 && nJob <= 4 )
& q% t& `6 z8 t) o {- w0 Q: _' ?4 M
m_nStr = m_nSta = m_nDex = m_nInt = 15;" g% y- D" E# _4 W& E
m_nRemainGP = 28;
* G7 h* ~. v V) i0 e }
2 K& t8 w: n: j. d/ `+ Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 f+ P" g7 W! ?/ K( O# _; a" W4 @
{: O. w- ]% Z& N
m_nRemainGP = 118;
8 C& z, w; F) |+ E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 X7 B- h8 g* Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ g$ Z! z# e9 s1 Z1 j5 D }
- j& \2 K. a- o% G0 r& e! R+ i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* l9 k5 f/ B1 J' w4 n9 c6 c
{) k( i9 |$ f, _: A+ s
CItemElem itemelem;
8 G1 v' n. W# Y+ i1 j% {1 W itemelem.m_nItemNum = 1;
) D; B. m6 W1 H$ ^: I1 Z1 k. x" L% [ itemelem.m_bCharged = TRUE;
) |2 l+ J- v2 v BYTE nID;2 a4 w' }. I8 a7 j
% e; e2 \: a# M6 w4 X3 ?1 P5 s' W7 [4 Z
if( nJob == JOB_MENTALIST_HERO )% K, C* r; ^9 Y' C" Y- v: f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' {" R4 m! o! y) \: \, B
if( nJob == JOB_FORCEMASTER_HERO )
% k0 `% D6 Z' q; L6 ?) f6 [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: X& A4 q6 T7 |+ `- G" v
5 |- m; y2 ^- L+ k7 \3 L2 M ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" W7 Y0 s4 c t$ [% F2 K8 h, t }1 Q) S4 y. t( w, s R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 i9 @$ z& S! y9 L( C" k* j( P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- h0 J; N/ Y% M+ y6 O- T. W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ O- Z+ ^8 @ r$ C6 H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. r+ W7 [. V5 @7 T/ d N ( (CUser*)this )->AddTaskBar();*/
9 Q% b- \: s! v3 X5 X6 Y& S/ C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 d3 y: S( @2 \+ l% j/ u# k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 {: e" x4 i4 D. s$ k1 s
((CUser*)this)->CheckHonorStat();( [, `/ r! A n( M& ?
((CUser*)this)->AddHonorListAck();. N7 ?8 ]9 ~! M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- B1 C7 E }+ B1 j' F0 B6 p#endif // __HONORABLE_TITLE // ′Tà?) Z! l5 W% @0 f* w4 G( R
}
- I* _7 [! W, R! X0 [. o- i#endif // __WORLDSERVER
! G/ C W/ K0 j0 [$ ~# B8 |} 9 c* V$ U7 \ y" F! @ B+ C
# ^2 d( i( }. F- I/ g5 o2 b然后你进入functextcmd.cpp并添加以下
- e& e$ {; o M" k9 A/ a, H, r8 q# {5 S4 C/ g; e; r
代码:6 T7 B! n. V, s& x+ ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! Y( G. v9 J! D' p
下面插入
5 ]6 d: o! {( P( mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( j6 [! _9 t2 i; X1 r1 Z( S3 { g
/ X2 A. V, T" J+ k# t0 g& M. t, v* O然后你去
: o* O+ V2 ?& H% X. A6 \; U0 I7 u9 b) z2 A
代码:
8 Y% Y( R7 S: ^! C2 K5 H代码
, _: E$ O$ J2 c3 o0 sBOOL TextCmd_ClearPropose( CScanner & s )
/ W1 v5 [" w. R{
* M: ?* P9 v" R: u+ t#ifdef __WORLDSERVER
7 W( M) a/ l0 D& S, r1 a/ ?4 N CUser* pUser = (CUser*)s.dwValue;0 _( C- }1 O1 {. s. U" Q' D- ?
g_dpDBClient.SendClearPropose();, ~2 |8 u8 `/ l$ L* C
#endif // __WORLDSERVER* u3 @/ U: ^3 D
return TRUE;# q4 V( L; I# ~. b8 P' f
}
& m5 j6 v7 G. g8 H1 A; K, L下面插入0 Y& d8 f0 J6 g7 u4 Z8 j4 S2 u1 Q
BOOL TextCmd_rebirth( CScanner& scanner )
) o: ]. d3 S5 y) ~{2 Z# O3 R0 @2 q8 h: \) B( r
#ifdef __WORLDSERVER6 a2 d4 r: H# e8 L$ B3 ~
CUser *pUser;
4 \- z6 ~+ P+ ]; OpUser = (CUser*)scanner.dwValue;
1 f0 A0 X* L7 Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% D6 o) N! k$ O2 w! W
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 {! z- d4 y" \+ P, `$ H7 selse0 K8 c1 y( m, V9 |7 t& c; ^7 i
pUser->AddText("你还未达到重生条件!");
& h* N& ^& |$ Y: S0 J9 f#endif
3 H$ Z! T; N5 M! H: preturn TRUE;( |: a3 f3 v7 M7 J+ z0 \: V2 F
}
. U- X" h" p1 ^/ W5 Q' q h) V. ~) q
3 G% l) Q, x. Y \ ?" |9 I7 s
7 H9 z# ~5 P- U* T* |4 B
4 e" h% f. s- J! Z* C5 _- e+ z& X3 Y% h- a q9 I7 h
|
|