|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 J! l" m. ?+ T9 k2 d: z# k
9 p3 l" c$ F6 j( p4 n0 `Mover.h7 v |2 F Z" K2 I6 W0 U
代码:" w9 K6 T1 F/ p" ^ Z# f6 v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ _+ M$ P" _0 w/ t" Y. W% }
. U* ^0 g! M# F+ P下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ s( b; g6 D; u
% k& s' s/ u, N
然后你去mover.cpp添加* y, }7 E& H& M3 P, p: k
6 u1 `3 @4 @6 Z+ P( t
代码:) I& k: m" U& C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 K- Y5 v. e. C8 k6 [; Y{
: }/ A% }. B, y4 i" G N#ifdef __WORLDSERVER
' D7 H* l. I/ n; e+ H // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: ]& z. N: D& Y5 p MoverProp* pProp = GetProp();; L: G; v) [; N+ o U9 z8 t
if( pProp )* E R8 W9 Y& u2 B7 ?$ L- ~6 g
{
0 |! {1 Z. v0 s" s8 e* [6 I# R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 W/ l. K1 h' I* z( n% D; d" \ {9 H' i- d* O7 a8 U% H, S' n& R) U" W
AddChangeJob( nJob );
8 {- S4 e3 s1 B7 p b7 B( j }else{
6 O& r' K, _8 x" B" ~- ]3 Q r' G return;$ b4 Y$ T- y" H. k! d5 o
}
/ V/ Y; y% g( ~3 F( o( g int nPoint = 0;
7 j' m4 t Q0 M if( m_nJob == JOB_MERCENARY )
' d( w! u- n. m0 N& R$ ]* Y nPoint += 40;0 Q E" a% \, `& o
else if( m_nJob == JOB_ACROBAT )7 L& d' {; [, H, T# i& X0 J
nPoint += 50;) U; A- @% O5 u! G4 Y9 }
else if( m_nJob == JOB_ASSIST ): d: f, V5 i( U2 e' f$ f# [
nPoint += 60;* n' y$ T S# F" f. j9 ^4 g# i4 F
else if( m_nJob == JOB_MAGICIAN )! x3 P5 [4 f. b, z1 C
nPoint += 90;
' Y2 [& T$ t9 Y ?! Q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 y, Q2 G! B: b1 I9 v) N
nPoint += 120;" m- r% m! L' P. S' {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 b- [/ Z7 I3 n1 V* n nPoint += 150;
D! o: h0 S2 |/ ]; w; [ else if( m_nJob == JOB_RINGMASTER )
" o3 y2 R- \+ ^$ C7 e3 }3 i nPoint += 160; i( p2 Z K& Y' R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 y, y! C- `7 D7 ?# o' y
nPoint += 180;7 r" k# {0 y, P: _1 {
else if( m_nJob == JOB_ELEMENTOR )
3 T2 R" ]0 g1 e e( d nPoint += 390;% T0 E+ }/ @: [5 F1 e3 _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" R& m y( `/ J nPoint += 120;/ _. a3 W' Z. _: K W6 Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) j) _* L% T' W7 O- P7 e
nPoint += 150;$ B$ ?4 t: ?9 b, ?( Y( B
else if( nJob == JOB_FLORIST_HERO )
5 K9 r7 d5 Z% Y1 D* S nPoint += 160;
2 i5 ~, A& t8 S! Y1 c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) p* i& z4 b. y$ q6 ]/ j9 M3 L7 f
nPoint += 180;$ x" E0 M3 n0 l: s( O
else if( nJob == JOB_ELEMENTORLORD_HERO )0 v( C( _& x w: O/ C
nPoint += 390;
% d0 w) |! p" {" l; T/ |6 I% @ B5 M3 B' x2 x
AddSkillPoint( nPoint );. m- z! O0 {+ @4 @6 [; C, e
m_nLevel = nLevel;* ~1 A5 |0 D0 w4 ]
- }) O2 v u1 [- z8 L) |* ` SetJobLevel( nLevel, nJob );& w( {1 |' ~, M# p F$ D
m_nDeathLevel = nLevel;+ x# M' c6 {, h/ ?0 u4 W8 h
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 R6 s% g: P5 ?7 @) s- _ if(IsMaster())' e+ r8 o( A! |7 e! h
{+ n. F2 i: |. z! [- X( N( R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 w$ H* V' R* v3 d2 z4 {! f$ z# G" [8 e if( nLevel > 59 && nLevel < 72 )' o5 [% L6 t. O0 O: H0 p m
dwTmpSkLevel = 1;" r \$ L. q# M* ]+ s
else if( nLevel > 71 && nLevel < 84 )
' z7 E2 G9 H* n% R0 g" M5 j3 a dwTmpSkLevel = 2;+ B2 s( w! B# T0 D! j# g# g9 I6 V
else if( nLevel > 83 && nLevel < 96 )
- y3 H8 F5 R1 x- L; U6 ^ dwTmpSkLevel = 3;% U3 Y" z+ p# }5 ]# ^
else if( nLevel > 95 && nLevel < 108 )9 |; N0 w! T. e; | V3 _, ^
dwTmpSkLevel = 4;0 e Y6 S8 ]% f l0 z
else if( nLevel > 107 && nLevel < 120 )
; t3 ~8 L/ [5 J) ], X, n! w dwTmpSkLevel = 5;
# }! A+ S/ ]! e6 J' _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' R' L3 b h, w W
{
; g) [* [4 {2 s \1 @. x+ T1 B LPSKILL lpSkill = &(m_aJobSkill); Y& B( M7 y: C& \; [% z8 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. F7 F6 e5 F8 Q: k {
Z7 ~& `, Z$ \$ T' B- K. M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " e/ @- {& z# N' @; @
if( pSkillProp == NULL )
2 ]1 R* S: I( } m9 C! A continue;, N2 H! S: d1 Z7 N) @, n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 J- |* E# U+ } B3 O8 e7 J
continue;4 y/ N" c. n; u
lpSkill->dwLevel = dwTmpSkLevel;, s8 Y) j' T% [' l o
}
1 `5 O6 c# F# S% Q4 ? }# u* [# P8 } ^2 Z; R- @1 M5 Q( _
}
1 q3 u, P. m2 y0 b else if(IsHero())
- Z' i* _7 \6 `# V8 S$ V5 m# U {: x' I" A1 l, T+ s# e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( X1 f9 g: Q9 j! _3 J! R { # I5 c! V3 K7 q0 @! f4 Z5 ]6 U
LPSKILL lpSkill = &(m_aJobSkill);# M f8 v3 k8 a. N$ C, C9 x7 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 m. O- O. Q% n1 N# \) I
{
! X/ N* C5 `9 D& T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 k8 m/ w* S: s- h if( pSkillProp == NULL )
+ Z% a/ e! C9 m7 x p continue;0 }: K J+ Q( o; I6 l% C, y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ c! Z2 Z0 G. f; {" W5 \: @( {0 `$ A
continue;- p: Z$ i8 \$ y5 [1 u0 v; Q3 \
lpSkill->dwLevel = 5;
+ D& `0 k# E9 o1 S) Z5 p5 y }
) R7 m( T( ^& B6 F }0 ^5 [! }9 A1 C% _. G1 I
}
6 B+ a/ V: z, B- x else if(IsLegendHero())
# @* _9 u4 a0 [$ C5 i {1 r! G3 r ^0 J! R, q& p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 x& e G; f$ f# S! i6 r, \1 W9 ]
{ % V6 D9 l# q0 Z' O, x% y
LPSKILL lpSkill = &(m_aJobSkill);
- o9 g b9 l, U3 y9 d8 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )) F4 c! J; j+ {: g8 E" k0 D
{
' \+ F2 b1 @# Q' h" X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! G* g* Z! y: q if( pSkillProp == NULL )
" g& J0 ?2 K4 ]# [- }% E continue;' ^" y; i- q+ V! j; |2 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ r {/ b+ }. {5 ~ continue;" g. l, m; Q# q6 ~' O
lpSkill->dwLevel = 5;
: S6 t# j: `: Y7 z0 ? }2 _( y1 m% i" s0 t* A2 k7 G2 V( g
}/ v, ~ d8 z! X3 N1 ?) d
}
( N2 Y/ N3 O2 [' J$ N0 O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 f) E; v8 r( z t2 G/ y if( bGamma )
6 \9 ^' ]0 S+ Z- m7 q0 \ {
( d; D6 R1 O, C! j m_nExp1 = 0;
% B1 o, g) t' w: o' Z }. u1 V' k% o4 U, X3 D/ U
0 {6 p1 ]- ^7 j ( (CUser*)this )->AddSetChangeJob( nJob );+ w1 J7 i: c3 i: o. ~8 B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. |2 R. l5 @& N" f4 l. f& c$ }* T+ B
" y+ ]* P/ X5 F* B8 n2 V
, A$ A3 ?& } z* A4 E C
#if __VER >= 11 // __SYS_PLAYER_DATA
/ M( w% Z$ S% F; I' d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' R4 Y( R; J" |1 E
#else // __SYS_PLAYER_DATA, |* Y2 C6 Y: ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& N+ A" d7 c$ M$ r$ J B: F8 [ I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ f$ r w7 p7 R/ h+ v if( m_idGuild != 0 )$ ?4 x4 s; @) z0 M. p, Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# C# ~6 o) d3 ?5 `+ |#endif // __SYS_PLAYER_DATA5 G$ V& `) y7 Z6 m0 e. K
SetHitPoint( GetMaxHitPoint() );
+ |7 O( L2 v. S% ? SetManaPoint( GetMaxManaPoint() );
4 Y c$ p) d9 U# } SetFatiguePoint( GetMaxFatiguePoint() );
- I! B/ z" N4 O if( nJob >= 1 && nJob <= 4 )
/ z( Q8 F" M5 x$ M3 Q4 Z {
& y4 K- ?2 \/ ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
( U. s l- z7 \" `4 r- f; P: x m_nRemainGP = 28;
/ F) \7 T# A' y& _; z& a) V) \ }
7 V0 j$ L y5 `4 F. C y! | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 w. ^* l( S$ g, {& r# q {4 b0 o4 ^+ `# q# {
m_nRemainGP = 118;2 ]' n' z* z" @8 W" | P: ~4 l J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 n0 }6 E5 j1 }+ x! }% m: S m_nStr = m_nSta = m_nDex = m_nInt = 15;" V, ]1 T9 p; C: B
}( [# ?, P8 T/ K. F( @- [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
B9 {8 ~, m2 R" h& @! s0 [ {3 s$ j# r6 h4 e" F: o* l; `
CItemElem itemelem;
7 s9 z2 A- A3 ]9 K$ }3 P8 H1 }5 ?- o: K itemelem.m_nItemNum = 1;" K# O: A' |3 \0 I0 n4 l/ i4 M
itemelem.m_bCharged = TRUE;
6 x2 N3 s& b+ U* t: Q# A BYTE nID;3 e3 {1 G, O" F [# V
/ Z+ A. B$ s- v if( nJob == JOB_MENTALIST_HERO ), S( y. H. M: U+ i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" @- ~6 x% N- b+ _ if( nJob == JOB_FORCEMASTER_HERO )
% B2 c& I, [! p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 v% D5 N8 f6 c* B
- l+ ~' V6 |$ R% L
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! U9 @; J; [" r7 S- D; [ }
; P, e( w, Z1 b5 Z3 [. Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( n; W/ G; s! A% ]6 F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 }( R+ y e- `0 N" f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! T: @9 s l8 C e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ u$ k: k0 L3 G; P ( (CUser*)this )->AddTaskBar();*/
7 \: h/ U7 M8 U% E0 x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& L, l! Q+ A' w# ^" ~* U7 \+ e#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- R/ q, m; ]- B7 B0 Z) H ((CUser*)this)->CheckHonorStat();
' D/ ~6 v" T& N1 g1 M+ M9 u ((CUser*)this)->AddHonorListAck();1 n( }; V8 o4 z M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
' |+ t6 l2 M7 z#endif // __HONORABLE_TITLE // ′Tà?
; z4 W" |' x9 I3 q1 b9 C }
) F1 G9 V; p3 i) B$ G. E% B#endif // __WORLDSERVER
1 q9 v s9 J9 }}
' Y' n9 u9 G( y! y) F
; N, D; y1 Q2 [5 [7 Y c+ Z然后你进入functextcmd.cpp并添加以下8 h" I" f+ C% y7 A& P2 I
+ U Q2 q7 {2 x3 v
代码:
; Q1 w. a% a# i, s) w/ h6 [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 E$ ?5 o; ] |6 J
下面插入 L$ P3 W8 B; [2 P4 R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( ~, G9 I! r0 A& X5 h0 D; p2 `, k* j1 ?5 ]. `
然后你去
* y6 A' f+ H$ t/ w9 O: J. F! @3 g, T0 t& b7 @% H
代码:
* \2 ]4 t H/ ~, }代码. z0 j6 Q q& i Y) `* I3 d4 n/ q% x
BOOL TextCmd_ClearPropose( CScanner & s )
7 v( h1 w9 Y$ F- Z S) D{( n, x# e$ V0 ~" }2 c& J! i, ~2 ~6 ?
#ifdef __WORLDSERVER9 |6 V% b) P. J1 i
CUser* pUser = (CUser*)s.dwValue;# T8 e9 u0 G( B) a' m4 i
g_dpDBClient.SendClearPropose();
+ k2 X1 g* R5 ?% i' z; J" ~) {0 k#endif // __WORLDSERVER
# g/ J" b! |2 w) b. n return TRUE;! j6 W* `8 p" ?5 x1 V, o
}
6 j X m0 d' J/ \/ {3 u% G' b下面插入1 u8 j; Z( Y' G" L! c0 f% B" B
BOOL TextCmd_rebirth( CScanner& scanner )) [% Q3 u0 E! k, q- {6 p
{6 m% ]% F9 S- b4 `- ^0 q9 M
#ifdef __WORLDSERVER
4 R" ?, O! _- Y S6 Z+ w5 WCUser *pUser;4 n. j; j- W2 v
pUser = (CUser*)scanner.dwValue;
% b5 q5 v5 R. s0 eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 s X5 F) e( l4 y% ?; d/ C' _+ S; NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; a: p6 J. C% l& y
else) P% J: t% }& m) j! \' }
pUser->AddText("你还未达到重生条件!");- l5 M- E3 b+ I& \0 \* H+ B8 @# |- ?
#endif
* x b6 {. @& { u- ?return TRUE;' z( e2 G G" E. V5 n
}
+ z z7 H* r( e, I# W
' f! Q/ ~; o# l$ w' N
# I# Q$ `& N: M; q2 t: E. e( b$ ?& i* z+ ~
7 n: H5 s8 T' z0 B4 ? |
|