|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& A+ I( g6 i3 s# R+ F5 M. x6 E0 U
7 c4 K; ` S8 v- @
Mover.h
, S% A+ ]8 N# q代码: ]7 |8 R. o( W7 g6 o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
U% [& b1 o7 {6 I: H$ l6 i& S3 A/ h3 ^% z5 M0 I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 }: w: v* ^0 }5 P; R, h& E- J. E! `+ y7 m$ b- z
然后你去mover.cpp添加% T b' w# u9 u, x# t* _% b
0 R# m# i* E3 ^6 I, b! c' M代码:( E% L( I1 f# a3 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: l% @0 @5 Y) ?* o2 u ]( }, X{& ~) a/ C8 L( l5 J
#ifdef __WORLDSERVER
7 Z* P* X) V9 n# ]' F) E' X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. ^# W$ }' ?# Z8 C! C
MoverProp* pProp = GetProp();+ x, F. c- x& F1 Z' Y
if( pProp ). q7 V; W. }0 y; R% R2 R: B+ i0 F
{
6 {+ s, C1 B) E- X if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! P ]6 Y/ j; ?$ F9 a- ?% N {
) q% L$ i3 d! I& m$ a AddChangeJob( nJob );
! X7 H1 _' O0 [8 w9 Z' E }else{
! g7 m! q* b5 S4 l return;
+ o) t5 }9 M& } }2 c$ B, T( U7 S0 K0 q9 K
int nPoint = 0;4 D. I$ |6 |* t3 p7 q
if( m_nJob == JOB_MERCENARY )4 R2 @! s, I( B
nPoint += 40;/ h1 M% A' [8 }4 S+ K
else if( m_nJob == JOB_ACROBAT )" M% T6 n& {3 [' l1 C
nPoint += 50;
R) d$ J, n* b else if( m_nJob == JOB_ASSIST )
D; N( c5 ^3 v% r* U: i6 H nPoint += 60;" s' {& Y/ `: ^! b, p
else if( m_nJob == JOB_MAGICIAN )
8 e$ _9 n, V z0 z nPoint += 90;
( P4 ^; `$ h* ?" g9 g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )/ [% V) Z& R) ?2 f, I1 e0 t
nPoint += 120;* }3 d% G5 e: Z4 B% e% Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( i2 ^2 L1 z8 u/ e0 c6 w nPoint += 150;% d+ y0 h* N! W9 Y& ]% t$ K
else if( m_nJob == JOB_RINGMASTER )! ?4 ?: U% N+ Y2 W) T
nPoint += 160;
y d6 R1 p; q4 U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ), a2 `; r$ f2 s# |1 A
nPoint += 180;, T# Y4 e$ U6 t
else if( m_nJob == JOB_ELEMENTOR )
( E' [6 ^! v6 ^4 X# e nPoint += 390;
* F5 Y, S0 N+ i8 Q, d* A3 ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 k( E9 E' V' S. H6 F nPoint += 120;
* d6 k4 U3 _; ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! T @/ J: ~5 \- n/ `
nPoint += 150;* i! R4 q- b% v1 a- [. ]
else if( nJob == JOB_FLORIST_HERO )
( W( \# o5 ?9 X4 J# ~% { nPoint += 160;# a+ }" _3 A& c; e) g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 U+ Z! Q5 t9 O, V) |4 X1 `) S nPoint += 180;
/ j2 J: q9 G! h! n7 b7 C" |$ F else if( nJob == JOB_ELEMENTORLORD_HERO )
" a, M* a+ X7 Z nPoint += 390;# d) S" \4 p3 K# `$ c
5 [( ~! S1 s1 {9 e" { AddSkillPoint( nPoint );0 N7 g1 Y5 V/ h" w% J
m_nLevel = nLevel;
% `6 w$ \) C+ F$ L" d6 D
4 q2 ^% O. n1 F Y# A# f. M SetJobLevel( nLevel, nJob );
* U+ H8 f* c, o% t) ~+ I m_nDeathLevel = nLevel;4 @( f ~% L7 ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ S' ^3 O% v% B* R2 h: }
if(IsMaster())
) V0 x% h: s% f: G" M: |0 y/ c/ H; b6 k {
6 P# @9 ^) ?) Z- }3 x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, x5 a# r3 M: t/ x6 A
if( nLevel > 59 && nLevel < 72 )! m! A) x3 r `3 I* V' [
dwTmpSkLevel = 1;
' U- @* [$ v0 t2 S else if( nLevel > 71 && nLevel < 84 ) `: N g+ J5 _/ g, O
dwTmpSkLevel = 2;7 S6 p2 q3 {' U: g# F/ ~2 f0 e3 {
else if( nLevel > 83 && nLevel < 96 )1 x$ N5 @% f3 ^+ C) H. ]7 I. @
dwTmpSkLevel = 3;& P4 S+ F- T( O/ @1 \
else if( nLevel > 95 && nLevel < 108 )
$ l& M% V3 S. B s( S( ^ dwTmpSkLevel = 4;$ t1 e' L: Y- d- s. Z" G
else if( nLevel > 107 && nLevel < 120 )
* K1 T# E4 v& C- T1 L* x- L dwTmpSkLevel = 5;
% }$ I- i4 P' o" T8 ^' P5 I6 x* O for( int i = 0; i < MAX_SKILL_JOB; i++ ) . d0 y% {- _& e) n6 v
{
6 {- e. y. G- V$ _ LPSKILL lpSkill = &(m_aJobSkill);
" e7 p* S. v8 w; a. k. ]7 G if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 m+ m9 A" T0 g {
; m3 q" W" I2 w. y+ Z% r1 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 ?. @4 N [7 G9 s. s6 [
if( pSkillProp == NULL )
$ ]# s, r1 X1 q+ W1 P, k continue;( _/ p( Y( ^4 E5 f3 a# q, E( n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 P8 c- v, M7 {3 l5 Q$ X continue;
' N- N5 h+ n1 B4 y lpSkill->dwLevel = dwTmpSkLevel;
8 {+ j9 d2 m5 }& |. P/ A4 h: A6 I; W }& u3 x# e/ {+ j
}6 |5 H% @$ }% r* g3 K) J* e
}
+ H! n1 n4 k. q* ?. w7 u4 k4 N else if(IsHero())
9 x+ }/ u7 P% y4 q: o1 L1 L( U+ ] {
5 s* b/ [& B6 P0 g" O( y9 S/ w5 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
K( s5 m' n H; } { 6 B+ R4 p" ~( {
LPSKILL lpSkill = &(m_aJobSkill);
5 E$ ~8 |. z1 j% b- j3 k/ i7 t" ] if( lpSkill && lpSkill->dwSkill != NULL_ID )4 h6 @0 v7 q& W* C; [3 m" _
{, D5 {. t- n, _% k+ X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ ^, b Q) |& Z( P, B# C4 S if( pSkillProp == NULL )7 ]- R/ }5 s3 D! M2 \, w* J6 b3 \
continue;& Z3 O6 T: b+ ]$ }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( Z# w t6 i- b& } continue;
+ {8 u- b3 a. j! V9 F; y, X lpSkill->dwLevel = 5;5 Q; C G8 P) K3 t% R! h
}+ A( b8 v) e7 z
}* C. b9 { V# O# _1 j* e6 }3 F: {
}! O& z, h; o/ [7 M ]8 _
else if(IsLegendHero()) F, `+ e- n5 k4 u
{3 s2 u0 _1 O- h( N7 }* N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" H( M/ z8 I! w% G& C. Y {
* c. a0 b( y8 |( W LPSKILL lpSkill = &(m_aJobSkill);
- T, Y2 y# Z% V/ w$ y9 v4 t+ N, Q, e if( lpSkill && lpSkill->dwSkill != NULL_ID )
; `. F' m# M$ r w6 s {% _( |5 b2 h) O8 F) j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % z: Z/ A7 x8 H8 d/ J3 N" D
if( pSkillProp == NULL )
) n7 b5 c0 L; ?' L: a# a continue;
- k0 v' ?& ?+ P) E! I @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* z6 u( w5 M0 o3 d: ~$ G* A
continue;
4 X( N4 p- ]/ V- d7 Q O lpSkill->dwLevel = 5;
; [5 p/ q# t& q" b }2 z+ s$ L* A0 [7 |7 V/ e# K
}
6 A: q3 P. q! B2 f1 e5 r }
6 @1 f* C( [* ^$ O+ ]8 [6 l, C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 z4 W! w' y" \1 A
if( bGamma )
% v$ j" I/ T l% s2 y( d' I/ u {# x& a7 {4 t" |
m_nExp1 = 0;* c# P2 O% t4 `3 L% `, z; Z+ o/ \: v
}
2 @8 }4 ]( p/ H2 a0 i s) P2 {! M; X/ h/ i/ e) ^4 S
( (CUser*)this )->AddSetChangeJob( nJob );+ @, [ j% Z- ?- {9 }9 X' K, ~ t9 i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% ]8 A5 u- v. x, _$ ]0 i a" \
5 x7 n8 l( V) R! a Z- n/ O6 B
! ?3 M- V5 j, Y# m6 g+ z# E#if __VER >= 11 // __SYS_PLAYER_DATA
) R$ D. \8 [7 P7 c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 N% b V. M3 F: \8 P#else // __SYS_PLAYER_DATA
+ C( s9 h% ^- t( {/ ^8 ~; A4 k+ M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 S- W1 T# ?. b# F
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 y0 u/ I- c( ?# f! y if( m_idGuild != 0 )
, V! P+ ^5 S% O1 {, }( W, G3 M# U g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 `6 G' B2 t( `% y6 r4 S
#endif // __SYS_PLAYER_DATA" ^5 u5 L9 v& m/ q& L Z8 [6 B) e
SetHitPoint( GetMaxHitPoint() );
, r% P1 A. z# ~! ^0 P" B, M SetManaPoint( GetMaxManaPoint() );: P3 D0 G- D0 n1 ~! Z! X
SetFatiguePoint( GetMaxFatiguePoint() );
4 L- {0 F3 P: P! r if( nJob >= 1 && nJob <= 4 ) y" A2 \! N0 D$ L
{% s c) p) [7 p: x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* j! P; t" N: I m_nRemainGP = 28;
1 ~3 S8 D6 X4 v( r( S }
0 J6 P# r, i+ q4 D! V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): C( i" S+ i- q% [/ v
{
/ |' e2 t7 N2 o+ L O: h, N m_nRemainGP = 118;
3 @+ G8 J) e) J //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" |, O) F6 d: e$ n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 N+ R5 y% {1 b3 |* v g% ] }
& _$ }. b& O6 b( d4 r! k if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 l, L1 S( ~/ ~5 s; T# V* u
{
0 ?4 x, x/ _3 G0 } CItemElem itemelem;7 a7 O; I. f$ K! `: l
itemelem.m_nItemNum = 1;0 P: G, V- ^0 J: c
itemelem.m_bCharged = TRUE;2 r* l, `. D1 z' h- ~; O: g9 \
BYTE nID;: @* U6 `9 K+ A9 C
9 `+ `" v$ M8 L# P0 j. s/ J! b if( nJob == JOB_MENTALIST_HERO ): o6 b4 ~9 p4 u) l6 F( F5 @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; u" B$ T9 X6 O+ D
if( nJob == JOB_FORCEMASTER_HERO )6 M F0 `5 {# m' Y/ v u& z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* N( o. n3 ?! A% c) H
; }( e0 ^% u& |) v0 q0 y+ K ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 E) g* ~/ Y4 o8 c! T/ x2 j }. F W0 ^6 a0 v! z. u( O& Q: f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ g: B7 {7 F" B" V# H( Z8 D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" k+ J# z' u7 b" W
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' a7 j5 E& o0 t0 }, h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: X) i. A1 F8 L ( (CUser*)this )->AddTaskBar();*/. _4 E, }+ Z- C% s9 }* H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 A- x/ }! m; O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 _9 n& z: y9 J! L ((CUser*)this)->CheckHonorStat();
3 G2 k+ f- N9 v. s2 m/ o6 T; {& o ((CUser*)this)->AddHonorListAck();: T8 k! L+ r$ M( f4 s1 g
g_UserMng.AddHonorTitleChange( this, m_nHonor);& ?- g; L! W: B4 B1 z0 }
#endif // __HONORABLE_TITLE // ′Tà?+ J$ S' }: h/ r- Z
}
9 H$ {1 w( O t: `/ t#endif // __WORLDSERVER$ j; l* B6 ~ J4 O" ]3 I: Y
} 4 q+ m( S& i( c0 [
- b& }! G, u5 u- X+ `: z
然后你进入functextcmd.cpp并添加以下) f2 C2 q v: Q( p8 ~4 S7 Z V
& e+ p, O+ Z C" Z! a代码:
# `' j% }3 |" V L1 ]8 GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* B$ z2 @0 L8 g
下面插入, v* Z1 W, @1 f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% C% V$ E- w5 w3 [# H" c# c& q" \2 Y( ?
然后你去7 \. o/ A" \; S- X% Z: R
9 h6 \9 w, Q1 E3 a ?5 D代码:% @' M2 k1 A, q c! ?# E
代码& P' X/ b% v8 m1 z; A% I" z
BOOL TextCmd_ClearPropose( CScanner & s )# m4 {! Y' P$ D# a7 y, g
{
& f% Z! w) x3 [#ifdef __WORLDSERVER0 T7 X/ P m6 |, E1 a" l
CUser* pUser = (CUser*)s.dwValue;3 ]$ S3 d k+ u1 l5 H$ x! E
g_dpDBClient.SendClearPropose();
/ B6 g1 R# Y+ S! l#endif // __WORLDSERVER$ n3 {. A$ ]3 b7 v; K7 n. }; o
return TRUE;+ q t- q4 V% ?8 H
}
: S; i/ \! G* s% F, f% b下面插入
+ y* i/ w. Q8 K4 z- N8 eBOOL TextCmd_rebirth( CScanner& scanner )
" R( r% d: L) o# e3 Z{# h) \8 D0 w: |' r$ Q7 D
#ifdef __WORLDSERVER
5 k* m# @" N( f' ?4 DCUser *pUser;$ o1 B ~7 |3 H! {5 C) R) |
pUser = (CUser*)scanner.dwValue;6 ~' i6 |& F3 ^: m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! ~, V% t& S4 d1 Q- wpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ k6 N" _( g9 {/ ^' t4 {6 P' @9 qelse
7 D% n& q, R5 C" ?/ I7 {$ JpUser->AddText("你还未达到重生条件!");/ U o- ?/ A* O J& N1 |$ z/ h4 q. Q
#endif
, K) B0 A7 U- |6 W% I! B, P Lreturn TRUE;! z% W2 x) o4 c: Y; \9 m3 e& X
} $ v+ S+ o5 T1 s9 S
7 g1 l7 |+ _0 E7 o O" b3 F* q
9 N% m& v& y3 I% A% r% {; C* P/ d* j' Y* l1 i0 C
6 f* e6 v& k* z( O$ b
|
|