|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel l/ f6 g& j* S' ~9 A0 j/ S
N1 S+ @% D' R0 `; G% s2 {" WMover.h
7 T$ Q. ~$ n( O- M+ E! c. z代码:5 @; k" x8 g* l+ Q( H* K9 v+ M/ u5 M
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: u, _ g. \ j. v0 u
% k& s( ]; ^5 Y/ v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 @! A1 }; l! C4 f
4 w1 J8 L. i9 G% Q( x
然后你去mover.cpp添加0 E- w5 S6 E$ r' d4 d9 I" O2 o
3 v2 p& t8 K" c% N E6 w( D* g
代码:
- T" D0 Y8 u3 `7 Z3 _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 }# J: x9 ^, e; U3 p9 |# `1 f{* G$ z Z9 P# N) W& c
#ifdef __WORLDSERVER6 I3 B. K: W4 B4 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. z/ |! l0 o5 m MoverProp* pProp = GetProp();
7 W* B* Y% G1 I if( pProp )
. W! ?: c, `; p# h) p; B2 j {
( F9 q6 i6 i+ m1 K if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* c* l2 B/ x' N+ _0 U& c {) ?7 L7 _' m6 o" H7 H
AddChangeJob( nJob );+ y+ Y# t9 o! F
}else{* l! Z' R& E( d
return;# ?2 o6 `( t9 o2 G+ |% H* z
}$ h) A6 H( n0 Z+ T( I
int nPoint = 0;0 u7 S- T' k# e; o" Q! s# _
if( m_nJob == JOB_MERCENARY )
+ _" ?* I- w- v# Y9 {" v! S nPoint += 40;0 V5 M% N$ q0 a+ ]
else if( m_nJob == JOB_ACROBAT )2 y+ j2 x5 N0 W5 T |& p, C* O0 Z9 O
nPoint += 50;& a, e- k; C3 E" M) _+ A3 m
else if( m_nJob == JOB_ASSIST )
- }4 E$ s/ D$ J; c nPoint += 60;: l0 @1 x; x9 V' y$ o& {1 [
else if( m_nJob == JOB_MAGICIAN )
& m' _8 m0 ~, a nPoint += 90;
# i% H) J6 l# E$ @$ h4 ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# k* o J. R0 K2 S/ L1 V0 G- o4 M
nPoint += 120;
( F$ W+ ] d+ n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* y& B+ I1 z( ]- C3 q4 {4 X3 f/ p
nPoint += 150;7 l- l% W* d% i: Q9 S
else if( m_nJob == JOB_RINGMASTER )4 o+ r' C; o A: X/ ]% F- }+ j, F, a
nPoint += 160;4 v+ v+ _4 q# s! m' j" Z" b: e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
k, q9 q7 @5 a nPoint += 180;
! f) p) l `4 }* W c; z- w9 U else if( m_nJob == JOB_ELEMENTOR )0 A( i+ c( s6 F+ }6 U! C' B
nPoint += 390;
8 o# b* C1 w) x1 J0 K0 _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( j+ s# W5 X2 x5 {' w! ]1 Y4 R3 V nPoint += 120;
. R6 `& W9 l; f5 U: ?: N, A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), z" d3 t) o* E5 J. D2 g) N9 H
nPoint += 150;
' F- y7 Q4 T4 ~6 m, g& ]2 q else if( nJob == JOB_FLORIST_HERO ), [" ^& M# H9 M' W
nPoint += 160;7 e4 q7 U8 ^) Q6 ?7 ?, r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); X' q8 g9 M1 J% Q0 }3 {
nPoint += 180;
* H2 ]$ _8 r( p& v3 L else if( nJob == JOB_ELEMENTORLORD_HERO )
3 O5 V) s" _- S- O1 s nPoint += 390;
6 A* Y( S( F, U5 b( }( L- _' d" ^. ?9 m% m* Z
AddSkillPoint( nPoint );
" r4 X; |' M; U7 l% ^8 w& u7 p* E. @ m_nLevel = nLevel;
. E1 t J ?" k; X j5 h Y! ~
1 i( K( h, `# K! v9 Z SetJobLevel( nLevel, nJob );
# Z1 z9 b4 \" V2 Z m_nDeathLevel = nLevel;' | y/ o! a9 [7 h1 o# D* J* c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 s7 l7 ^( f; `+ m if(IsMaster())2 o) P3 k% \/ i1 {
{
5 s: ^8 T5 x0 c int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 \" {! B* E0 T& G; x
if( nLevel > 59 && nLevel < 72 )
+ D- }7 E2 ^; B1 w3 O8 O dwTmpSkLevel = 1;9 j/ e' `" w3 P' W% ^9 ~; U
else if( nLevel > 71 && nLevel < 84 )% n6 L; O0 z1 ^
dwTmpSkLevel = 2;3 u2 b! x( b; C8 U4 ~
else if( nLevel > 83 && nLevel < 96 )2 N Z9 n$ H9 B- N1 f! \# S3 Z
dwTmpSkLevel = 3;
! @0 N- a9 e5 i0 @9 M else if( nLevel > 95 && nLevel < 108 )& k+ ^& s) B2 X& O* v
dwTmpSkLevel = 4; V% i& F* [5 `
else if( nLevel > 107 && nLevel < 120 ); g5 Z2 e$ s" i7 L8 D
dwTmpSkLevel = 5;1 r( I( Z; `( |+ O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Y" o0 [/ k5 w! K) z! K {
. S7 Y$ @* k- f: \- b8 p, J LPSKILL lpSkill = &(m_aJobSkill);
3 C# E! C4 J% X' k( C if( lpSkill && lpSkill->dwSkill != NULL_ID )$ }: K' ^' Z C( W2 Z& q
{& I# w+ w9 Z; t$ R) d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; G$ N, r7 x1 r' ~( N+ X5 s" r# S if( pSkillProp == NULL )" F( a0 N F7 |
continue;
. `6 w- G3 P& t& H8 T+ A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 ` P2 ~+ t! ? continue;
) C4 |6 B0 g5 S" l: M lpSkill->dwLevel = dwTmpSkLevel;+ z7 A" x! K! d
}
2 h) m0 j, o, x/ i# i8 b8 C }2 V; S9 C6 I [( G( `) Z+ b5 N
}* {1 w$ c; W" s$ G
else if(IsHero())- z: S4 i1 Y9 F/ G1 m( W
{
0 R! T/ r% V K; X* k for( int i = 0; i < MAX_SKILL_JOB; i++ )
( F" Y5 D/ d5 d$ u/ w( N3 p {
- \8 w2 i4 N( O5 f; I LPSKILL lpSkill = &(m_aJobSkill);1 g5 O* h+ ~5 w
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 K0 u2 \) R) `* E* d. q @. c
{
& f- ~# ?$ C- [4 j- t8 a, j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! l& z; u$ A* L! _" F6 y3 {" ~3 ^ if( pSkillProp == NULL )
) k3 I+ W$ O7 p+ ~. N7 x continue;5 O" K7 ?# B1 E' F9 h0 ]( S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 ]2 ^, l4 L6 x2 X: W6 }6 P7 a$ L I continue;: I) A, M7 w3 i- J8 ~. ?9 y
lpSkill->dwLevel = 5;
+ k" ~. W: K( x8 d1 v5 p. n* ~ }
5 [- d6 c0 Q6 x: z2 ` }
: \6 y8 m8 _8 m( q. }) b! b }# c9 h) m# P- S" N' [* ]. _
else if(IsLegendHero())9 m3 H- P$ J8 B: ]9 e. D
{
: i S% s2 a- a$ w p) Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 e8 O! D. T% ~9 `" ?& y
{
0 R v& Q9 ]& r7 S$ E) }7 i LPSKILL lpSkill = &(m_aJobSkill);
' D' ^ s3 _6 d7 l7 _. B' V: {" W if( lpSkill && lpSkill->dwSkill != NULL_ID )1 {7 T8 }8 z1 y3 g% O
{
0 c! x- X/ t2 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 ~' p- b' G3 c" Q
if( pSkillProp == NULL )
' \- G2 r# k8 B+ I continue;; p, X6 S! D7 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. q5 b# Z: N& _/ _% N continue;
7 v& J0 O+ p. d3 S lpSkill->dwLevel = 5;
) X" K- T6 z2 _5 E }2 K+ M4 a8 ^9 U0 o4 j+ A' f
}: j M6 a, t! [5 ]7 m
}# ?1 L* h( n: C8 x/ ?0 [
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 u. B- J3 s3 |! a$ P$ i. r# j if( bGamma )
- `# e0 l% o5 P$ H2 n$ [3 q {
( S8 ?6 l7 T2 _5 X* T m_nExp1 = 0;* R4 i& O/ g9 q' g1 h: F
}, {% h/ l+ a. w2 }
" o7 N% N9 c8 ?+ M# v2 r ( (CUser*)this )->AddSetChangeJob( nJob );
8 @9 w, G3 X" m# C7 f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 z% f. q" x/ ^7 h. J) k, ?7 b, Z2 ?7 W; v) W: w2 W
! @; A. e$ D! S2 J6 d* \" k
#if __VER >= 11 // __SYS_PLAYER_DATA
* Y, u+ ?' S _+ ~- N3 s* \, G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 R: X; r3 e+ p2 I% Y% t+ i
#else // __SYS_PLAYER_DATA; h s0 |5 l1 M# v$ h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 w) ?7 _) B; }; c/ {0 Y+ D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" q2 m1 g K e! U/ }
if( m_idGuild != 0 )* p) c5 T8 k P2 {2 Q$ L
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# O1 x$ }8 N; s& s" j, h" P
#endif // __SYS_PLAYER_DATA# b) y; W: V. R
SetHitPoint( GetMaxHitPoint() );
$ S$ k1 T$ l4 u! m9 u2 a SetManaPoint( GetMaxManaPoint() );3 s1 s+ X' M/ y$ k0 o/ |# l- k1 Z
SetFatiguePoint( GetMaxFatiguePoint() );4 G g9 G, K+ h$ m1 M4 L
if( nJob >= 1 && nJob <= 4 )
, I; W7 O! d; k- R4 h {, j' d. n0 R& I" t4 G3 l: a' |/ {
m_nStr = m_nSta = m_nDex = m_nInt = 15;' L* b5 ?, W" K1 x, ? t" K
m_nRemainGP = 28;
' {" ^8 K7 F0 [9 N' { H j G }
7 [9 y# c2 [+ n x6 N8 Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 X; B0 U9 J8 t( r, M! ^* E
{
$ D# W/ F2 H8 p$ W m_nRemainGP = 118;
}3 b" W( h( K6 V3 Q' o; \/ M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' @* K! z* _( S9 j4 ^- r m_nStr = m_nSta = m_nDex = m_nInt = 15;; x/ g$ P, U( E% J' x
}
- `* Y5 s: m5 G6 Z$ g/ n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( r4 o, j/ r* @ z. F7 i
{
3 m( g/ F& b9 { CItemElem itemelem;* O0 o- L; R7 Z, \2 w
itemelem.m_nItemNum = 1;5 n: i+ S' R" e7 }* o. a# @$ d6 b
itemelem.m_bCharged = TRUE;
! z6 x: G8 T! v* q! } BYTE nID;8 \# r/ `# M! c; K# q
) \3 E$ L9 ^ T6 [
if( nJob == JOB_MENTALIST_HERO )' Z+ z6 [( `4 `- B4 ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) o5 s3 N) _! X* g if( nJob == JOB_FORCEMASTER_HERO )" L3 O( {$ }" j: v& @( m0 ^! J: M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# u: k9 O9 d2 w* u/ h o8 P
+ [1 ^- A, @( L h* T& l3 {6 R) Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );3 N4 L0 y: L' F7 g
} d" B; B! W/ H5 l& q9 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 L/ x4 n9 N/ G) V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 @9 P* l$ {. g& L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) ^' C; V: @! P8 H. z) \- I: X0 |( I& v /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ _4 ?: t# B: K2 e* v ( (CUser*)this )->AddTaskBar();*/
7 z' a* h6 B7 I4 V9 y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
X& E/ R: f# f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( a( G& {6 O& n0 i, b0 o ((CUser*)this)->CheckHonorStat();
+ U0 ^5 s& H! U ((CUser*)this)->AddHonorListAck();' M) d5 ?0 r, |$ D1 E# F( m; Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 X/ B, W) C0 i5 s/ O8 q
#endif // __HONORABLE_TITLE // ′Tà?9 n) k( q( I( Y; }3 i( y
} l4 J1 G" G3 B# Q2 F
#endif // __WORLDSERVER( z! [# h; _" ^+ \8 i, n5 L. H; ~
} 6 T; H. X1 u8 c2 L6 ?5 i
% e |% Z: K8 J1 v5 Y/ `然后你进入functextcmd.cpp并添加以下
$ \, a2 p# `& K5 \: Y( n" t! k6 c0 ^+ _0 [) X: g
代码:
3 \0 r7 `2 [$ h/ |5 L5 i/ I- TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). E- b% Y2 N; u2 x2 P) a0 A, q' V
下面插入
$ w2 X2 b; s" `( j" u8 n/ PON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + h( j# E# Z( u$ |! |2 ?
9 P7 q$ n0 c' ]4 w) x然后你去
) @& q- E' ~7 ^, T' S& V- ?: \8 _& N/ A* J" ]1 M9 K" J
代码:1 T1 J( h' m" I
代码
8 C% c& w4 p- S# E/ E8 GBOOL TextCmd_ClearPropose( CScanner & s )/ k0 V- S# M# j% N" T, y! V
{
4 O0 C! e$ W2 v0 p) p6 C#ifdef __WORLDSERVER1 r M- m: u/ |3 X, r, a S
CUser* pUser = (CUser*)s.dwValue;
. j t5 z' B5 }$ A8 }0 w3 b g_dpDBClient.SendClearPropose();
) A& M' Q9 z6 z" C! u8 w. F& y, K( j#endif // __WORLDSERVER* X1 O. h- D6 U+ F
return TRUE;1 P: A, _0 E- a8 Z4 S
}2 }; g9 t0 E0 |5 ~
下面插入$ c7 B7 |$ {$ [. O: R
BOOL TextCmd_rebirth( CScanner& scanner )
& q( g8 a/ [* z% p% w S9 n0 L( m/ K{, b5 ^- l) Y o/ q7 G+ O' z7 h+ K
#ifdef __WORLDSERVER
% R u; b3 r1 C7 F k1 s4 ]0 lCUser *pUser;' @! ?4 V" Y6 J- z( j
pUser = (CUser*)scanner.dwValue;
8 j( t+ p, f3 y: n. [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! u' J* }" ~, U4 }- j: c7 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" R0 \0 L- u, V1 j" |else
6 D( B3 m. |! z7 U5 UpUser->AddText("你还未达到重生条件!");& y# _0 z* W0 D' W7 _
#endif
6 y1 q0 g+ V1 I8 o7 X) `+ }5 yreturn TRUE;
# h" F, {5 \2 Z: [ e* k7 K}
& o! k2 H ^. P" x' `6 M) ~
/ }; t# } I3 y2 ?7 L+ a2 y6 c3 q# S% l9 I: I6 `3 s. k
" D2 x/ d$ j. j8 a4 x2 \; Q
; j8 T8 M% t2 ]2 A7 x8 m$ U
|
|