|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. K8 a6 V. k: L# w1 Z3 Q6 o# `2 Z
1 a0 C) U( t/ t, a+ @
Mover.h
# u9 {' C* z4 H# O代码:
2 t. u k/ }! c5 P! P9 `. _9 I6 m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ R. g, Z2 r. q: e. }
8 U9 y9 G* d! K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) s2 Y0 i @; R+ v1 e5 m9 N4 M5 R7 h
) I( `6 g. K, F% u" {$ N$ X
然后你去mover.cpp添加/ ]3 ~+ Y9 l& ?% e8 L6 O
/ F Y9 {/ p' m' ?+ c2 f8 k代码:
; u; G: Q% ?( e5 Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 m2 S9 {3 Z& p
{
3 t0 F3 g, Y5 \. B* P( h7 `% F#ifdef __WORLDSERVER
% K' o9 i& g a) b9 s4 G // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 V; o" S! Q& Y$ o
MoverProp* pProp = GetProp();# P5 p* Y9 ^& d# t& \
if( pProp )5 x+ b- g$ t. e- s" s( y+ {
{4 d* I6 ]$ Y. N. n# ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) X/ l% y( A; Q* z: ?, o
{
4 u1 t7 g) C, a, J AddChangeJob( nJob );9 g0 H) ^1 r# Y m w) }* B
}else{% R" T, u+ S+ v9 \* K+ w" R$ k& B
return;- n- P/ ?" N1 b
}
. l+ S0 H! [& N# q int nPoint = 0;
- i1 z g" w' P: B if( m_nJob == JOB_MERCENARY )
) Z1 i+ I7 B) K9 U8 f nPoint += 40;
- ?8 K7 s* Z3 n* r- k) N- j else if( m_nJob == JOB_ACROBAT )* [& q2 B, P3 v
nPoint += 50;- F6 |1 p) W7 c/ T) i7 G8 g
else if( m_nJob == JOB_ASSIST )* f- K& [ ~. H
nPoint += 60;
4 d) h2 ~3 R: L4 {7 b else if( m_nJob == JOB_MAGICIAN )
8 p! h5 B: B, e4 d/ i4 E( \7 [ nPoint += 90;3 B6 [# f2 R% Z$ D0 F- }, k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' G s% J/ z1 f+ x. |2 ` nPoint += 120;
' g3 _5 f6 f! b9 { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 h" _/ F' X8 T0 E7 A3 C$ u3 M8 H* e* n
nPoint += 150;
- J5 L7 j% k' S else if( m_nJob == JOB_RINGMASTER )
1 A! M$ U, G( P, S9 D5 a2 z$ r nPoint += 160; r1 `8 L0 ~& @2 _% B' u3 q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 p' h4 y( a1 g& G& |
nPoint += 180;
% P# ]2 [0 W2 _- w# Y else if( m_nJob == JOB_ELEMENTOR )
# Q. z9 p- Z6 h$ `( g6 g! f nPoint += 390;
+ M5 E( n' M3 w! O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' c: n3 t5 K$ N" o4 t
nPoint += 120;
9 H) `- h8 ` i9 Q1 d) E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 u1 R. ~1 D$ ^; K: g
nPoint += 150;
J4 H7 U& V, w4 L1 e: R; Q# F else if( nJob == JOB_FLORIST_HERO )
- w/ P' L* |( a- j* L nPoint += 160;
$ ^) G. i" m% [1 @ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); h9 |9 S8 i0 o: w0 Q; @7 e! ^/ E. c
nPoint += 180;6 q1 ?. |% s( O' W' g
else if( nJob == JOB_ELEMENTORLORD_HERO )
! [1 |/ t1 T! M9 ?- {* Y4 I nPoint += 390;2 w* n, C( `, `8 f
0 Y5 s4 c: a$ c) S( T
AddSkillPoint( nPoint );
2 k/ o! R# Y, ?8 E# G# V m_nLevel = nLevel;
' c$ E. T% c2 k1 s9 S
7 T" P k6 P1 {: D6 o SetJobLevel( nLevel, nJob );
% i! T/ Z% Q9 ~; F: N m_nDeathLevel = nLevel;
w! w& O5 q6 h+ Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 B$ T! ]) g( ^) }2 o3 u3 b if(IsMaster()): C* ~2 N+ h! e& k* S
{5 e1 n$ R1 Y6 ^6 [4 d8 k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; A' L; r) V9 Q, S
if( nLevel > 59 && nLevel < 72 )
* Y; W, V4 G" \ j dwTmpSkLevel = 1;
- E3 \7 Q, e3 \% E$ J else if( nLevel > 71 && nLevel < 84 )" [% f9 h# b+ w) Y# W5 ^' O
dwTmpSkLevel = 2;0 d. \) O1 |5 ]9 b0 G
else if( nLevel > 83 && nLevel < 96 )
" \3 W) H' ]. Z( W dwTmpSkLevel = 3;
3 v7 N3 {+ P% R+ X. q+ G- ] else if( nLevel > 95 && nLevel < 108 )
$ v. i! {/ x+ |, L5 B; P$ z dwTmpSkLevel = 4;( p4 \% q6 J* H+ ^
else if( nLevel > 107 && nLevel < 120 )
1 I3 T1 I; f, o3 v0 r dwTmpSkLevel = 5;
0 \: M, a1 X2 p. H4 D" C3 f for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 w+ R5 m0 ?! e- W2 U8 q
{
# i; _! i# @) N. _ W7 | LPSKILL lpSkill = &(m_aJobSkill);
, z& ?2 `5 V( J/ [4 S if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 M7 j$ \. ` f+ d {1 l- r: s h* O) r, w5 P3 L$ \8 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 n$ a- ], I3 W* W
if( pSkillProp == NULL )! u0 V+ M8 H2 c4 w
continue;
$ U: |7 q: ]$ ^4 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 I5 n- u3 Y5 V) [2 K+ U2 b2 I
continue;7 e8 G) x9 \ e. _
lpSkill->dwLevel = dwTmpSkLevel;+ `! ~! P- O$ @" m. k
}
2 L9 F' o6 u- @* p& y" r) Q: H" M }
$ q3 L: ^8 f8 l. f, U# E }2 b3 i- A7 t# O, k1 T+ q9 Y* K
else if(IsHero())
^+ W0 }9 V! d) o {8 ?; {: B; f& |; V5 r. h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . O3 S8 d9 M5 `$ a
{
9 r# t. y) ^* t) Y* \# T) { LPSKILL lpSkill = &(m_aJobSkill);. s) D/ a5 o& o# o g, G
if( lpSkill && lpSkill->dwSkill != NULL_ID ), \, m. J! F. [
{& z5 ]6 R. a- Y5 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ ^1 @" V/ u5 m. \% | if( pSkillProp == NULL )
" Q+ d7 L" U; Q: Y# ?7 n/ P1 H continue;/ f0 {* M' E, k7 X' p0 n* n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 e ^5 i3 C b2 o o& ~# ?" _ continue;+ [* J6 H, L1 K& o0 j& Z# ~
lpSkill->dwLevel = 5;
V- ]& s0 ^% H; @0 \' I5 J( F }
4 v. @5 \# M9 t+ k- @ }7 D$ C1 K& M) \' v/ l
}) J: |, x8 x5 I
else if(IsLegendHero())+ d! _: u0 C3 q% T9 c1 f+ S
{6 y2 E: X7 H) D1 ?5 _) Y& I3 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 d F n# \6 R$ g- I
{
: q( Z( Y7 D. W. l: Z' S6 w LPSKILL lpSkill = &(m_aJobSkill);- W% M2 H8 C& G- z
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 C# K% c7 M: r0 b1 \
{9 M2 ~9 N% X; Z. X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% x# s, j1 E, ?8 o' F X% U if( pSkillProp == NULL )7 `1 |# {0 l& y
continue;1 E4 U* a9 U$ S* r* [9 G& @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 ~+ u* @5 n: G5 a& N8 k
continue;
$ t! [& a. p& E0 W* q7 w' { f, [6 G lpSkill->dwLevel = 5;; {) D t: c: e8 h% h! V% U
}7 X; W/ _( D; c/ [: R7 h
}
6 `. y1 x' t$ ^; x }
+ L' f4 T6 b, [& \- o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& P0 _" f" I1 o5 ~5 M1 |/ B if( bGamma )
! e' e: C( |. j, Y: t {
0 c O9 j/ q) S8 N+ o m_nExp1 = 0;
* u. U7 ^+ }- n9 U( D/ n( B: m }
( |1 G+ ~$ W! I/ m( D- U
% ?5 ]& T, @0 k8 B+ W ( (CUser*)this )->AddSetChangeJob( nJob );3 [6 X7 S4 M5 @5 V. m' z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 k% u0 S* }* q2 c* c% G( q! ^, F( ` w$ g/ E$ y: G
" w# F! B. t& g* F#if __VER >= 11 // __SYS_PLAYER_DATA
0 T4 O3 n) h% [. F# x) \. g g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ K8 t9 }8 J; R( k#else // __SYS_PLAYER_DATA6 s; t6 v6 F! p6 \' Q1 |/ F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" I) y3 J1 i) q9 q9 V g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 q* j% e/ Y7 R! S if( m_idGuild != 0 )( s! O" Z$ { {. S4 I4 {6 Z: Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 F# G% u+ d1 X
#endif // __SYS_PLAYER_DATA
8 p6 W0 N. w- k$ x3 r# F SetHitPoint( GetMaxHitPoint() );9 `' Z& `' n' ]) O4 a7 V
SetManaPoint( GetMaxManaPoint() );
% G/ @+ ~# i- S6 C" B- ^% b# k SetFatiguePoint( GetMaxFatiguePoint() );, L1 N7 H* V, P) b$ M5 x$ U4 }) K
if( nJob >= 1 && nJob <= 4 )/ F% e) H( s3 g7 o `3 p
{
% M5 }6 ^0 B s# v m_nStr = m_nSta = m_nDex = m_nInt = 15;6 H. o# T( V2 m/ N+ a4 Y
m_nRemainGP = 28;0 o! C. T5 e0 _. ^$ G: \6 a/ E
}
% F3 _* X( S U6 ^# B/ c6 g7 r! e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ b3 ?# T9 F2 i, s/ M! X, U! Y4 p {
/ q# m- k' S# P& Y s9 y m_nRemainGP = 118;: ~# k6 R: D' A( p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 U9 i! L/ u$ W& b* z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' I$ Z) M5 K; B( n8 J5 L! w }
0 L A( d; f" l7 H+ n1 l; ~. ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( F2 P8 g0 q8 C$ z* G {
' y: p1 }: F' }# Q& m d CItemElem itemelem;
2 G# v9 |9 O, [/ d d' J itemelem.m_nItemNum = 1;( ~ X6 @- m# D7 a7 G" d' m8 c
itemelem.m_bCharged = TRUE;
: m! S e) _ b/ u ]- ^) R, f7 \$ _ BYTE nID;
2 u- c6 \! K, R! O4 ^" u" E% R) S8 b1 p* h% J) @9 f) }$ I
if( nJob == JOB_MENTALIST_HERO )
6 C& N) e% R0 H- F, f: o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: {& h0 Y5 \% p! [2 ? if( nJob == JOB_FORCEMASTER_HERO )
( K- @$ p% K/ L3 A$ w! t) a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 m* Y! y) |, s
1 g; C) z, Y$ b5 q% c
( ( CUser*)this)->CreateItem( &itemelem, &nID );) q; P+ k8 N V2 R
}
; J+ K, m6 z+ D! u% | g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& T7 }3 V8 H! U; {* d) p$ W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# G, L) U9 Q1 Q6 ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- K4 i, r7 r% z* @7 v- ?; z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: q9 _' Z5 ~6 L: a2 z' f# R- A ( (CUser*)this )->AddTaskBar();*/6 Q( c- u" c$ G! E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 A+ j* c, R5 Z1 d+ s1 C2 x
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 Y @' j% D! h+ Y# o ((CUser*)this)->CheckHonorStat();- Z( I! p* Z5 t3 v% p! L: I8 C8 [$ ~
((CUser*)this)->AddHonorListAck();
8 i! X) W0 f) p% j" h6 j g_UserMng.AddHonorTitleChange( this, m_nHonor);% z& y; f6 ~. q |
#endif // __HONORABLE_TITLE // ′Tà?
+ _& e/ l* {8 S( d# h }6 _8 {% z0 n, B) f k: G. H0 ~8 L
#endif // __WORLDSERVER
. K' C6 i$ m, `( Z$ p+ V) g; A}
& z; c* R" m' c+ l: ]* E1 Q# `) j" A+ k/ R* W7 E) j R7 K0 K
然后你进入functextcmd.cpp并添加以下! D0 e! k; x9 \( F* g( D5 p; q1 D
" \, @& P/ x1 M. H0 I6 z代码:
1 o( q( z3 H% z1 Z& MON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): E+ t. ?3 E( F( Z
下面插入
8 h. E/ w( s! b- fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ |2 ?4 s8 b6 y' `
( g. @# O% h3 B然后你去
4 z% }. _3 V3 x" R7 F1 D# ~. |& q2 R5 p- ~. A! E
代码:) o- R' d# b% F- Z" G
代码
/ [8 B8 o( p6 B0 _" \; T oBOOL TextCmd_ClearPropose( CScanner & s )
" S+ M- ? u" d+ |{/ ?' g9 Y r/ \2 W: p
#ifdef __WORLDSERVER
$ l) F/ |% [4 }. w+ M. t% r" a CUser* pUser = (CUser*)s.dwValue;; B7 w3 d" g1 t* J" A- G
g_dpDBClient.SendClearPropose();. a4 c' n* g( |
#endif // __WORLDSERVER
) E/ [$ l7 M8 S H return TRUE;. L1 L% x2 m3 V2 m7 y
}
( c# H- m8 ~/ m# R' R下面插入
& n$ u0 e. G# _6 W2 z9 l7 SBOOL TextCmd_rebirth( CScanner& scanner ); b6 T/ T& ]2 i/ c- O; {" r
{' i$ X0 P* \" c7 i6 e) Y, x
#ifdef __WORLDSERVER d1 E* O8 N+ u7 v; J+ t
CUser *pUser;. k: b. H$ C5 ]9 l/ C
pUser = (CUser*)scanner.dwValue;+ e1 `# f$ S9 q K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# U+ V$ h- x+ c9 d9 i9 L& L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ D: j: Y4 p+ h4 `$ j. C, celse
0 k* D( `6 B0 Z. I6 fpUser->AddText("你还未达到重生条件!");
! W" b/ n: K8 @6 S! g3 g#endif
; A3 m$ b6 @8 u* k; Wreturn TRUE;
, x5 j. |% m6 \} 8 ?( O* `* c- W0 C
; m/ M" e( |+ B
* n) i p+ T/ a a0 w
: K j) A& O4 x, e* Z. k7 C# i
0 @" S1 A* ^5 I1 k |
|