|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. ~- p9 L; H) V; `/ I
- j3 U: H3 |$ d" ]Mover.h3 t. V) M$ F' R
代码:; c) H7 `& ~) o8 W% _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: X5 g x6 U1 x$ ]' \
' K; b1 }8 x- B$ K+ y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
G% k# C5 \ z; n6 x
, b4 e0 F0 F1 p2 B) ^4 U5 w& h4 D然后你去mover.cpp添加$ ^9 h' U- K0 p \: P/ p+ S
; ?) X+ V0 B* m: F5 Q. T* W代码:
5 h6 P3 X7 d: [& B' K3 N( n$ Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ i4 n i O' q8 k4 I, ~{
6 @+ K8 ?( D$ z, G( [. z! ^& p: C#ifdef __WORLDSERVER
' n1 I9 Y: j. o: |. D4 o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 b4 |2 C* f7 ^ W8 i
MoverProp* pProp = GetProp();3 I" L# S0 O3 S# ]; D
if( pProp )( p3 k M/ R/ D! R6 m4 f7 U; z
{
' |' d, O2 M8 x' e7 |0 U u, { if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# m/ B$ T0 @) ]6 g G8 G {
( d5 O& A: n9 E AddChangeJob( nJob );- k b5 l2 A7 t1 i% F
}else{8 R( U* B* _) X
return;
1 C' E2 u9 K# ~0 [ }
3 m) v7 s2 n0 `3 c int nPoint = 0;
/ C* c/ Z* b4 ~8 S7 G if( m_nJob == JOB_MERCENARY )
4 D+ m8 Q5 G, |0 V6 J$ K nPoint += 40;# G' l9 D9 r( O% k3 p
else if( m_nJob == JOB_ACROBAT )
- i4 J2 P& {, a5 W0 B3 h nPoint += 50;
d7 `4 J6 t3 E1 A else if( m_nJob == JOB_ASSIST )' N n- C8 v0 E
nPoint += 60;
3 Z& q5 J! h( }1 F% f" @0 t% ?- { else if( m_nJob == JOB_MAGICIAN )
/ w/ i* `; m0 H- } nPoint += 90;
4 z, ]" `& w; L- i6 d* s, h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): N. q$ j4 {3 t; C
nPoint += 120;
4 {: _3 i# {3 I8 ]7 k! Y4 E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# b, L' w5 b! n nPoint += 150;3 Q: V+ D1 C! d
else if( m_nJob == JOB_RINGMASTER )2 D& M0 g' t1 D" o
nPoint += 160;/ o X( I; m' w% m' \ Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ w/ Q6 B/ Z# p* g( Y
nPoint += 180;' [" g5 y# C$ I( _
else if( m_nJob == JOB_ELEMENTOR )
$ S& H8 ]5 d* u3 m( b nPoint += 390;0 A% j& I3 Z, U. ?+ q. ?4 | a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. M T" W7 n( @2 X nPoint += 120;
+ Y2 a1 \% y' F8 a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 \, W( {# m u- c nPoint += 150;1 M" F \# C2 ^- F! A* i' C5 g* w- j
else if( nJob == JOB_FLORIST_HERO )
2 L/ g* `5 x* e nPoint += 160;
T$ n1 W9 `8 j else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( k/ ?/ n: O% b! ^6 [* q nPoint += 180;
" C! P# k3 \, x else if( nJob == JOB_ELEMENTORLORD_HERO )1 {3 Z d/ }4 ~! O. q' q9 Y
nPoint += 390;, G0 a: f/ C, _8 b$ |
4 z7 t& Z; P, y/ |( {4 _0 l
AddSkillPoint( nPoint );. d T0 ?& M/ F& k
m_nLevel = nLevel;7 D9 G0 J% k1 [" _- n' L8 l
. v$ s2 @7 D }. o! w) t: t
SetJobLevel( nLevel, nJob );% Z" I0 g) C/ j. n- u1 J$ \' U
m_nDeathLevel = nLevel; d: y# ?) d0 m# N( @* a& N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% k+ A3 d$ c; W3 d e if(IsMaster()). _' U7 A: U& A7 t
{% G: t2 z, ?- ]2 Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 ^$ n0 d z; n: k
if( nLevel > 59 && nLevel < 72 )7 ]% d' ~- @ s! P" e/ I
dwTmpSkLevel = 1;
' Q+ N" U0 `0 Y$ g# S else if( nLevel > 71 && nLevel < 84 )
6 m. U% C+ K9 s3 N8 e dwTmpSkLevel = 2;
3 P* E6 Z3 ]0 A2 O% ~0 |- l else if( nLevel > 83 && nLevel < 96 )' b. g' b% p7 _3 x2 `' s) @0 p
dwTmpSkLevel = 3;
+ _2 r y- l, h9 H else if( nLevel > 95 && nLevel < 108 )1 R! t" o: T+ n, R% j7 U( w# S0 ]
dwTmpSkLevel = 4;
# m4 t9 L+ ?; z L' l6 G else if( nLevel > 107 && nLevel < 120 )
3 O8 _/ W4 Y1 `; V: ^$ o dwTmpSkLevel = 5;
$ l; U+ T" u9 E# O' h/ g for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ n* i( [: f3 J* `. M2 i { & I, G2 X) n! a4 c, z
LPSKILL lpSkill = &(m_aJobSkill);; `! h2 v& m1 m" s- X, t% z' M& C: K
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 x, z7 C" L" [( S6 A! l3 d
{& V- _9 p4 G+ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ }6 H' h2 a2 V) {8 f
if( pSkillProp == NULL )
9 [! J* D0 d7 n7 Q4 S6 X# `/ F+ i continue;
* D ~" z2 m( }# } if( pSkillProp->dwItemKind1 != JTYPE_MASTER); F0 E6 A- O; }2 Z: z4 Z
continue;1 U0 L- Y1 r# [# [$ X+ Z
lpSkill->dwLevel = dwTmpSkLevel;7 [7 ]4 c/ @. a0 w, m+ X
}- q8 l! s6 m8 {5 `$ G9 Z7 j- |
}( g, m0 |" g1 E& B J
}
- k' b0 g9 O1 w3 E else if(IsHero())
+ n, U: L c2 O$ c- \- @ {" y. D+ ?( L% U: k0 K$ Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; w B6 K, V1 H- b( T8 h { - g+ }4 b N5 J8 g% R. X' l/ g
LPSKILL lpSkill = &(m_aJobSkill);/ ~, `5 `) N9 Z2 { v
if( lpSkill && lpSkill->dwSkill != NULL_ID ): ]% s) o% m% _3 G4 Z! ` D
{) ?; o/ A( u* n; S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); J0 }' r- w/ Z4 S; L" h g+ f# y& Q
if( pSkillProp == NULL )* g0 K& K1 x8 ^9 ^9 y: m
continue;% X8 j# L( x4 T" r1 E3 d9 Y# T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, E4 ~4 J' s. ~* } continue;
4 e9 q3 l& r9 V: E- r lpSkill->dwLevel = 5;
' F- e8 V- N+ D( S. W9 C }. D* w- N: y% ~ W `; S, E1 i
}
( c. |% h; o( t: ` }4 w3 \, w( R* X+ B
else if(IsLegendHero())5 g8 i+ R U( s' `6 y. p/ t
{
]0 R" Z/ T7 D. C/ F0 j for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 ^2 d" T* M* {2 b; y/ P { , M/ ~% p+ T/ G$ L1 k. n! Z' h
LPSKILL lpSkill = &(m_aJobSkill);
0 D: L; u7 P z# x$ X% l& f3 V- ] if( lpSkill && lpSkill->dwSkill != NULL_ID )" @ b8 s0 |. z5 S {
{1 m/ _7 ~. Q4 p2 I. a, w' \1 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 X) }9 J+ {+ n4 `1 b. A( s if( pSkillProp == NULL )
8 Y* K v, v! t% g1 p. n* _ continue;
' [8 {# s' @ U* M* |! x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 {& Z+ K+ i% L
continue;
) @3 j8 l, K4 s6 E O3 e( X0 ? lpSkill->dwLevel = 5;
8 \; @ Y6 [ m! j' W0 p8 L }/ v- K6 m6 L; Z+ O7 g
}
C" Q# ^) _ c }
9 L5 ?' A+ y/ u- K$ x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* e: M1 K" \+ ^" H* q
if( bGamma )
7 [# w$ K+ E2 S0 P {" M6 ~5 A; Y! U0 X
m_nExp1 = 0;
7 o- ~1 m6 p B; e6 | }
! b- U6 g2 V! @* B& ~' Y* t4 K/ ]1 A* t% z6 j: r- [1 j
( (CUser*)this )->AddSetChangeJob( nJob );+ h. d3 V. F) z9 ~, V0 d7 v( G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 a8 h7 ~8 s6 d- Y- ?. [- ^) R
( Y9 q0 A9 k/ ~9 U# x
, {# v5 }, @! N- }+ s/ j0 d+ }#if __VER >= 11 // __SYS_PLAYER_DATA
* m" y0 w- o8 u! p6 x g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" A" o2 R/ Q5 I2 Y! ?3 n8 r+ R#else // __SYS_PLAYER_DATA
. j% A4 @: W/ } [ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% d0 p# J# A+ y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: r; n, N+ X: A; i if( m_idGuild != 0 )7 Y& n; K [1 J1 a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; G3 Y/ J* h0 _+ W6 S
#endif // __SYS_PLAYER_DATA/ q+ {8 @8 E: } M
SetHitPoint( GetMaxHitPoint() );
. o5 e6 {, y2 G7 ^ SetManaPoint( GetMaxManaPoint() );
' d. O% o) ?4 y, x# \" o% R SetFatiguePoint( GetMaxFatiguePoint() );
3 R1 z6 B; K8 A5 W. t if( nJob >= 1 && nJob <= 4 )0 f$ X- D5 D1 l
{7 L l* O, a# F! \; ], h6 W# m
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 Q/ p) O* v& v
m_nRemainGP = 28;, y3 Y$ x/ ~$ K; z
}
3 j# B; h% T a+ w6 @! s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ M0 l# j" t1 j5 j3 B/ b# r: B
{
8 L5 ]# J- a. U. L4 A9 S* D m_nRemainGP = 118;
! l. M; E7 G+ L/ l4 M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 `7 g- f& F$ d* {% m7 K m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ Y ~5 P* A; B0 o) A$ \# U }
$ m7 f/ g6 a, L7 W# F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 n& r& h- m" A7 F3 M& c, q \ D
{
( F; O) |3 H2 d% o$ Y0 f CItemElem itemelem;
5 ?# M1 z; Y7 |8 V! g! e itemelem.m_nItemNum = 1;8 j6 i, x) S7 y! Z
itemelem.m_bCharged = TRUE;) f7 y9 }$ I+ q4 X
BYTE nID;
. l3 a8 i* Y1 K* K; w' j- ~% D7 ]. f
if( nJob == JOB_MENTALIST_HERO )
* \4 n) \$ ~. Y" T* J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 h* o2 j; S- o/ u Y+ r, r4 M
if( nJob == JOB_FORCEMASTER_HERO )( T9 V3 m* ~0 i6 X. b; M. C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 s% V) B E7 Y% p
; ^+ \0 _2 R9 B7 Q2 G
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* ]% K: |! h9 m# W8 _ a }/ G( Q- ]! Y" N) w. K! }! g; F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 T" ~! t: z1 H2 M$ U+ i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 B! E* _, r1 Y, X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. P8 N* B% n2 _# Y, [" m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ L9 q8 e; R* E# S8 b
( (CUser*)this )->AddTaskBar();*/$ E& L O2 v( G: K: o8 X: l( z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 u* Y9 K+ Z6 L v) {( J+ n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
A F; ]3 j/ |8 _ ((CUser*)this)->CheckHonorStat();' ^5 M9 `- Y$ b. }/ ]
((CUser*)this)->AddHonorListAck();9 X; m3 k4 n+ b9 k; j2 h; l$ U- \
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ h5 p7 o }# g7 O) _8 x G. w9 M#endif // __HONORABLE_TITLE // ′Tà?
) s0 U) V% j- U6 o }5 `* R3 P, C2 N: R
#endif // __WORLDSERVER2 I- ]# x) s% C5 L: c/ a d& z
}
/ w* E1 H3 }7 Q. Y1 @" O2 G [3 [" C5 `
然后你进入functextcmd.cpp并添加以下5 I o% q* X# {' e. v4 g
% y9 i3 O3 f w1 ^; _' H" k, P, |: m
代码:5 f( m% }9 W" S) s& D- V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! l0 `5 ?+ Y! S下面插入 |6 g3 q. w0 N+ N7 `- H6 q8 n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- Y [2 ~. q; D$ i4 B1 _
8 i% C, z( s4 r6 B; f6 T1 X* W然后你去
1 }' C0 O* m# {, S9 @
( a5 F3 x6 f; O; u代码:# a, }* ^ F/ ~. _' Y1 \
代码: H3 r& c; m1 U% S
BOOL TextCmd_ClearPropose( CScanner & s )
4 K" M1 @& B$ y6 R0 p{
$ n5 e& M) n, k6 o1 K+ o+ j#ifdef __WORLDSERVER
* y* F: H9 i: \8 C' c1 V CUser* pUser = (CUser*)s.dwValue;5 v2 V9 z4 n& h" b6 w
g_dpDBClient.SendClearPropose();, o* |; w) r8 f5 k. H- Q- S# P. p/ x
#endif // __WORLDSERVER1 ~/ t; s" e1 r% w$ |
return TRUE;: G/ f. f9 R6 P! a1 k+ h- r
}
- {1 P/ l6 O6 V" q4 h; N下面插入2 D! y, p l+ R$ @/ H7 D# ]' B
BOOL TextCmd_rebirth( CScanner& scanner )' ?0 I# U- ]# X, f$ u0 i
{
: t/ k$ m; Q+ L) U#ifdef __WORLDSERVER
0 Q/ _$ p+ O: PCUser *pUser;
) |9 s7 ?4 i* R& \# Y8 a! v) |pUser = (CUser*)scanner.dwValue;
1 Z% L0 K2 [" p& Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! z) F( i. {1 p& q; G3 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 o8 q1 ]: t9 T9 z* g6 r3 zelse$ \4 D9 I( S3 O5 ?
pUser->AddText("你还未达到重生条件!");& i$ D5 }$ Q5 _. X8 F- N
#endif6 I; R7 L) ?% J
return TRUE;
, `" M9 i8 p7 S; A- ]" Z} / Z2 S; Y' o7 H4 P7 M! G. h
5 A% e/ v) ]4 W$ v" T4 y: T& @. d: g9 t" y5 N
& p# X4 o4 p2 z' a8 g
( X5 m/ {; X+ n/ c; ` |
|