|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ i/ U* \1 |: `3 }0 l' r; V2 A$ w$ G# b* N C
Mover.h
@# F6 F7 ]8 e代码:" j. A6 d- k2 f7 w3 l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. ]+ I" X0 W! S( U" U
+ o. e6 h9 f" E5 n) O- T: {7 ?2 O( v, H& X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * e" X" ]. ]$ [) `
3 e8 F# ]% I6 S1 Q/ B然后你去mover.cpp添加. u% `! O* J5 y0 t4 x
2 W# }. z9 T8 @5 I
代码:# r9 D5 L4 M- |+ M+ D
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& @5 Z3 D# p V3 Q2 U
{; O) u3 Q* c( e6 ?. \2 F' }) x- V
#ifdef __WORLDSERVER. G& \5 o; W4 T' s0 m \0 z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% J% T3 }, ~( [# g
MoverProp* pProp = GetProp();2 R3 I. ?2 ?7 ], S& o z8 k
if( pProp )
7 x. j$ Q- ?, B+ s {: c# w( \+ c, D
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ r+ t& n. X' p- S" c- u- A {& h! S$ j2 s6 v5 Q* }) B
AddChangeJob( nJob );
5 Z2 j3 p& L6 f8 W! H }else{
. k' }7 }4 j4 ]0 C return;/ p' b5 f# z3 A" @' n2 |! Z
}
3 n' L# I: Y# v- y5 M% q4 N o7 x+ A int nPoint = 0;
+ _1 ]+ D& ~$ C6 L if( m_nJob == JOB_MERCENARY )
- J& p) M/ U8 o nPoint += 40;' S; L7 e: ^, \0 N& b
else if( m_nJob == JOB_ACROBAT )4 k# Q. \+ N9 g3 ?7 W: l4 S
nPoint += 50;; ~# a9 X( D5 W1 ^
else if( m_nJob == JOB_ASSIST )
2 w; N; X8 k! p' k1 Q5 { nPoint += 60;& h n# Z/ O; G8 u* B/ |% Z
else if( m_nJob == JOB_MAGICIAN )
4 T) |' B5 p' k' } @( ~ nPoint += 90;( W) R$ j, k0 n" T5 ]: H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ {# Y- Q4 j: K* y6 g nPoint += 120;
4 m: K2 p2 ]! a) G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), {3 U4 x* l& ~! q' c
nPoint += 150;
: b7 I& h/ o' s. q- k6 g7 j! U1 s7 G else if( m_nJob == JOB_RINGMASTER )
7 z& A* ]% T% S. K nPoint += 160;
: q y+ M+ L7 q, f+ ~" x4 B9 e* d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 |# m: c( Y& L/ x S/ ^
nPoint += 180;; D* X4 g. A& [: X
else if( m_nJob == JOB_ELEMENTOR ). s: F% X* H/ @, s
nPoint += 390;
$ I9 t# ^0 F# v2 j+ z4 | else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# Q5 G& }4 z- A4 G
nPoint += 120;! ]" q" Y6 K r6 \+ n1 u$ J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 \/ f, @) z; x, ^# [, Z
nPoint += 150;
3 E3 R7 R1 \- w3 A) a else if( nJob == JOB_FLORIST_HERO )
1 u- Y, h7 B% ^* a7 T: Z; X nPoint += 160;
) j7 [+ U$ o2 C0 W0 }0 J) {6 R( w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ F( x' ]7 A Z) s% t! ]6 h" v nPoint += 180;
! ~8 c0 i! f/ a* V else if( nJob == JOB_ELEMENTORLORD_HERO )
" F# M: C! S7 u% [" T* E nPoint += 390;
. U% @9 i5 r! N/ l x' C) P0 a( n1 h5 }( F/ n* C
AddSkillPoint( nPoint );
% q$ k9 a [% ]4 F- j J/ T' k+ \. S m_nLevel = nLevel;# e/ g" F' Q" n. i
6 @. ?: _' p- q7 Y4 B
SetJobLevel( nLevel, nJob );
& f1 \7 c1 A, J6 ?+ q m_nDeathLevel = nLevel;! U) t6 ~4 l) I+ l% ^. p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: `% d* d" [/ Z7 ^5 u+ r
if(IsMaster()), n9 F8 J5 ?- ^% H
{
, A5 Q- J8 D6 o int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 ]" J5 k, t: ]$ t6 X7 {
if( nLevel > 59 && nLevel < 72 )
4 S. y9 _3 M( P dwTmpSkLevel = 1;/ W; [( q" Q8 l1 v
else if( nLevel > 71 && nLevel < 84 )
1 ~4 J$ s& ]0 ?7 y5 H" a/ r dwTmpSkLevel = 2;4 I% D8 k! d4 K' A* l
else if( nLevel > 83 && nLevel < 96 )* d* I9 Q8 j( U, `
dwTmpSkLevel = 3;
' M& L, o0 S3 m7 k- [* C1 _8 G else if( nLevel > 95 && nLevel < 108 )
- J2 K$ u; _# x4 U" c dwTmpSkLevel = 4;
+ p9 l, P2 T0 f/ N3 t0 ?! R% c else if( nLevel > 107 && nLevel < 120 )
z% m: _" L+ ^6 e$ E dwTmpSkLevel = 5;9 n1 k6 {$ j+ ?) N* R4 ]" }9 @
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " m8 }$ g w, w5 @8 z
{ ; f4 |* p! b, s% @' w F
LPSKILL lpSkill = &(m_aJobSkill);
/ L3 G/ P/ z( p& S7 t if( lpSkill && lpSkill->dwSkill != NULL_ID )
W: k- r& t* i$ G |9 J {
3 ~* S$ `8 E8 m8 u: U2 f# f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; \9 H, W6 {2 D0 y. t% A if( pSkillProp == NULL )3 t/ u/ s% g2 \1 C
continue;
5 {3 L8 H1 c; v% J+ U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- m6 l6 x0 V/ f7 B0 G M8 J( ` continue;( v- t4 h# t+ n: Q# T# B
lpSkill->dwLevel = dwTmpSkLevel; H! K5 e3 n4 b! X% e
}
# y- |# c- _) y8 q9 U, v }7 U7 Y0 D$ Z$ I) v
}, y2 ]* p' F) C3 ^5 B# _4 e
else if(IsHero())
6 W( M N% N" J0 ^' M$ {; F {
+ o" m- D1 t2 D1 {! p for( int i = 0; i < MAX_SKILL_JOB; i++ ) + D9 X) X. N+ |- k; S
{ # ~1 H. f5 K" x9 P7 T4 n9 }
LPSKILL lpSkill = &(m_aJobSkill);
/ e7 ^: B Y9 d: G if( lpSkill && lpSkill->dwSkill != NULL_ID )
- V7 [9 h! c+ A, R ~: X: K4 n' _: ~ {8 h; M) S [- f3 H% l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); s4 ~# p0 [# |8 e, m3 [
if( pSkillProp == NULL ); _& V+ e: p: p9 v$ d! {: N
continue;2 h/ x7 l* D% |5 I4 S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 i3 l2 Z, J5 x
continue;
2 A, t1 U4 s0 V ^ lpSkill->dwLevel = 5;
4 `" i+ X2 ~; @# z' x }* X9 `# K* F* W, ?# K( [
}
* M: d6 J# R. I }7 [# x$ D1 P, o, s1 C* l, P
else if(IsLegendHero())
0 o9 _1 N3 ]8 m, ~* M, D( b {0 C& k- C. `4 K& P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / y/ V4 d' ?9 y U
{
9 O0 J, J/ }, u* H v LPSKILL lpSkill = &(m_aJobSkill); V: J, }2 W; I, K6 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 O+ M5 m& ?% v1 `# U) M {
) K$ }- D% A; d, d" C3 Y3 D; {4 T m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, E W7 a( _" Z; S# ~/ h& W if( pSkillProp == NULL )9 O* ]/ T8 U/ l* w$ K
continue;! x [" u* d2 v3 _- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 X6 J7 ?: s* n. R+ S continue;/ w! `0 {. Y2 O8 y3 o; V) y( ?& O
lpSkill->dwLevel = 5;
- y) a6 I3 k& D' P: U }
, \7 K' c6 ]/ c/ i3 i6 ?6 v6 D: R }
" W( t% ^0 Z( |5 H2 `5 ~ }0 |( g- [7 G+ D: _) y$ s) G
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ ]6 J6 l+ G/ L7 U3 K9 c$ E if( bGamma )& _( Y# ~4 Z& I4 Y, w% r: ~! L5 c
{, t1 r; w: a( N
m_nExp1 = 0;
0 F, m' V2 `1 E7 h E1 L1 W/ e }; ?! n0 Y/ B8 r7 _6 h0 j
5 j3 w i' l! Q" R; ~
( (CUser*)this )->AddSetChangeJob( nJob );
" B, G+ z8 b/ h- f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 @5 Q3 e4 @: D7 D9 i! ?9 A$ Q. L l9 {1 q
7 {4 g e5 @: S: L$ n4 l) B: Y9 e#if __VER >= 11 // __SYS_PLAYER_DATA
; ?6 l! j# W: t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 {) k' W8 R% Y0 a
#else // __SYS_PLAYER_DATA
9 I7 }; ~% v) E l4 _' m8 s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 U: V4 Y# k0 U0 P: _. A. f' R7 m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 Y" n, J2 R8 q/ x) C$ D, c
if( m_idGuild != 0 )* n" M/ m2 Q4 S a, S. p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: L/ Z* y4 t# Q- A' |+ m
#endif // __SYS_PLAYER_DATA
8 y* ~, r/ c h1 }1 I1 @% ~+ d SetHitPoint( GetMaxHitPoint() );
+ ?( u. i8 x: @4 N# i; b K SetManaPoint( GetMaxManaPoint() );. B* L/ ^ j, k: h* I7 q5 `
SetFatiguePoint( GetMaxFatiguePoint() );" G) }$ p; [" i/ h3 H
if( nJob >= 1 && nJob <= 4 )3 h; v4 c% {4 A: g2 V! P. B* H6 f
{8 @$ J7 r: t# s1 v) ~( A# J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* W9 C+ c* ?% p1 s; c: t W: v m_nRemainGP = 28;2 q6 H% l y7 r# ]/ j& d: ^, F! P
}2 m( {2 }9 G1 z5 z* ^; E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% V0 Q$ ?0 N2 H4 [1 B
{
- p; h# N# i0 d& Q m_nRemainGP = 118;
: P4 y u4 q8 x //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& c$ @- g9 O$ X! a# D m_nStr = m_nSta = m_nDex = m_nInt = 15;+ l# ~6 ]; j4 A2 g
}
) l/ F; H F" d. ] if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ k& Z* i4 l; o L {
" {$ | ~6 y, s/ F6 c CItemElem itemelem;
/ Y3 s/ w; ~2 w6 m5 L itemelem.m_nItemNum = 1;( N- C: J$ Z) D2 o7 `6 E4 y
itemelem.m_bCharged = TRUE;
( M( U) L% s! u- u BYTE nID;
1 o0 M* H. e3 I5 Q0 `2 R0 [# K4 @
0 l0 k2 o7 N8 g$ _& M7 b if( nJob == JOB_MENTALIST_HERO )! m4 n/ `6 @- y4 a5 {! S- c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 Z& L$ B5 H) k2 j% q% s3 g) ` if( nJob == JOB_FORCEMASTER_HERO )
5 v# V; `$ A8 i) p1 R' g4 E itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" {8 p) X* Y' R6 j' p
0 I% E1 t x) Z3 o3 U ( ( CUser*)this)->CreateItem( &itemelem, &nID );: ^! X7 \# a3 x" y$ Y
}( P4 ]# d+ B9 |" V4 ?( {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
w$ _0 a/ D7 v1 D4 V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 x- i$ A9 r; r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 M) E. t$ V1 | b7 c8 e% c; C: X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 o% Q: `1 v- _) i) n z/ F
( (CUser*)this )->AddTaskBar();*/# ]& z0 }4 F7 |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- W5 v- v6 ^: \$ ]: T+ f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 e+ S, H$ M4 e
((CUser*)this)->CheckHonorStat();1 e* E" h _& h
((CUser*)this)->AddHonorListAck();
) e( T/ d- P% Q g_UserMng.AddHonorTitleChange( this, m_nHonor);
: Z1 Q3 Y0 [/ j. a# m#endif // __HONORABLE_TITLE // ′Tà?
( L' l$ m& _! _6 z7 p }/ [9 R- j0 O; B" Q; r4 I
#endif // __WORLDSERVER
$ w; A- d1 N: x1 w d% W: ]( ^} : e) {. p/ N0 j- a, W- ~2 g/ u
, \( [# X- \; x3 {, S然后你进入functextcmd.cpp并添加以下
& C# S. B ]' A
/ Y; ~- y( I& H0 n4 D$ H代码:
8 `' K# F w- t3 X# yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- ]/ u' e" Z( ?" ~' C+ q9 j
下面插入' P3 g6 v w9 [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: H/ W! h* r4 h' I( n( T) i4 M9 V1 m2 \+ n
然后你去. r3 _0 K7 K. Z& ~- o/ y' L
" g. L$ p9 N+ F代码:
1 `) S# n. Z" J% K代码
; u! ~! t/ H( pBOOL TextCmd_ClearPropose( CScanner & s )
0 a+ _3 w! h* C{! `5 ~$ C) w/ T6 ^" }0 Q! h1 r
#ifdef __WORLDSERVER
- S' t0 [% l- E; A5 N5 {3 ~& { CUser* pUser = (CUser*)s.dwValue;7 q2 y m% {& x" D0 t8 ]! T: f
g_dpDBClient.SendClearPropose();
# T. `# t8 j% X, Q# s; I#endif // __WORLDSERVER
) K6 [$ V6 b2 q% m, A return TRUE;8 W& Z* M" F' H4 h
}- G/ C5 A1 K* G$ W6 f; R0 `
下面插入
8 q2 [+ N3 F% k) mBOOL TextCmd_rebirth( CScanner& scanner )
' B3 P M8 c/ q{
8 N* Z7 F3 [* F#ifdef __WORLDSERVER' G) P) m. C3 Z
CUser *pUser;% @' R$ q. U6 {/ j8 ^
pUser = (CUser*)scanner.dwValue;3 I$ ?2 j2 g5 Z0 D& u% i& K% k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 k. F9 p. {. f4 |* e0 U: D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! o" q: w: |+ r5 i) @' d) _
else% ~- J" Q8 M* l: R X
pUser->AddText("你还未达到重生条件!");
4 w* ]9 F4 h" e. d5 T4 L#endif/ V8 {& m$ X7 L$ R$ o
return TRUE;$ e- n8 C) o& y/ A( N( x5 V
}
7 [8 q! g/ X$ A3 ]6 \. f/ ?% h+ b( N# S" C0 e1 T% R
/ k4 b2 K8 ^! U; J
: q( F4 S' X Q' u, v/ e$ Z. w, {+ T( f* c% p/ j' Q
|
|