|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 I% z" |2 W* D% K# L) g
8 ^: e4 m4 N7 g. I+ J5 M
Mover.h
, L7 Y# W& a& e6 L# p: m代码:; J' U4 N2 p) p8 j1 L) e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- ~. D/ T& c! U: \; a' h, l
% s% r. H& w$ F4 z4 O/ K* P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . ?& j% R9 ^, y- `# D7 g' L
' j; v3 c; k' t O
然后你去mover.cpp添加. K+ Q# B- [, Y4 T1 P6 w5 N
( e# K t; E$ z# A R
代码:
& W& H* ^& t' s& D) Y* Hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ w1 O( Z' u7 i" B{
- F% w; s) a' G) W2 V' O#ifdef __WORLDSERVER' ~# X' {$ v4 ~. D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! x* \6 [( F/ y+ O MoverProp* pProp = GetProp();1 _0 A8 U& |$ E, ?
if( pProp )3 v* Z/ w4 n% r. F
{
6 Y: h" u+ k% p5 I: R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- J( F9 D+ x" b) {, I {1 R+ G9 q; {: m: v/ E
AddChangeJob( nJob );
0 c- `6 q" V* a }else{( g1 s5 G% h& @6 g
return;3 G: z9 g7 ~5 d0 v
}
" d- K2 c0 k' A3 _. V; s$ C int nPoint = 0;
$ N0 U8 M, D' Q: ~, E2 n8 G; | if( m_nJob == JOB_MERCENARY )2 ?1 v7 Z3 E, N
nPoint += 40;
) S$ T8 j8 A3 V& _7 R7 } else if( m_nJob == JOB_ACROBAT )7 i. H3 M# }1 V2 d. H
nPoint += 50;; Q' o2 a+ P7 B! o% M5 b
else if( m_nJob == JOB_ASSIST )
; L% J# \/ E, d- ]; K nPoint += 60;% B u- }; p8 g
else if( m_nJob == JOB_MAGICIAN )0 F! ]( e. i9 m0 w
nPoint += 90;
6 ]$ G* |& t, }, O: y- _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& B, k- S# q) Y M' H' m3 F nPoint += 120;
, w# ?( D! f! s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 [2 O4 N$ v1 l* E( U5 ?
nPoint += 150; J7 i* @) F* r! ^5 N
else if( m_nJob == JOB_RINGMASTER )
" p7 E- r0 m. x `8 V% d% { nPoint += 160;; p9 J7 m0 Z3 O- i9 N% F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) m% {" t% ^2 m0 d1 \4 G
nPoint += 180;. k) {9 G$ B: c; u1 q, E
else if( m_nJob == JOB_ELEMENTOR )
7 J1 x' T3 M8 x( J: }4 l nPoint += 390;( e4 p+ F( B2 z. P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) w1 ?( n; l9 Q( S! H nPoint += 120;# e' J4 y. \! J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* N" F0 }0 y) Q5 W$ ^/ m& y0 n [* ?
nPoint += 150;
3 z E8 d( r n. Z/ ? else if( nJob == JOB_FLORIST_HERO )5 H0 Y) h* A; m' R1 w. c
nPoint += 160;5 |$ ~1 x6 i3 o! q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! U. [- s3 N. Z$ n! f
nPoint += 180;$ m( |, e& `# d& a
else if( nJob == JOB_ELEMENTORLORD_HERO )
5 N* j4 G7 i6 O6 a9 R nPoint += 390;
$ d) L* T. m/ S6 c, T% r& w, Y7 X# w5 \4 W* ] ?2 l9 }
AddSkillPoint( nPoint );
3 \+ x: w! W( G! b N m_nLevel = nLevel;
3 f) G- r" }; @# k6 t( }& I; e* \* F1 T X* q5 e; }3 ?
SetJobLevel( nLevel, nJob );
; v8 ^* ]+ X9 |! p. f& ]) S m_nDeathLevel = nLevel;
) w: C4 q* i+ k' D! y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: a7 I5 J+ P5 `* l T* k6 V
if(IsMaster())
# t# }2 o* c* ~* R {' A6 e: h; D/ o/ ~+ W! c5 A- [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, c3 J& k. z% m8 Z, E; Q if( nLevel > 59 && nLevel < 72 )
. ^7 I6 q* t4 V dwTmpSkLevel = 1;
, E3 s! q* p8 s- j& |- F" h6 e else if( nLevel > 71 && nLevel < 84 )7 i( L5 I8 l8 ?0 m" r- Z* v
dwTmpSkLevel = 2;# [( b' d! Z0 i7 [
else if( nLevel > 83 && nLevel < 96 )
1 `7 j" ~1 B# N3 ^ dwTmpSkLevel = 3;
) {2 ?* {' ~. {7 |8 b' [5 @4 D else if( nLevel > 95 && nLevel < 108 )
}( M) s& \9 p$ {$ J; M! c dwTmpSkLevel = 4;7 B( B# ~$ r% w6 e2 C
else if( nLevel > 107 && nLevel < 120 )8 Y, d0 |! d1 h
dwTmpSkLevel = 5;5 \# t; F b5 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % L# F9 Z* ], z* q* F
{
y7 H& I) ]( V( d7 [ LPSKILL lpSkill = &(m_aJobSkill);
' {! }5 v" K7 [+ ~. L! \ E7 n) v if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ t0 A' o' h' \4 r {
/ e6 R3 u K; m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 e' _$ _- v/ X: n: U8 ^( L$ S* O if( pSkillProp == NULL )
2 j. h* E; N* Q! C6 D% |" w continue;5 K6 d4 b5 E) T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 F% a( b$ F+ [! n* Y' ] continue;% [. Y1 {& ], F
lpSkill->dwLevel = dwTmpSkLevel;# |3 q, ~! c! j, V% |7 `, @
}3 b0 ]2 b% i/ A: F( l3 I8 H
}
: k* ~* V% W5 h: M1 @) k* R) e }
, `+ l* R5 T( J5 F9 ? else if(IsHero())
! O! _; D j! b$ \ Z {) D% p) B$ q3 s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, D5 b6 D" q4 w+ R: E4 l& j { * \+ Y1 E5 S, P1 x% u/ H
LPSKILL lpSkill = &(m_aJobSkill);
, {- m. V9 Z% i* f if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ K0 ?$ g6 C& f4 T2 K" r' o {
, y$ |9 c1 A4 h' F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! R9 N! l8 h7 \3 C- u! z
if( pSkillProp == NULL )$ ^% x6 n! U" C* {4 x2 w+ X& M
continue;
" H, D: O$ G9 H [0 c# | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 o% _! {. m: d continue;
* ]; I8 Q' J/ `- s$ L, b% p lpSkill->dwLevel = 5;3 k& `0 w- m/ o P, c7 ]
}
# E/ |4 w$ V/ A! v }
* q& q4 j0 e$ R. u3 e3 K }/ Y/ z0 f9 G, X$ r
else if(IsLegendHero())
; _! N2 p5 ]% P3 t {
# ?4 `1 _* h2 h) M for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 k1 h9 k" C1 `/ S( [! B; @" {
{
/ t8 [/ G8 ]- Q6 b; V! w6 N" _ LPSKILL lpSkill = &(m_aJobSkill);
0 {5 l! Z7 n# |8 s4 i" w if( lpSkill && lpSkill->dwSkill != NULL_ID )
# J- w; u( S* \+ e& [, }" E8 i7 } {
# s/ b, {4 S. n2 \& [0 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 b" ^9 m4 J9 b2 x
if( pSkillProp == NULL )
6 R% U5 S& H: A, A" }# V6 N# `& l. ~ continue;% P* A7 j' e0 W$ @7 m4 e5 s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 m! I9 Z4 r. k- p* T( m6 S c continue;: j1 U7 r. p( x$ d
lpSkill->dwLevel = 5;
; ?2 c8 `- A `8 l1 F# v* `+ X }
0 L3 s l$ _ b1 a }; Q5 d6 V# S$ x7 {7 W( F
}: b5 }7 \ X' ?3 h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 B! Y0 P8 {: o3 g7 L. ]
if( bGamma )1 c0 G6 M4 b2 \* N3 e" i& j
{
4 Y/ _( ^) [! l3 d4 p- X8 b m_nExp1 = 0;
$ P# M/ C! G. _+ J" P( C }; p" l6 B# ^! J% f6 ]+ d
6 X( A2 s: ]' X ( (CUser*)this )->AddSetChangeJob( nJob );
% o; w1 i0 A9 W5 ]$ k) n* i g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. O' ~$ Z. J, a6 P
- R {$ w2 o% v& a: v5 y4 W! ~: J
#if __VER >= 11 // __SYS_PLAYER_DATA/ g7 ~& P0 w0 u) \ w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% Y7 t+ } @( O: l* v) x#else // __SYS_PLAYER_DATA
1 b5 e! _% {* U/ O3 B9 }( O# c g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 z8 Z4 T; W; @1 \3 V7 G, O% u! h
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 [* `$ R" a2 W2 c# {, H2 R+ J/ A if( m_idGuild != 0 )2 D1 P4 E) }: }1 {) {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ {& I# E9 N! y#endif // __SYS_PLAYER_DATA
4 t1 [; t7 U8 Y( \8 b- A, d SetHitPoint( GetMaxHitPoint() );
$ a1 `! R2 J' ?* C' ]! P: R3 s SetManaPoint( GetMaxManaPoint() );* F, c# F; I4 H
SetFatiguePoint( GetMaxFatiguePoint() );- ]; Y$ b$ E$ s
if( nJob >= 1 && nJob <= 4 )- L4 P/ o) A8 |( J" }& V
{5 t% p' {1 {% g% `; m
m_nStr = m_nSta = m_nDex = m_nInt = 15;; ]5 ]( ]( y$ n* L
m_nRemainGP = 28;
1 b+ c/ k- Y+ ^7 n }
" T. r: n" f8 |- m, l; u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) ~2 i& [) T( U9 D1 t
{
( Y- H# R) P. o' _/ V0 T0 | m_nRemainGP = 118;9 v/ v; A- x" G/ m% z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" ?" {9 c$ p# d, V, d# w. A m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 P' e/ `- [4 g, ~& ]" }9 n5 d }
8 H; u. ~/ U$ x" R! y) Q; S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ x4 n4 P% l: x
{
( l7 V. x0 g7 @3 T. F CItemElem itemelem;
2 m+ L2 ?' w& Z' P, u' g itemelem.m_nItemNum = 1;
2 [* M; }( h: |9 ?: f6 y itemelem.m_bCharged = TRUE;* u9 {# w( r4 |% {0 V7 O& C
BYTE nID;/ i2 |, H, L' X5 E% Y! p, q3 q
* S* B z1 |# D4 J if( nJob == JOB_MENTALIST_HERO )4 X; N" Y+ j P1 R' n0 b& S
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' v; E# @0 f4 Z Q7 h
if( nJob == JOB_FORCEMASTER_HERO )* S Y; x- T1 ?% L \# S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( t9 {: n2 a* u/ b q5 ^7 z6 x
9 h; A, x, ~* d- v/ ]; _6 [0 u ( ( CUser*)this)->CreateItem( &itemelem, &nID ); u4 e# m1 [" e6 U
} S! Y+ m4 B: P" S/ R! r1 a8 ?
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 V5 `3 q+ E4 u$ ]9 @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, ]& F2 W3 w) g$ z2 l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& a$ u1 Y6 t5 r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ n* g0 A; [4 @* b- c; C7 p
( (CUser*)this )->AddTaskBar();*/. K/ F! B! H: m* J! n& y/ t, J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: e0 k( ^( V f; t. L" l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# x2 n& } U) r( \0 [' U. M ((CUser*)this)->CheckHonorStat();+ R* C3 T6 R7 q% d! j/ y
((CUser*)this)->AddHonorListAck();- ~3 P5 R! q6 u9 H
g_UserMng.AddHonorTitleChange( this, m_nHonor);* V) q) T+ I) q+ g! m, g7 a' Z" _
#endif // __HONORABLE_TITLE // ′Tà?$ I; Z; v4 ^( D% W( i" L) Y- c7 q4 H
}
( ^7 d+ Y, V5 ~" j( ?5 `% s/ r% n#endif // __WORLDSERVER1 s0 b( ?' }" D, t8 c( F
} 0 {2 W% J% X) L. M
8 r1 j- e. d; X! g! l然后你进入functextcmd.cpp并添加以下2 y, j0 K( d j; {: \! Q5 O" p
/ H& h8 v8 V' C4 X6 K代码:6 I$ M) C! g/ h+ E+ z2 u( |# M J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). R% r( }1 c; g" W. q8 T
下面插入
2 ?. ?: c* g) f! }$ [2 M! h; UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' Y# S" L3 t% n, r" `% ^, t$ ]) }' q$ Q' k3 U0 o ?. ~
然后你去
h6 q' d* [+ U9 X* |! r
4 j% ]& i F. ]$ v4 c. V代码:3 H% Z5 [4 U; O
代码4 n3 p' S n8 t% p- K+ U
BOOL TextCmd_ClearPropose( CScanner & s )
, ?: q) }4 K5 U( X{1 {2 {: s0 ~; M x) Z
#ifdef __WORLDSERVER1 A$ B4 _: O6 {% ]
CUser* pUser = (CUser*)s.dwValue;
$ L2 C, M3 s* w# C7 D' u g_dpDBClient.SendClearPropose();1 G( r9 Z# H* s! a% q5 c
#endif // __WORLDSERVER
- N0 {* }6 I g8 J4 o& z1 C return TRUE;
) @( S$ M) g: i5 Y8 f}
. l5 q( \' }1 T- U: s下面插入8 h7 A( Y, @( J. X- |/ Y, p2 p2 V
BOOL TextCmd_rebirth( CScanner& scanner )
! m0 x0 {7 l7 N# _ D{3 O) T) B1 T) \0 S- l6 Q, M' Y
#ifdef __WORLDSERVER
4 {- J4 G2 x% UCUser *pUser;
' O' r9 }6 Y+ e9 w9 A( ipUser = (CUser*)scanner.dwValue;* d, u( s7 s3 Z0 Z& u" }
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ p% g J: B5 O: _2 y' {4 ?pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); Z% N7 I3 {& m
else
1 e) l% i8 N2 c) V, FpUser->AddText("你还未达到重生条件!");$ e! U1 Q; ~% {
#endif/ ~ ~; f% o$ i" c* m
return TRUE;5 F% Z, w" U8 A+ U2 B
} & e8 e! C0 g' a% W# c% m
8 n0 l8 \) u' I/ E
6 m3 b3 t+ ~7 j2 a8 _
, E0 |# S2 F: j% C) x
, }3 ^& G6 E3 c% m% n# i4 m _9 g; u( }
|
|