|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ U3 ~2 i# @& i' C
* E7 f% ?/ g8 j% ?, r2 d4 Y' C
Mover.h
! R! Z1 }3 B+ E3 d9 ]代码:
0 Q6 Z: H9 l; A6 D6 r$ }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
f% N" d% h, c0 M: I0 S' O* i$ ~, ]8 a+ P* h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( V- ~/ i0 b' p4 }
1 H, h9 T# S" Q7 d+ ^然后你去mover.cpp添加
5 d8 y0 a4 F7 P! s
( R+ o3 G: c e, ^: y' T- @# V7 }代码:
% c* @& \4 a, M; d9 Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' V* U( H: T- x0 `6 i$ ]: n
{$ C2 G3 c- j; |2 G6 d x
#ifdef __WORLDSERVER2 A4 X& {" A8 U4 X9 `; Q& I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 T8 f& m$ ^+ D4 O$ x) N5 Q
MoverProp* pProp = GetProp();
' d- K& t* C9 R if( pProp )* r, G3 o4 ^. s) d& {3 p2 M3 J
{9 z8 B8 `% m' B% `* y4 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); k7 y3 y6 D2 d: w/ u+ }( g
{
: {+ s# B* Y. m AddChangeJob( nJob );# k# S ~; O- @( c8 o7 U$ ?
}else{" `$ a1 ~9 [& j# n# l/ j- N3 W
return;: x4 M$ T- u: i; Y: n; F
}
2 L" ?) K, P/ a& K$ _' w int nPoint = 0;
( }; R, ~$ s& p# T. c3 w if( m_nJob == JOB_MERCENARY )
9 s% X. g( f& n2 a' o! S nPoint += 40;
. S. k2 R0 _' f' Z+ S6 x3 ], V else if( m_nJob == JOB_ACROBAT )
7 R- t& K+ o- r nPoint += 50;( W- j" g6 a% N/ u- |* \
else if( m_nJob == JOB_ASSIST )
1 r' g% C0 U6 w) i V4 l! q( A' } nPoint += 60;3 W* E5 s+ o( M$ E( J+ b
else if( m_nJob == JOB_MAGICIAN )
/ t; K% q+ i. _( ^5 J7 y( f nPoint += 90;
8 Z+ Z- L: }% a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, q, l h# s+ m8 n! C1 j0 I nPoint += 120;
1 U+ z5 R) ~' s/ o- g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) x8 w, E0 i" g( P; J
nPoint += 150;
0 F7 v) c' G9 U/ Z7 e2 } else if( m_nJob == JOB_RINGMASTER )# C$ D: V+ Q5 I7 I0 N) z
nPoint += 160;, t% O! @% V3 o D4 i! W) j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 k1 J* w* g! }# p: V9 L
nPoint += 180;% K" Y& g5 J- k8 Q0 }/ u c7 i
else if( m_nJob == JOB_ELEMENTOR )% V( ], Y3 X- H# v$ y1 O
nPoint += 390;$ L9 I; d% F/ _% [. m Q9 n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 k0 O$ @7 s' G7 y! { nPoint += 120;: m- C" Z5 a1 a- P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): B' q! ^1 s" p2 {: z- f& ~- ]) Z0 R
nPoint += 150;
( k# u0 \; U, z" `1 U* E+ b+ ? else if( nJob == JOB_FLORIST_HERO )7 Y( L$ Q& c: s: d! P+ g* {" u6 u& H
nPoint += 160;: L d* ]# U2 I( E \5 j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& T5 H6 x2 B" q" `- o
nPoint += 180;
# N6 K, E. w. S% g, O w else if( nJob == JOB_ELEMENTORLORD_HERO )1 M/ ^' U$ x' G. k# }
nPoint += 390;
- P" l+ Z O. t4 U- |& L! ?2 p8 i8 U6 r1 k3 _
AddSkillPoint( nPoint );/ h( @4 D( M" C$ h( R
m_nLevel = nLevel;# F3 k- \8 ~0 v/ s8 C1 y
* K6 j; e# Y' ^+ v( X" i( T2 p. ] SetJobLevel( nLevel, nJob );
9 P) F9 y& A& a/ p m_nDeathLevel = nLevel;2 Z& |' r: _4 p# z w% z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 Y# t4 ~8 [* l: S% A% e
if(IsMaster())
- v/ Q& [+ o0 G5 u7 L {8 p- e: d% k0 P% k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 W6 u# O: a" n8 k" Q& X& r* T
if( nLevel > 59 && nLevel < 72 )
# W" T+ [& \( o! _ dwTmpSkLevel = 1;/ [& p) w2 ~' f/ U& a! I- h
else if( nLevel > 71 && nLevel < 84 )* {; G7 e* P4 y* \# H: X% j& k9 l
dwTmpSkLevel = 2;
" r) z- |, C) ~ `4 w. k else if( nLevel > 83 && nLevel < 96 )
! d C, P2 F( @0 v dwTmpSkLevel = 3;
+ K2 |; ^& Q. h+ b" v0 T- H else if( nLevel > 95 && nLevel < 108 )
; X, v2 j# B4 M( ?/ H& `% g- S dwTmpSkLevel = 4;) u, j" p6 I$ }- P
else if( nLevel > 107 && nLevel < 120 )
2 e: A& C4 B0 e _0 l& n) ?) p dwTmpSkLevel = 5;
0 V: E) a2 s' b( D for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 V) t9 f. M! F; p5 Q( j { " q6 }( ~0 Z; e+ c% j2 a/ I% r( `
LPSKILL lpSkill = &(m_aJobSkill);% I- H7 D `) |) i6 n6 r
if( lpSkill && lpSkill->dwSkill != NULL_ID ); T6 {5 k) i; p
{
) l( E. S8 J8 n, G$ f) r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 b3 k, r+ v- j( r* Y5 b* O; }
if( pSkillProp == NULL )
$ ]# @7 }4 W$ @9 `" z6 ? f+ g continue;
) q* _% s2 a+ i- p0 R" e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) O; O. g, C- w2 ?' p
continue;
3 \) w( F6 @' j* I$ R, j lpSkill->dwLevel = dwTmpSkLevel;
* s U4 j: u5 O( ]% c/ ^ }# O7 Q0 o* q# ?4 Z
}
$ D G6 j6 b) ~' a3 m6 L1 @! W }
0 f5 n# ]9 N9 Q+ H" \0 k else if(IsHero())
4 k6 Q5 D; f. s: X+ y9 Q% C( ` {
) j* U3 }$ Z1 c$ @- h1 F for( int i = 0; i < MAX_SKILL_JOB; i++ )
) A, {1 @# O) o { 5 S. N( q/ n1 ?% \7 ~- M* k
LPSKILL lpSkill = &(m_aJobSkill);. o1 @0 C3 g. M; f' s3 K7 q; y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
Z5 j4 N& |9 k, q4 N3 w6 g6 N3 ` {2 J3 r2 x2 b# G+ C* j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: k4 P4 t& d- T& p; S if( pSkillProp == NULL )% N! d* d% T5 U0 L& J3 |9 u
continue;
( {, p# Z+ M1 _, ?& @8 ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 X( e3 G4 r8 O( \* i8 D1 x' Z7 f% r continue;
2 f! ~( E" t7 K. ^ lpSkill->dwLevel = 5;
1 L2 I) k" e* X- |& w, R }) M6 w0 q$ ~+ G* o, P% ^
}
# N6 R$ F. P. }6 v8 E9 D% F }
( P- R' B* F ]1 m else if(IsLegendHero())
4 j( p" i* @- C$ R* N- l, ^2 x {
5 O7 b' B7 e0 g; x" M for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ~& F& u: K0 x+ T% ], l
{
% J- z0 @4 Q$ y) F% m LPSKILL lpSkill = &(m_aJobSkill);! G/ a% u6 j3 W& D2 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 ]7 L& \+ C9 t3 J0 d8 i% ?; \ {. b" f1 y8 Y# j" p5 D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ @5 R" T% s- ^5 S5 U7 S if( pSkillProp == NULL )
# F1 W: {3 u k! m$ g& e continue;8 r& E# ~- n: a; A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" J# p4 `% n s. r9 X continue;5 s$ F, N- t0 W! R% A p" l
lpSkill->dwLevel = 5;
. C" C; F/ m0 f5 a- ? }
( o& J n, ~" n) | }
s2 b% U% u4 E }
& c Z7 j- |+ X9 E7 T#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 t; z2 l! |- g+ ? if( bGamma )
1 ~0 w, r9 Q) h- z {" `8 H& d% A6 f
m_nExp1 = 0;
% U. E9 v. h% p ~3 `! V }7 ~- G$ L- R4 A, R. t
' T+ ]9 f7 M# m9 _9 z$ { ( (CUser*)this )->AddSetChangeJob( nJob );0 W3 d/ m4 h* L- Z: L7 Z( B* Y, O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) g# n- V# M+ O- J) o Y0 i6 \' S" c+ Y9 F
) U/ U1 H! |* W" M/ f- p7 W#if __VER >= 11 // __SYS_PLAYER_DATA
* S1 }1 S: G. J9 D4 } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 Q8 ]" v2 L6 M7 A, `#else // __SYS_PLAYER_DATA
# V( x/ |5 U, p" f4 b4 ? g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# V7 W# l1 @, ]5 q# L; w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- d9 m& j$ S! k- m; z' k
if( m_idGuild != 0 )
! V# M: f+ L; p0 {# _2 t& S' T g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 y, f, x7 |% a! `# [! A#endif // __SYS_PLAYER_DATA
4 J2 @% x( G( l7 s- O SetHitPoint( GetMaxHitPoint() );$ z9 s* d0 O P7 F8 A& [3 D5 d
SetManaPoint( GetMaxManaPoint() );* S$ o. R9 h; ?" F3 ~
SetFatiguePoint( GetMaxFatiguePoint() );1 a# ~5 @ B1 m3 m% Q
if( nJob >= 1 && nJob <= 4 )
0 K2 [: H W6 S! T- _ {3 g( Y; Q8 ]% {& Q. k) L1 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 V/ ?. x4 d, [9 _
m_nRemainGP = 28;
F7 p4 x. ^+ h3 d }! E# y' w5 n- Q k; W, S. P
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' Q b* G- V U {
4 O9 Z6 ]# M$ ^6 K- W/ }% {$ q m_nRemainGP = 118;' T3 ^7 r' V' t& E; o/ U
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 i$ `1 Z2 @$ `: g; m2 `9 o& z* S
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 |2 H. N& a8 {
}. a" O2 N) U) g3 b' a* L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- |% N) L* L) H
{( l# o2 Y* S8 J6 I
CItemElem itemelem;
3 y( J$ |5 I6 v' q7 { itemelem.m_nItemNum = 1;
0 e6 q( K! J7 X itemelem.m_bCharged = TRUE;
/ b% w. r! q9 X; ?5 n BYTE nID;
* c8 @6 o+ h2 P. ?' L8 W; U+ T; F# F+ r) q9 w+ f9 a
if( nJob == JOB_MENTALIST_HERO )* R5 k6 {3 @$ |2 ~2 M+ ?; X, X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 m+ U) H% x( l$ U- Q9 h5 y2 v; { if( nJob == JOB_FORCEMASTER_HERO )
, o) b) i' W5 z0 W0 ]$ v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 Y/ m+ g) r! }
1 \- N0 w" E9 P5 K7 n4 T( U
( ( CUser*)this)->CreateItem( &itemelem, &nID );- ^ T$ P$ Q4 x1 r* e3 V1 D2 P9 x i
}* F) ?- s1 r2 E% }1 y3 x; e q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" }. N; [( s$ J4 _0 f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# B# x: Q' R P8 T% _8 E8 G) d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% `$ a* Z0 G/ \& x) X& ^ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ P M4 m2 e. Y7 m" I ( (CUser*)this )->AddTaskBar();*/5 E/ L U, A0 G' d& \, o1 [ E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); x, V. Z0 q V9 O1 R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- n5 e0 l) K# {2 p ((CUser*)this)->CheckHonorStat(); C, ]$ `. J% `8 T7 g6 L! U) l
((CUser*)this)->AddHonorListAck();" R+ B% x& C- r
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ D* [1 M6 ?1 ~, Y
#endif // __HONORABLE_TITLE // ′Tà?
4 t. v5 z8 g' t( o& P7 i3 k }
K2 x* z: _$ g$ L3 d- {9 Q& R" B#endif // __WORLDSERVER- i9 T8 D7 o/ T. U; ?' k: s
}
* `, r/ Z5 C$ @5 V4 ]6 ~, B" O8 d. o7 k
然后你进入functextcmd.cpp并添加以下" q& P1 _5 O! e; p3 Z5 N7 q6 a
O. X- V0 J9 K
代码:0 h9 a D( S$ i
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 V' X( P( M- u( r0 I
下面插入
3 R4 u5 i* V G8 h, j% OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , `' n- \- J! C. i0 \
/ H' ~" F6 w# }- U( q; T) S
然后你去6 s* ^3 m- f3 N( D2 a* K/ y
: E t0 G) n+ v' |
代码:
~% v9 [4 W0 f) [" P. i# ?" e/ |代码
0 O. e( `7 _ @) g6 S: Y y: rBOOL TextCmd_ClearPropose( CScanner & s )
7 e' x4 r7 ^; P% ?{# F+ i" S! i2 |& @) `6 U* F7 x& n; C
#ifdef __WORLDSERVER# |% F3 v" e! B8 _& N& A% i" q
CUser* pUser = (CUser*)s.dwValue;$ n' y. \) @( Z1 g
g_dpDBClient.SendClearPropose();
j% ?( l1 R$ b( c) `/ f#endif // __WORLDSERVER
3 C8 q( ^7 ^! U1 ~+ A5 ~ return TRUE;
4 |7 A. E7 P+ A* b1 T& d* N& Q}
& i4 P* r% Q7 C, a下面插入% J9 r& l/ g6 `6 i5 L
BOOL TextCmd_rebirth( CScanner& scanner )% j9 ~( W2 e0 a# J' I; c
{
' S- @' K* b8 d8 s: D#ifdef __WORLDSERVER
, O6 K$ i& W3 a4 L2 R0 M+ @CUser *pUser;7 @! ]) K/ M. ]% }
pUser = (CUser*)scanner.dwValue;3 y7 k: {/ X A3 X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 |7 y, |0 [ M! j# u7 v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" _2 z" t+ O, q! H" Pelse
8 k& j0 W/ R4 W3 xpUser->AddText("你还未达到重生条件!");
7 Y2 G, B+ U* H! F$ a8 |" r#endif
, g0 ]$ {" C5 a$ ^4 B y- Ireturn TRUE;
3 q; w% D& G8 H0 O6 O: `1 U0 R}
4 d9 U0 d+ D8 }! h3 p1 s5 q1 @6 M; s) Z
* J8 @" r+ _( t2 y9 ~, X8 ]
/ J1 S. n6 t- E5 k, i: r; \# k
8 `( {# _9 u; P' H$ o
|
|