|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 ?- a( T& i& {: C" c3 @
" F1 `6 F2 J$ K( C8 AMover.h; I# M+ f+ h! y0 ^1 H% \
代码:
l- n0 D3 ?. t/ F4 P# _6 v* X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! b. P) B" p3 `# C/ ? g' p) [" U' y8 i( C4 {6 Z; a ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & _" w, V- z& a& ]# g
4 n4 Y0 L( {; a/ O: l* @& ? t* r
然后你去mover.cpp添加$ D0 ]1 O6 P. O, ]
8 Q/ P5 B3 h; t1 E& J1 U8 }
代码:
/ n) E L" o. d) `2 L/ ?! Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& j4 J' i" f( u, \ X9 c/ m{2 e1 C Z/ E" M7 B
#ifdef __WORLDSERVER
. |3 F; c# B7 x, c) w1 d$ [' M5 G // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; ^% a+ q9 J' J9 Z+ v [# S
MoverProp* pProp = GetProp();+ ~% `$ y' G) h; [$ Z# c" u7 K
if( pProp )1 d( @/ H* w( |2 K9 ~+ J
{9 Z& ^- K+ E3 Z6 P$ Q; V' {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ k+ P' {. M6 d3 Z9 l. ]
{ h" p; a* O ^8 r+ w( X: X8 B
AddChangeJob( nJob );
- ~% @4 s' _6 M }else{4 u# G T! ]7 t
return;# a" Q1 {/ H; U4 N& e P
}
( U0 t* |; s7 ^5 g. } int nPoint = 0;
) C+ N/ F p4 w if( m_nJob == JOB_MERCENARY )* y( k: E- G2 Y
nPoint += 40;
/ e7 I4 d7 h) S; E; {7 M) O else if( m_nJob == JOB_ACROBAT )
: Z7 m& U/ q+ ~: v nPoint += 50;$ N* O# o2 f6 N" x
else if( m_nJob == JOB_ASSIST )& E5 I. o' b# x) e4 B# ^% v8 J
nPoint += 60;7 w8 N9 U1 U$ C! Y! Y5 l) E* u) r
else if( m_nJob == JOB_MAGICIAN )
, u! Y0 f& m! f( l; C nPoint += 90;( P" L8 t7 J5 s8 z% u# G: {
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- U+ d: [- x$ Q) g0 }( j$ X nPoint += 120;$ a. B) n5 `* |' ?; R% t4 n8 j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 n0 X" ^" P+ L! i) Q p" w
nPoint += 150;/ I" ~) K& R f
else if( m_nJob == JOB_RINGMASTER )
f8 ^- D; d) P, H# r nPoint += 160;
# J( T6 K- x( n9 [; X, ? else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' r1 |! z* K1 r, G" i* l7 T F4 z
nPoint += 180;6 c1 \( Y9 y- s, P, q2 c: [
else if( m_nJob == JOB_ELEMENTOR ). b0 D" N! M+ j& Z; z7 c- I
nPoint += 390;% B3 c9 |; v3 F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' u; V+ Z$ m8 `) z% _1 S3 ^ nPoint += 120;
* g$ e0 C. Q0 o7 Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 t# M4 ?, E5 d+ ^2 K+ K nPoint += 150;
) Z1 W7 T8 w. D else if( nJob == JOB_FLORIST_HERO )
% L+ V( J" i( K- {: A; L) e9 O nPoint += 160;
" t: P" \% S& p$ h# z. [2 d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& o' Q5 _; x8 J' r: R( I8 \
nPoint += 180;
! F. {4 i" E0 L% C$ l; K/ G else if( nJob == JOB_ELEMENTORLORD_HERO )
" l- ~7 s7 O) o' [) W- ~5 Z0 v, g nPoint += 390;" q6 g2 `5 f$ \- ?; F, @
8 |% s0 l- V9 H
AddSkillPoint( nPoint );
0 s; Z0 v) w I8 }% ? m_nLevel = nLevel;; m/ o3 W N- g- T' k: f
! l' B! O( T1 ~) o' k+ U/ {1 S: u
SetJobLevel( nLevel, nJob );2 K/ ?, L6 N% c/ @% O6 v$ e
m_nDeathLevel = nLevel;. ?0 I# l: w5 q3 c2 z0 S6 L; J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 d: z, T/ q$ a; g) P+ _% A
if(IsMaster())# k U" \- c0 r6 B2 M
{5 M6 `9 v5 Q' _. J( D4 F1 E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- ~ j+ x$ u3 z6 q, c if( nLevel > 59 && nLevel < 72 )
/ R! f/ p' C# D* k1 O dwTmpSkLevel = 1;
+ I5 O; X/ I! S. k: J2 P. I1 D else if( nLevel > 71 && nLevel < 84 )
6 {) ^. q, Z, k4 Y dwTmpSkLevel = 2;
0 x9 M$ P9 y% a; l2 _$ b2 D else if( nLevel > 83 && nLevel < 96 )9 ^# T. n% h% T4 B
dwTmpSkLevel = 3;$ J! |6 c: T) Y7 b2 H( t2 z" J
else if( nLevel > 95 && nLevel < 108 )
' i, c* } z; q( ]$ w$ B0 Y' P dwTmpSkLevel = 4; Z0 {- Q" J( o& n: ]5 l
else if( nLevel > 107 && nLevel < 120 )
' U% t4 {9 ~: K. { Z8 c dwTmpSkLevel = 5;
. a$ A- G& Y3 d! m, O+ y for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 v7 P4 B) x/ U( l2 \) `$ t( p {
# N* I: J7 L+ z0 G' e+ W8 p LPSKILL lpSkill = &(m_aJobSkill);' ~6 t: J' L; D" _2 x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ S+ ]$ v- F4 n& b R. i$ N! W" @' h: m {
$ k8 b6 R& O6 b& E1 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / a# ~. p( J1 T! T, \; R
if( pSkillProp == NULL )) Y" R7 _4 C5 N/ c+ f
continue;1 v1 i0 }) H) I6 v9 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% @2 g. M+ @+ n+ D* [# {( q continue;
/ \1 X( L( I& G9 F ?( Z* X lpSkill->dwLevel = dwTmpSkLevel;- G6 r% H7 ?9 k+ X; H6 k7 a+ X' t
}6 q0 \3 H: K- s, v" C& e
}
1 C4 V- ~4 ^. S* Q }
+ T( k1 j- ]& w7 B7 Z7 f9 ]; k& Z else if(IsHero())$ e$ e$ _& ~' n
{
/ L4 l0 e7 O6 M R3 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 x! A& @) `0 y) e
{
# {8 D' w+ `/ V5 R" F, F& [ LPSKILL lpSkill = &(m_aJobSkill);) x* l( N6 D: U& U
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 a% [" _; c& v1 o
{ b# `5 J# N; M" ?9 e8 t- B! W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / v1 y ~6 z0 F) {* {, a
if( pSkillProp == NULL )1 D% Y3 B* o* b. b
continue;
, N+ X2 G% z$ N$ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" a4 W3 @) b+ t7 H+ @
continue;! y4 i( o/ e3 ]( C7 \" ?
lpSkill->dwLevel = 5;
7 f2 z% Z j/ d, s0 v' Q }/ d3 I6 J( l- y# u& m7 ?4 f
}3 D2 W5 S E% o E1 E, [- D( k
}
( z6 m$ _, X% i1 K- D else if(IsLegendHero())% i- P- ~+ [ u9 d8 }9 J( p
{; _+ d% w: V0 h; p3 f4 s9 k5 |. W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( ~) z# i) _' ?
{
; f7 F# C. G$ |: T4 ?+ q LPSKILL lpSkill = &(m_aJobSkill);: H: i. X# E/ z: q& G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ K8 D8 K9 d: G9 V. V! G {
0 k1 D/ p/ b8 [5 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' R* }! w4 A" ?. l; F if( pSkillProp == NULL )( `- B# U# M0 |* e v- s5 H
continue;
2 ^7 K. W7 h" s& r- N: F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 u3 J1 \$ N b7 U continue;6 ~& Z4 e2 I4 F
lpSkill->dwLevel = 5; `0 A7 a: A( M8 c
}9 i1 N$ Z. M& x
}
0 O( p5 N" L/ T8 \' _ }
2 J6 b& u$ z3 `! b" ?) R* v k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ q( o- @. `+ B0 ?; g+ \
if( bGamma )) B. f: B4 {8 E3 k
{3 J0 x8 x- G& {; p# l2 `& {
m_nExp1 = 0;" c+ T* c: Z, D& c$ [& M; h* b9 E/ d
}
7 ]6 | Y; @' q( E! t. N9 c' O) Z
" `1 G& I: m1 z6 H$ a# {& Z4 a) P8 Y ( (CUser*)this )->AddSetChangeJob( nJob );. Z" ~+ L1 l5 g/ X5 Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 D+ g2 I( ?1 |$ S+ D% J, p
5 m- W4 q! `+ f3 a" I/ S
! Q- Z* o6 b+ J7 {0 r% G#if __VER >= 11 // __SYS_PLAYER_DATA
" O' d/ [9 j7 {1 L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ J) H/ z# x: x# Z6 H- ?+ @- l9 O6 Z#else // __SYS_PLAYER_DATA
! t L. E' U9 |* h g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; y7 i# z' U; }" F( \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 Z8 ^2 b% W; j1 @% _ if( m_idGuild != 0 )0 H- D9 b) @0 R2 P) E9 p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 r2 j' a* p$ U5 l$ |5 m#endif // __SYS_PLAYER_DATA
& ~0 j7 [8 }1 b SetHitPoint( GetMaxHitPoint() );3 b; \/ U& l, i
SetManaPoint( GetMaxManaPoint() );( O, A; d" v- o4 {+ P/ t) q
SetFatiguePoint( GetMaxFatiguePoint() );
+ _, D6 v: b' R/ z v% \ if( nJob >= 1 && nJob <= 4 ), Y- i" i$ T# g# D7 n( m' Q" F) H, w
{
1 H9 {0 q* |$ i( o7 ?2 f8 h2 G m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 g8 ?) @' v- J& }- D0 i) ~% L m_nRemainGP = 28;0 m; I7 B8 w- ]% O# N0 L
}
B- K5 x- ]& {# H" U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 V# b8 b2 k- B
{! `+ f# r4 |% Y1 ~7 \: Z6 L, ?
m_nRemainGP = 118;: |( T# m7 R+ g& D" a( ~ k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 c* f$ D: \ I& w! U* h9 a) h
m_nStr = m_nSta = m_nDex = m_nInt = 15;; K4 K. h; f5 t @. T6 \" F+ c7 N
}+ g" L. y5 s' L a4 p+ y% F
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ y* e, T( H" ]* s
{
U2 }/ D2 g' Q) a" X L9 I" o CItemElem itemelem;
! `5 x5 T( F( y- v2 b% u5 m' t itemelem.m_nItemNum = 1;. ~) |& }; \" f/ N2 V$ @; `
itemelem.m_bCharged = TRUE;; F+ @; d0 e$ X5 T
BYTE nID;9 e- y. @6 [# P8 l4 K
5 L- K: q: F& }4 t1 A& y1 a4 ]
if( nJob == JOB_MENTALIST_HERO )
# Y8 g& W2 `) a* C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* N1 k. `- a/ F1 a, Z
if( nJob == JOB_FORCEMASTER_HERO )' h7 t" G8 Q' _$ d" a; O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" @2 d3 p/ G# I! _ o( l$ c, x7 y% P/ ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* E& i9 M% {7 I7 N/ _ }" T/ I: {5 J" Y0 e: t% _+ @9 Z5 Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ _( k2 I" V6 {" x1 @! |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! A2 t# l" R4 ~$ W/ y* i ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 T( i* ^* H& ~, w: n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 r; c( ^9 D# J0 S% Q8 z ( (CUser*)this )->AddTaskBar();*/2 y: A" f" o* O; s6 a: H+ J, M+ B& |; q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' E2 j, d1 Z2 H$ j
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: e* o+ r3 ?1 v* A3 d9 a8 e, T ((CUser*)this)->CheckHonorStat();* @: `4 u! q$ i4 S# |
((CUser*)this)->AddHonorListAck();4 u$ f; X/ W9 \6 t$ V% B/ S- J
g_UserMng.AddHonorTitleChange( this, m_nHonor); W( k) ?5 u) G8 B# x2 _( ^) `) ^
#endif // __HONORABLE_TITLE // ′Tà?9 q" q) d- [: A" j
} m9 m% _* }- x, n0 @% D0 l5 k2 a
#endif // __WORLDSERVER
# K5 [0 N A1 k} ) Q) X8 }5 O. b" U7 {
8 Q2 d! ?1 i, R
然后你进入functextcmd.cpp并添加以下9 ~* ]1 p9 u: \; p. J. R: ] Q
# E: D9 t D2 C. o
代码:! o: P8 Z2 G, P0 R/ @0 `
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* E( y; W8 V1 k" p6 m. C. ?下面插入
t: l% W: k: i+ nON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - d1 A& Q, r$ d5 w. g& }3 _
_2 v! Q. P% v# h4 M7 c9 Y9 o然后你去! f" s1 {& m. U
) ]9 w$ @* G3 V# `+ W; m5 [) k代码:
' f) g' Q* \ A* J6 r代码
! B+ H8 g" R" F3 L' Z# lBOOL TextCmd_ClearPropose( CScanner & s )( k4 Q' z* _3 e% `3 h
{
& `3 i5 h+ u: r0 n) X0 V8 `#ifdef __WORLDSERVER6 K. O0 Q0 b5 N+ S8 Q. c! S. ]
CUser* pUser = (CUser*)s.dwValue;
+ Y; v5 F' w3 Y g_dpDBClient.SendClearPropose();. a6 a- `0 D+ Y4 Y) J* Z
#endif // __WORLDSERVER+ n7 A' `+ D6 e
return TRUE;
0 _$ M$ ^3 {$ T2 D' Q+ u* B: X}
/ _. C" Y/ H& a% T, B下面插入
& E' }" N0 F* m* z1 LBOOL TextCmd_rebirth( CScanner& scanner )) f9 A, D- a6 t% A' _
{! \% N/ L8 S( C! s. ]
#ifdef __WORLDSERVER
) m1 O5 ^( ~- n2 V! ]4 T* d+ uCUser *pUser;- ~6 q* o5 o& \% ~
pUser = (CUser*)scanner.dwValue;5 s4 u+ h3 E- J9 I9 m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# ]7 i1 w$ p( K$ v- g! e! SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 A3 E& g' D# _% T" q4 delse
$ [( y( h3 I2 S4 OpUser->AddText("你还未达到重生条件!");
! h: j5 ~6 `) R& y; C#endif
3 _6 F2 r# E' Treturn TRUE;, m( @! e: L6 O' d
} ) x! \! [' j0 _6 y, ?: `
. J5 ^+ k7 [! d5 Z; y
* Z3 l" \7 f& |+ V& g! s5 g+ U9 }9 R
' W9 s) X& B( X9 I% R; h7 I R
& T5 N8 a" r" \( C/ \& o1 h |
|