|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: ^% U7 H, \* q- l ~/ c' ]7 E! S4 l! ^
Mover.h! z z5 X8 K+ U, H
代码:7 K i( {9 ^( G, s. V+ d5 J( i8 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. g2 I, F$ ]# r6 L6 P% W* @4 `" U
4 x3 F4 W( D5 U; L下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 ~# g4 {3 t- w9 X
) y3 P z% N2 i! {9 S1 I" L! D
然后你去mover.cpp添加6 N( b( M+ u6 j) i8 C
/ x4 @1 g* R+ M5 w* C( y代码:
! I- i k/ t* \7 Bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 A5 B: z' l$ H: V1 B( w* R1 m0 @
{
8 f% i0 H( g7 U. u; x#ifdef __WORLDSERVER
# Z8 `2 \& p% C B4 _" G# z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% e8 E) h$ O1 \8 {- o
MoverProp* pProp = GetProp();" ]. }7 N6 @: B; t% y" o9 R
if( pProp )
6 C' X- Z! A. N6 K {
( S$ D2 w8 q( i* ~; l1 m! j if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 P+ d" o: U7 Y5 w
{
$ {, X2 `2 i; V W. C* ^. Z AddChangeJob( nJob );
8 z6 U! ?- P/ x: _* Y& D }else{" U) m4 ~* ]' [5 ~) g- z8 ]3 U
return;2 H) B, [# w4 S
}
/ T/ b2 H' K' I2 b: n% i int nPoint = 0;" R9 }8 H" N$ a6 _: {
if( m_nJob == JOB_MERCENARY ): H% n' Z$ U- }
nPoint += 40;
& m+ J7 \5 g0 {0 \% y V: g( N else if( m_nJob == JOB_ACROBAT )
9 F1 [+ b, x$ n4 d nPoint += 50;
# K% w# j3 A! q# Y' G else if( m_nJob == JOB_ASSIST )4 }+ h" a) F1 F" t6 f
nPoint += 60;) T# T1 @# G! s1 f' F0 y
else if( m_nJob == JOB_MAGICIAN )
+ I ^/ U# N o nPoint += 90;
5 K9 k" d, W. m- b else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; g% [+ U* u9 H( M* l6 p8 P' |% F! |4 B nPoint += 120;* B2 b& ~+ N7 w0 |4 R3 d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ y2 J2 v% @3 I h7 A* o& U
nPoint += 150;8 y: g. c% O8 V$ D. U
else if( m_nJob == JOB_RINGMASTER ) {- s; g7 |( J! c% u- x
nPoint += 160;
; f L$ Q3 b6 L. w else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' {5 R9 r1 k7 u0 N nPoint += 180;1 Y* E$ }' p# g& ^$ ~5 \
else if( m_nJob == JOB_ELEMENTOR )1 C! {: L# \$ _
nPoint += 390;
5 i2 H2 ^, Q/ ?8 _, V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 F3 p5 H; ]+ y* m4 r8 s, E% [ nPoint += 120;! f0 _! w: S9 Q$ {% ]4 u1 G9 |' x/ A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' f! d6 E! ?/ ]
nPoint += 150;: V; P+ B1 k2 p2 b# N
else if( nJob == JOB_FLORIST_HERO ). R2 }( V& r8 Z6 V
nPoint += 160;
$ g4 D6 a+ w- T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). `6 c. W3 l5 v8 e8 U" l, X# Q
nPoint += 180;
d5 u& w" g7 ]8 S; k. E/ I else if( nJob == JOB_ELEMENTORLORD_HERO )
" a1 T5 w3 h- b0 \! } nPoint += 390;
7 A8 r! M) m4 X7 I' \9 j/ t1 K; ^. ]1 |
AddSkillPoint( nPoint );6 f" P4 x& a7 c. D
m_nLevel = nLevel;: j8 y7 x) `0 | |
$ n0 ?+ q7 ~. `' _8 T' F/ `1 c SetJobLevel( nLevel, nJob );
) U: }/ S0 m. d, b! z# H m_nDeathLevel = nLevel;
7 r, E8 L( a9 ]* t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans n$ Y3 N, t7 D S# J
if(IsMaster())
% q: G2 l% `0 T, n {2 j7 C8 G* n" w" l
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 g$ a8 j; U8 U9 h) Q8 l if( nLevel > 59 && nLevel < 72 ), y$ F1 R1 ]5 Z
dwTmpSkLevel = 1;
9 D4 i6 Q$ b! a! u else if( nLevel > 71 && nLevel < 84 )
2 B4 a0 h- w4 G0 o) j6 |# _8 N6 p* @ dwTmpSkLevel = 2;5 D* K5 e6 [* ~4 x' Z
else if( nLevel > 83 && nLevel < 96 )
& j; p& P" K7 z* n H& v dwTmpSkLevel = 3;0 o& J% ^- m6 j9 J
else if( nLevel > 95 && nLevel < 108 ). s6 N( O! h! A' J
dwTmpSkLevel = 4;
+ ]+ E+ S/ \9 f2 Q6 K else if( nLevel > 107 && nLevel < 120 )) o' c8 h/ T8 l, ~ z3 i! }
dwTmpSkLevel = 5;3 q4 G5 l' [* P( {. {, f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " B3 p# ~/ ~. m' c
{
4 l$ Z' a! ^/ L& D LPSKILL lpSkill = &(m_aJobSkill);
+ ?' ?4 S4 U! L6 a+ L r if( lpSkill && lpSkill->dwSkill != NULL_ID ): c8 D- x3 l4 o& N7 S& y6 f1 k
{
q# m4 t4 F1 L' x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
z" g+ [/ D! E! L if( pSkillProp == NULL )
' |& Z; F8 k3 H% ?; F( T continue;0 @: ~) [6 q+ {( A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: b" ]& b' D3 K- P/ B. F8 ]6 P1 G8 n continue;% m" _! z, W0 x9 r7 @5 n3 }3 }4 g
lpSkill->dwLevel = dwTmpSkLevel;
, c+ F }* r2 K }' d" Z. t6 {, p( L) G& a
}
8 J) Q' F) U/ {4 m# x# {: i7 r' L% C }
+ A) _2 @# |$ d+ d else if(IsHero())4 u% a$ A) O" z- e6 H+ r
{
) Y; p* D; V, p, a for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ @/ F5 ~( }* d; [1 h# V
{
0 [2 D4 @4 @: u% c( D LPSKILL lpSkill = &(m_aJobSkill);( S4 O7 N" r4 n$ W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ w. c5 R! u3 g2 V1 q% R- P {& j7 P* h: D( F D& H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 r" K' \$ `, ~ F4 C5 w$ O; y; w9 _" \ if( pSkillProp == NULL )- n) Z" @1 E" ^; Z
continue;+ a7 v5 A6 Y, A6 C+ @& x& E# u8 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* W6 Z$ I; f0 b2 l. d# W continue;7 [" |" c8 B" k. t# S! o% L
lpSkill->dwLevel = 5;
4 K# x( A' x8 i }, I& _& o1 X" F8 J1 I
}0 z, I& f8 c- d: ^, i
}! I8 a1 e; P k
else if(IsLegendHero()). @! a1 d- ~% \; x
{8 w9 s1 X' h8 ~& G" i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# t, o% v( d; ^: n& O8 r2 n5 e7 ? { & Z4 W* F3 I; b" x7 R
LPSKILL lpSkill = &(m_aJobSkill);& \0 P7 r/ D5 s. P7 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! E* B0 z" q5 h& j1 q% q2 O7 o {# p6 v5 [ U: r) o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); J y; p5 f" `
if( pSkillProp == NULL )
5 w9 h7 ~% A8 t) L, u continue;- i6 Y9 J2 X7 ~% r+ q. F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) f7 y6 j. j. [ A* `( x
continue;0 _0 T4 J3 D4 N. i' F* v2 Q
lpSkill->dwLevel = 5;
4 ?/ N( I& @6 H/ t/ v: E4 `9 q8 ^ }
( `! O/ P- U; d3 W' v! y- w% d }; y- }' U O8 R# D' m9 h1 k0 N$ O
}% N( y E- F% j. u( G
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 I$ N5 L# p3 L0 a o4 q
if( bGamma )5 c# o6 w0 ]9 l5 T
{9 K4 u& ^0 I' y |# N
m_nExp1 = 0;1 ~0 n4 H+ _- V3 \) d" v X8 Y
}
7 j# L7 ?0 ~& E' ]+ W% N( y* i- Z' j% E8 L# c0 f
( (CUser*)this )->AddSetChangeJob( nJob );: l8 ]9 Z0 R' J$ H3 V( w% w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ g+ }: T9 p7 o# s/ q3 X' \" Y# @
% `( K1 m# U( F& W; P2 Q( ~3 |; B. d. _
#if __VER >= 11 // __SYS_PLAYER_DATA
9 D9 a+ s5 W4 s7 o! n7 O8 M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# W$ ~: m% d& Q. }3 {' {
#else // __SYS_PLAYER_DATA
+ f/ I! Q' j: {1 ?( y. ~- d% B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 m, {2 o# }: u* T) x, e" ] g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; k `7 b" J$ h/ B
if( m_idGuild != 0 )5 d T2 f/ N$ Q9 R A! R. F7 g6 d. b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- N: a# w% P! C( V4 Q' O#endif // __SYS_PLAYER_DATA5 L# E, q- D" r# c( r3 \" M
SetHitPoint( GetMaxHitPoint() );" F& e* |% n, p0 T; e& ?6 [0 n
SetManaPoint( GetMaxManaPoint() );
$ J5 ~2 y1 J& T# t% s" G/ C SetFatiguePoint( GetMaxFatiguePoint() );& ]3 K+ S3 f2 m' ~
if( nJob >= 1 && nJob <= 4 )
' M7 m. L; N! ^5 | v: h) D {
2 A7 t5 H- z) y" G7 \, D* Q& M5 d m_nStr = m_nSta = m_nDex = m_nInt = 15;5 T, w/ L; b# _* s
m_nRemainGP = 28;
( x2 _' R1 I8 n5 U }9 e3 O2 J0 O, Z! g k; H( s
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* e. O$ A: M% l" A) `" Z2 [
{0 O' p% n2 X: T U& b* p
m_nRemainGP = 118;
% ^5 J! c! B* Y* M2 \: A" K% o% a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 b$ b8 Q& i$ N) E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, L/ C* {6 Y! y8 W- b1 a }6 E% m$ ^4 k' I: K2 |! b, M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# L) ^9 H! N2 X6 \( R( ]3 b
{
3 c- M& M/ x) c: x CItemElem itemelem;- {' {1 H* n4 o' X- l' W& p
itemelem.m_nItemNum = 1;4 x( d3 Z! @7 ~& @
itemelem.m_bCharged = TRUE;! k" S O5 u) I. I& O
BYTE nID;
3 T+ @+ \% d$ |9 z
0 A/ H& x r, s if( nJob == JOB_MENTALIST_HERO )
4 U0 Q0 C m3 l1 j J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 F" n7 I* w' T
if( nJob == JOB_FORCEMASTER_HERO )
5 d- {- s$ K' Z% v n6 F" E itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 P: z6 B8 E( V# \" | ?
( Z1 L0 x2 J; h z. c* r ( ( CUser*)this)->CreateItem( &itemelem, &nID );- ?% ?$ C! K- Q6 E# T
}
2 l6 k$ T' \8 e9 m, ~; w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 d" ]* J0 ^6 T" [- \ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& {: j7 G6 e) b8 _; \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ y6 W, \! N1 D/ V3 w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( y; a9 i/ C5 z4 ]; |$ A" s6 } ( (CUser*)this )->AddTaskBar();*/* D' K( v' ]6 w" x
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ K8 o. K C. E+ { J- E3 x4 E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ L3 i6 D! N7 O
((CUser*)this)->CheckHonorStat();) F5 s! G# s! D+ g3 V
((CUser*)this)->AddHonorListAck();2 e6 b+ k/ P w6 b3 ?$ Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 l" |0 n* r( [' I#endif // __HONORABLE_TITLE // ′Tà?
+ K3 {! L0 Y4 N& v2 i. J }3 s$ t3 Q9 D3 H; K7 G
#endif // __WORLDSERVER
4 \; z* F* c( P3 g4 H} ' E' ^3 z. o) l! v- ]3 F
. Q9 t: n! ^& _- A6 ^6 U0 N# x7 f然后你进入functextcmd.cpp并添加以下) G7 \* T2 {- d2 D- E
2 ^! ?9 G2 H$ t0 Z5 @( @ a代码:4 V! _+ X4 q7 A: ?( S: Y2 j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! V4 f; z7 ^2 [2 V' d' n& l$ ^下面插入9 O& s* c$ i; E) T5 @; C6 n" x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % Z! P" _1 Z% |5 ?3 E6 ]+ X
* W, ^ }+ d! U+ h. J# U然后你去
8 {5 Z9 H& y3 e9 l; n4 [
4 v8 D) W' X2 k& Q' Y. Y代码:5 L/ B" d+ @& x. F- C* N4 n- A
代码1 S8 Q8 K g5 A- ?
BOOL TextCmd_ClearPropose( CScanner & s )
0 z2 _ p9 r5 m# R3 D9 e& l{
) t+ Y0 _- D/ _6 q7 z: v3 N: Y#ifdef __WORLDSERVER
4 d" s0 j$ v1 c* | CUser* pUser = (CUser*)s.dwValue;! C2 b; N9 `* W+ Y& k
g_dpDBClient.SendClearPropose();
2 w$ i( X% y6 O/ e* S! ^3 Y# M6 p% [#endif // __WORLDSERVER
5 B( i- s, u" ]9 p- V% W2 E! B return TRUE; ^4 E- V8 O! R# m( V
}
, Q2 ?; e" P* h) o! S6 G; X下面插入: \* h6 P# s" o, B# j' h( [# A
BOOL TextCmd_rebirth( CScanner& scanner )7 f6 a' M; V4 G+ y7 o6 u8 q
{
7 P8 a' K2 v7 |' L#ifdef __WORLDSERVER' W3 }9 Q' g1 {; }3 ~
CUser *pUser;, y0 ]% O5 f' T* h. j5 n
pUser = (CUser*)scanner.dwValue;
$ w* z4 T" Q- j0 f) @' ?if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, T8 N) N) {+ r* y) p3 gpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 \* X- Q: Q- r0 {: delse. A$ B; G }5 c5 ~
pUser->AddText("你还未达到重生条件!");7 H6 w' Q1 M( J8 q4 t
#endif
0 a J3 v2 d& `return TRUE;
5 b* i2 @% ^' M4 ?+ H}
9 |# n) i$ b3 q" D4 U. |. h) G& M/ F8 u D& p6 r8 l# [
% j: n( g8 r; X# l5 |/ `0 D& q! l* }- q6 j7 c7 O( Y& G! B
& t$ k- t# C F/ v8 F
|
|