|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 A2 z7 M7 k T b3 m" I
+ d; t2 I" ?& {1 H. R8 ]
Mover.h5 r3 O7 U9 [, o! T& g4 a3 F
代码:
1 X( ?+ e. z* S- d0 I- M" y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 \& p! x. m8 H4 |" n/ K4 N
2 A& b( L/ d8 }% z* X6 Z, i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 H4 z% w# X/ b o& `: s6 M- q1 j/ ~' ?3 v5 v. z) @
然后你去mover.cpp添加
6 n$ P( c9 Q) n" z4 ?. R j
$ V+ ]# }7 y) I& ^, t代码:# g3 m! h7 g* {5 n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 `8 @) D" f9 E/ W. s! q+ ?0 S1 ?
{$ N4 `6 s4 u+ u3 _/ m
#ifdef __WORLDSERVER
/ x5 v' c, u- N/ Q' R // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 a/ Y" q" E6 N
MoverProp* pProp = GetProp();1 @. `6 M F6 z' m8 H& ?) e2 T
if( pProp )
- ~6 s* j. l' V' C5 Q+ f( N {
u) i9 |9 k. s1 d( g* F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 u4 Y1 B6 r2 c- z" M3 p U {3 p4 b* K" `; d4 j, I
AddChangeJob( nJob );; y4 @& M E, H2 z' a0 r4 U9 L
}else{% ], [5 P* t2 x* m& n
return;
& ` ?- X& Y5 J( X: t5 S4 A }
, G; c' m$ K5 l* Z$ l2 U int nPoint = 0;' a' i( M' Z( }% s2 I0 f! \
if( m_nJob == JOB_MERCENARY )
* Z2 F" n; B0 i/ f! t nPoint += 40;
( n; f/ {6 u, A: m/ r$ W else if( m_nJob == JOB_ACROBAT )$ }0 y/ V9 q+ p
nPoint += 50;
$ Q- J, ?6 t$ B' h8 Y7 G2 |2 } else if( m_nJob == JOB_ASSIST )- y1 t7 j' W0 J5 P1 i
nPoint += 60;
5 X: K- s3 s y. w0 }' b else if( m_nJob == JOB_MAGICIAN )/ y1 X9 `% _, x! k9 F: y; w
nPoint += 90;
2 U% s' C; o$ d: a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% D# d0 r' w' a1 U
nPoint += 120;0 B6 W# Z* G: o0 ?! v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 L* R i. _$ M- F% }2 X nPoint += 150;
% v( u! X6 V0 @; j else if( m_nJob == JOB_RINGMASTER )! n# f% P3 ]$ i1 G, w# w1 J, Z3 c
nPoint += 160;; h+ R/ U; T3 W' u; R" Q3 C/ c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' s% l" p7 l1 s; Z5 N nPoint += 180;0 n$ B, f7 d( J# E
else if( m_nJob == JOB_ELEMENTOR )+ f! M& O# g5 u8 R! N" W
nPoint += 390;4 A! K9 h; X! K" d7 m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* [6 R7 U" r/ ]% ]7 z: o( L7 E nPoint += 120;1 U/ j/ T9 b/ b- o0 p" w, B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
w( J l# E8 M6 C* f nPoint += 150;. n; l9 A, c+ T
else if( nJob == JOB_FLORIST_HERO )7 c" |3 ]9 S6 {2 [1 i! Y- `
nPoint += 160;' u% j: P( M# d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( n: B& D5 f% y4 R2 Z4 t+ ^- B4 P nPoint += 180;0 Y8 H: y! s4 s& y# m
else if( nJob == JOB_ELEMENTORLORD_HERO )' Q! s/ U$ @; L6 g0 ?
nPoint += 390;
' v5 n2 n2 Z$ A9 @+ _/ l, j8 A' k. m: v0 c6 f: W8 i+ b0 p" _: y
AddSkillPoint( nPoint );
& W8 r! H& ~( q* S; w% S m_nLevel = nLevel;
9 H2 k, N) v7 z. O# H; |; b7 V; K: T, V
SetJobLevel( nLevel, nJob );! K" w6 l# l2 ]$ R/ m, E+ u( {3 K$ f
m_nDeathLevel = nLevel;
: V+ p) e( u' ?$ v$ W2 [6 N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 s) A1 _& ?' D) N5 e4 g
if(IsMaster())! j( ]: H. z! S" c5 O+ t6 m
{: ~% u* k4 v- ?6 R% a7 ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" N/ X8 @) u6 ^% S# S
if( nLevel > 59 && nLevel < 72 )$ j5 A. G4 O. L8 i& E. r) f
dwTmpSkLevel = 1;* @* I) k @+ s; k1 T/ Z
else if( nLevel > 71 && nLevel < 84 )
, S) _5 ]6 B+ [+ ~) m dwTmpSkLevel = 2;# P6 w% ~6 g7 X$ q c- ?
else if( nLevel > 83 && nLevel < 96 )7 Q/ j0 o' O. O O; k4 ]
dwTmpSkLevel = 3;
; `% e- Z* @% v# t/ [ w# \ \' P else if( nLevel > 95 && nLevel < 108 )
9 d& ~9 x0 {# y$ h g! k dwTmpSkLevel = 4;
* W" n5 c& }) \1 \ else if( nLevel > 107 && nLevel < 120 )
6 } [+ z; o, G0 J9 U6 p7 T dwTmpSkLevel = 5;
0 K$ B& {& G" A3 s. p" b$ J for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 n) w R Y E! {/ _2 Q {
/ I8 n6 A; h4 H% J( l0 D LPSKILL lpSkill = &(m_aJobSkill);
5 ?3 y1 [3 `, v( r3 s! K if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 P( [$ q/ ^ c3 F {
2 K! Z3 w l R0 E' I! d6 R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
Z) H$ z, f9 { if( pSkillProp == NULL )' X6 I( [6 x3 P& n+ B6 h6 d
continue;
/ ? m4 X8 Y* I: y0 p( c# T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 l; s) r! f, z6 K/ k( ? continue;
" R+ x: P; S! |' Y: J! ^% E lpSkill->dwLevel = dwTmpSkLevel;2 O8 j7 f: }% ~5 I7 `; I
}4 `, ^% T( p* c: w2 q: S8 @$ G5 x6 b
}* u: `' r3 a: t( E2 f: _. v1 e% y3 B
}
7 _: h) m |3 Z1 k; V; b! x else if(IsHero())
* [ \3 S, |3 Q3 K( M H {' ]" }5 h, A$ _* d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & b- d9 M" w I' I w9 b w9 {
{
: u5 L. J/ J3 e5 Z LPSKILL lpSkill = &(m_aJobSkill);
! P) p: e+ ]) Q$ {5 }' l if( lpSkill && lpSkill->dwSkill != NULL_ID )
: U p4 ]! U7 t. _7 p: D {
8 a( }0 ^) N# [& f8 I+ B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 h5 x. e/ F3 N if( pSkillProp == NULL )
- w) E5 _" q3 x$ ]8 i% K- I continue;
# f( u' z% U( g! a) T' Q6 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, d6 U7 Q2 `7 K5 E" g; ? continue;+ v- ~5 R1 h. b6 O
lpSkill->dwLevel = 5;+ y2 x5 ]& y, Z5 @0 X
}
+ P: h& q7 z# R: R }1 D' h+ t/ Y# `, ]
}
% A" t+ [8 t# F9 F else if(IsLegendHero())
- F6 ~ l( |$ v' A; {9 U. ]& j {: c( v% U* ]6 R& I+ B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + V. C2 U7 [; y9 o
{ 3 b% v7 O: Z" v2 q$ F; B
LPSKILL lpSkill = &(m_aJobSkill);1 {, Z' P# f9 o- C/ j9 Q5 |4 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, E" G) C- [/ y/ v- I {: d; p% R l7 [9 s' W, ~' M$ X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 s2 p+ C" H E- e) [ if( pSkillProp == NULL )
6 T( _! m$ n; _$ ^) v$ s continue;' E( j0 I9 }: {3 u3 j& \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 s6 M5 j; g4 ]; h
continue;+ v! @- v m; C U/ A8 ?0 M
lpSkill->dwLevel = 5;* e$ Z8 n- K# w. x j1 x
}" F4 G+ A7 Y+ G) M4 f
}
' n2 @8 L( D z$ y$ l$ ~ }" E0 p5 |5 M* w4 U9 F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, @7 _+ K/ q! r; j" z: l9 Y2 _2 s0 Z
if( bGamma ): S J% k& g1 z/ p# s0 \) w
{
2 e s% M% L) u( T# _4 t m_nExp1 = 0;
2 _/ v* R3 p2 P$ W }, x6 {& a; [+ D) m$ s& Z
; p+ O9 x; g& X2 s* _% L ( (CUser*)this )->AddSetChangeJob( nJob );
! Y& u: q4 ]4 f4 J# U7 X+ I- y/ ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& P; J, U" [+ z4 W4 j9 `
- K% q/ d+ I) ?; U' v
6 q0 X p+ U, h8 j3 Q0 j% l. h
#if __VER >= 11 // __SYS_PLAYER_DATA ]( S: M4 d; C0 q0 ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, I" H" u8 B' b: p4 p' W
#else // __SYS_PLAYER_DATA
- L# ]0 c G: B, ^6 ^ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. L' Y# Q0 l0 L {8 [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; z% J) r7 O8 X& p if( m_idGuild != 0 )
' l0 w, J6 L# L1 M7 B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# C- `4 P, u2 ]0 E0 z" o3 W
#endif // __SYS_PLAYER_DATA
" D" M3 ~; j: u# l2 O" ~8 i6 X) r) [ SetHitPoint( GetMaxHitPoint() );' t9 n; D7 q% I! `4 ^$ S
SetManaPoint( GetMaxManaPoint() );9 V4 H0 w4 f- l* {
SetFatiguePoint( GetMaxFatiguePoint() );
2 a- C9 F, ~6 L0 w if( nJob >= 1 && nJob <= 4 )9 O% u6 e% S4 f
{, |3 q4 H% ~: D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ E. R- m/ |# k/ v" Z m_nRemainGP = 28;3 l( s4 n1 `3 m
}7 C' `/ j! G4 y7 B3 A. q' O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 d4 u5 U3 [' r4 T
{* S" ?8 b2 J6 z' v
m_nRemainGP = 118;
% u) k- \* \ T2 T3 S //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 }, ?% P# Y, M7 ?8 \$ m% W" k m_nStr = m_nSta = m_nDex = m_nInt = 15;! b* d9 N8 p H N
}
& J- F9 {- t* ~, U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, ^. v2 i, r% k {& ~, _9 S" L8 I5 N( F
CItemElem itemelem;
$ A" s) j! v2 K& H. w* [ itemelem.m_nItemNum = 1;6 x6 \9 T) s1 Z6 M7 U! G
itemelem.m_bCharged = TRUE;
8 W( H+ A7 i2 X+ c3 E( R# q0 w BYTE nID;
' a& n6 x" ]' l- b
# H6 \ S2 @+ p if( nJob == JOB_MENTALIST_HERO )
8 o& ^& Y& B1 d- k% s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 F" T; \! _2 f) \' V& t8 G' X! E
if( nJob == JOB_FORCEMASTER_HERO )
4 E4 y2 a- O) b3 h# y5 D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: h* C* O" ]: C0 g' M. a1 O. A4 n! m8 k& W& E
( ( CUser*)this)->CreateItem( &itemelem, &nID );0 L% E2 u7 B, }+ N) a5 m4 s2 C
}
( u$ h. `/ Q$ F! h9 Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! r5 N1 ^* O) j5 J u: C4 L! f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 o# R6 F& G, C! h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 s- D U: ?& V# r" B. C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- [6 E$ f ?; g! g+ z) f6 f: Q& a
( (CUser*)this )->AddTaskBar();*/
$ H# x$ k6 S/ ~( _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. d2 l5 N8 P- h) n) S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- i+ G: W% j3 `* d+ p ((CUser*)this)->CheckHonorStat();
" @% e' \7 x) E* f7 z) [7 U r9 F ((CUser*)this)->AddHonorListAck();. ]6 `8 Z8 k% k Z- b! e
g_UserMng.AddHonorTitleChange( this, m_nHonor);: l& Q0 c/ t0 s9 q M/ D
#endif // __HONORABLE_TITLE // ′Tà?# y2 B" P! q5 N! h* V
}
3 y9 {: y, c/ k G/ l: z( H' S#endif // __WORLDSERVER3 o8 T8 G( h2 [$ ~; O3 o
} 8 X: v V. }6 ^4 P5 A% I: Z
6 c2 x# M, z' y B `5 c+ x0 E
然后你进入functextcmd.cpp并添加以下
8 P( {5 n* x7 ~
& x( X ? |: B, q& Z代码:
' m' o' G7 f Z' Z' o" jON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- g2 |, k: B8 L5 ]4 J+ Z
下面插入
6 F8 Z6 }: _. G6 H$ Q% x4 H7 b, tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; Q9 J4 q: v7 W4 E; T( B5 y7 E" A, ?% u* @
然后你去
' o# r" b5 q$ q6 p' C
8 b0 \4 n Y: f7 q代码:: w3 }$ v) F0 {
代码$ j2 X6 p, H* }2 `
BOOL TextCmd_ClearPropose( CScanner & s )
' h+ p! _2 B( ^/ |{
( d2 v' G+ I7 j, x#ifdef __WORLDSERVER
; j' N6 A$ _# X7 d8 q CUser* pUser = (CUser*)s.dwValue;
. r0 r: Q3 o) _+ z3 i" U* A g_dpDBClient.SendClearPropose();
# e6 A- C$ V7 m0 x#endif // __WORLDSERVER5 {3 g5 l7 X; ~" o
return TRUE;
. E( e; w& I% U4 u' m}
. e+ w% V& j$ L- x0 F( ~& X/ W! y, w0 c下面插入) e! c3 b1 C- ~) T. T% s! c5 }
BOOL TextCmd_rebirth( CScanner& scanner ) @1 ?$ H1 b5 x! {2 t) W
{
% D8 S+ E/ W0 @+ y#ifdef __WORLDSERVER
* a6 Y3 _. b9 @( K7 p& [/ TCUser *pUser;# o; ?1 j2 f' T! @; A$ E
pUser = (CUser*)scanner.dwValue;9 P' m* A# ?! j1 ~, X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* b4 ~. F4 t3 y. y4 ?5 EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ i0 s% f7 D% ]2 g" r
else. w7 h/ t- M4 E0 W% s
pUser->AddText("你还未达到重生条件!");
' a2 m! P! u: b: ~+ \/ U/ z) e$ N#endif
- x7 ?+ h0 \* e1 Dreturn TRUE;# o9 J# b& m) J. s: j. Y) u% F
}
. S- s" O1 ?5 D% s$ a8 K
# @9 G6 [7 N; J. |' m6 K6 ~1 a' I! d; h
: c9 a: V! @/ u4 |/ V3 Y" h
; T2 ^- h: C; y2 D: | |
|