|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( P7 @/ o4 l2 F
& @) E `! x& Y% x+ j1 h* g
Mover.h0 H6 B2 J' K" s
代码:' f4 G- \2 o7 ], F8 w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% e- \' g0 @9 A, l' r! l
' C8 I! Q* j6 ^1 i6 n; N( \7 N) M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . Z/ ? G, Q' G9 Y# ^1 M
; d( Q. q" w- D! i! A- g
然后你去mover.cpp添加" A) b' U# F& q; V+ F
* o6 |% U! D& e7 o' N代码:
4 X' [) `$ ^1 s! Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
L$ v+ R4 l( T{
1 Z! l y' K/ v7 I! y8 d#ifdef __WORLDSERVER2 r9 \3 G; Y2 d/ v5 i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! \- q( q& T7 ?( Q2 z4 C! j6 I
MoverProp* pProp = GetProp();
7 R9 j3 c' L+ \+ }, Q6 p5 c2 g if( pProp )! [3 j5 u, p+ p) P+ o3 \9 V/ ?
{' v) Z# X8 ]1 f' e2 m6 Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' e% _+ ?& Z4 R
{
9 k2 {3 R% { t F) P AddChangeJob( nJob );
9 g: a+ E$ [3 Q' w) Y }else{- p& T. c( \( J. I( T' Q$ ^( ?
return;- g. z- c, j- S. W# P" x' W
}: W8 z$ E4 z! }. v% x, z
int nPoint = 0;( m6 V+ e' p6 J. k4 m
if( m_nJob == JOB_MERCENARY )4 ?8 v7 J7 D! E3 X8 K6 e- ]0 j
nPoint += 40;, o0 `- j. C+ ^( e f. _
else if( m_nJob == JOB_ACROBAT )
* ~! T k. N6 m4 C nPoint += 50;
- j2 E* P3 o: h+ F( m4 f& l5 j else if( m_nJob == JOB_ASSIST )
3 |! @/ ] m8 R; [ nPoint += 60;, O" H. z i7 \) Y! Y8 @# r
else if( m_nJob == JOB_MAGICIAN )
8 s: x' s& U3 G nPoint += 90;' {1 k9 _) V9 q9 U( j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: q$ r2 x$ L; q nPoint += 120;
@/ R' N) {, _" ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 @; y5 }7 F+ _6 v nPoint += 150;4 P0 M) A& l8 q* z% V4 [9 R+ R
else if( m_nJob == JOB_RINGMASTER ) v/ w$ L) o+ B5 I
nPoint += 160;9 U! R; f( d1 k7 h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# s/ a, I$ d' |
nPoint += 180;; s& c7 Y3 j" g6 S! E( E
else if( m_nJob == JOB_ELEMENTOR )
0 Q2 O3 F+ Z" w8 \. a; ^, `6 {& E nPoint += 390;
+ U! G) f3 c* Q) u- Z: T4 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); o0 Q& n1 g# e4 _& x! N
nPoint += 120;
6 C& F2 |# y/ Z7 s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) F% o; _( C1 H3 }
nPoint += 150;
1 ]4 }3 \, R$ Q1 X else if( nJob == JOB_FLORIST_HERO )
7 _" r) J5 O2 a3 e! i nPoint += 160;
9 q( V1 `/ H8 u2 g2 A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) b0 Y! k1 x5 M
nPoint += 180;
) \4 E# C0 s% i4 \0 [ else if( nJob == JOB_ELEMENTORLORD_HERO )
1 P% C+ t T N5 M# p nPoint += 390;
) D. b4 Q. h7 b
) _( x6 D! o$ q1 I% v% B1 B AddSkillPoint( nPoint );
4 n" I* I6 I: p: G1 s% F0 e! C m_nLevel = nLevel;) k' d, R' e$ T- Q" l( f
' \3 I* f4 a Z) C2 S7 u SetJobLevel( nLevel, nJob );
$ q, R& h. s/ a4 z' K1 Y& e m_nDeathLevel = nLevel;9 s# B+ v2 p* X
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 l! n. t) @! S( w" S- g- x4 j
if(IsMaster())
, [) R2 A! f3 s: r {+ x+ u7 c7 q, D( z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# s5 ~9 z; Y$ u% _( }4 d# B4 Y if( nLevel > 59 && nLevel < 72 )
; N+ Z1 {( ^$ r2 N3 V dwTmpSkLevel = 1;/ D$ s% c* ?* S' i
else if( nLevel > 71 && nLevel < 84 )
7 G* c! c5 @4 d9 g1 U* A dwTmpSkLevel = 2;- D6 K; f$ a4 {" r2 i: K G# l: u
else if( nLevel > 83 && nLevel < 96 )
# O7 d8 \+ l; K- T* i/ z& ?8 n# K dwTmpSkLevel = 3;
/ Y6 o# P5 Z( ` else if( nLevel > 95 && nLevel < 108 )3 g0 o' _7 w* Z, Z$ E" G
dwTmpSkLevel = 4;3 _! a6 ?8 S: ?$ h8 z9 W
else if( nLevel > 107 && nLevel < 120 )
- Q/ e; l8 j1 V3 j dwTmpSkLevel = 5;
; Y1 L1 u# [1 s8 ]& L: n4 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) & C2 Y; {* M; V7 U% J
{
& k, Q4 {% [% |: y LPSKILL lpSkill = &(m_aJobSkill);5 g' }* A9 F+ R, _+ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ y/ L( Y8 M K {
" ^) R, C d- T1 n- T$ Q/ \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) q, f1 V2 _1 X! K* m* v; Q3 G
if( pSkillProp == NULL )
5 F; o. w3 s1 i- I% | continue;, u7 i# v1 p& j. I; \# ?: Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! C Y$ q" p) r, F, Z6 _! N
continue;5 M0 A) h5 w( T
lpSkill->dwLevel = dwTmpSkLevel;
9 n* ~1 n$ f" P( D% B, _ }5 J, w! T' a; @8 I. D* r1 ]7 ^
}; j' x9 F4 a: e6 H( A5 }
}
7 f. f) t% L( [$ s0 V$ T, c+ L( I k else if(IsHero())* z1 U: C6 w; o, V. B
{
- v8 d/ ]' s6 v. l" H- H' E for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; N" J4 j* W5 F( ~1 P, M
{ 7 K# a: O. \- {
LPSKILL lpSkill = &(m_aJobSkill);
. j# J) o7 W# b if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 P, m' {) T* y5 M) s. |8 n, V7 m {
' Z- Q [4 s6 z0 x# W9 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( I0 [5 l% F6 L; N( ?
if( pSkillProp == NULL )8 t' B) v( N. J
continue;; z5 ?! T7 g$ ] ?. d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- Z, @- \- e6 F. K) d3 x3 ?( c
continue;
! C% \9 C+ b3 z5 ` p lpSkill->dwLevel = 5;
. G; {1 k" }' z6 U }: h3 A3 j, R$ g N3 u* F% h9 x
}
* o/ W" T2 F) X' ^ }
" h- P* o8 p a0 K( y else if(IsLegendHero())
, y3 I1 q- U5 Q) }+ i9 L4 ^, A' G/ T {
8 n0 x4 i9 G; Q9 t7 e' I for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 t7 ?5 c z4 Y6 v( Z
{
- n2 i- ~" Y% Y0 B8 ]5 { LPSKILL lpSkill = &(m_aJobSkill);/ z9 N3 ~' r2 |/ v7 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' K3 p; a1 E6 q; p0 X% n1 s( u {
6 O/ n- ]0 Q9 c$ o" k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 Y {" \& [, r, _. _+ \
if( pSkillProp == NULL )# B3 m& u C, x& U6 }
continue;' t9 O6 ]6 ?/ H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
\, t( v b2 D continue;
. ^8 t% r3 m! c" w" d lpSkill->dwLevel = 5;
, \$ _0 _! T1 B. n. |, H1 c$ w4 ] }
2 [5 P$ l' N; ~+ A5 ^ }' \! z6 ?4 k6 B e
}
/ x, ^) ?" u0 b/ d. {$ r7 W+ L# h2 b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' O4 H" C5 f4 B0 i
if( bGamma )
8 [7 I2 l9 T! o9 `5 i; f {
, {) \6 ~; e& e m_nExp1 = 0;7 x0 t, b1 J# x2 s: O+ J; n6 ?
}
3 J- ^8 S( g' P2 W* K2 U x
# |- }7 r5 J( P* `: |9 ^! B ( (CUser*)this )->AddSetChangeJob( nJob );
5 e6 d* j/ d, W- _; w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- J& S9 D7 Y% c. {- m/ P4 T1 d: i, r5 w
3 I0 K& S/ d+ e( M* i0 D% \#if __VER >= 11 // __SYS_PLAYER_DATA- x4 I3 Y3 v. h+ Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
b. X, _6 ]7 ? q# j#else // __SYS_PLAYER_DATA( H' H" B# S) P8 m6 k
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 A7 V4 w( {8 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* v. @' q9 ]+ y4 K' g
if( m_idGuild != 0 )
$ w' m/ g+ \! C$ }) I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ ?/ {! ^, _8 T0 m" Z5 `9 M+ Y
#endif // __SYS_PLAYER_DATA( d, ]3 G' l( B$ h
SetHitPoint( GetMaxHitPoint() );' I3 e+ k3 f/ m) r* [) e7 m
SetManaPoint( GetMaxManaPoint() );4 G, M* a' F8 S, w* k( Y
SetFatiguePoint( GetMaxFatiguePoint() );
+ n/ ]5 N# @7 p* ^ if( nJob >= 1 && nJob <= 4 )4 ^: E- s! x4 Y% h' {: o6 N# L
{( L, _1 s5 J* y! M' R
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ C$ t/ J9 x$ d4 O9 B# J
m_nRemainGP = 28;- ?. j" J& }* V' b# q
}# {! i5 S1 O( b" x3 [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 K- n+ [3 c0 o$ H
{- x. X! |5 i7 b& t0 Q
m_nRemainGP = 118;$ v: E/ j0 P+ j. W' _
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 I& b1 q1 Q( X, Z2 M/ E
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 B4 k/ ?& l- a8 x# T' y% p( B
}+ s! p& P6 i* Y( [. b% K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 e W% o3 D) G+ S {
+ W7 L. [1 ?# @+ u2 ? CItemElem itemelem;8 z' W, a5 L2 o# y8 B- e
itemelem.m_nItemNum = 1;
- v8 d8 P5 }7 V( f% x. N itemelem.m_bCharged = TRUE;
7 T! |, h8 W! U& G BYTE nID;& Z; i$ ~) H7 I0 v" z2 r
c9 ]: c4 F, H* l- [: f. U
if( nJob == JOB_MENTALIST_HERO ) @' p, u) |: ` v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ z' n2 W4 p" _: |$ b0 { if( nJob == JOB_FORCEMASTER_HERO )
3 V0 t9 f3 s4 g5 ]/ D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ E& @% m) @4 v2 D1 |2 S
1 P; c3 H# p! Y E" ^% H! @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, f- W! c( h: ?. r2 D7 G }
5 p' Z! |; O0 q) A( V/ f' q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
H G- j: P! }/ Q- M ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% h6 b! B) a, G# i0 U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 u* X' d& S, h, Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" V8 X) C' k; q$ q# {8 b$ h+ [. p
( (CUser*)this )->AddTaskBar();*/
2 N4 m8 P+ d f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. ^: r; j% j7 G8 G6 k, v#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, x" s4 h7 Z& B ((CUser*)this)->CheckHonorStat();
9 v7 P" e* F/ s1 y5 A ((CUser*)this)->AddHonorListAck();
) H0 h& m7 s j& v6 ^+ \" r3 L( e g_UserMng.AddHonorTitleChange( this, m_nHonor);. O: Y7 x! p: k, ?
#endif // __HONORABLE_TITLE // ′Tà?
* d7 A* j- _* }# A. e2 A/ I: } }
( G/ n6 S1 Q$ D8 }#endif // __WORLDSERVER2 _$ y. |: c* _7 H
}
+ ^/ v( z2 h9 `2 q4 s' l. k7 C& }8 r' j, T
然后你进入functextcmd.cpp并添加以下" o3 Y4 ^4 n2 P- F% Z' [+ I
: f; S" G* |% e" E, {代码:
2 L' a: V, U* p {% x' LON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ S A( Y _# g下面插入( ?; ~2 }7 K2 l" _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 f h2 z8 M; J$ ?5 z, p
3 {' Y7 [' Z; X然后你去( x/ R9 \) |: ~1 b$ i e
" s! F. L' @+ \. m6 c代码:
1 n7 U( G: U: g5 ~4 ]* _0 `代码1 `( R, Q; f9 u3 F3 A( f c! z, {
BOOL TextCmd_ClearPropose( CScanner & s )
( X, {7 p( @' ?: m7 o* y{% v6 |+ ?. I8 ^( d
#ifdef __WORLDSERVER
* B+ c! J# B4 V) G/ z$ O CUser* pUser = (CUser*)s.dwValue;
1 j! H0 F+ `$ W h$ \) O g_dpDBClient.SendClearPropose();/ e$ i9 T6 x9 G9 n
#endif // __WORLDSERVER* ^9 l7 k% `6 C, y
return TRUE;
* s3 N& t1 B/ o) ]}
' w7 S4 A! Y' _) R, N# I下面插入; y3 O5 Y: K8 [1 U t
BOOL TextCmd_rebirth( CScanner& scanner )
0 R4 K( q. N$ A7 k0 c4 @{
; O4 p, k- m! E- k: v8 e#ifdef __WORLDSERVER/ c* g6 H: q- X [( k
CUser *pUser;4 G; o" j0 W( b) M* [! ^6 r
pUser = (CUser*)scanner.dwValue;) f6 @3 v: \) k- [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); E* T0 {4 H! ~" Y r0 z. Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% m' ^7 D* M( T! O8 [7 V! _7 A
else0 v2 c; f5 }# o/ r& |0 @9 G4 W- F# d* P
pUser->AddText("你还未达到重生条件!");% a9 ]+ z& C5 `* }* O
#endif0 ^4 A0 T* k9 ]4 q! w# s
return TRUE;
( K; E7 x3 @0 x6 P9 e$ c}
8 [1 J+ F1 m8 F- q
/ k% J0 o5 E A; A, b2 d4 w; w
. b+ L% i) ]8 H% V
8 i( A* ^8 `) |- C) {6 D( C$ N2 M6 S. f) \+ g, T
|
|