|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" h2 h, M1 \ m+ K. ^1 u- J" F9 b5 ^! d& B
Mover.h
' e- x# c# q4 H/ o代码:
3 a% e" l5 h. W: L J1 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü g* r' `8 B/ w* X
& e, A$ y; s5 q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - c' {1 A( J) `8 Q* g
: q# w) k- O& B4 Y
然后你去mover.cpp添加- T/ p5 X, q0 P! k3 T/ M* q
% C7 @$ h! @7 {. m/ N- L代码:7 h& j" E$ L- ^& k6 O( e
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, y+ U7 [) L$ x* V' {9 S- r{
: Q3 j. C! e3 ^; E# J% m( e#ifdef __WORLDSERVER
/ Y# V! y, p0 g: h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! t+ X* Y9 E8 p, d
MoverProp* pProp = GetProp();
" O1 t5 Z( m0 D% S# k" B! m0 C- w if( pProp )9 {# d. ]5 O+ A9 G
{$ l) E/ m3 `3 J ~. ~+ t
if( nJob > 0 && nJob < MAX_LEGEND_HERO ). L2 t* t- X& {. W8 r8 J
{
+ ?2 @. ~" G# V3 ]! V AddChangeJob( nJob );
- u# }. K' t9 G' J/ ?/ K! Z. D/ ] }else{
) \& ^2 p. r$ j return;5 w" f( @- e" P
}1 T# l+ K# U, b, q& h
int nPoint = 0;0 p* H6 [1 L7 N" Z l
if( m_nJob == JOB_MERCENARY ); g- P( |4 j( W) I2 j3 X9 l5 i! K
nPoint += 40;
' ?) N6 p4 ` V5 `5 W# w% U else if( m_nJob == JOB_ACROBAT )
' L- a% ~6 I, V1 c nPoint += 50;
$ i" E4 o9 n7 {2 p- @ else if( m_nJob == JOB_ASSIST ) j: h9 z3 M( V! j% _; c T" l
nPoint += 60;
8 `8 D8 Q# ^7 p else if( m_nJob == JOB_MAGICIAN )% F8 c* Y$ c5 E& \$ u8 u% o- e/ [
nPoint += 90;; ^2 E! V% A- |2 l
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! I0 R, C% x4 c! L) c( \
nPoint += 120;
* ^0 F1 V0 y+ [, Y3 V' s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 O, o4 {8 b9 t' f5 \
nPoint += 150;
! }( u" W- X2 \6 i! K. J else if( m_nJob == JOB_RINGMASTER )
+ h2 A5 O% \; r7 U3 E( M! w- m$ \ nPoint += 160;
' m& A; Q5 A6 U& G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* b; N r% r5 a' O0 m+ N
nPoint += 180;' K5 M5 M* a8 |. a0 y$ w
else if( m_nJob == JOB_ELEMENTOR )/ J4 \4 [' z- y; r7 R
nPoint += 390;
, B8 u) |1 x6 g; _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& c3 s2 [2 `$ E/ z N: v nPoint += 120;' h; N" S" m3 o) F) p; O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- v- ?. z3 i& S% ` nPoint += 150;
4 A- E: h& C/ L& B O3 k else if( nJob == JOB_FLORIST_HERO )
V4 q. T% {( {% S nPoint += 160;3 f" z Y4 o3 A# |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ ~0 h0 J- x" B5 R0 m! E7 [
nPoint += 180;/ C6 P+ j9 d9 i- u/ `4 ]
else if( nJob == JOB_ELEMENTORLORD_HERO )# n7 T+ m: Q2 t& k
nPoint += 390;
R. @) u# D* E# T6 \
0 ^( A$ W9 E: z7 a AddSkillPoint( nPoint );8 h, w2 ?8 h: Q
m_nLevel = nLevel;
% `4 j0 N. |" a1 f [- u
8 B2 L! H. _$ K8 K' c: \ SetJobLevel( nLevel, nJob );$ }& \, n+ o5 d t
m_nDeathLevel = nLevel;
L, L# U: ], ~" I$ N; R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 a! t* b* B5 n0 Z" S
if(IsMaster())
5 l( ^ C I1 i- I" A {- y3 d4 C8 N7 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ F+ K0 \5 u4 P b7 \+ s% N if( nLevel > 59 && nLevel < 72 )& I! r- W3 g; k: r7 x7 y. B
dwTmpSkLevel = 1;) \# k( o! i. M5 K
else if( nLevel > 71 && nLevel < 84 )% O$ q' n3 `3 P! i, ~2 {
dwTmpSkLevel = 2;
5 y1 B: A1 u0 K g7 U9 ?( A else if( nLevel > 83 && nLevel < 96 )
3 s) d& s& G- P& Q, X- x3 j9 D5 Y dwTmpSkLevel = 3;
; i, n1 @2 K8 _! \/ W else if( nLevel > 95 && nLevel < 108 )
- h* {6 X: S6 P8 m% V/ x dwTmpSkLevel = 4;2 W% s+ F# K: m/ e7 |" ~, E
else if( nLevel > 107 && nLevel < 120 )
+ u) c+ g+ O e: b dwTmpSkLevel = 5;
9 {3 K3 L& l1 P for( int i = 0; i < MAX_SKILL_JOB; i++ )
* W$ x! |3 M. v4 F& L T; [ {
" S/ r! y1 A* s* Q LPSKILL lpSkill = &(m_aJobSkill);. m" u$ ^$ N1 W7 r7 ?6 Z8 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )! {) t7 o( q4 a- j5 b
{
/ R$ n8 n) {! ?( S" {: M4 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' Z$ P( k5 I9 _1 ^1 i if( pSkillProp == NULL )
8 x' p) ^4 Z" `9 Y) @7 \3 } O continue;1 F5 l H: Z) `+ \& E# d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ u" f; v6 a1 b: B7 ~* |, S
continue;# L" S$ A9 A* g6 Y* B, F
lpSkill->dwLevel = dwTmpSkLevel;' Q& U5 P5 c6 s; q4 k4 `$ O1 }
}+ ~, L' X- m( z. s+ w
}1 i( ]4 \3 G+ c. ] t9 d
}& r" K7 p `) k$ N: u! n: _+ S' B
else if(IsHero())
C9 w* w+ ^$ [- `. [ {
/ o+ o% J6 G0 E* V for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 }& c& }! N5 H, l+ p# R { ' q# M/ h' b0 e0 g, ~% v4 p5 u
LPSKILL lpSkill = &(m_aJobSkill);
6 t3 E' U/ k3 n if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 x9 u2 a2 \$ @: y/ i0 l+ m( Y: l' m {
% K3 A3 k7 d/ d& X. H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% C4 c, `3 x" D- g( ^( q+ N5 | if( pSkillProp == NULL )
, F! w( j' p, q' A continue;/ @7 ]1 [7 [2 S1 I# i0 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* b+ ]% V5 p' q! ]
continue;, N9 o4 f7 I4 [& x
lpSkill->dwLevel = 5;. j5 F, d- W; l; [2 J1 O
}
% ~- F1 L6 b; ~6 K }! X$ I! x7 }# ?# s
}3 C7 o3 u3 T; C+ e3 Q$ Y7 n) ?" F
else if(IsLegendHero())
! M' m6 \0 q. J" o d {
. {3 G4 Q# n3 R2 o( e% _! d i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 x4 b' P6 S0 ~+ O0 @/ p4 z
{ 6 ^1 ~) [6 ~' X* C5 {3 _
LPSKILL lpSkill = &(m_aJobSkill);4 }' `4 p6 R& J+ }
if( lpSkill && lpSkill->dwSkill != NULL_ID )) l8 h3 f6 Z8 r4 E4 C" `- J
{
6 l% G4 O) I) ^: K2 I3 {* @5 n: k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 D2 `$ V& Y$ X! e$ K if( pSkillProp == NULL )" }& q& `6 i+ V2 M' F
continue;: `6 E. V# e- \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 d$ [, H% L/ H1 k6 L5 ~
continue; ]6 P' Y' }8 O% I# A
lpSkill->dwLevel = 5;" N2 I" w6 m1 g; C* s3 y& K$ V0 y
}
: U' k1 W' ]* R$ W9 Z d' C5 f }
& Y# ?' {8 Y9 c5 d }2 @- a/ `+ H; M! K3 t: i: v/ D# i
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; ~5 v; \! U- o3 H& E
if( bGamma ), S3 i5 B% a( f. |, M
{
4 A( B; ]: a& N/ L: K m_nExp1 = 0;" U. v. N1 O; o1 o8 u2 k
}
' N& M/ M5 y- c% z, f7 c3 E/ g8 S3 W
( (CUser*)this )->AddSetChangeJob( nJob );' F) x. F% ~2 {. @7 Z! }; v; L0 a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 [* g5 u+ E" o. h. D9 W1 \- u; [8 V2 k8 A B8 ^* q
6 `0 o( P+ Y9 u4 e+ q
#if __VER >= 11 // __SYS_PLAYER_DATA% z: p p, w# U% _0 Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 v& c/ v9 A$ b6 a( K
#else // __SYS_PLAYER_DATA
q. K9 O; V: S8 `3 |' V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! n) ~7 l% r0 x: ~/ a2 B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ }5 X5 }( b2 H* ?9 S4 L if( m_idGuild != 0 )- }4 D( T& a5 _7 c* S
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ S! E8 X, I" k0 V
#endif // __SYS_PLAYER_DATA
' C' f6 o1 k9 n SetHitPoint( GetMaxHitPoint() );
+ [! o$ A" E& y1 M5 Z SetManaPoint( GetMaxManaPoint() );
1 }/ R& z" \) ?- H# Q# {) f SetFatiguePoint( GetMaxFatiguePoint() );8 ?$ g. E- Q) H- G6 }
if( nJob >= 1 && nJob <= 4 )
; ^# W1 @9 F) `# X {* |1 H) Z; J# Y5 C/ G1 k) C
m_nStr = m_nSta = m_nDex = m_nInt = 15;* p9 v" ]5 _8 v" _) j+ q! e5 x
m_nRemainGP = 28;! f( {/ n) K2 F" J5 g
}& n! }3 {7 S. P' F7 \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 C9 d% K% r1 g$ }
{
1 @7 E% |1 b/ C9 N% j m_nRemainGP = 118;
! v1 U% _4 E1 t& V+ c. A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 p" a1 Z- y" ` f: u1 ~" b9 y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 K8 L2 O ]& O" U# m! ~ }
' i7 @1 r2 C5 e l5 \( h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): a: G+ A, `# [; k
{. j7 W, s) D% l) U: i9 W+ p
CItemElem itemelem;+ N P8 P' x" a* {! O
itemelem.m_nItemNum = 1;1 B L8 h7 r% |7 c& Y
itemelem.m_bCharged = TRUE;
# L8 s$ N* S9 ^! b% {' I3 n BYTE nID;
, N8 Y' p; e; B1 F/ L: O# F5 Z! |+ q6 U
if( nJob == JOB_MENTALIST_HERO )& ~9 e @% ~$ J! g2 @% I. h+ L
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; p6 v8 v: g/ q
if( nJob == JOB_FORCEMASTER_HERO )9 q/ e4 h* C S/ L8 [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) @3 Z' z" _4 u% y
8 }0 i, f. n u3 Q5 X3 Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 S& @5 K M X; [5 ]( a) o
}
2 z* \+ V q# I g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 z$ S! k: n/ [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 k- }3 ^0 e- m5 ?$ ]# \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! `3 X0 e7 q& g. w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( V2 O' z. ]' e% u
( (CUser*)this )->AddTaskBar();*/- Q# _2 B! U/ }) D B! Y. s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- `1 Z% V' N0 N4 E5 X+ o% R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" X0 F; K6 p+ X5 H3 Y ((CUser*)this)->CheckHonorStat();4 X5 [9 C0 ^3 a
((CUser*)this)->AddHonorListAck();$ _9 A2 `7 R1 E S1 l4 P- h
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 n% J r i3 J8 L n2 c
#endif // __HONORABLE_TITLE // ′Tà?
" ?6 g" h6 t: T }+ L7 e, X3 \$ d) W: S. n
#endif // __WORLDSERVER
' {) a7 N" p7 ~! r0 p* I} ) B: S& b% w) {" ~% \
* z% ^. b |# B8 C然后你进入functextcmd.cpp并添加以下' A$ k; Z# H0 X* c- ` D t! m
: B# ]; D U. i$ B) m" F ^代码:" i1 U) N" a+ H% t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 c7 g( {$ s3 B3 Q- `% U
下面插入
3 E* g9 ~9 r4 w2 e: J xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' v, ^* Q) R) f4 t4 \5 D& C' M! k8 q
# s6 `+ u" O$ t7 B+ B$ E然后你去 ~. P( F# S) @) i. n
6 V I; d* _" M
代码:/ d6 s( L- Z$ o) s
代码9 ?+ k( b: h" H) N. ?- t4 r/ q. y3 l3 h$ \
BOOL TextCmd_ClearPropose( CScanner & s )
* j2 J8 O3 h" h7 c% j; w9 i4 Q{
8 I- |$ O4 f- b+ P: o9 A#ifdef __WORLDSERVER
2 T" h2 Q6 H7 Y* B5 X CUser* pUser = (CUser*)s.dwValue;5 d7 m6 A, u: a) M: z
g_dpDBClient.SendClearPropose();% `+ d I% g1 B) J
#endif // __WORLDSERVER) @, O/ h; F& p7 h# Q: h
return TRUE;# U. v M/ J1 l9 _% r8 D
}
6 Y- E3 g% E5 M* k1 w1 k( t$ }下面插入
% n+ e! _" f9 Y+ m0 k) `) E- iBOOL TextCmd_rebirth( CScanner& scanner )9 V, I7 k0 B$ ^) q* r3 O% }, R
{& Z# Y+ A& ?4 |; e d( z1 P
#ifdef __WORLDSERVER6 w) P3 Y& p* J/ O0 L
CUser *pUser;9 o. W6 k) y# r# ^) [# d* ?) j2 y& E
pUser = (CUser*)scanner.dwValue;$ [& T7 X' z# z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): `9 C& H' K- p* T, R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% `+ M) d; o# c; Q, h' g. n4 X! ` ~else, Y! l3 B; J' C$ f, s
pUser->AddText("你还未达到重生条件!");! I% {: g0 s) S$ `5 ~
#endif8 k- @" N* `* `% W0 K+ o
return TRUE;* Z4 q, i# I# S: {6 c
}
; O6 O: {: r3 z) n& P) g& \' v6 z1 R K- }' T
F! I3 {' C& F" {' r: o4 h9 C( ]- L( n$ f" Y5 l& B
" o+ U) O+ [ k0 M7 d% M! \
|
|