|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# X! o% B' I1 q4 K( @& x8 J, o0 R9 W7 |2 z9 j- m) S) y
Mover.h1 J: `# w# A) L: P% Y5 O3 W @- Y1 r
代码:( X# m- s, ~& x6 d8 X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 X1 D# _4 q. E4 G
2 V8 @6 `+ `9 d7 y8 C g$ E9 M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' q+ G% F& d9 v2 z: B. C8 y& G
; r$ G2 {0 ]( F% B8 O4 S# C! i
然后你去mover.cpp添加
! C4 c5 n5 w# f- S! J8 e: ~: j) B1 e- o0 Z; K- Q
代码:) I+ k$ Z- n4 a3 ?0 Q1 Q) a! n/ d" a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 k# N- ~6 M7 q9 A{
/ i( E% h+ _) @9 X, @#ifdef __WORLDSERVER
/ I: C4 I7 X+ d) H/ W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 x! j9 o5 H) c) a( a MoverProp* pProp = GetProp();
Q/ \% Z2 u* w+ u. t0 N' W if( pProp )# u& l3 d- j$ x5 p1 ]) O+ N& c/ T; V
{
& p; o6 m* T5 M% Q; Q: {0 _% K if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) y8 N! W% d5 S/ ~/ Z {
7 A3 Z8 |' O* W2 C AddChangeJob( nJob );% C3 A/ X5 @# Z' _+ Y( z$ S4 g5 C
}else{7 e7 `1 M3 M) U
return;8 L2 t4 f7 \8 P1 `, `# l
}
: d/ R2 p6 U6 |/ \0 E4 Y2 W* u int nPoint = 0;2 ?6 P# V' J5 F: N H5 y4 c
if( m_nJob == JOB_MERCENARY )
; k8 F6 s, i: H$ W" b# T' K nPoint += 40;2 h, Z. S9 y9 N9 ^& h. Z: C, W
else if( m_nJob == JOB_ACROBAT )
& i! P& e( H% D0 R, V nPoint += 50;2 T6 d: o- |( I; ?
else if( m_nJob == JOB_ASSIST )2 o" j. x/ M- L9 o8 {
nPoint += 60;
$ e4 {% h" z+ W3 ~6 a& Q else if( m_nJob == JOB_MAGICIAN )2 ~8 f9 e9 N; k6 L1 p! j( B
nPoint += 90;
4 T; ?) ]6 q/ C h- P3 d( t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 X# X5 _, o7 G nPoint += 120;# X, Z) N3 F! X4 {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 r) x) W! t( I9 c2 u3 H
nPoint += 150;' L; {$ V2 g& Y4 k8 h
else if( m_nJob == JOB_RINGMASTER )# g# L% p8 R: ]6 s4 R
nPoint += 160;
* g; g% i3 g/ S5 E% q* i% }/ E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# R- [2 C4 |3 q1 _
nPoint += 180;
i9 v, g* [5 ?& B4 _7 O1 Q( m else if( m_nJob == JOB_ELEMENTOR )
7 h3 l, c- m5 Z4 z7 ^) S+ { nPoint += 390;
. v1 u* [ W1 \* |. J1 D else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; a5 }: W* _8 I nPoint += 120;
" f$ i3 l I" v/ r! F4 K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ Q: Q9 G* x+ ]+ [! U
nPoint += 150;
: |. i" x6 c j. H) c- r. ^ else if( nJob == JOB_FLORIST_HERO )
& [* M- C ] e4 \ nPoint += 160;
' i% Q. K* ^ m4 ?# P else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 u) ?! x% B; K2 O4 P5 i
nPoint += 180;
: ~; y5 @5 i* V9 s+ H else if( nJob == JOB_ELEMENTORLORD_HERO )( J) M+ d, g% J1 Q, U# b
nPoint += 390;
( j- F' @3 ^& K! ~ y( ]: M. b0 N( e* }
AddSkillPoint( nPoint );
( N1 T4 S' d# o& D1 \7 \: [ m_nLevel = nLevel;
8 u6 W' c1 n( `" y/ ~ O
3 ~; o3 L9 m1 q' ]3 A SetJobLevel( nLevel, nJob );1 C: b$ V$ f4 p; `6 I0 W6 L0 W
m_nDeathLevel = nLevel;
* K9 c* U" Y: t) O6 {' A5 P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 a8 v! s( B9 f% L! [ if(IsMaster())
: }" Q$ l5 a+ f( ^% Z. | {
6 U3 ~5 v7 [- k6 @# L3 P/ i3 j int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 I! F E0 q% T) j, r0 X( ? if( nLevel > 59 && nLevel < 72 )* K& a; c3 X! {5 E6 O2 \
dwTmpSkLevel = 1;
. K; l+ r% O0 J- C' H9 N* t else if( nLevel > 71 && nLevel < 84 )* ^6 F4 }% p* P4 J
dwTmpSkLevel = 2;
# u, I) ^( d0 j% l else if( nLevel > 83 && nLevel < 96 ). Q2 w0 M6 \; S3 I l5 n
dwTmpSkLevel = 3;/ e$ L/ Z( j/ k8 t/ F
else if( nLevel > 95 && nLevel < 108 )
- j- x7 l D9 ]9 M9 E8 H5 t dwTmpSkLevel = 4;
# i( Z2 W( |! I" e5 `, c else if( nLevel > 107 && nLevel < 120 )
0 A, c7 g* m2 L6 m dwTmpSkLevel = 5;
) J- K7 ~* Q2 E: ?6 {; b for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 D, D' F* j+ N4 ~ Z. b { + S3 O) _. o. J1 C4 c
LPSKILL lpSkill = &(m_aJobSkill);
& ^" i- O3 X: f+ X; e4 z. h# g9 } if( lpSkill && lpSkill->dwSkill != NULL_ID ); ~2 y/ h0 c: \! ~& F, h7 U
{
1 ~: r4 Q- g) F/ W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' o; r# y3 d7 W; P L9 T if( pSkillProp == NULL ); Z) ~. N9 V1 r; `+ s0 F+ R4 C
continue;0 p% {0 u |+ ?4 y' x- ?; a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% v" R8 ]/ D; } continue;
6 S( \ G( @/ q9 `, R3 E4 Z lpSkill->dwLevel = dwTmpSkLevel;% P3 C" ~. o B8 f' d
}
* |% \* T. P) _5 s }# N9 l- S3 N& e
}! q$ n6 I- M/ D# h; P7 d
else if(IsHero())& x$ w! Z: w7 b, P
{
5 k8 |" }+ W1 q! O# }6 t# i% J for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 f( x2 p6 J2 m9 p" [1 B } {
' ~3 J/ g: [/ N: z+ H6 c0 y LPSKILL lpSkill = &(m_aJobSkill);
0 d( W% D' }# {$ x if( lpSkill && lpSkill->dwSkill != NULL_ID )
) r7 P) D& P" y7 [) J {
: V3 | L* Q# [7 [$ u) p* g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 u" b- p* F! E/ Q
if( pSkillProp == NULL )+ o7 [, ^( G6 ?6 S
continue;
Q7 C7 a) S, t) i! C# a$ J6 z; O* o8 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! n- M4 _6 n" M8 H
continue;
7 N2 ^* M+ S% V1 d% A+ T9 V; Z lpSkill->dwLevel = 5;
! h# W+ |1 \$ y2 { }
# ]/ `) L$ k0 x+ {* J2 ]/ G! Y. K; w }( g8 h! f) k! ?# F( v8 W& g
}
2 a4 w' G. [5 b! h3 E3 u else if(IsLegendHero())5 k* ~1 C5 }9 R
{
7 [) C. Z1 D% B) E9 s for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( w' |& { |2 F1 M0 u5 o
{ 8 O& k5 K2 K) Z5 q- C2 G/ G- ?# q. j2 ^
LPSKILL lpSkill = &(m_aJobSkill);
4 X# @* ~! j7 x7 f if( lpSkill && lpSkill->dwSkill != NULL_ID )& z! @+ Z0 ^8 D1 D
{
1 ~1 F) |1 M; h9 L9 k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 @, Z# \9 j% y% A- p R
if( pSkillProp == NULL )% c. z9 {1 v2 S/ D: D8 n
continue;
# b6 _9 c8 a8 \6 l4 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 m8 i8 \/ O+ h8 b! r% Y5 @# ~ continue;
3 k/ i S, V' j% U' c+ J) f lpSkill->dwLevel = 5;1 q7 M7 S. h9 H3 I: H
}
! w5 e& ^! K* I& S3 p1 B }& e* g; }- S, y( ~' m6 x8 X0 a
}
; F9 e$ S$ x# D6 Y5 R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 Z& ?& H) X! T) N
if( bGamma )
6 L) h; d! P' }" w+ \, ?3 E {
3 P- @* o9 D! n- f4 M5 }6 Y m_nExp1 = 0;+ M: z5 z9 E8 k9 Q
}. e& E/ \) P( O: ~& K
/ u; E: g( k" m1 K, X v
( (CUser*)this )->AddSetChangeJob( nJob );, H6 |) M# o4 v O5 z. _; k2 a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 h0 X( w" h. Z# y
- q" O7 R. q3 R. K# \! B
9 {" f w0 C2 M% Y$ v#if __VER >= 11 // __SYS_PLAYER_DATA0 f* } y# V' G4 Z( |2 [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 l5 i; Q. v' O4 Y, w
#else // __SYS_PLAYER_DATA
3 {" I( ]1 V: T2 }/ _9 d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
j' ], V* P6 A2 i. l& `( F. Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ V7 ]1 _' [# D' }( |4 Y" A! k if( m_idGuild != 0 )3 q+ g+ n! W) i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- {4 U7 L, X' E% P! E, d
#endif // __SYS_PLAYER_DATA0 m- K# {4 h+ Y6 V8 ^' _: j% O/ R3 N
SetHitPoint( GetMaxHitPoint() );: H; Y( ]' d, A& L8 h
SetManaPoint( GetMaxManaPoint() );
9 v5 B& \- W: W* s6 P3 | SetFatiguePoint( GetMaxFatiguePoint() );0 g" ]% Z. ~+ F; A8 I+ q& g+ h: [
if( nJob >= 1 && nJob <= 4 )" K; x; O& }$ X/ Q& y1 {
{3 T6 \) {* R9 }* i6 P; t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 M" D6 A8 B' [3 z( d m_nRemainGP = 28;
% f1 W- D4 n% h) p* m }' y0 X1 O/ X6 v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& q: }) B5 w' l5 ~; ^
{
! ^0 \: y. X) Q _" C' Y m_nRemainGP = 118;
0 r# M5 h# u6 z6 H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& v5 `7 x( s+ n I m_nStr = m_nSta = m_nDex = m_nInt = 15;
" Y3 Y* N/ S: R& @% e6 o }: Z5 x9 l8 C* A8 N" D8 m* A
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! L) H$ U0 }& ?4 g* U4 p
{! g2 Q; E% y0 u6 {
CItemElem itemelem;' U: i, D/ b1 w' L! k9 e
itemelem.m_nItemNum = 1;' y: y+ t1 z. @! E7 N4 N
itemelem.m_bCharged = TRUE;# o; }7 X7 {0 W4 ^* m
BYTE nID;) u J) q0 H( j: S. P- D; K
9 E! ~% l/ `! w7 k4 f
if( nJob == JOB_MENTALIST_HERO )$ H( ~. j7 R+ P2 t9 S' r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 r" L; d0 p! ~8 g3 _ if( nJob == JOB_FORCEMASTER_HERO )
1 k1 k: r! Q5 N4 w- ? itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 `/ o. P" Z1 j; q8 u
+ w1 t" k$ e% M8 Z5 I ( ( CUser*)this)->CreateItem( &itemelem, &nID );* v: \/ e5 O6 T( I5 F2 [
}# E# \* x+ Z8 b& b/ f$ h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, f! z9 C! W! f; ~ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 v4 t- ~/ s( w3 [7 C8 n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 a6 p) h- j* q U. p4 T2 O0 a5 ]$ A
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ {! h& }* X9 b0 U V
( (CUser*)this )->AddTaskBar();*/
6 B2 M% n. n) Z: e9 A/ ^ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& T; }3 | ?0 j& d1 m( X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 [7 [- h4 F' f
((CUser*)this)->CheckHonorStat();- N7 H, q# z* U: h
((CUser*)this)->AddHonorListAck();7 b0 s! r& U& |& U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ Y) u' z) L- b8 H- J# I0 |7 x#endif // __HONORABLE_TITLE // ′Tà?5 e# S, {' O( \7 X
}$ _2 J) ?/ U7 L2 @5 z
#endif // __WORLDSERVER
! v0 o+ n# Q; D @}
# D, A+ ?: e6 l! }6 o
/ b( `6 Z7 @# o% u, f然后你进入functextcmd.cpp并添加以下6 _) Z, ~+ V/ i5 [" C; v2 U
$ D! @( D) [+ z+ ~& J9 d) P
代码:
: Y2 u. B' R3 C+ B6 GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 J* Q6 }: w/ @/ \下面插入
, G* q1 n( j7 g$ C1 A$ F @1 LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 ~( l) K8 W# j7 Z& I) P+ h+ V2 U- {
; \6 I; a4 a) o& Q# G& Y
然后你去9 s: A$ B# {% R* Z0 T" d
- W+ V' O4 ~6 U$ X! l7 M
代码:
# k6 E. M. M) n7 Q) n9 O( V' R代码
! V: M0 W, g/ ]BOOL TextCmd_ClearPropose( CScanner & s )! h/ S3 H1 y+ V2 J1 z
{
) ~1 I+ `. L; i5 M; G- m6 Y#ifdef __WORLDSERVER! @9 t( ^3 [: ?" _
CUser* pUser = (CUser*)s.dwValue;" N3 x* l) Q1 y# c4 h4 Y
g_dpDBClient.SendClearPropose();
8 S% G0 G: n& A5 _% G$ {. n#endif // __WORLDSERVER( ?! b' n- T6 h3 B6 r
return TRUE;/ l4 a9 A) ]2 |' ?% F& y/ J
}0 j. K8 Z: a+ E
下面插入1 @* z) D9 I+ I, t' e5 l
BOOL TextCmd_rebirth( CScanner& scanner ). G+ x7 z3 R" S+ L9 g
{
; |2 s. y4 y2 [. D+ h& X) J$ f#ifdef __WORLDSERVER
" u% t5 y% {7 BCUser *pUser;
* F" R+ \) j- o; k, I ^8 tpUser = (CUser*)scanner.dwValue;+ Y+ }8 c- ~3 h1 c# k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 `2 S+ ]# p! Z9 @$ `% C6 CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" F! p9 b6 Q* [6 v
else
$ F+ f3 q" e! k4 A- k/ l3 j; jpUser->AddText("你还未达到重生条件!");6 B8 {$ \, q) I/ D @9 l
#endif$ _ T; t- z; t# ~+ l
return TRUE;* X _7 x+ Z- v& N7 q
} & I! X* N3 a! [* u
1 U$ o2 j3 i7 \5 N& @( r8 R
0 c* r( U. X( k/ }9 `
- g! W" n$ {- R) ]
- l3 [. c! U. i* Z8 W |
|