|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: V/ m- i7 [3 z; E$ {
' I/ w2 r3 y, gMover.h
3 z8 {8 L2 J- _, q" ~( r+ _代码:2 {- u9 ?9 k# ^( m. U# [# K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 Z& O- c$ S& ?' |
6 Y& r8 p3 \' y, X8 v8 B4 X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 V6 o2 \: C5 T0 r: N
2 @! W# ?- V) ]. Q* i然后你去mover.cpp添加
( h! F0 ^7 v1 T! s5 U( m
3 m6 I7 [) I9 b% W( L/ A7 y1 x h代码:
9 E" k0 C2 ^: F7 Q c* xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& l4 i1 Y7 t8 x: J
{
( U# G( S- g% s, s#ifdef __WORLDSERVER
/ Q* E0 a" k+ m) J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" E; ?/ _, t7 \$ m# u( N2 I MoverProp* pProp = GetProp();
7 v; A$ O( {1 w& q( F0 H if( pProp )4 U9 ]$ o- O8 |& ~/ {2 O8 c3 d
{
" e( q6 |$ X8 S. g. J* X, ?! g! M if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, W( c8 s; V8 K" w* H0 n0 w {) l1 z3 @- _/ R# W
AddChangeJob( nJob );9 Y0 K @1 z, R
}else{7 t. W; ^" [" n7 I+ Q$ S
return;" T2 }& J1 j3 }0 v* S
}5 X9 u4 {# ~/ I9 [& v0 f5 v
int nPoint = 0;
5 j/ V* G' M! g. T# Z0 I if( m_nJob == JOB_MERCENARY )
1 r! ~ N+ [( j: z# d9 K nPoint += 40;5 ?% `* U5 R7 j$ M2 X0 \$ d
else if( m_nJob == JOB_ACROBAT )
. I) d5 s! h; ~& I9 ^$ N! u: L nPoint += 50;
7 @4 A2 p7 p8 e6 m' n2 \8 w else if( m_nJob == JOB_ASSIST ). f/ c# N7 J" p3 @
nPoint += 60;
, p( f( Q1 a, x else if( m_nJob == JOB_MAGICIAN )
w& R5 x2 u0 R4 W( ] nPoint += 90;; i: F! O; S8 \ }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& ]5 x3 R% l( J D nPoint += 120;# y7 Y1 q- s9 `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 [' @8 y6 t6 P$ L3 }% g n nPoint += 150;- f2 a) E9 z6 {5 u3 ^/ [" r
else if( m_nJob == JOB_RINGMASTER )" p% v/ O* V2 F# h
nPoint += 160;
, H# j( ?, c) A% t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 o* B, P" B/ Y4 x nPoint += 180;, K' \; k7 q9 S! ^2 ^4 L
else if( m_nJob == JOB_ELEMENTOR )
' B1 |! d# g# Z" \ nPoint += 390;
5 Q* q9 K8 l m, y& R; N: y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 E6 F# i& W) a! k nPoint += 120;
) ]# H' |8 u' E. q+ k6 B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& F* b3 m; R4 D! D9 _. i* R: H1 r2 s
nPoint += 150;
- w# P6 q; A1 R8 P: _0 c) i5 u else if( nJob == JOB_FLORIST_HERO )
7 ^* G# x! Z, H" ]& B nPoint += 160;
8 i, t) v) I! `$ h8 z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ z, G% b1 v1 X- ]2 Y& b0 h nPoint += 180;1 S' F% i+ N8 [+ P/ w- c
else if( nJob == JOB_ELEMENTORLORD_HERO )0 N3 o/ g' x6 k1 h6 ^( e( T
nPoint += 390;6 O- p: G$ d7 C% K- r( _
* h8 h2 |! D8 l% L1 \/ [ AddSkillPoint( nPoint );# a' W, g& i0 t5 w6 n; G3 h
m_nLevel = nLevel;
4 x7 t* r* g+ e! @8 F% X6 ^2 o2 @) M2 l; D6 F! f/ o$ n
SetJobLevel( nLevel, nJob );2 U% v: \. `* O( t
m_nDeathLevel = nLevel;
7 a7 N# i. O' b% f9 E. ?" }#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) [3 C3 F& H7 Y, B* E" L
if(IsMaster())
9 Q7 ~, s i) `5 `* m( J; T5 | {
# |/ t0 a5 H1 A2 H/ P# X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ o v6 U' u+ s# u0 Q! K
if( nLevel > 59 && nLevel < 72 ); k2 P ?' ~; Z( }- D
dwTmpSkLevel = 1;
; t: m# s" e: {: v m4 u else if( nLevel > 71 && nLevel < 84 ). s6 \+ @5 t! ?- J2 v& a; k! _8 O
dwTmpSkLevel = 2;
2 \. P; w; t4 c- P3 Y8 t else if( nLevel > 83 && nLevel < 96 )
% H U: J8 ]' s% O' l- H dwTmpSkLevel = 3;
' t- ]/ Q4 G$ n, u else if( nLevel > 95 && nLevel < 108 )( m( O! w. f2 E2 ^) U; f3 k
dwTmpSkLevel = 4;
7 T8 S. N* w. U1 {% a7 a2 o else if( nLevel > 107 && nLevel < 120 )7 e. X1 u. t1 z: W
dwTmpSkLevel = 5;
3 A; A/ d: d2 F9 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 v0 l# K( x- O U0 b { $ q9 a$ s3 z: J! y
LPSKILL lpSkill = &(m_aJobSkill);
: l: G' X A9 V" z3 m if( lpSkill && lpSkill->dwSkill != NULL_ID )+ \, w( e5 Z( C2 o/ v3 u' K
{
8 e& l* {* U$ ~4 b a2 s: Y$ A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' k3 R% M& o1 G8 `% q if( pSkillProp == NULL ) G- P0 O0 {) W8 r! Z. ]& C
continue;% {# h3 g# n2 b5 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% D2 n5 U) w) K) _
continue;
; b4 N# c+ { g lpSkill->dwLevel = dwTmpSkLevel;
' z$ d: r5 |% T: g- k }
" _" Z# z1 z, Y2 q) x: `" J& E9 P }
) O5 K/ X6 z4 J2 z% X7 A/ Q1 T }( t5 K7 Z( J& n: |0 f/ m6 w ]( [
else if(IsHero())& W2 w0 A1 a$ n4 r1 L+ P0 ?6 Y
{; A9 D1 ]% O- |5 Z9 c# w- [8 m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) d- Z7 k2 n D, o! o$ }+ H
{
" [8 r3 j; s: B0 c+ A- h LPSKILL lpSkill = &(m_aJobSkill);& T' a% z- B7 O1 n" I) l ~' y
if( lpSkill && lpSkill->dwSkill != NULL_ID )% J. O5 D4 N+ y
{0 a1 ^5 p- r( n) D# q( V+ u* f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); }3 }" R* d7 h5 N
if( pSkillProp == NULL )1 ^5 m6 T: U7 I7 N
continue;* k3 v5 U* a, y$ Z1 Y, s0 W) d4 m% z: `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ?9 |4 _/ Q: E: | continue;( C: ?- p' X4 H5 u# D
lpSkill->dwLevel = 5;
+ u- T5 F5 c0 Z }
$ X8 W; A; Y+ i2 _+ F }
3 G4 c0 y, W$ e, l }1 B( S4 d9 K5 _9 k& E1 I% p. e
else if(IsLegendHero())
2 d) G3 x0 `( P u' d {
. }# Z; H6 s- N( h# W8 _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 c2 T# m- A+ p) `7 n/ [+ P {
" v5 ^9 h; `) y( s LPSKILL lpSkill = &(m_aJobSkill);
9 ?5 u2 ]/ O2 q, m- ]9 y if( lpSkill && lpSkill->dwSkill != NULL_ID )& L7 h4 U6 d. e/ Y
{
6 c# o. A+ K0 T2 [1 f6 H% k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% a! d" M% K" i9 K3 S4 C+ i if( pSkillProp == NULL )
F. P* c: w# A# b+ m continue; ` p5 A) ~! t! _$ z7 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) K3 Z m1 S, }& a continue;
9 K! H# E* l0 _5 G% l, W lpSkill->dwLevel = 5;7 N* E% f. ?! d6 T
}
6 q2 Q# A' d5 d$ J. k }, n2 C M& b* e
}
' i* V5 |/ V; ~7 W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* t! ^- G& `5 A9 t if( bGamma )( R: M3 e7 b; {4 u# Q; w
{ D' b q0 `( L5 h- o( l
m_nExp1 = 0;
) x0 \$ y* Y v! H y } }
8 Z* Z2 O$ o! s' ~( s
, w% [! Y0 P6 v8 f: T* ~* a. v" N ( (CUser*)this )->AddSetChangeJob( nJob );4 r( E7 q, `' F% @5 s5 z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ f: x* {" J- L. x6 G" s5 _( }8 j
, y+ f* `8 {! k# ~- \
- D; C" S" L, m0 t; z _% I8 V' w#if __VER >= 11 // __SYS_PLAYER_DATA0 L) V, S4 v8 l0 Z0 ^, W: o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. D8 k3 f3 H6 N$ r0 @#else // __SYS_PLAYER_DATA
; l3 M6 w9 X1 ^ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* n" I$ s @5 ?! @& a) h( f1 p; C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) X0 Q# M" S5 h
if( m_idGuild != 0 )
) T' S+ x+ ^, Y/ M" H+ K. W g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 e% L: d! T9 r1 W/ i2 |
#endif // __SYS_PLAYER_DATA
0 Y G8 K! c7 r& W9 x* a SetHitPoint( GetMaxHitPoint() );
+ E8 e7 A7 o) D* A$ u t SetManaPoint( GetMaxManaPoint() );
, A' m; S/ q j* Z6 q" L SetFatiguePoint( GetMaxFatiguePoint() );; F" b! d5 R6 Q- l( q
if( nJob >= 1 && nJob <= 4 )
; y8 T$ S6 M M5 C& O: F5 H/ `) a {
7 ?# A& T4 B J9 a9 Q4 S) G9 i( l8 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 L7 M2 b3 }5 n6 l m_nRemainGP = 28;) q K8 D4 l9 [! D2 ^
}
: Y: o6 {* ^1 N5 S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 w4 _/ o/ T, e, H0 y! n {
g% b* v2 O7 W) U m_nRemainGP = 118;
/ C8 Z: ~6 T* |$ V& b6 ` //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ g$ C3 M, I) s$ V% c- M) h
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) r/ Z$ B* y4 \2 r8 U }- W# j) [1 C" `' q5 X& E6 {6 u3 z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% q Q4 u o# W5 n' d
{
. n2 ]# G& D% ^1 m! A- ^* \ CItemElem itemelem;
* c1 n! @) A' |' h itemelem.m_nItemNum = 1;
! q6 t# i: R! b% V itemelem.m_bCharged = TRUE;
& x4 d6 }! F: ^( d' p" F BYTE nID;' E6 `1 f7 X( `* C0 Z% S. P
- q' b$ T; B7 J& K$ J
if( nJob == JOB_MENTALIST_HERO )
0 S: U/ N- X! R& ~2 j" ~4 e itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, ]3 ?6 c$ \/ f8 [, u if( nJob == JOB_FORCEMASTER_HERO )/ K& T5 \+ Q0 e' j$ A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 J. F7 M$ u( v+ O d @
( s" W! Z3 W1 { ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% E0 j7 T8 f2 U5 C( j' I }: d3 W+ F) F4 K$ X6 D3 e8 f+ d2 j
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 j# G9 U7 c0 P0 U9 }# O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( a- R6 B0 x. x& Y1 M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: {' ~/ K- }9 _* ~. y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% S* I) ~$ Y' i) ~4 I ( (CUser*)this )->AddTaskBar();*/
! K+ n$ p! U, ]# G, d4 _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ s% w0 c7 L0 h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ A6 X4 j0 y# `0 h- M+ \ ((CUser*)this)->CheckHonorStat();( J4 L0 J6 e* }0 L3 v
((CUser*)this)->AddHonorListAck();
+ C: |, s7 f F; y& W5 a3 O8 R1 q g_UserMng.AddHonorTitleChange( this, m_nHonor);, g* q0 ?/ @) {3 _ C0 t
#endif // __HONORABLE_TITLE // ′Tà?
3 f4 Y6 A) \4 z6 r- l6 \7 v9 @7 O d }
" U: ^$ g- G8 Y#endif // __WORLDSERVER! W, ^* e3 v. n" ]3 D1 N
} ' n; i9 N, k- A6 v" F! K8 z1 ]6 L$ O8 Y
! X4 S: m, A% J# M" F然后你进入functextcmd.cpp并添加以下
7 ~, K4 k7 Q, D- A/ z7 ]/ ]. ?, ]' d2 t# \2 F8 m" p! |2 x
代码:
! H* p5 ^) `; ~/ B2 P3 \0 bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 Y4 {; N$ ~- t& z% i下面插入
5 G3 j# ?/ U' f' s$ mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 z5 |' H$ G4 Q$ T
/ k E( Q9 L' s然后你去
) ` f' O: I: ]( F. I! @* V( _
% h4 q: ]( A! I) H$ [, U9 ?代码:4 n8 ~5 M- a3 }* j3 C( X8 p2 n
代码
% T# t; J( r. N+ e( p, n1 M7 k) ?BOOL TextCmd_ClearPropose( CScanner & s )
$ t/ M' e& H( R' b7 s: ~{7 x5 B9 [3 T4 k0 O$ S9 a( K( ^! S
#ifdef __WORLDSERVER
& W( u% ~5 l6 p; I: u. k CUser* pUser = (CUser*)s.dwValue;
0 I4 m1 g4 r/ q- _$ z g_dpDBClient.SendClearPropose();
. @$ ?5 Z4 B! P9 [- I( z7 A3 p#endif // __WORLDSERVER
" n3 m; e( g* u return TRUE;5 j/ x5 o% G6 [6 |: @
}
- q/ v' e7 H! F2 ~下面插入
: |( n) Q Q' h* J, mBOOL TextCmd_rebirth( CScanner& scanner )0 U+ ]9 @4 O! l1 x+ q$ \
{; [0 h' D- I5 e$ V% z6 K
#ifdef __WORLDSERVER
% i m* r2 l1 c" OCUser *pUser;
- H8 _: k+ O/ _, EpUser = (CUser*)scanner.dwValue;
$ k% @+ G" }+ M3 Y, ?2 Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 F1 A/ U- i( n7 _6 E9 w; ZpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. z- G$ J( a8 H5 r
else V# Z0 c) X! d1 |& `; ~7 r2 \
pUser->AddText("你还未达到重生条件!");
, A$ ~6 g' d' T3 N9 _: Y#endif
4 J9 z- i8 L; freturn TRUE;
9 U) i$ y) S& [( O, G& }2 [} 6 L- x' M" R! d8 f% U
) j6 z9 F$ Y ?
4 W, o4 K' B' ~' P2 y# Z' h# M$ ~
- { K/ y5 L& W6 ` d ~- r3 |
|
|