|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 w# Y r" Z7 S" m1 g; c
. b5 z0 W& R" ~0 \) A5 OMover.h* i {, F$ M* {
代码:. c7 G6 l5 L3 r2 p/ `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 _( N- `# y+ T. g' u4 B) Y0 w5 g" \4 I+ R: i5 n' t. T0 h ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' Q$ B7 I ?6 ]# _. e" }% W% H: w5 ?" f+ _' d, D$ c* x4 u; d$ ^
然后你去mover.cpp添加* P$ t' V& j6 d, e" l; u, k! S
6 O& n% J7 n* i9 ]1 q
代码:
( r+ z2 y. Z5 w( {' y6 I4 pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* s# A) X' d6 R
{. f2 H9 {# E/ g( R
#ifdef __WORLDSERVER4 A2 \# ~9 [$ s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' r. m$ v9 N8 K7 _; h* {
MoverProp* pProp = GetProp();+ j `( F5 q& {, C$ O( d, K
if( pProp )/ L# P3 I9 v( ^ i: W. s
{
) D: ]$ n& X6 V% j/ B if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# H4 e" ] ?/ ]: C/ S: {, o {" Y e/ i7 z3 K" S) _" [3 _1 w) O
AddChangeJob( nJob );
( ]* |+ Y* n/ D+ y! O ]7 _! v; C }else{
8 Z3 g! l/ Z5 P" F, J: _/ h return;
+ J$ S; m6 o" m5 Y5 K }
% V+ b: @( A, M: i0 Z int nPoint = 0;
: B! j4 Q( T: E8 a if( m_nJob == JOB_MERCENARY )5 s2 C! V; ~- P* i& z
nPoint += 40;" f: z/ j+ k: U9 M( a
else if( m_nJob == JOB_ACROBAT )2 h# a; f6 }& k$ m7 p! u m+ d
nPoint += 50;' K- B' s0 f! G9 [" Q- C
else if( m_nJob == JOB_ASSIST ); X5 t I x3 O6 m' x1 `) m& [
nPoint += 60;
: r/ s# e# R+ E- w4 ?% H5 a else if( m_nJob == JOB_MAGICIAN )
) [/ l/ R& O( P( h% ^ nPoint += 90;; n; C& y1 n: l& q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 L! j: n3 h# m2 e. r5 r% K
nPoint += 120;1 l! [! C5 \: u5 o' F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 R, W4 D* ]' d; E
nPoint += 150;
* u3 N) L2 B5 X6 C* o) i+ ~ else if( m_nJob == JOB_RINGMASTER )
' L, N* `; R/ x1 n3 I( B nPoint += 160;* ^' R, C( T; @6 s
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 K! n1 a! I$ e7 [/ K nPoint += 180;; L0 ]; E e' B) k5 _8 b
else if( m_nJob == JOB_ELEMENTOR ), u# S% {& i7 {3 k) K+ U$ Q5 W
nPoint += 390;
2 ?' G/ d9 i( i4 A- n1 a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: E g2 m4 R% A0 k7 d( ~ nPoint += 120;& U' P1 ~- b7 I2 O& Y; Q( u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( `' V: f/ I- e nPoint += 150;# W( o, c( x/ D8 |. Y! n2 R! m
else if( nJob == JOB_FLORIST_HERO )5 F. e8 r" j1 |( P' E9 {
nPoint += 160;* T3 m# E8 |) w. n2 I# Y$ R( j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), A( O3 `! _9 j0 \8 D9 `
nPoint += 180;9 {/ X+ x9 o: q0 I8 K' s, V
else if( nJob == JOB_ELEMENTORLORD_HERO )
% I" d) _, b' [# d. f nPoint += 390;- P2 r' m6 h# y& D3 r. w- M$ T
2 w% H) S1 m4 P6 m; i$ P AddSkillPoint( nPoint );
- S" ]: p: i+ z$ g m_nLevel = nLevel;
! c2 m, |) f1 D& i$ T" l8 p. a; i2 ]3 w
SetJobLevel( nLevel, nJob );) @+ ?+ v) V( ]
m_nDeathLevel = nLevel;2 T7 j7 j' W5 ]5 O! E9 ^( k, o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 d1 x4 j6 {$ O% p& W" B if(IsMaster())
5 P) f" ~# x5 p5 F6 R/ b {/ i3 O6 [% M% t6 t4 {2 z2 K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 i% x$ d: Q6 i: R% m& {' B; V& l6 b
if( nLevel > 59 && nLevel < 72 )3 {! c+ {4 ]$ D; D/ Y
dwTmpSkLevel = 1;$ j b& n$ m& Y8 k
else if( nLevel > 71 && nLevel < 84 ) N1 t% W$ g4 W& A9 h
dwTmpSkLevel = 2;
* }7 c0 Q4 h* c" K. a" z6 O else if( nLevel > 83 && nLevel < 96 )- z0 i! N: h) x# M7 Y
dwTmpSkLevel = 3;! K1 k. h1 W% z ~ R2 n8 e
else if( nLevel > 95 && nLevel < 108 )) D8 [) T0 H& W/ v& y9 {6 ~& V
dwTmpSkLevel = 4;8 A; A( P% B+ r" i0 c0 g' a
else if( nLevel > 107 && nLevel < 120 )
2 D- u* S8 K4 S, K( ]& U" C dwTmpSkLevel = 5;9 @! g$ G3 l) M& C! k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 j( i& V a$ D, t3 v
{
" o- V7 {! M* M2 K& j LPSKILL lpSkill = &(m_aJobSkill);' A6 B1 F8 \" c5 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 t# ~( N3 [' s O$ ?
{# w# S. g" k# \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 \. B2 L9 y5 b" P6 ~: V6 P+ l, V if( pSkillProp == NULL )
% [& \3 s; Q8 Z; o: I) } continue;
- ~ N# M8 z+ w3 E0 \% I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 f, M; N; I( h4 @( F continue;; J4 p( D: n+ }6 q3 P. m/ i
lpSkill->dwLevel = dwTmpSkLevel;5 p, w* y: \, D1 {' ^% y+ t1 n( v$ ~
}8 E/ x& K& ~& E# |9 { N( [" `
}4 k$ a: |% Y# [& F
}- Q4 q6 p* v* ?& W9 b1 L' x
else if(IsHero())
1 i3 @6 x9 s' f& S {8 J. ~6 \( ~( @& z, Y, g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* `; m7 Z d! L* @0 A. s {
1 Y$ e! u6 {. c% n7 Z* I7 r& U LPSKILL lpSkill = &(m_aJobSkill);2 z$ p0 e9 B- ~' K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 {% L5 c4 G5 W# F) Q% G' L {; O. H5 h# N3 W2 s$ ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 T1 `3 v" q2 W if( pSkillProp == NULL ), C; I+ v; {/ N; k! f
continue;, o$ P( ~: |/ k9 }* M5 h9 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; d. j& v( B. x% t' X0 U4 |; e$ p continue;8 _6 Y# H" ]8 B" ^4 l9 b& U
lpSkill->dwLevel = 5;/ g- h Z7 N# u, K# ^2 F3 m& k
}
( y# D6 u9 X, ^4 M7 D }0 k$ L! w4 M9 n5 A
}7 T8 O' D, l& {) E! A. R
else if(IsLegendHero())
5 G: v$ Y" i# D: k B! i# Q: u {
+ u1 u! m1 t3 j' L5 l& t4 [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) - k: ~6 p. W1 O f
{ + p) o F* E, k+ O5 @# k4 r5 S* k3 ^
LPSKILL lpSkill = &(m_aJobSkill);
6 b% R7 F4 l# e% t if( lpSkill && lpSkill->dwSkill != NULL_ID )3 ?' Z# M! A( }, Q9 Z$ x
{3 [ v2 Q3 s0 q# j9 i: P) x0 D) I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* `3 E; G( G# d) j9 | if( pSkillProp == NULL )2 C# a& G3 F' U' H- z
continue;
* f4 F% l, m, G1 g: R7 t if( pSkillProp->dwItemKind1 != JTYPE_MASTER) v3 E; D9 f& w G/ I7 |
continue;8 K; t: P/ [: }+ `: x- v1 Q# {1 M+ ?
lpSkill->dwLevel = 5;1 {* F- H& s; T7 H
}6 \' I8 l! R, J* l/ H2 d
}
5 Z& _0 V. H: F! e$ |0 a1 q$ i: A }
# d% V6 A, P, C" ?0 h+ S) f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: H! B% |2 p8 M7 A- a
if( bGamma )
& J3 X. G' W& X, B: f0 D3 e {
1 T9 x! d, L0 Q* k9 {3 M m_nExp1 = 0;! R$ w+ }$ E2 a7 s
}
$ {+ v! a# l( q$ u8 u$ C
$ N4 M3 u" E3 `. w, e2 I" A ( (CUser*)this )->AddSetChangeJob( nJob );
* N. }# f- D" s2 f. S8 r1 _& G- a g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
|* P+ ?% G7 ]4 _! x2 H( u5 v* x3 ^8 b# |4 p& Y2 ?2 L/ e
# P8 V$ b- m# Z7 }& z0 R" N#if __VER >= 11 // __SYS_PLAYER_DATA" C- F- b6 z% [' s& e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 ?" V, m7 V: b3 v: J) x
#else // __SYS_PLAYER_DATA
- j: ?- I, A, C9 E4 _' a g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( r% Y5 d# l. k. ?& ~' j$ O9 I: n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ ~6 s) w$ r: P+ \1 x4 ?0 {9 d, V6 E if( m_idGuild != 0 )3 \% b i8 e' q/ d) _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
I! n8 d1 o9 y, Y7 u+ g5 y#endif // __SYS_PLAYER_DATA" S ^5 ?1 l' F
SetHitPoint( GetMaxHitPoint() );3 e; T5 S/ d* x; m# K; Q3 n- L
SetManaPoint( GetMaxManaPoint() );+ H$ B9 x! P8 `
SetFatiguePoint( GetMaxFatiguePoint() );1 _ d) a" k9 P9 Z8 Y
if( nJob >= 1 && nJob <= 4 ): c! P6 E$ j1 l/ s
{
7 F4 R) s* q9 B3 t* Q: _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
: w- `4 T+ ]/ V2 z/ w$ K( ?! C d m_nRemainGP = 28;. C- T1 o% E" s2 _6 U5 \
}0 H& g" v- J; w8 q9 q9 f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 U5 l$ \0 y0 C* H {# [+ T& \# x9 |7 U' I6 k
m_nRemainGP = 118;, g4 h& t( y$ p3 S6 `/ {* t f# ]1 t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; I4 R4 c) {6 N. _. P" m- ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 m, M2 a' v9 H% |/ w6 a* R' E
}. d$ o; G6 n* B
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- M7 f) w" n5 |9 S+ O9 A {: m# s: |( z* j8 `, L% |$ f
CItemElem itemelem;" }1 I9 Q( ]. {" k @8 _- i/ D
itemelem.m_nItemNum = 1;
* v4 q Q5 P6 K0 x0 a# a3 h! F itemelem.m_bCharged = TRUE;
4 Z) K: o6 O. t BYTE nID;& `$ P5 F; @4 h; w
. A1 V( u- h, u if( nJob == JOB_MENTALIST_HERO )
% d+ B$ n) F# x+ p itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 h* |9 P8 ~: {9 m' O if( nJob == JOB_FORCEMASTER_HERO )0 Q/ k1 f: V3 n
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 U8 N: x4 r0 I( ]
$ e d3 B) @: \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# l; Y V8 u1 S$ X8 W }/ y }8 H: ]5 ^, R6 T' i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ ^. X# v& D9 |1 ~" Z2 N% r& v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); L8 t5 q% h3 K, Y) V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 r9 F) K$ y/ X( ~ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ q, ~/ _, r# H4 L8 Z2 { ( (CUser*)this )->AddTaskBar();*/, r& Q# y4 c, @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# |( T" d# [5 F$ S
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 ^4 L2 }: A/ K# P* j ((CUser*)this)->CheckHonorStat();0 B3 O# ]) i, A2 n! |4 ]
((CUser*)this)->AddHonorListAck();
+ z. A5 ~) Y" q5 q% v* u g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ D& S2 c( \& a1 @3 r#endif // __HONORABLE_TITLE // ′Tà?
. R g% ^# v7 Y% J$ k; A# ` }
Z# N8 a9 [( Q A" a! S) I#endif // __WORLDSERVER% b6 j+ X; h% a
}
) u: o" k2 a7 {2 ]9 v! T- [
* g0 z* `/ Z' |+ y" }( i5 V8 V然后你进入functextcmd.cpp并添加以下
9 Q- u; w3 T7 L7 f% {
8 J, F# U' n: H8 v, N: R4 u* W代码:
5 H1 X$ z/ k; _/ R$ f4 Y4 h$ CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- f, H/ I8 k! f4 O" a6 P下面插入' g/ g0 k- ^/ W% |2 b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' Z" a4 N( ?3 ^" A$ Q( @7 ~9 E3 ^ }5 G1 E9 j
然后你去
9 i5 g6 |$ ?; ?" h0 @/ S% q; p, W/ Q5 T
代码:; o# t5 m! @1 X
代码
# v$ N8 z8 W' C; SBOOL TextCmd_ClearPropose( CScanner & s )
5 ?. e8 m x0 M9 N{
0 Y7 Q! X3 t/ J W) F+ H#ifdef __WORLDSERVER
K& S. L9 l. o# H. c CUser* pUser = (CUser*)s.dwValue;
6 g! y b" I! r8 m7 v5 L+ ?0 z- l g_dpDBClient.SendClearPropose();
- z8 I$ M1 n! g: ?7 b#endif // __WORLDSERVER' f" F; y G8 e
return TRUE;3 m+ m' {! L9 a) b2 {7 Y. S0 l& a2 `
}
: `) i0 }3 u% Z! D1 _5 c. M0 k5 L, @/ z下面插入
7 \& |/ p8 c/ n6 t9 j& B6 g: ZBOOL TextCmd_rebirth( CScanner& scanner )
3 Y. b+ y& r) H: u6 L) n/ y{. }& G! L0 r# h0 N& y: G- G
#ifdef __WORLDSERVER# g! z' }- A& j4 m! U6 C( [! v
CUser *pUser;
, r. `" g" q6 X7 ~% Z: WpUser = (CUser*)scanner.dwValue;7 c! Y6 i5 V) N1 Q4 a+ L2 J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 [" }. n6 b! v6 a. f" T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); V3 R" t* w- Q% {
else& P0 Z& G/ m" c* ~( O, \7 _9 w" R
pUser->AddText("你还未达到重生条件!");4 V, E' Y D: o* @( R/ J5 p* @: m
#endif9 f' `& z4 M& o0 l* O1 S
return TRUE;
" H) h: c, z, r}
! }. m7 v. Z% p& t1 r) s0 i" V" v- u6 R* a
* I/ l( A1 \4 g: S& ?" R3 X" K+ k
3 p/ S6 c, m5 Y5 M" T( J5 g& H8 |/ Q8 N3 C9 P
3 S* o, D0 H: I% l6 }; F2 a, P8 K |
|