|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 F/ t& G2 n* ?3 D+ S
8 T2 ^8 s6 \, t- G( ]. E0 Z
Mover.h& d+ Y) y; O3 F" h* s
代码:
9 {& |. ^' M9 `# x8 ] M ^, U找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- c, Z1 w4 K4 T3 _2 N8 V; T3 f+ [* h) f4 g, m
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, F' E+ d- w* i8 d0 @* e
0 L# V5 L/ i" E% M) M' L( w然后你去mover.cpp添加0 ^! t6 W& p% x, l: J1 P2 X
3 l6 o5 z% s) s4 I6 ?
代码:: ]. z# j) @4 V4 S) _4 q3 w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 ?0 x" q4 M9 \% z. b$ f8 a
{: M* b4 y9 B. ` ]& b* ^. ], H f
#ifdef __WORLDSERVER
c" G4 X3 `/ j) \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* I( n* o2 o- z& y) ]& W
MoverProp* pProp = GetProp();( @$ Z7 Z* H# T6 q. _- j9 i1 \
if( pProp )" M1 F' @! @) B! S ~7 ?
{
8 Z- ?' l1 ~9 B, `+ ]. _7 `! C: k- Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 t; {; ^+ k4 j8 i
{
- D& c, F( ?3 A& X AddChangeJob( nJob );# w! C/ T1 d+ Q9 k V6 y4 w
}else{& n B6 R" O/ t# W" w' f
return;
/ R/ d- }! I& S! q" \6 R- z* G }
7 S- a0 u! v8 q- x int nPoint = 0;
/ a9 W5 W$ E6 p% G$ b& d4 Y0 B if( m_nJob == JOB_MERCENARY )/ E) K( d% O/ W0 Z
nPoint += 40;1 f5 l1 O" u/ x
else if( m_nJob == JOB_ACROBAT )
& t8 C' V6 r+ X' ?- ^2 S nPoint += 50;& g: M4 J7 u3 z
else if( m_nJob == JOB_ASSIST )
2 W2 c0 a- z; c" \ nPoint += 60;6 ^- l) b; l" y x K, v
else if( m_nJob == JOB_MAGICIAN )
g8 l# ? V: @7 Y2 P9 l4 p/ V$ E nPoint += 90;8 i9 g$ \3 h7 P. H$ I5 |" [0 q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 Y, O% v. p4 u
nPoint += 120;
0 L* Z7 F8 ]: Z& y: f- l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ _5 n7 v$ N# l8 x4 B; B; Q nPoint += 150;& f& _# `5 j! y
else if( m_nJob == JOB_RINGMASTER )
H/ c2 X/ z" T' ]" ~! o. n nPoint += 160;
5 o5 [* R) r; o+ U; r9 A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, h8 H; J. f6 S, h- M. R, i4 i% K nPoint += 180;" ?/ f" v1 g# ?4 u
else if( m_nJob == JOB_ELEMENTOR )
! G* a9 s. H! D: e( h+ a u* Y nPoint += 390;+ x! m c5 C; N) `7 f9 f% J, M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 r& I4 y8 I2 R$ ^ nPoint += 120;
3 ?" N8 m- }* Y& d4 S2 d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ s% T0 a$ T, _
nPoint += 150;2 B0 d1 T1 K- a# w! M+ s- G6 d
else if( nJob == JOB_FLORIST_HERO )
6 {! w) P# a% M1 J* R nPoint += 160;
/ E% j5 F# S+ h1 D" ~. k, R/ B" q# g else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; ~6 t! i2 Z w8 E nPoint += 180;' f4 L- g( j4 O: n
else if( nJob == JOB_ELEMENTORLORD_HERO )
: z1 @, G" H& q2 H5 j/ w nPoint += 390;
+ [4 ~8 {! P U- L0 ~: n8 @, ?2 w \6 _) X( E; B, u8 y3 Y
AddSkillPoint( nPoint );: A, Y% E" E4 `3 K p
m_nLevel = nLevel;
+ E0 O! [) v4 |. [! D- p
! ~ h. X# V x SetJobLevel( nLevel, nJob );- A, D4 S" i. c+ Y/ X
m_nDeathLevel = nLevel;
& g. V) V2 U V% @& q% X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 o+ c+ }" }5 j2 e2 u& b if(IsMaster())7 r5 s: w7 b* m. c- B- ]
{% M4 M' L- o; j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; R# Y. C$ G1 `: C+ h) e- v
if( nLevel > 59 && nLevel < 72 ): }, H2 K& p% d9 t# K6 k0 t k
dwTmpSkLevel = 1;
. ^- M9 R! |3 I! A else if( nLevel > 71 && nLevel < 84 )
+ E+ c0 h: g$ s$ L# y7 Z: z1 Z) @; | dwTmpSkLevel = 2;
! {8 l+ e' E# m$ ?: V( w9 }: v else if( nLevel > 83 && nLevel < 96 )
& U* ]" L& D8 K8 H4 L9 r dwTmpSkLevel = 3;$ ?! h& \! g* C: Y2 r- Q
else if( nLevel > 95 && nLevel < 108 )& `# m0 W7 G! Q
dwTmpSkLevel = 4;
! i/ u& |2 Y( Q, u+ X) k. r& Q else if( nLevel > 107 && nLevel < 120 )
* H8 {4 T8 N- U dwTmpSkLevel = 5;
# q/ V0 U# i. l: d; `* d for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ q+ F2 Y9 l4 d+ ^ {
/ K) l& Q2 C) R# ~2 @( X LPSKILL lpSkill = &(m_aJobSkill);
/ j1 f0 }" R1 | if( lpSkill && lpSkill->dwSkill != NULL_ID )
% J8 W# j" _8 k, q5 M5 R( I {8 z3 o8 C v/ q$ Q" p8 w, y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " Y9 S6 k8 t/ @/ y. t: g# g
if( pSkillProp == NULL )
5 L# X/ y' n5 w! P5 K3 U continue;% f' E0 ~- D9 k# d, F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" g2 h" d$ G& [; p# B& N continue;& P9 Z( ]0 e: U0 X
lpSkill->dwLevel = dwTmpSkLevel;
2 U( E7 o4 C5 B; E+ P& N' I }
, o, J8 k9 B! o4 F$ U }
. h# f: d6 ?# A9 q' g4 a }: {( q9 H) I4 O9 l+ I- _7 C: K( m* t
else if(IsHero())8 N' W* t- j- h' l9 E8 J' _7 V
{& W2 y4 x7 ~% h0 [* h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' c y+ g6 |, L* @0 z% n {
j$ ?# `$ l0 G0 W5 U# { LPSKILL lpSkill = &(m_aJobSkill);
- a _# {6 }: ?4 \# y* @) B if( lpSkill && lpSkill->dwSkill != NULL_ID )% _) P2 I/ f9 y& W
{/ o6 x- W& O$ m) ^/ m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " {8 A% p8 C% Q( }7 P" z2 M5 {8 q
if( pSkillProp == NULL )& T C- n# u- z# A
continue;
' r3 j( g9 a$ S' _, X3 A& Z; w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 d, }2 |0 l: m continue;; N/ z! I' T( ~9 r0 p
lpSkill->dwLevel = 5;( g, e- f+ L9 o
}# h( ?* ~8 Y# N7 ~6 J' H* M
}" Q0 {( v0 K4 B; R: `
}
2 U3 X: ~% ~: Z5 I; g8 c1 B$ ? { else if(IsLegendHero())+ b+ W$ @1 f. J9 u- K( e; P/ |
{' D* M2 J' D" Q0 f7 e! v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# `/ H( R. x% Q& W {
8 g! Z9 o: ? O* Z; \/ v/ R3 u LPSKILL lpSkill = &(m_aJobSkill);
& n5 N/ [' \6 `2 V if( lpSkill && lpSkill->dwSkill != NULL_ID )
! m. b. Z. I9 h {
) N; D" I X H8 ]+ s8 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& v6 c5 o5 @6 i# }7 ^1 |- U if( pSkillProp == NULL )' ^8 z2 d; F& y: @' d. T* o0 l
continue;
0 D( @3 [% X3 O/ j: \- q, l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: I" P! K, W2 B- ~9 S8 m continue;
8 t0 a: a3 _ S. b) m lpSkill->dwLevel = 5;/ z5 T. H3 Q6 h1 W" ?9 F
}
9 I) T& a1 M3 ]: n8 v }% b, Q1 e6 `- f& `+ a
}
5 l x% N' }- K0 x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- \. P- Q* G, P$ R4 {& {. _ if( bGamma ). C" k6 [) T2 [9 b
{; n2 f& ?3 r- w- Q
m_nExp1 = 0;
! J4 Z* A2 t0 U; U3 W. |- c; _+ h }0 `! }% \% i9 _
, Z( O3 ]/ {( n5 A" \' C' u9 P5 X
( (CUser*)this )->AddSetChangeJob( nJob );& _: _/ \, A2 |0 F$ z+ f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! h+ Z N& e+ Z I3 c' \5 }" P6 j; h" m/ w
' N6 c8 z9 c {3 g+ `+ C7 H/ C( l#if __VER >= 11 // __SYS_PLAYER_DATA. h8 T( S. c/ A! Q) I- L) o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; Q, t% @& [" F
#else // __SYS_PLAYER_DATA: Q$ A4 ]6 F7 c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& O7 m; Q: v9 _ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ J; Q9 H! `; A! o, Q8 o7 Z if( m_idGuild != 0 )
7 e* z% B, h' g! X# S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# W: G4 ]5 H6 P# b/ [4 L
#endif // __SYS_PLAYER_DATA) t" j4 k5 A, x0 J
SetHitPoint( GetMaxHitPoint() );
) C3 G! K2 x3 T" w0 e& O f SetManaPoint( GetMaxManaPoint() );9 E& L7 y+ g( }- H u* b, w" ?
SetFatiguePoint( GetMaxFatiguePoint() );
8 p9 L3 c2 M: @" _+ V: s if( nJob >= 1 && nJob <= 4 )( ^2 a1 j( r; d% ~
{1 k& r7 _+ A% g8 {* ]2 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;( V) Z1 q# u7 ]/ Z+ D: Q3 w7 w
m_nRemainGP = 28;; r" u% j( f0 v2 P
}
. @* M8 i( A; g$ X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! |% L8 c. W+ {5 J {
1 q) W6 |6 f. w) K' `( Z3 h/ e m_nRemainGP = 118;7 M$ Q$ D/ S; M- j6 V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 L/ x( e! d8 `! \, G m_nStr = m_nSta = m_nDex = m_nInt = 15;2 c. s* U) A; G
}
: {* [8 T+ e! L. V5 x0 L/ M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 `2 Q5 ], r" j8 n( ^5 }, p! r: l {% R: V# p# h7 a, Y* i+ ]
CItemElem itemelem;
: {! R; i3 {! v2 \' i0 K5 O2 ] itemelem.m_nItemNum = 1;; H( t# v$ j/ Y5 C# K
itemelem.m_bCharged = TRUE;
3 ~! ?! g: O2 ], d! b9 S BYTE nID;, v! r4 e9 X& W+ g. u' U
" f7 d+ U! B2 R, T& |# | if( nJob == JOB_MENTALIST_HERO )
8 [, i8 g( A. c/ O9 |! W/ N itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 V9 J; T$ g1 Q4 k! \3 _+ S# V( U
if( nJob == JOB_FORCEMASTER_HERO )
- h1 W# h+ o9 u( V2 n& n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 f# Z1 w, Q4 k# R2 N- W, ^8 J# |+ M
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 B. {+ N7 c2 w @1 O; v
}# ^) }$ C; p: \& L! d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ C* w- ]( D3 x* G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 y3 ]4 }# a( s; I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 G2 H% _( [) C$ I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 `& a6 k/ r7 c7 r8 P- u ( (CUser*)this )->AddTaskBar();*/- W; ?: d( E$ \& q) \* h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; a* t2 z+ c: M j
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' U3 L9 h6 v+ O7 n i1 L ((CUser*)this)->CheckHonorStat();
& R0 o; B+ i4 h1 f9 B* h3 B; n ((CUser*)this)->AddHonorListAck();
% N+ t4 \' @! E# q$ o+ J g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 S: I( C1 R: O3 k. h#endif // __HONORABLE_TITLE // ′Tà?/ u- S6 ]0 H7 R+ e% A" S9 e, `
}
9 N/ F; }5 J+ i#endif // __WORLDSERVER7 o: |4 s) y8 j# o: i- m! H
}
5 U/ V+ R" }) n* h1 e! L
+ T! o8 A3 ^" r/ w/ d f然后你进入functextcmd.cpp并添加以下/ L" r2 u; P$ [6 n7 J0 |; ]
- q. L' W7 U3 T9 W$ ~, z
代码:; i j3 v; K0 ?- K/ @' s
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& R7 D) s5 F, u5 @7 W下面插入: f& R" w8 @5 A+ Q; K$ G7 P2 R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . \& E! D) N! h( |( C- q2 I. O
+ L" q% y6 R) n% L
然后你去8 v" N- Y3 Q* c* p. z) r
/ `" F/ E- Z7 M' H( E2 V代码:
# M# s7 p. U1 I代码
3 h( B; b* _- {+ ~+ f4 f! C7 WBOOL TextCmd_ClearPropose( CScanner & s )- P. ]# P$ n, [1 u
{- \1 R$ [4 M7 o
#ifdef __WORLDSERVER+ c( i8 T X( O, c p) D
CUser* pUser = (CUser*)s.dwValue;/ l0 X' a3 Z, |' k+ q8 Y& Y+ H8 m
g_dpDBClient.SendClearPropose();5 p$ r8 w. D; G& m' f& Z& s
#endif // __WORLDSERVER" p0 x- y p/ W% f% [" t
return TRUE;
* {+ z/ T* I5 r% {& E}
9 G1 F8 ^0 f& h; o! f3 x) i下面插入
- E! |8 Z. c5 A: `BOOL TextCmd_rebirth( CScanner& scanner )3 Y% i6 {, b" Z
{9 }7 ]0 d, g& `# S, W6 C
#ifdef __WORLDSERVER6 q: }$ ~% S+ v
CUser *pUser;
h; R0 H1 d3 _& F1 ypUser = (CUser*)scanner.dwValue;0 l7 w* {: Y/ [: [" {9 m+ k5 b/ l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ q$ L7 C3 K& p) w5 s
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 ] x( N- }" Velse$ F$ i" t# f. l9 z, B
pUser->AddText("你还未达到重生条件!");
' z( S( s6 e! q5 y2 E8 a#endif
; l2 A/ }- Z, }return TRUE;
* ^' n2 E: y8 Q1 ?} / L$ |/ w) T6 V$ i+ O) _
! _; X, \: _& N3 s% \: P" M' \0 h& p$ E, @3 u
5 j* N) `# {0 K" l: N* I- n% y! @
8 x7 M, O7 G5 W. s |
|