|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. X" K+ M5 M/ s! P
4 } H* R) k! aMover.h
8 r9 \% o, ]. L6 t代码:6 [, U- G8 m- Z. v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 ^( l4 K8 h: l1 A3 i6 `; e
0 i: D2 O/ r$ A$ i0 ]3 h( H8 p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : ?/ |% ]8 }" ]7 z$ c! _! O
4 m: Z" ^0 p0 a3 r( X1 z然后你去mover.cpp添加8 I# F6 P. h/ ^ U$ H! `; g% s' Y
$ ^ f+ \. d* n" K3 Y代码:, l, D+ z _+ P" `5 D5 {+ b3 E/ {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) O, D+ ^8 @/ r" q; y{
0 ]6 @+ ?; }/ I! ~! J( ^' m; w#ifdef __WORLDSERVER6 R* j5 H( M! P) J+ w
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' ?: Z7 v* w' [2 }" C4 ^! l
MoverProp* pProp = GetProp();
: l( K, C4 l# E. B+ o" ] if( pProp )$ j! K' w& E5 G5 o1 U
{1 f: G* e& ]; S& y2 g- L, @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; w- L9 B4 P! z {
2 _; U2 r6 J. o0 Y) T* M AddChangeJob( nJob );
+ E( v" s, f; W: D9 V }else{% m! q. {6 A4 p2 N8 ~8 k
return;
: o! _8 d$ h% T }# D3 R' n% d: }4 N0 m1 N
int nPoint = 0;/ x3 t8 Y& S, z. m, {/ J+ h1 G% _
if( m_nJob == JOB_MERCENARY )
& B$ Z, j/ B% o& O7 R" O6 L nPoint += 40;
, V8 r5 E% ?7 w$ ~ else if( m_nJob == JOB_ACROBAT )
- ~9 o8 x- [3 S7 p5 K- }- e8 p nPoint += 50;# P" |, ]* |3 b _5 ^1 v+ j
else if( m_nJob == JOB_ASSIST )
4 m: Y" [8 ~/ j4 Y: c) X nPoint += 60;3 K3 {5 C! ?6 F3 ^
else if( m_nJob == JOB_MAGICIAN )
% D' T' [/ |3 W9 D5 t; c nPoint += 90;# n; A4 ]& ^: A5 b8 J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; I7 w- f# z3 I+ n8 | nPoint += 120;
4 h2 o; q& `( x) O, d$ U else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 H( M2 Y+ h/ k+ @
nPoint += 150;- k1 ~7 T4 } \1 W! R
else if( m_nJob == JOB_RINGMASTER )$ d) X- X& ?4 ^6 `7 Y( O3 z% i
nPoint += 160;' {8 ^% |+ G s5 i! Z, H/ y, F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- I; H$ Z: h8 f- l/ t nPoint += 180;8 [8 L5 `- l7 O. ^/ T7 w
else if( m_nJob == JOB_ELEMENTOR )/ a, [, u& D5 H; M5 h
nPoint += 390;
+ }1 B7 @: B6 c! ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% Q% j. {' Z: q6 |
nPoint += 120;
9 a8 o! Z+ C5 ^1 ? S' U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 r+ W( Y) }1 E, g {7 r nPoint += 150;
1 ^! c/ |/ n4 ]' D2 _+ u" Z else if( nJob == JOB_FLORIST_HERO )
8 q; w* u! p# R9 u n1 M nPoint += 160;
R8 T8 Z9 d) x# y5 l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) n. Y' z/ J! p* I
nPoint += 180;3 {1 _+ U# }* ^# p
else if( nJob == JOB_ELEMENTORLORD_HERO )
: `. W6 M2 p$ D nPoint += 390;' [ @1 K3 `( N
1 ]3 t/ e6 R: ~) e9 }; t AddSkillPoint( nPoint );. R! y0 W7 N% w! ]3 G3 e
m_nLevel = nLevel;- P+ h: n8 |( D5 s
/ h w, P7 i+ I* U( R: @ SetJobLevel( nLevel, nJob );5 @" Q8 Y& e$ q% B' ^, n
m_nDeathLevel = nLevel;
( f3 I& X* W0 O- i! V" E#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 W' ^; f/ `5 e# J: k( }0 w' {
if(IsMaster()), G% I- T9 y! p$ S$ a! m3 |6 y
{
& t! `) Q% f& {' L4 U& l7 U+ x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! F$ `) I2 @: F' f2 @" ? if( nLevel > 59 && nLevel < 72 )
; N5 q" O! G: S* o* d" m [ dwTmpSkLevel = 1;
6 X1 p5 j+ ~6 o' Z$ l else if( nLevel > 71 && nLevel < 84 )" Z: ]3 B) c, U4 U
dwTmpSkLevel = 2;
: Y |; L. S4 h3 q5 d! N else if( nLevel > 83 && nLevel < 96 )
* K9 v1 {% i4 u8 S( D" ^% f dwTmpSkLevel = 3;7 R: ]3 }; Y: c$ K2 O
else if( nLevel > 95 && nLevel < 108 )
# D+ c- O; h' _6 ^ dwTmpSkLevel = 4;
( H5 a6 z+ m9 q. ?% |3 f else if( nLevel > 107 && nLevel < 120 )2 X$ N7 @& E- W& [( _! E
dwTmpSkLevel = 5;4 @" V0 t0 R2 _$ l/ }/ u( _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - f7 w3 ~. C" t
{ 9 A4 @' d5 W1 {; O. z
LPSKILL lpSkill = &(m_aJobSkill);
; F; y$ N) W- Q7 X% [ if( lpSkill && lpSkill->dwSkill != NULL_ID )' }1 {7 I2 e9 c5 q8 {* M$ W# Y
{; X: I# t8 S F6 f' n; \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) c! f: M1 ^/ p9 C, Y- q4 ]8 I8 w if( pSkillProp == NULL )6 S2 H/ r: [ q7 e
continue;
7 V0 m0 O/ L' q5 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ g9 D9 z, Z& Y7 [
continue;3 }& ~4 e# K: C, E
lpSkill->dwLevel = dwTmpSkLevel;
4 z: Y& m! _! J5 d+ v }
- i! x; Z) l k! j) t }4 j. W, N" j6 y
}9 y" e2 l% ^1 z) K# B
else if(IsHero())
9 [1 f N" m, n8 _7 \4 @ {
# k; i! d& S9 a+ G+ `2 l' x9 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) Q# u5 d4 L8 u# B! q+ c
{
$ O# K7 c3 X, Z6 O3 z' j LPSKILL lpSkill = &(m_aJobSkill);& y- Z$ I" y5 ~) b- P( w3 }9 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 X# O7 T3 x6 s2 `2 f {/ U- M4 |5 u" v2 o* s# d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
C- T# ?! [% v M) H if( pSkillProp == NULL )+ X& e9 C( g' X9 j& p* K
continue;: p: ^: ]1 C: _9 w, S0 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ], M! W9 s) _) p, P continue;& m$ k0 [2 Q' W
lpSkill->dwLevel = 5;
1 ~8 A f5 b3 T5 i; c4 t: ^8 d. g }
- a! x3 I7 ^6 W& W8 @# t, X }
! D- B( K( ~ j6 P6 N& J }4 a( ?% o7 V; y) L& A6 o
else if(IsLegendHero())
2 i- G- q [( V; c. M, i' V {
* o, g3 s1 F( y% L2 Q4 `( M4 ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; ^3 r9 R+ Q( x3 v4 f" P2 K5 P
{
* [. n5 j5 t* i- n7 z LPSKILL lpSkill = &(m_aJobSkill);
9 s1 T( z2 s7 _( v if( lpSkill && lpSkill->dwSkill != NULL_ID )' A7 |8 s3 V/ P8 u \
{
( Y+ @3 Y0 R( l& T3 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' x. w J# y8 h( S) R- L& P, y: \
if( pSkillProp == NULL )2 E2 [4 |( p' S+ I" z z7 m
continue;
* v; A- `& I* z# ?$ V5 ]! M if( pSkillProp->dwItemKind1 != JTYPE_MASTER). }- i# p0 J8 z0 @
continue;
) T$ Z" m% O h# ? lpSkill->dwLevel = 5;8 t8 l4 J, S+ Z
}% g+ M: n& b* I3 }
}
5 O! b$ J' A" ]4 [( E# A- A2 ~ }
: t0 T7 X4 ~3 R% ?% t4 f @% M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 a. }/ B; L5 b% b9 O
if( bGamma )0 v8 H9 w- `" B6 f
{
! S* M9 w$ r1 z2 ?5 t' O m_nExp1 = 0;( Z s5 V# i8 G2 e$ f. Y
}4 N% o+ W/ |* q
5 Z4 F" w7 s6 h) @ ( (CUser*)this )->AddSetChangeJob( nJob );
4 E. s. X6 q5 Z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 d4 G9 f/ l$ H! Z1 w: [9 X* [* O6 `9 r+ O; a) e
- o1 h+ M1 g( U' H0 ^#if __VER >= 11 // __SYS_PLAYER_DATA% V& z6 a5 f' N6 ^1 q+ v. @+ O" C7 A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. h) M3 W0 c4 W3 V) @ ?#else // __SYS_PLAYER_DATA
. _! H6 B7 H" \8 z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- ]4 s6 u# |9 J R4 V# q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 [3 i- S" a: C# {/ \) K" r if( m_idGuild != 0 )
( E. i1 r9 `, }3 z" `1 d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 c6 o( U4 |* H#endif // __SYS_PLAYER_DATA
# S- [! ~6 a9 B SetHitPoint( GetMaxHitPoint() );
; l* o2 F- _( n SetManaPoint( GetMaxManaPoint() );2 q1 i" u4 R" w* ~- N
SetFatiguePoint( GetMaxFatiguePoint() );
6 G$ k$ c8 {- T$ y8 d# C5 I2 N if( nJob >= 1 && nJob <= 4 )9 b! D1 V5 O5 _* ]+ n
{2 q$ V, O' O6 L t
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 G" Z. [# a1 {) @: @, ~
m_nRemainGP = 28;8 P& n: G" b: Z) l0 h- p' p0 o
}
7 P3 }* ~. @+ x2 o8 S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* E, ]: l! D; k, }: Q" a {
6 y! p9 s4 S( p5 v m_nRemainGP = 118;2 W; g$ k! \& k' d% M* o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ u9 ]2 I8 [: L* E: K0 ^( s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) s# }) N, |" l- R- u) z) n }
& `) J# l/ G# x, U. ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 S& H R) t$ l/ L- `, t {
1 M& K; H0 Q4 ]2 `8 [ CItemElem itemelem;
9 Q# ?6 p9 ]4 Z0 Z8 K itemelem.m_nItemNum = 1;
7 K( M4 {4 v4 F. Z; K' M5 ^ itemelem.m_bCharged = TRUE;
3 W* ]) p9 ^/ z1 D" \( X D BYTE nID;
& @6 ]* v) _( R) T I% q
- S3 ]: f( d, U1 D if( nJob == JOB_MENTALIST_HERO )
' D2 i1 n( H& [- o& ?* ?5 { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 y: P* [: E. B1 k' X if( nJob == JOB_FORCEMASTER_HERO )% ^! |3 G2 {. p- @; c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) N9 l: r& [0 M7 Y; Q
& q" }7 W# W2 {- U8 u6 F ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' s$ x: A* M" }( U& K }7 s+ g, v8 _, G+ c8 L" ^% e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); R+ s" N! d! {" S8 W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ F- S5 ?! v6 a% p2 [" \ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) C H. d$ u2 F, I3 z5 Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 i/ z& @4 u! J1 q ( (CUser*)this )->AddTaskBar();*/
' A, r$ @0 r# F, Z% m2 c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 j: h$ V" |+ B( Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& a1 Z2 _$ u& x2 n0 l5 [# Y+ \. X" y
((CUser*)this)->CheckHonorStat();# d7 H$ [" g$ G! u( l4 {: ^2 Z! L
((CUser*)this)->AddHonorListAck();! K8 c) C. Y! g+ X- L0 E
g_UserMng.AddHonorTitleChange( this, m_nHonor);' m: j& g) x- }
#endif // __HONORABLE_TITLE // ′Tà?
% e2 t6 d! _! q( p1 v7 J }
0 k3 Q q8 u J+ Y& p S#endif // __WORLDSERVER" q! d# R, F/ e
} . J6 c9 D/ Q; W5 y; W
! k: o) X" W# ?- n* B$ I3 b6 W然后你进入functextcmd.cpp并添加以下
) p/ N6 u6 N& [/ H- M
" m) E% P) p5 ^5 P8 S代码:
) h) F- |. `5 `% P+ m. \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! y/ l0 b+ B& u/ {, [6 j- Y! G6 K
下面插入+ d: L5 K- w: _# Q: ]0 D2 @
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, x& M" j1 m8 h3 w& x3 G
4 w+ t0 r+ q% R# E然后你去
$ D' |; f; a( t7 J+ [4 Z
) _) J" b( F o" [4 j! e4 L1 q代码:' |- e6 r# g3 f6 h6 N! [
代码) ~+ M- S+ k( [3 [
BOOL TextCmd_ClearPropose( CScanner & s )" K+ W4 _" u( V9 G
{
- Y1 B7 i; _0 |& o+ o5 U6 g#ifdef __WORLDSERVER
) A2 a. U! N1 I8 e5 X$ b- e CUser* pUser = (CUser*)s.dwValue;
& o" S) s+ ~, E7 A5 S g_dpDBClient.SendClearPropose();, \8 L6 j4 @, q! E. J
#endif // __WORLDSERVER
2 H( w0 S! a% X' ~% \: i return TRUE;
9 k& T" m. j {7 b}
" B5 z: ?) t, n$ t, O- f2 q下面插入 j; B n1 I' d8 l+ \2 N! T0 L
BOOL TextCmd_rebirth( CScanner& scanner )1 x4 @- O4 Z% y* T! U. V9 b
{* d# U2 n+ f; @9 i
#ifdef __WORLDSERVER4 D# U d# Z8 M. V; A/ Q/ u) P. [
CUser *pUser;+ g. |% S& B1 R$ E# z' a1 Z& k
pUser = (CUser*)scanner.dwValue;
7 z! k3 s s0 w Y# M. F9 a Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ w: x: O0 e% g1 |* z1 FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' B6 s, W; S) Pelse& j7 ]* A! S2 z% g0 J
pUser->AddText("你还未达到重生条件!");+ s) N4 {: c7 Z& u# h
#endif- l6 t6 {/ z* t; X$ Q; W
return TRUE;, O% X/ T0 H; P1 O
} ) N, ]0 p* q0 m% w+ W
; N, t! W0 S6 \; m) |4 f. ^2 Z2 j7 {0 \; n1 ~/ S% O
5 v- |2 z) } Z
+ a4 l1 E" |$ Z/ [& s |
|