|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, H" c, a; x& ^7 c4 A s
& E( D4 e& A& n1 `Mover.h C; G& o. }' T& T
代码:% `" r- _3 y4 r, o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- V7 ], I( |; ?! v4 F' M0 y& T
# t" h, w5 o, [% ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ \1 h E! J8 J9 ?2 U/ p+ `3 l
E2 _4 q6 S7 o3 N$ h0 x. I8 Q然后你去mover.cpp添加' w4 Z: S& h( a8 Q4 r
+ S( L- z( x$ y. `, R7 @
代码:
$ X# {% _! E" a" F c6 e4 i Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ G+ K# j, j2 E3 A) {7 w# q9 i1 ?
{3 X2 s4 o, }- Y+ K$ _
#ifdef __WORLDSERVER$ P0 Y" i% b3 Q7 _' _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 a M0 o2 k% v9 K/ \8 S- B' h7 ? MoverProp* pProp = GetProp();, c8 f7 \$ |$ l9 H! r6 F" a0 `
if( pProp )! W% ], E* j: `& W
{& Y, q, m+ K m5 b, \8 ?* ]: b1 ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) \; v: z7 @. Z
{8 H% S# p, z" A
AddChangeJob( nJob );
- I- V8 a! ?" d9 ?6 G; _0 T }else{
+ D7 ~: E4 f5 ~: S: G return;
$ ?9 S+ z. ^# w6 t; N5 N* I }
9 }* ~ v8 u/ M w int nPoint = 0;% W( T% y* c/ h( I. a
if( m_nJob == JOB_MERCENARY )
1 ?2 G2 ?5 c- D+ o* O0 l nPoint += 40;3 t* T7 o: d* v4 |
else if( m_nJob == JOB_ACROBAT )6 R' J( H" k. g3 @7 F! I- D
nPoint += 50;
' y& K- F6 G; i! a$ Q% R else if( m_nJob == JOB_ASSIST )& ^6 i' }5 Y* m, f
nPoint += 60;
# [$ d: [ S. h, U5 e else if( m_nJob == JOB_MAGICIAN )
# N3 O! y3 P' N. w# Q9 n7 P: X nPoint += 90;
0 S# D/ I% x, F( {1 p( d else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& R) a: C l x! Q" W
nPoint += 120;
) o0 D" h0 s% I; N |. C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' ]3 d( R6 e) U ^2 \' o/ M% S
nPoint += 150;
6 v) S4 p0 i/ O* y$ x" Y t else if( m_nJob == JOB_RINGMASTER )$ c5 ]. m- c& Y1 c' y
nPoint += 160;, C1 ]% g" _" S) U' l+ X% D' Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); Y2 y- v+ U5 B
nPoint += 180;
8 |+ i9 D& A/ S/ ?, J, q else if( m_nJob == JOB_ELEMENTOR )
1 t Y L3 y [. f0 B+ @ nPoint += 390;+ q- n" V0 E7 j4 w+ B& N
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 N# g& \1 I: l* K( M
nPoint += 120;
' K. O6 K Q) r6 [3 q0 E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). W) A3 y- \. P3 ~ H$ p: u/ V
nPoint += 150;) }: T& [+ v+ G# b2 [
else if( nJob == JOB_FLORIST_HERO )! `; W' N2 B! f
nPoint += 160;8 }; h% d6 W6 j( r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ d O( o+ G9 N2 F3 N
nPoint += 180;7 W- o5 T0 w0 H1 ~
else if( nJob == JOB_ELEMENTORLORD_HERO )
( x, r1 H) L8 ?8 \4 W- c nPoint += 390;
# J" c* B# c; b. |# p, N% C- H, Z) ~( [" q9 T' N9 \
AddSkillPoint( nPoint );4 x! Y8 x0 r0 ?3 F# w6 L
m_nLevel = nLevel;1 U! w# e2 A# i0 _
' c2 I% f" X' F* U4 |
SetJobLevel( nLevel, nJob );( _+ |. \) J o/ i \
m_nDeathLevel = nLevel;6 C5 _' _ b- O3 g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 c3 p7 d _9 Q1 K1 S9 ]8 @9 U! x if(IsMaster())
2 e$ {% r$ [6 ^1 u {5 p7 m' ^# ? `; s# l6 q d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 F! `2 g9 v* k5 w
if( nLevel > 59 && nLevel < 72 )3 x' p0 F7 ?9 u+ ]% m) A! m
dwTmpSkLevel = 1;$ ]& u' w; q4 ~
else if( nLevel > 71 && nLevel < 84 )) E V8 c2 f- j, a5 f
dwTmpSkLevel = 2;
% t: Y" X5 M- e( A9 A else if( nLevel > 83 && nLevel < 96 ): C! V: o! n+ V
dwTmpSkLevel = 3;
3 t6 a9 h8 i! D0 Q else if( nLevel > 95 && nLevel < 108 )4 K# A1 a4 ~0 F. _- j1 G
dwTmpSkLevel = 4;
& {6 q9 U4 P2 \- ~ else if( nLevel > 107 && nLevel < 120 )
' S9 v6 G6 q, Q" M& ?3 `9 ]5 L& H dwTmpSkLevel = 5;
: z8 }: F! v& X J( S for( int i = 0; i < MAX_SKILL_JOB; i++ ) % m$ d0 K) D9 R m
{ - {. \. L1 l* `' q8 _
LPSKILL lpSkill = &(m_aJobSkill);1 O0 s+ C n# A- A% P) e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 ~8 Y+ u0 P( C b! z {
. F! ` D5 u9 J5 _+ T3 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 ^& B, I N# `; W0 P: p7 n
if( pSkillProp == NULL )# W; D8 l2 C- v% @ P7 ?( P
continue;
0 c% K! v! b1 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 v( K2 f; _3 n7 X5 B2 | continue;
$ B: h# E+ c; O/ C/ r8 J2 r lpSkill->dwLevel = dwTmpSkLevel;. M; [+ h' t; w' I
}6 N; ~6 A0 J# y8 b5 B% T6 E
}0 Q. b8 v5 D. v; v2 c- U9 b
}
7 d( b1 V7 s, f/ Y5 k else if(IsHero())8 v3 A. b* d6 P
{
& q' C/ `1 F! @# v) x" L7 \/ i0 N for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ g/ O& w1 D) w! [
{
2 I- h; K! D6 l2 D0 I LPSKILL lpSkill = &(m_aJobSkill);
0 U- ?( N9 ?* D4 a if( lpSkill && lpSkill->dwSkill != NULL_ID ); V# r, m2 I; q* G* _+ S$ F& P
{
/ k8 v5 P# p# _9 }) B4 ]# [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( @& X& a. E9 X& T& z+ s
if( pSkillProp == NULL )3 g- @! { {! i* R$ e g/ F/ H8 |
continue;
& @6 B# _5 C! D' E6 i9 g2 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 L0 J- z1 k( F3 \* \6 O% d+ s continue;6 y8 i+ `2 ~, Q, P
lpSkill->dwLevel = 5;
) M( t. A( b0 C. K' R }
. c1 p7 b: k6 W0 F( v9 O% M7 Y }* D. d+ @& I( }, q( o
}
+ `$ R5 ^& n" ^. x$ C+ C: j else if(IsLegendHero())
* N2 Z1 Q$ p0 j2 `; { {
2 L& y, G# f' w$ j for( int i = 0; i < MAX_SKILL_JOB; i++ ) : r/ e6 R3 ]) q+ u& z
{ - z- ~8 V, n3 d& P" ]& B
LPSKILL lpSkill = &(m_aJobSkill);
" v. C/ Z' F( ^0 ` G1 r% O; }9 V if( lpSkill && lpSkill->dwSkill != NULL_ID )+ |0 c; a9 {6 Q' D* m6 u" l; X# h
{4 A+ Z2 L m9 v9 w# V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + |; |3 [9 o: W4 Q7 n$ H% v8 r
if( pSkillProp == NULL )
& ~ F/ T* a! q continue;
8 C, ~* g! n; J& ?' e: i& l if( pSkillProp->dwItemKind1 != JTYPE_MASTER); q$ z5 G5 v. D4 B
continue; r0 N7 ?! K- C; K1 O$ L2 _% V
lpSkill->dwLevel = 5;
U7 G( K, f+ b6 B3 @* |+ p }1 I; [0 a3 M4 n" h
}# }1 c; ?9 q: v. w) g) ], w
}8 B4 g P" t X5 c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: U- }; V" a6 {+ Z if( bGamma )4 w2 Z) i0 s! ~1 l8 l8 M& i
{+ M- w3 R h; L
m_nExp1 = 0;
I8 O! K8 [4 u. D; V/ m }
w* h+ X9 F( {$ d7 ^! y+ V' I+ ^. k
( (CUser*)this )->AddSetChangeJob( nJob );
# M4 U- N+ y# Q3 z; p- B) n g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 z- Y v: z& K/ T g. V
# G1 l1 e1 c5 O" C# a; E
# S% ?! U- f" |( Y7 v* T4 T$ g: L#if __VER >= 11 // __SYS_PLAYER_DATA
2 j& m B- B2 Y( v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 Z, x( O2 h3 h6 u: T3 L#else // __SYS_PLAYER_DATA8 b* f/ p4 ?7 d i- Q: C! R" l; j, Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- C7 U% K7 [" Z2 v2 O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; U# c9 Z" K$ R* j* i6 I g/ y if( m_idGuild != 0 )
1 _. I4 [! @5 c" U( M7 ?' y+ q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; B7 P9 N* V, p- ~
#endif // __SYS_PLAYER_DATA
6 [0 L% Y. h' I$ o8 V; I7 [ SetHitPoint( GetMaxHitPoint() );2 s: r$ e2 y# a2 P
SetManaPoint( GetMaxManaPoint() );1 T( A& J5 ]( a: r! B, y- {
SetFatiguePoint( GetMaxFatiguePoint() );5 p1 u! u. ?9 l! A8 c4 U& b
if( nJob >= 1 && nJob <= 4 )! e4 B+ H( z' T) p+ @
{# ?. S+ l6 J8 e' \5 W4 F. }
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 r! v$ E) G; P) j
m_nRemainGP = 28;4 ^- q' g) e3 e8 B' f
}
' N* G- [# t8 X% ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 T. Y: c7 s* T' m" l& ?
{
& Y8 l3 C, R8 {* N* m0 `8 s m_nRemainGP = 118;
2 u/ C7 @' H+ q- W3 p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- ?0 \8 W. R- Y4 h m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 v& j9 X1 E1 N w$ m9 i3 R, A a }
3 h/ H1 c Y L4 y# J) |9 J if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% |" C3 d, f5 L3 M* G E8 T" C- ~ {
+ h" k4 O7 w- H: S CItemElem itemelem; u+ m+ d' Z5 ?1 z% S" G
itemelem.m_nItemNum = 1;- F3 p' U2 J- D6 z
itemelem.m_bCharged = TRUE;
( `0 ^/ B) G/ y d5 r" g BYTE nID;
2 ~$ C! d+ v; x3 w! X5 g- _0 T
* q7 M- T& l$ M if( nJob == JOB_MENTALIST_HERO )
3 e% M. V' n2 A( `0 ?" c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; x3 n& x7 _: I if( nJob == JOB_FORCEMASTER_HERO )7 X& |) y, H0 z5 `, [" ]8 a3 f: F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, h/ w% E" d9 ^2 K! D. U& n: S2 O, q- K
( ( CUser*)this)->CreateItem( &itemelem, &nID );7 H, x5 A, \6 {, p
}
" a' R; o9 v5 ^0 K g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
`8 t# O1 K" @* i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# X! D& w' P( o( C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
J5 o4 F2 X" Q g* y% a/ B3 X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 k! y f) E, k' ~
( (CUser*)this )->AddTaskBar();*/# K# }* i& l9 F% q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 r! |, O" ]2 F# N' P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" j" |& ~8 X( R4 k
((CUser*)this)->CheckHonorStat();
8 q4 D" c4 `' c# Y h" Z. A8 E ((CUser*)this)->AddHonorListAck();
* ^! }' U9 }7 p+ k+ ]: j& L M( d g_UserMng.AddHonorTitleChange( this, m_nHonor);
( g5 b$ n9 \9 Y3 W#endif // __HONORABLE_TITLE // ′Tà?
0 l9 d. U# `. Y6 y' w }
9 s# Y. h& ]" }' w8 M4 b$ }/ b+ y#endif // __WORLDSERVER. Q7 A9 L& q: y( |5 M3 a! e( x; l
}
' M$ s* s" a) I. W) f, x- U4 `' `+ U! D) V8 }
然后你进入functextcmd.cpp并添加以下
# l. ]: {3 q- G5 c. {8 n. J
( |: }' m) ^* S( X0 f5 }代码:" R# ?4 R* ^/ r4 D% ~# ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- g2 L" w+ g8 Q- h' F+ y8 o下面插入8 b) [0 Q. A: T" \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 o8 c* h9 d& V, p" j q# N$ P C
8 x/ Y' U; X: m5 B3 ^$ J+ U! Y然后你去6 |9 R* s. a- C
# i1 I5 F# I7 Y9 U+ N: X
代码:
* F A9 K& P/ u! S$ N0 H! j6 U代码9 d" `( z3 P+ z6 S
BOOL TextCmd_ClearPropose( CScanner & s )
0 C7 a' o, V* }5 s4 [8 H" T4 ~" ~{
- |! s. V9 }3 c. q9 ^+ P! T+ x9 k#ifdef __WORLDSERVER8 v. P+ d5 x/ _+ v
CUser* pUser = (CUser*)s.dwValue;, M% ?, l0 M- R% U
g_dpDBClient.SendClearPropose();
4 e3 w$ o5 c! ^! U& X0 x* b+ f! w#endif // __WORLDSERVER
8 ]/ L2 n+ P! D5 o; _) B return TRUE;
4 @, r3 p0 r. s o4 f# t}
n- h+ U' F+ B. M$ W下面插入. p3 e, m( y7 w* t) C) O
BOOL TextCmd_rebirth( CScanner& scanner )
( E1 f1 Y, n/ ]# z{' Z8 L# i, t1 E; a) l6 z8 m
#ifdef __WORLDSERVER
: C5 [& J" q- C% gCUser *pUser;
7 o9 o% W' q- gpUser = (CUser*)scanner.dwValue;! l+ o& E2 L( p: A9 G( P3 a; E% O
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( Y6 S, G* D* }# _+ ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 z1 n5 x0 A5 O* ^1 T, ]
else
% t4 Z( ^3 V6 y5 `! ypUser->AddText("你还未达到重生条件!");6 ^5 D# d0 W9 S/ J8 R3 Z8 J" d
#endif+ y! E: Y% K1 \2 {& ^' ^% `- Z, a
return TRUE;
( `' {1 \1 c5 G& W}
, ^; a7 p$ `; ]* ?) I# _
1 a2 d3 i% K0 x
- T5 O0 i9 @ [6 X t0 G4 l$ l, B7 S# ?( W# C* F2 G1 } y$ U
* r9 m; u. f+ p7 t3 W |
|