|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) x# e' R, ]- I1 w1 X7 ]. E
& V4 H' c7 a; d! yMover.h; }% m/ }' b& e' A- m7 V
代码:+ w3 @& }/ c L2 `$ Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 V) V) l7 y* [: S. H6 x" `. l, n, t+ {( g) E; O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( l7 @6 X9 _# D. j P8 `% ^
$ r7 @3 f: M- U. T+ t6 t$ k: a然后你去mover.cpp添加. b% Z- J" ?5 E+ c9 A T% F
7 \/ E! T t3 v. U7 o8 |
代码:( O- j- z! k% B8 W/ |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; z: n: g" S1 D{
- I# z k2 b4 H7 ^5 J: f6 o#ifdef __WORLDSERVER( F, `: h! w% j$ m
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ X% C, [9 S) C# E MoverProp* pProp = GetProp();
/ t' G% {0 R- c; N/ _1 t if( pProp )8 v. Z: N% e' t# u8 P0 L* e
{. r3 w' _# o9 w& j4 B z+ ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
F7 p6 d4 M% T: P9 ` {
. k& {2 [1 h# u( {! W" r' u4 p AddChangeJob( nJob );" b/ t% y4 p+ L. @/ L
}else{; S1 K; a1 [" k5 P
return;
9 i2 M: Q) A3 f9 T8 D" { }& F: h6 ^! Y- b, W7 p7 D0 z
int nPoint = 0;% w8 _4 ]; _& C/ }8 I$ B0 j6 B8 h
if( m_nJob == JOB_MERCENARY )7 n- V) [' ~/ y
nPoint += 40;
$ g* V, s9 t6 @ else if( m_nJob == JOB_ACROBAT )( D2 ^/ L' s6 z* U9 |* ~1 i
nPoint += 50;
- f8 j' }8 w. a L% L4 [ else if( m_nJob == JOB_ASSIST )
" l4 `" n+ x6 u nPoint += 60;, y6 r `' G9 {% c6 x
else if( m_nJob == JOB_MAGICIAN )
0 P8 A7 o6 `% M nPoint += 90;
- ]. j7 j% |/ J/ Z& X else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 i- J" ?* {& N7 ?6 u( {* Y nPoint += 120;
* }6 \, S, R6 w* J9 Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& Y- Z, F2 V2 s
nPoint += 150;
6 N- @6 E0 @/ { B# } else if( m_nJob == JOB_RINGMASTER ). U2 ^. R- j* O0 P% Y- o8 K
nPoint += 160;, |* c1 z/ P. c; g8 g. O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& N( u" @3 u- N6 M7 x! S4 J nPoint += 180;
# b! z( E& u b( N, n else if( m_nJob == JOB_ELEMENTOR )5 r8 }3 F2 N2 s$ n
nPoint += 390;. A1 m' y' a8 @5 F, {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 M; i! O+ j. C, ~ nPoint += 120;
3 v' E r2 J# [) M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* W- ^% J n% }" j2 a nPoint += 150;+ W5 M$ `! s0 s( }2 q1 M
else if( nJob == JOB_FLORIST_HERO )1 S$ f! c1 a8 @/ I2 r
nPoint += 160;
1 d% x) x( \" c* A y else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): V. U% c0 _. n# L* F( _+ A
nPoint += 180;
( x: v8 H5 M& k$ Q" n else if( nJob == JOB_ELEMENTORLORD_HERO )
C( K7 S# {2 `" ~. j% t nPoint += 390;
! s5 i! @4 H0 I! D9 \6 h7 N
: B# o/ p4 `# N% L' e2 \ AddSkillPoint( nPoint );
* \$ t" s- Z: K0 ?+ j' c# | m_nLevel = nLevel;
4 n" h& X% u0 E2 H+ e; B' e7 v4 u9 Z& E
SetJobLevel( nLevel, nJob );
* r* [0 o$ l; D9 M4 R m_nDeathLevel = nLevel;' W4 u, i: t: |0 x- x/ r4 K1 q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 N% t, n$ J* t' E
if(IsMaster())
4 r7 k" D# h8 K5 Q {& X% O0 \* P# C. j6 E7 d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! W, `$ M* u+ k5 u2 m if( nLevel > 59 && nLevel < 72 )
0 k6 z5 _& p$ `1 k dwTmpSkLevel = 1;
6 ?: \/ A1 f& w: e3 h/ ^; \3 P else if( nLevel > 71 && nLevel < 84 )% b# l; d' O, {' d
dwTmpSkLevel = 2;2 n1 P. t* Q- i" N$ n
else if( nLevel > 83 && nLevel < 96 )% b1 |" X* l- r8 R2 o. W5 K
dwTmpSkLevel = 3;) d& M) a# C& l }- d
else if( nLevel > 95 && nLevel < 108 )9 I9 `3 l$ f4 @- g0 j0 d( `9 K( A+ ]
dwTmpSkLevel = 4;, M+ V* w' l/ i" Q) J" a2 C4 R/ f
else if( nLevel > 107 && nLevel < 120 )* v0 C9 }# A- K: V' p
dwTmpSkLevel = 5;
6 x) L, M4 I/ h: P/ R8 W+ x; f7 O* T for( int i = 0; i < MAX_SKILL_JOB; i++ )
: z- s6 @' K `# U! q { , q; A+ N* x c9 l6 s7 s* M
LPSKILL lpSkill = &(m_aJobSkill);( m9 g. Y# p, |2 s1 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 n4 n G# H% J$ M {
1 u0 ~& {- z P4 ^0 y2 @. N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 C0 q+ ^( m2 a5 | a0 } if( pSkillProp == NULL )
2 |& t! w, @. k continue;% J+ x. Y: c3 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& i$ m# n% O4 A, F4 h- h
continue;
8 X5 Z" r7 S! c9 O1 A/ N& | c lpSkill->dwLevel = dwTmpSkLevel;
5 K7 k' v& [; e+ }6 }; a" p: D }2 W; g: |; _# g9 G: F
}" u* A5 U1 W5 H" V c
}
5 f$ [5 u ~3 ?* g* w; I4 B else if(IsHero())& z. u! i3 H$ \& y9 w2 @" m1 W C
{: x" x9 d4 @4 m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 w. I* C& C0 T& _) O+ @# D7 {
{
4 ? Z' d) B8 ^2 f: J3 B; g) k# [ LPSKILL lpSkill = &(m_aJobSkill);, `, [% D B- O i, P! _$ K7 c# V
if( lpSkill && lpSkill->dwSkill != NULL_ID ): l# W6 P1 Z/ x& m
{
5 Q! k7 F. r+ ]; Y3 Q9 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* ^( P0 w2 { T1 G7 G3 v0 ^) e$ n if( pSkillProp == NULL )# C% {" e, x) w/ @1 Z
continue;
2 h/ e# m6 {: \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 e8 I" u3 _% ?: r; X# Y
continue;
( n1 @! t4 q8 ]$ s6 C lpSkill->dwLevel = 5;
; H2 v7 ~: {4 [" L. L& d* ? }
5 o# v% w$ V& c$ d. m }
2 Z+ a: V, d( f7 D/ P* r1 y( E+ f( x }
$ ?3 l# Z! N% q9 e& ] else if(IsLegendHero())
/ z$ o$ @5 \0 S. F2 G5 L {/ `5 i8 p( v( u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 M# S6 x" M& { {
) F9 R2 B) E' n3 d% X- q LPSKILL lpSkill = &(m_aJobSkill);. o" u$ @, Z" g f$ Q+ @9 O- \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. D; @ n6 p& y9 Q. B! m) s8 Z {
0 b# j3 |7 p5 V& O8 F8 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 P9 k5 w; ~7 O2 Y6 L
if( pSkillProp == NULL )
! b- `& v* u2 ?) _0 x' f continue;) W) E1 a1 a4 @( q3 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% ~4 q; e0 f6 N, Z) ?
continue;
Y8 {- T# i$ O- R lpSkill->dwLevel = 5;
1 q( C1 O, N. N1 u }5 {8 z, W5 r; B/ D8 ?$ _8 _
}
7 W8 B2 s& w7 l2 H8 M6 m; T) j }, a, z3 E" x k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 p- K3 @& D. R* ] if( bGamma )* q/ D/ d- ?+ g8 B: L" d* l1 M4 d
{
. B2 P, b7 M" m+ R5 n m_nExp1 = 0;
- ]+ @1 S6 P9 s b! T& K }
- k0 Q0 t8 B( e8 q! E$ {7 L% I R
( (CUser*)this )->AddSetChangeJob( nJob );
q; ~$ Q. q; u) W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 I) k8 O9 j, {; m3 c9 E' l% q5 ?3 L. h6 b6 A
! [0 _. J# E4 T#if __VER >= 11 // __SYS_PLAYER_DATA. D! F4 F, Z9 L& p% y$ c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 s. C, |/ n1 {! w( |1 \#else // __SYS_PLAYER_DATA* z% }9 [. n/ g3 C3 h$ d$ R8 i; E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ v' ?7 n( F9 g% N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- x( ^% v9 Z5 W5 Q# c if( m_idGuild != 0 )) M* l- |/ z3 J6 \0 M' K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( _( R6 r% w$ P#endif // __SYS_PLAYER_DATA5 @& R" t v! @4 O+ T, W4 F
SetHitPoint( GetMaxHitPoint() );
s2 }3 C9 J0 Z% I# M8 @0 Z SetManaPoint( GetMaxManaPoint() );0 O# b+ n6 E- J3 `. m
SetFatiguePoint( GetMaxFatiguePoint() );, R1 h S' M5 G
if( nJob >= 1 && nJob <= 4 )
6 q5 o9 Y5 E+ q S1 T5 ^# d {% t3 s; I7 X, U* G$ V
m_nStr = m_nSta = m_nDex = m_nInt = 15;- o" L- U! H* n$ N2 ~
m_nRemainGP = 28;
: l# x" C* Q$ ^) p/ D }0 q8 W( F' D. v2 E {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( i. G2 t ]3 t. M/ ` {
- c& K8 i* u8 E4 {) g5 |0 M9 ] m_nRemainGP = 118;2 ], P6 J+ M, {& {( V- e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. R/ m3 T/ n! I# ?+ [0 A m_nStr = m_nSta = m_nDex = m_nInt = 15;* M$ H/ X& j* J/ S* _2 T, q# D0 Y( {
}$ t, _5 W6 d% {- y8 l5 `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. E; A9 W5 e7 O4 @4 g1 { {% N! T: R ?- K3 v1 h
CItemElem itemelem;0 u3 k+ H3 L3 T' `
itemelem.m_nItemNum = 1;
8 f* p0 e9 i+ Y3 P% W6 ?7 V6 i itemelem.m_bCharged = TRUE;9 z2 Z" @* z+ r, C a% \
BYTE nID;' X1 N" h* G& n
/ Z2 f+ F, ~9 L+ G' ^
if( nJob == JOB_MENTALIST_HERO )1 C$ b" }$ t F0 Q6 ? A: R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 B6 v5 D* _+ Z" d, _: P if( nJob == JOB_FORCEMASTER_HERO )
" z- V( @+ J: @5 i: I+ H$ } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, |$ a7 s6 R7 v- m+ {/ R1 n0 s
& U- p0 S# h& q! f$ p4 { ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* B: b9 P7 {0 x& V% V2 J8 |; S/ z0 ~) } }6 n+ r' s7 Q5 i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. Q7 I# p* l! Y- I" B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 _7 g0 c0 b9 R4 }4 f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 R! `7 ]* |5 z# G( }* t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); ?) j D9 w$ e1 s0 R: T
( (CUser*)this )->AddTaskBar();*/! l" }! [& b8 W2 T: L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ G s- K; W- ?! a6 E; m' R& q! t6 I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
o, Q! [& K7 O/ q+ A; q G: I ((CUser*)this)->CheckHonorStat();
3 Q2 k+ x/ ^9 Y ((CUser*)this)->AddHonorListAck();
1 z% W5 t" o; K) @ g_UserMng.AddHonorTitleChange( this, m_nHonor);
" [+ }2 F5 Y9 M: u+ ]5 w( O#endif // __HONORABLE_TITLE // ′Tà?! z* q# v8 H; D' [6 H
}8 S& @! R( R1 o. C" S
#endif // __WORLDSERVER
2 N6 S7 Z. p$ t& ]) |! l8 V}
* _! R3 {7 T/ @9 m L* o6 O. O2 d& q' k* e9 D
然后你进入functextcmd.cpp并添加以下$ \0 F& W& c% c+ L$ |( V. ]. h% M
6 D1 c2 D2 U" p9 |- Z代码:
6 U& u8 c! W2 e2 g/ bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) g% j& M0 i# a+ \$ j
下面插入
# Y+ z+ M$ K. V1 gON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- B4 {0 ?* c3 z" @( `8 R: T" ^; U% ], c6 D+ p
然后你去
/ W9 ~+ G* f* H8 o
0 j+ G! v8 x9 L( k! H& M9 `: [代码:* w5 A$ ]9 A% k' E! t3 u3 U5 g
代码4 V8 X' t& _2 ? v; @
BOOL TextCmd_ClearPropose( CScanner & s )
: ?' K, h3 ~ a{
& A" r% {7 ~% X: [4 A#ifdef __WORLDSERVER
/ x6 `) ~* t8 [% k! l CUser* pUser = (CUser*)s.dwValue;
6 {9 o: b6 j6 | g_dpDBClient.SendClearPropose();& T, ]* f0 Z+ q# b0 [% z% d) G
#endif // __WORLDSERVER
, f2 y2 m7 r" k return TRUE;5 D$ G8 X7 u; u; I& @1 }3 U& e
}: y f8 H, w/ i. G/ \/ v& C& T+ b
下面插入
' o1 A8 L& v9 PBOOL TextCmd_rebirth( CScanner& scanner )+ k+ [# z3 T6 m" x
{
+ c& [ I, ^; K* c6 z#ifdef __WORLDSERVER% O4 i5 n4 e" b2 j9 x0 k( \
CUser *pUser;% G8 P k9 x: r3 L1 S& _
pUser = (CUser*)scanner.dwValue;
3 E( D. a, Y) F5 Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 i4 l: V& {3 L6 k! b; apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 l( `) Q+ X7 q2 p$ ?5 felse! K* @) P' V7 y3 Y/ i! B1 j: ?
pUser->AddText("你还未达到重生条件!");
3 ~, R6 H5 ]% A. G, D#endif2 \" |& d1 q8 m. r% k
return TRUE;
: E7 x/ ~/ v; A! s3 D} 2 @! j |3 j3 N2 M+ q' c6 e6 z
8 b ^2 o/ l, x
8 B$ A+ P: o9 N+ g+ n
( ~$ V7 x) w& I9 ?" S7 j
$ x9 c5 E8 ~. O5 B, S* } |
|