|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 M# j# N$ [8 s2 s
! g6 M7 S; H% [1 K! f" y+ \* ~
Mover.h
" }. M( y7 Q* X代码:. Z6 r1 P2 d, m' w" V. l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ ?7 ] z+ ~5 k! {
, r) K6 e9 B$ r- p3 Q+ Y; G. I下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ x5 E* O6 M" X# {0 A7 q- z, n
7 L" ~6 e1 I& E: c+ ^( t然后你去mover.cpp添加6 `: M7 m( S- X* s2 _
5 B1 s6 x7 n& e' j6 I! c5 B代码:
- Y) Z% z" c: Y( B. q$ Dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ H+ h! u( l' E
{: q1 |; G8 U) Y, E& f" O$ j
#ifdef __WORLDSERVER/ W& ^9 ~! i3 I6 V1 M0 c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# Q6 a& ]: I; H, t; Q9 B& E MoverProp* pProp = GetProp();
/ L+ S0 R4 t A4 p3 C if( pProp )
- I# J' k& b. j" ~2 y/ A {
! F1 s$ P4 @0 w% B: x$ e; x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' h0 t$ ^! x L- C% u {
6 n# k7 ~1 U. y" }! F; ~ AddChangeJob( nJob );2 M: C2 Y& | a G6 P
}else{& z3 L' w# n0 J
return;' y' Q l% C/ k
}! D9 J8 H0 T& E% m3 e
int nPoint = 0;, m% @% `/ Z: U+ r, v$ {3 h; r, @2 J
if( m_nJob == JOB_MERCENARY )& f+ N) F2 S- n1 S, k8 }; N
nPoint += 40;
8 P" d* g; K3 r else if( m_nJob == JOB_ACROBAT )
5 d# t; ^4 h! D nPoint += 50;! j, ]) ]9 a. D$ b6 A2 r+ B- R
else if( m_nJob == JOB_ASSIST )
) H# F3 U' z3 Q/ p8 D2 M+ J" } nPoint += 60;' j, c( x- M2 `5 x
else if( m_nJob == JOB_MAGICIAN )9 |3 ?; d" L' i9 _) ]( h5 N
nPoint += 90; j2 F/ O% i+ M- }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 {1 e! v/ k+ @* { Z8 f5 i) u nPoint += 120;/ Z$ [3 o. A* a2 @3 A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) l* _ [; v1 Y2 b3 ~
nPoint += 150;
- U5 V9 X0 X5 C, M; A! I$ g8 L else if( m_nJob == JOB_RINGMASTER )% c2 u# [$ K1 s# f& ]; Q
nPoint += 160;
W, s- Q6 R! F0 ]' B( a- N$ _ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% U' V. D7 C7 z2 W nPoint += 180;
* q3 f# z2 I- g, [/ i8 [! V else if( m_nJob == JOB_ELEMENTOR )
$ H; W) G* A* k6 R" X+ \. [0 d, B) ] nPoint += 390;9 ]7 Y# M9 G, z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, p5 E/ E1 i' K& b- y @- `5 r* J nPoint += 120;
$ a# A* O4 T, ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 E3 [9 d. R9 m) E# N8 b# Z nPoint += 150;
: W% ?( w# J3 e% k else if( nJob == JOB_FLORIST_HERO ): ]. R0 J4 A# ~
nPoint += 160;; _5 |2 H5 b3 ^- A7 q2 G' U
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" C8 y* H3 x. {/ W nPoint += 180;) |4 s3 z1 U! E+ y* X% w
else if( nJob == JOB_ELEMENTORLORD_HERO ), x9 Z8 }+ B( i
nPoint += 390;
/ \1 }7 {7 F6 G2 c% y
7 h# R- v( t8 Q* M AddSkillPoint( nPoint );
8 i; U0 I4 A% H1 l4 @# e) q. E m_nLevel = nLevel;3 a+ C- F3 e$ D& o: y2 I
- L; C) X' p- L" F SetJobLevel( nLevel, nJob );
) S5 u6 U. G4 T+ X9 S, u# o2 Y P m_nDeathLevel = nLevel;
/ \9 B8 B ~* d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, O4 v, Q0 {: r! W( a( \ P& n if(IsMaster())
8 q' E6 F$ g! G1 p2 ], X5 h$ d! P {+ A9 U/ b; J5 b( | E( b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 m n; j |% X @8 C k
if( nLevel > 59 && nLevel < 72 )2 |3 P7 N- w( Z2 S
dwTmpSkLevel = 1;
: ?/ y6 C+ z/ T! O* \ else if( nLevel > 71 && nLevel < 84 )2 H. X0 L/ [$ n
dwTmpSkLevel = 2;: J" E+ }& u. b/ s% z u
else if( nLevel > 83 && nLevel < 96 ): M1 [: _+ V2 ~7 b8 k* H! B
dwTmpSkLevel = 3;5 i: T; }5 o/ P/ ^
else if( nLevel > 95 && nLevel < 108 )# l7 f& q. ]* C# ^! y, m. [
dwTmpSkLevel = 4;& a8 r+ Q( {" c3 J8 [2 D! J( Q& o
else if( nLevel > 107 && nLevel < 120 )+ ]7 N# ?' n' A1 V: ]$ M0 I
dwTmpSkLevel = 5;$ t+ A" y9 W( q5 v9 A& c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - S6 I. i8 s2 q) L
{ 5 }4 ~7 m6 R+ ^* l
LPSKILL lpSkill = &(m_aJobSkill);- Z8 \/ d A/ t' g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) ?5 c: g4 `! Q$ s {$ j( @# H; B" m5 N( c, t6 b4 A6 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ O7 x( m# ^- {1 W/ Q+ s* O if( pSkillProp == NULL )
0 ~7 W" L+ v* d+ | continue;5 W3 @( E! b [0 J% l2 {# a* ^& l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 R8 R# ?9 l# D4 C: r0 O* f" r
continue;
2 g; R+ `& K8 S- k/ f, R2 L lpSkill->dwLevel = dwTmpSkLevel;1 \1 v) T5 d: ^' j) r
}# o9 R8 W! y0 D
}* D& f1 C; u+ u1 {" Z
}
" u+ D; s7 }) n9 ^1 t& Q" b else if(IsHero())
1 v1 B* o1 M7 Y7 [, l% ?3 @5 c {( |5 M- e- t7 K" X* S# ?% l& l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 w3 u' w7 Z5 i
{ |9 n# `; T- d
LPSKILL lpSkill = &(m_aJobSkill);4 e5 Q. t u0 u* W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: s7 u3 r8 g) f% g# O4 ]8 b8 j {6 ?1 q: G7 B8 a+ ]8 g! h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 L8 S& d5 S1 u& b1 ^" F9 q, \
if( pSkillProp == NULL )0 }2 T; r3 S- T5 E% j3 x( d R
continue;
5 w# k. W: r* j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, ~8 H. |: b! G. O5 [ continue;5 I) o& r1 I1 V$ J* w6 c" H' h' j
lpSkill->dwLevel = 5;
2 n8 ]- A! ~: `# H+ F% B+ L7 c }1 H8 Y: x C2 T2 I- a
}
: X z1 q+ r4 R) V }
( m1 U- X: I, ]/ |, |7 t else if(IsLegendHero())
- v% e h. C3 Z' V/ F- p' B { c. O) P# Y. D7 {+ t+ T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 u& ^6 d# K3 P9 F/ y P# J
{ " Q, ^0 s. q4 q0 p9 i8 z( P2 l
LPSKILL lpSkill = &(m_aJobSkill);) J& {; p9 d- |; a! I
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 o8 n* H) t8 {1 t. V4 S9 J1 I
{
( {; S" U0 `8 X; u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( u6 |8 I* w2 t( b
if( pSkillProp == NULL )
7 y6 o3 }) V, O( `% |/ p6 h }5 \ continue;# q- V% [# M) l( v$ V. o) A8 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" a9 T: S$ i! ^- Q1 x! {
continue;" _$ M4 {6 w7 p7 ~: M
lpSkill->dwLevel = 5;2 C' T- O \7 `0 V& r
}
$ L; e. ?4 s1 i+ U, b }
) |7 Y) S5 d% F& R, u }
n1 i' K+ j. y1 t#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 L# y# |! L" u+ X: h9 ~ if( bGamma )
% K+ K5 R7 `9 y7 A* W$ c {
. z% C& l3 y; T9 @4 s) W7 O& h m_nExp1 = 0;
, M3 A. D; H8 J% d2 Q2 t$ Q }2 ~2 m% z u0 b. o( x
' u, S4 C, K5 t# p ( (CUser*)this )->AddSetChangeJob( nJob );/ r; V1 m7 { Z4 r2 ]& g1 a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 L+ }* K6 `1 d3 h; M4 `9 R2 I5 N- |. G8 A% P% y% ]9 h
! f1 t) a5 B3 v
#if __VER >= 11 // __SYS_PLAYER_DATA/ L" ~3 Z+ w, r5 F' Z' C' V5 ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- j( N8 k! j% L& j$ z8 E#else // __SYS_PLAYER_DATA
7 r7 ^; x: m7 W4 u4 f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& @; p0 w5 W# ]8 y, v g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. q; \6 \! Z# [- v( [ if( m_idGuild != 0 )3 e7 P2 h3 ?: ~& K+ f* b& E9 R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" ]& B1 D' l& p
#endif // __SYS_PLAYER_DATA h2 D' ?0 S6 u1 U$ S" O
SetHitPoint( GetMaxHitPoint() );
# r; m' Z1 J% X SetManaPoint( GetMaxManaPoint() );
% N( T7 h4 K( f5 o SetFatiguePoint( GetMaxFatiguePoint() );
! s: @4 ~/ y: Q1 e( x6 e if( nJob >= 1 && nJob <= 4 )+ N6 R7 @* o9 [6 F$ z4 w, p) F( L
{# D+ |$ o& u/ \# f' |( S, i+ L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% X$ D8 @# C/ p" M" k m_nRemainGP = 28;
3 B; {2 R: @7 ?! B) @) O }
|. j% O) T( J* H/ o/ c# w if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ D* l: ]: {: ~$ {6 X" f {
- c; W/ I( U+ \, ^) |$ A! t m_nRemainGP = 118;7 w, h' ], ^& Q+ Q) L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 V- A+ q7 j$ P) i. W) L" T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; n# {3 L6 M C! f- z7 `" a }+ @3 R$ D) K( X7 k% w
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. T7 ^" ?8 ~% e6 e" b {
+ P! X) z( U0 {9 O CItemElem itemelem;8 Z: H- r, M/ n" ?
itemelem.m_nItemNum = 1;$ y4 U% D) v2 ?; d% W
itemelem.m_bCharged = TRUE;" t6 ?1 m3 E3 J/ ]% U
BYTE nID;# m3 _% q: i0 i+ K8 B4 Y
& d& M8 M) O! R+ B( s0 ^
if( nJob == JOB_MENTALIST_HERO )- C: B9 J9 M) m9 \( w: e/ t6 c5 i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 T1 j; P% g" l# X& W) Q if( nJob == JOB_FORCEMASTER_HERO )7 T1 T T' A8 a; k2 n7 @0 @& `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; A [2 G: M: B* h$ a
' ^ M# V; u. R! e2 [
( ( CUser*)this)->CreateItem( &itemelem, &nID );, P+ h3 K( I7 `- \8 |7 S
}" R7 c/ y+ J; O5 E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* W& `1 g4 I3 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 |! K# t% _* i: A; d% l: x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 j/ ]( E# x6 x) u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- M v& B7 A8 ?' S- h( a' r( P ( (CUser*)this )->AddTaskBar();*/
* U4 L8 v5 J' b0 \4 R ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: Q) ]+ r; y" {" q1 U# u9 _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* t2 c4 Q! Q; @& z) ?
((CUser*)this)->CheckHonorStat();
! a5 W( c, I2 G) l2 e$ _/ w ((CUser*)this)->AddHonorListAck();
! L3 R: U# l+ x$ j' B g_UserMng.AddHonorTitleChange( this, m_nHonor);- P; s& _# l) V) E; I
#endif // __HONORABLE_TITLE // ′Tà?
( a2 ^4 w' {* l$ H8 q. o }6 S+ g/ @, q7 H6 b8 i) n0 V8 \
#endif // __WORLDSERVER
# L8 h5 ]4 U4 a* N2 N, C} $ e z d4 K& `) B- d' D$ h
, E. V: W% t6 f/ M: p: U然后你进入functextcmd.cpp并添加以下
* o# e' k; P( U: c: Z( y
" L5 T3 s2 l# l, `代码:" ~6 f$ T4 Z( I( G
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( i8 K1 X9 m/ k. x) ?下面插入) t' Z( s4 \2 M/ F/ X( L4 I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% ?( [8 ?5 v, v) ]8 T5 A% G2 B9 k: U7 Z( c+ V N4 T
然后你去
9 f# b5 s# x; e+ c+ S0 z, h& ?- s$ E! p e, ]- g3 h
代码:/ y0 o: b! r$ f. [7 W& [
代码6 J# ]* s: V! g3 l t% S% w8 A
BOOL TextCmd_ClearPropose( CScanner & s )) W- x; A6 B( z ~1 |
{3 e6 ^2 [5 ~3 c3 {4 |7 ]
#ifdef __WORLDSERVER
u5 Z M* @9 T+ I- Z% Q+ g CUser* pUser = (CUser*)s.dwValue;2 r! T% L2 h* ]" ]$ B
g_dpDBClient.SendClearPropose();
& e$ W- q$ I7 Q- r4 [3 {#endif // __WORLDSERVER6 t* U! k! @" R+ S' x$ C5 F
return TRUE;
8 t5 y5 V, {; Y4 c: p. ^}( P7 ?$ `; V2 m0 d
下面插入8 [. ^, H# C1 u2 b6 S
BOOL TextCmd_rebirth( CScanner& scanner )1 e: I0 \. Z1 G/ n/ x/ ~! ^
{
: w0 K1 [4 }0 D$ D- y#ifdef __WORLDSERVER
- _, O( w2 x* z' {# b; [CUser *pUser;
% y/ U7 s/ M8 T* ]# VpUser = (CUser*)scanner.dwValue;
1 i1 Z4 Z, g: n% O8 Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" z7 n0 \+ f+ D3 I' r6 H( }8 i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! Q2 N" R' `0 P+ g. }else9 `/ a( `4 d. P5 F8 ?$ p9 X4 K1 M# n
pUser->AddText("你还未达到重生条件!");
" b2 J8 Y* e! w#endif4 ~6 O3 d/ q" Q2 _- c* O" l
return TRUE;8 w% N% W) n) R# S" W; W+ }
}
( C1 |1 X+ S6 d. K5 q2 ^6 q/ E0 e+ K0 }
" H; e$ ^- I( @% M6 o) d
% e9 J2 R" Y$ [' F1 v7 U
6 M$ f- a4 z L) ^
|
|