|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ p4 c5 { Y1 W: J* F/ ?
1 M- }; \( G+ G5 T) q' D& t8 jMover.h/ v6 h4 _4 m* g# P9 K% i
代码:; a! L5 I+ G/ m0 S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% p/ N- b b T6 k0 H' @9 ~9 k
Y+ M( D* C4 S下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& ~# V3 s% l6 u4 ?2 q$ x# z
0 S$ d+ t3 ~- B5 P& t% c3 x, d然后你去mover.cpp添加' }& Z, g+ X; @5 X8 ^- V$ M$ M# ?; \
/ L- G% ?1 X8 j# M
代码:9 m- Z5 R8 i5 Q5 }5 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ T) Y7 w' l1 U6 @7 u7 s# j' c. u{2 h1 H) L2 w* R r: Y7 I6 O. m
#ifdef __WORLDSERVER6 c( `( D* Z% c. @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" _8 e' s" Z" j' [9 p! ^ MoverProp* pProp = GetProp();( p- M% j/ G" B! f* f |
if( pProp ), n8 I7 B0 t5 J. V _+ w
{
) W0 g' E" Z7 p5 y2 U if( nJob > 0 && nJob < MAX_LEGEND_HERO )' e J4 |) i% k& g/ W* b
{+ u- M8 C7 y( U& i! R" K: J
AddChangeJob( nJob );
/ H5 x+ {6 {- f }else{
5 S) R7 G/ `7 G3 t3 @+ W+ a. } return;
. {( ^+ U8 x& O% V: O' T" { }- w7 |8 s3 t8 ?
int nPoint = 0;
; [, C# i" [9 i6 E& a if( m_nJob == JOB_MERCENARY )/ \/ }6 c+ c2 H' P! @
nPoint += 40;
% R: J! c2 n6 C. @" N else if( m_nJob == JOB_ACROBAT )
* S$ y/ W5 j' L3 k0 O5 l; n nPoint += 50;7 k- j7 n4 s2 w1 X6 [/ z
else if( m_nJob == JOB_ASSIST )' _ D6 M/ o* s N7 q3 I
nPoint += 60;
* u! `* M6 G$ \! x6 i4 h else if( m_nJob == JOB_MAGICIAN )6 c7 F x- j$ n
nPoint += 90;
4 n! ^- F) N/ X9 }8 p$ x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' X2 o& f- d) v! a4 ` nPoint += 120;( c8 M& I; |( w& {! o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 |8 d# j5 z6 e& s7 P. ]1 a nPoint += 150;4 Z2 s2 P5 h; q8 ?& r) ]2 L
else if( m_nJob == JOB_RINGMASTER )
; ^" F; a% ?; D0 Z nPoint += 160;3 \' n6 v2 Q3 `
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 {; o! q" d8 _) g$ _ E8 c nPoint += 180;
1 Z! a$ r0 E5 g else if( m_nJob == JOB_ELEMENTOR )1 ~ w, U0 [! D$ u6 G' m/ m' i
nPoint += 390;1 u9 h0 _! o, ?! u- J8 d# \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): W! Z r2 J r' Q
nPoint += 120;
/ v1 i+ I% M Z! c% v1 B. d+ g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 B- Q. e. c# y# ]4 z nPoint += 150;% ], c8 C0 T9 l
else if( nJob == JOB_FLORIST_HERO )2 K3 Q; B: S# ]( H0 [
nPoint += 160;
- Q' M( {8 q* p G! d2 \1 U else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 U8 v+ x# r) d0 Y* J- g nPoint += 180;5 F5 W6 n% T, h/ S* D9 G
else if( nJob == JOB_ELEMENTORLORD_HERO )
" d) b1 P4 ]3 r1 w nPoint += 390;: j# B7 c" }0 B- B
+ I' K+ ?9 J4 s9 X* z& g
AddSkillPoint( nPoint );+ C5 n' k9 D2 W' _2 j2 @( c
m_nLevel = nLevel;
; w( W2 \" R' r" z2 V
W& _/ ~3 ?7 p) }" K& | SetJobLevel( nLevel, nJob );' H) [) p( ^5 Z, C& A2 G* I
m_nDeathLevel = nLevel; _: b! N. H. i" v! M' L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; C% w. n3 m1 R) i3 d- g if(IsMaster())/ z( m+ p+ u* T+ {% C
{
& O; l. P/ `/ R0 l" i6 R int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 E* X0 l; M4 ]: O* S
if( nLevel > 59 && nLevel < 72 )
3 g$ V3 A. S% H3 ]; q dwTmpSkLevel = 1;
: b5 g2 T6 p- f+ H: l8 P else if( nLevel > 71 && nLevel < 84 )* g% P: M5 K2 P
dwTmpSkLevel = 2;! ?: Y! V' J! O- A! m
else if( nLevel > 83 && nLevel < 96 )
" C8 @+ W a3 J# d) ^ dwTmpSkLevel = 3;
3 Z5 j# O8 X# I" d1 }8 P7 i- w else if( nLevel > 95 && nLevel < 108 )* Q$ y7 v% J0 q, @ k6 T
dwTmpSkLevel = 4;
- v6 `3 t* m( {* [2 w else if( nLevel > 107 && nLevel < 120 )
7 u6 R. U6 P: A. `6 y) A' Y" |3 J dwTmpSkLevel = 5;
0 K4 b, H7 P, A% E; b3 @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) R" ^& L# d: E5 I0 v
{
6 `/ Y O7 A& k5 H( X4 z2 u' ^ LPSKILL lpSkill = &(m_aJobSkill);1 z/ c" @- w; x8 w- L0 H, W5 x) @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ f& N& C8 g1 b$ j {
5 U; ?" B( n7 { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 g: f# z& V+ c* a c2 P9 A
if( pSkillProp == NULL )' K8 h5 U8 ^# c7 Q
continue;
' n2 |* f) @4 |5 p3 n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( i( L$ `+ U F$ U continue;9 b' X" G+ w& q2 L4 s P6 ]; Q
lpSkill->dwLevel = dwTmpSkLevel;
, ~8 L9 }6 T+ u9 y- e6 r; J }
, i( ~8 K5 ?3 I/ u& K( ?, W8 M }4 q* a4 ^ I# L
}
, h! V! R1 Q& k7 e else if(IsHero())( y2 `: c# ?" e& {: I% r }, }5 ?
{" a# h _6 [' K- W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 u G& V9 h& c* V
{ " a3 u6 E. ^+ _" Y( K, K4 ?
LPSKILL lpSkill = &(m_aJobSkill);
6 b. F' c: j& V% j if( lpSkill && lpSkill->dwSkill != NULL_ID )
( B" t0 |! [1 M. ?& j+ D {! P- e4 `4 M6 Z# T, `3 t% t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( B* Q2 ?# m0 c2 z if( pSkillProp == NULL )
) ^( r: j" I$ U0 x5 V0 J- D9 G continue;
9 k2 p- J# E. e" b. \. R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 E1 }8 j& Q7 ~* k+ _0 \$ j
continue;
. L5 u9 L& _8 u% e lpSkill->dwLevel = 5;
V B! v3 A6 ]) t" u1 q) Z }3 a6 }; ~2 N. h( K& H* m
}
* z; o4 U( _: [+ ^5 ~# z2 o }! F( `- ^* |2 x/ m1 B
else if(IsLegendHero())
% U$ R+ W) R, |$ @* a {1 ~2 h6 B! }8 L! I( ^' l* ^2 A3 O$ U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * I6 }- l& C* W$ [$ l0 g7 B
{
* w" Q+ W( j3 H8 S. V0 P1 i- P LPSKILL lpSkill = &(m_aJobSkill);& |5 M- A* F1 Q; {# t$ j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 y. k9 f" W4 {( ~ {
! ]* k0 w3 i" X# y5 `- i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 r/ }' ]6 f! y6 `/ ~ if( pSkillProp == NULL )3 w9 p# n' ~' W6 L( B4 V! B# ~
continue;/ }& p4 [5 k2 c" b0 N4 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; g0 ]% P/ F D) t$ `# d continue;/ ~) d$ {/ l, `. H1 `# [' L
lpSkill->dwLevel = 5;
h- [& Q$ L9 w n$ ] }6 [( G: N9 K( U. ?* o
}( D+ B q l+ s9 q+ w
}' R7 [" T8 I3 r; t% {9 Z9 _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ `" q) s/ K* s: o) C if( bGamma )$ F8 q$ v) z# }: O6 p
{; ~8 n# [- {4 C2 k1 K0 t4 B* Q4 p
m_nExp1 = 0;
S8 n3 [+ U$ Q8 E2 C6 M" i2 c% v }9 @4 O4 o. T; k! ?( `( k, U Y
: ^8 b0 }9 h/ d1 Q, v& F) q" ?: w ( (CUser*)this )->AddSetChangeJob( nJob );
3 ~* o4 h$ W2 i. F% Z0 h+ u# x g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" J3 X5 L4 @; `6 V, K7 ?, A9 s
8 b/ n( c+ B- f& ~! o
# s8 w) p$ T# R$ \ y! k6 t4 D#if __VER >= 11 // __SYS_PLAYER_DATA; ], V% d2 f2 @4 w5 r7 g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& c0 ]: D/ O: D }0 N( u3 N+ J#else // __SYS_PLAYER_DATA
j2 b [4 k2 o' y. O. @& o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. b# C0 f- @6 C; U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" e- `' c; b8 ]+ p
if( m_idGuild != 0 )1 n" u0 H x2 D# K4 ~0 d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ g- a! C+ q4 X5 M8 ]#endif // __SYS_PLAYER_DATA7 z8 }0 n( K" ~9 c3 {2 U' X4 S
SetHitPoint( GetMaxHitPoint() );. d ], }. t) D6 c3 y" y3 _0 c
SetManaPoint( GetMaxManaPoint() );8 }/ {4 `/ W4 ^5 |
SetFatiguePoint( GetMaxFatiguePoint() );
5 E; |1 i; \" r9 Y# c6 Y4 c if( nJob >= 1 && nJob <= 4 )5 K- a! t, v; C, P" x2 f
{3 v/ [/ `' v* \5 w9 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ q# V. x- o, G B: y+ v- i m_nRemainGP = 28;$ s7 _ E Q& `( `6 z. Q# k. d
} w5 ~% m$ l( } L+ L$ X
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 G$ Q$ p0 \3 H% p# I3 f
{* y: E5 Z _. Y8 K3 u4 F
m_nRemainGP = 118;
& _7 U; [. x; Z9 ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' x# B4 [; D. R" M* { m_nStr = m_nSta = m_nDex = m_nInt = 15;* i- n: m% @* d/ S, b
}0 W4 D. z$ O+ ]! Q) ]
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 q5 j- E9 s4 Q( E4 h4 C {* T9 Z' |- U9 W7 D) i# v: s0 i2 F
CItemElem itemelem;
3 x% M. ^8 J% M# d6 G6 h, y% {, ^ itemelem.m_nItemNum = 1;, {+ S- k3 ~( T3 Z
itemelem.m_bCharged = TRUE;
/ f2 t: l2 ]: k. m: z) h BYTE nID;9 o1 w$ y4 C) S! {8 W
- N5 Z, V; g# X! O" m
if( nJob == JOB_MENTALIST_HERO )
2 r2 S" P9 j+ p0 _4 E. n9 D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ M) a' R. N5 _0 L
if( nJob == JOB_FORCEMASTER_HERO )
2 {( C0 G4 C, ~& Z, ~: Z! v4 z" P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 `- |, z# X. X
, s: N# Z& C1 A! ^) t% {! e8 H: i
( ( CUser*)this)->CreateItem( &itemelem, &nID );: u* e+ y/ m; s; Y) i8 e
}
0 `' c6 W7 B" }) B7 b9 a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ N3 ^' u# [5 @7 T) b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" l9 X1 x$ o; [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, l( J# m7 B- Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 E( o* r9 P9 X x. V ( (CUser*)this )->AddTaskBar();*/
' t$ l! @' X6 g" B ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! U* E- k; i$ L4 b9 X2 L
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 S \3 U0 k+ y1 c
((CUser*)this)->CheckHonorStat();3 _8 J/ A- Q& D# }
((CUser*)this)->AddHonorListAck();
' `( U- ?9 y$ s8 n2 h. f8 f g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 q6 j* {9 h; N: P2 O4 a#endif // __HONORABLE_TITLE // ′Tà?2 p% h' p6 {; B: j: _1 }4 U% Q" e& v0 d
}* f- A, U M9 k& ]9 n' z7 Z
#endif // __WORLDSERVER4 ~ y8 `1 y# W0 p
} 4 h+ w- X; Y x. ]
; T H! C3 l2 e% N# ?然后你进入functextcmd.cpp并添加以下
Y, S0 j# V* P$ x. f& p
0 Z/ Q+ @5 D6 ~3 {% Q' J; V3 L代码:, \% m; B' R- X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ b. ^* L: ~" M8 u: \
下面插入
; f7 T7 \! \) n1 i2 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" g' g" e0 M# U8 h4 L0 H3 d" N7 G7 g4 n( ]- w% `8 [! g
然后你去+ q" k0 B' k4 ~' R1 x( F/ R/ O
; ~' y+ ~3 Z( B8 v' o5 [! D& I
代码:1 b6 Z3 z! q) D( `
代码
; ]+ A1 W6 M- J2 H/ G; {' L$ j, y2 IBOOL TextCmd_ClearPropose( CScanner & s )
5 I6 `. `6 F9 m! ]: B: M{
: v# g, j: s2 R# e2 a#ifdef __WORLDSERVER+ H7 J1 d9 h+ |* d& I5 N
CUser* pUser = (CUser*)s.dwValue;4 o+ ~9 X7 w$ d& d# i$ k0 F0 V
g_dpDBClient.SendClearPropose();8 h8 o' M3 Y& u. ` \
#endif // __WORLDSERVER1 }# [( e8 g* X8 a
return TRUE;
3 o1 h4 M5 U4 T" ~}. [# s: ?$ g# S N" A
下面插入$ J) [, W Z) j7 O' [: m K l4 J1 j
BOOL TextCmd_rebirth( CScanner& scanner )
9 E: c- ]; ?" g* x' H- M& Z{
6 c" d: z* Q% g* r7 Y5 J#ifdef __WORLDSERVER
' T) V2 u' i, T4 |8 G* vCUser *pUser;
- C# w3 A% n+ epUser = (CUser*)scanner.dwValue;
$ i$ z2 z# W+ Z% ^1 S; a4 o! \+ m- cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 w$ q# U3 h8 D' j# m- ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& U/ K: F; ]3 ~8 s& B) w3 r `
else
2 S7 v B0 L- x a1 u; FpUser->AddText("你还未达到重生条件!");
; D) Q5 |! D# I#endif
* [7 f' m3 V9 S$ L! l3 Q; B: Qreturn TRUE;$ |; F, ]% c: K% d
} 2 `# C% m. P9 L# w7 i+ q- E
& c( U: [, W& u) [6 t5 L& T
* o4 d6 V: c8 t% f! \4 @0 J. A, }! n: U( m
3 @7 D2 m# }) Y
|
|