|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. ]! Y0 p. U) {& n' R) }( f& t
! V2 A( U4 B! f" B# v8 [( mMover.h
1 a3 L6 V& y/ }' H9 N代码:- N6 P3 n e) C! P" `8 K! Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ i$ B# |- R, Y r
7 v! h! @0 r& }3 ?* _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; j. s& h& \% v4 c( V
- S! f5 s- h: I% t; |' ^然后你去mover.cpp添加2 v1 r0 M- z. q) p1 d' w) O' F
9 o! p! P5 R% z. p: D S; K代码:
& q% ?* \9 R& J$ I) Pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). ]. ~8 }# g# q" S
{
! c6 T3 k2 H3 ]2 r1 l#ifdef __WORLDSERVER; q/ F" @0 T& N4 |; {6 H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
h8 I% C, ]6 J) U& C G/ q MoverProp* pProp = GetProp();
/ q/ Q$ u4 q/ p7 n" c1 K" c! H if( pProp )7 b1 u9 E% h r9 r9 P
{
0 b; w2 K0 N( M1 F& m* U# f7 y/ s1 B# w if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- m) {. t% A: b% U2 M F* i {" C$ d: b, A5 r) V
AddChangeJob( nJob );
' h0 G* @5 ?& Q4 c. e }else{
/ D. \2 ~; t9 _) Q! z1 m& t return;, }& |9 b3 ]) F$ S
}
& F$ |+ T: i& E* z int nPoint = 0;- X5 U) ?2 L( @0 ]+ N
if( m_nJob == JOB_MERCENARY )' E# g. f/ y5 H8 D; m
nPoint += 40;" l* k+ J* A7 {& U m
else if( m_nJob == JOB_ACROBAT )% [4 b+ I- v# i3 N4 E0 E) b: H* e1 p
nPoint += 50;
# d% b6 m1 z0 n1 _6 p else if( m_nJob == JOB_ASSIST )
! a$ f: ?+ b6 g: ^7 j8 w& z& N nPoint += 60;( X' \4 p/ b0 k6 k6 u* A
else if( m_nJob == JOB_MAGICIAN )2 _+ M' y: E7 e+ B0 z+ i
nPoint += 90;
9 k3 l* _6 z$ Y! U# q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 h6 C0 C% o! ?8 C K
nPoint += 120;
# I0 Q; z# Y3 W3 S3 \& S; |9 x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ y' K- q* Q, H& c. F) x" f9 _ nPoint += 150;
4 \ B5 j' p X% U" h! X else if( m_nJob == JOB_RINGMASTER ) v" H8 J' G- J" B D( z/ L: S
nPoint += 160;
& D+ B4 K9 H* _' o! e" @ M9 ~. C else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) e* A& {* z! J; e4 a3 w nPoint += 180;
^# @, L; ~! Z! P else if( m_nJob == JOB_ELEMENTOR )% d3 s1 i0 {, a: E7 h
nPoint += 390;; t! N! I) [8 O, @) G, k
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* ]9 u7 }' m0 g. ?9 F
nPoint += 120;
7 ]+ r; w1 V: Y+ u, T5 X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 U) q* H$ i3 r: A" V; x+ E
nPoint += 150;* `! o2 t2 G O4 B( [) ^& c
else if( nJob == JOB_FLORIST_HERO )8 `+ G: y" \$ X$ ] L9 Z
nPoint += 160;5 c: s" T2 n& G% P% [3 k, }- O% ?2 v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 H6 Y" G( q* ^' M6 B; b8 @' n3 r
nPoint += 180;' x+ J9 o; `; D) E. S
else if( nJob == JOB_ELEMENTORLORD_HERO )7 N& _4 J) [0 M0 r
nPoint += 390;
4 }) j- v c# x) B" o4 [1 w* r- I" R7 q" `+ i, J. i
AddSkillPoint( nPoint );
" t u" i3 a" p# P( K& o' \# b1 H2 A, m m_nLevel = nLevel;
- y" i, B+ K: g3 w. L( D. o* X# `' I& q+ O7 E7 r
SetJobLevel( nLevel, nJob );2 u$ _9 `: C+ R% u- E) A
m_nDeathLevel = nLevel;
+ X- Q8 t: A r& Y! p9 q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. y' @7 x( z7 {3 \6 c# V1 R: {
if(IsMaster())6 n$ s" i- V* {( ~0 Z
{* _9 G8 a( S( y* ^2 A K$ g, H4 I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 [+ U X+ X* q/ A if( nLevel > 59 && nLevel < 72 )- j+ |; \% z! n% T& V% j) `1 K4 F7 R2 m6 i
dwTmpSkLevel = 1;5 s+ W0 U ^: n& L3 C5 O( Y
else if( nLevel > 71 && nLevel < 84 )
4 J3 l. I1 t. \- x dwTmpSkLevel = 2; X) O( ^$ {+ W m; j0 ]
else if( nLevel > 83 && nLevel < 96 )) G- t+ R% s7 X. i3 B
dwTmpSkLevel = 3;
' }" ^) y& F; N$ \$ W# j else if( nLevel > 95 && nLevel < 108 )
5 O8 ^2 c$ q: [' ^+ w' m+ F dwTmpSkLevel = 4;
! E9 f* d/ R/ U! V else if( nLevel > 107 && nLevel < 120 )
- o8 J& e$ q( ]! V' h dwTmpSkLevel = 5;
$ s' _7 m; e( w& q4 U1 w9 _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 b' I9 g4 |# f8 q; m- i' d {
' S; G/ o- u/ H* E3 N q9 N LPSKILL lpSkill = &(m_aJobSkill);
5 \, R9 z4 Q u! v if( lpSkill && lpSkill->dwSkill != NULL_ID )4 x" N- |2 Y1 ^3 o
{; x. q% @7 {# }7 }+ ^ f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / |3 q, [' L2 y. E" K; N
if( pSkillProp == NULL )
! e1 t0 q0 r& F+ e, T0 K2 E continue;
; W' h# M4 C- O. t" B/ ?6 U) S if( pSkillProp->dwItemKind1 != JTYPE_MASTER): u! r( n, `) M
continue;
+ q1 x5 u1 W4 E9 ] lpSkill->dwLevel = dwTmpSkLevel;
' _$ ~1 d9 Q, Q* R" e4 Q0 e3 o- A4 V7 e5 i }
* l( X* f( @& M$ s* L; { }
# Z4 a& H& L6 y9 D }
6 e; K, E5 w) t0 X else if(IsHero())
; ~: a2 `0 j: j {' V# c/ i9 U/ T: j! ~4 k0 P. G, G" x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% Q8 i; Q( O; T, J* F; w {
& \0 Y: S8 _& j, G2 T1 J LPSKILL lpSkill = &(m_aJobSkill);
" R1 |4 q) N, z! C if( lpSkill && lpSkill->dwSkill != NULL_ID )3 f3 H4 O6 X) M6 G% i
{. i; n+ r9 o! w* I$ q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 ^+ `; M T; u5 q3 k9 Y8 a if( pSkillProp == NULL )! |+ k8 n. l9 W- }6 _# r
continue;
! T( [/ h, x* c0 u' r+ H/ _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER), V# a3 \* K# J; h
continue;; i: m2 ]$ y X7 e( p( Y
lpSkill->dwLevel = 5;
' Q& e ^( ^1 @9 g6 m }
2 f9 M: {4 g9 h: y% E+ J }
5 c: @2 _7 J+ b+ E }2 `1 u$ i/ V, a! H/ L9 |7 s; w
else if(IsLegendHero())
9 `6 |1 G8 h d+ |; ] {
: x2 a. }6 E; @6 V- j( @/ g for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ i! }/ f6 u" K; b% N4 x0 b. } { ' A8 o: Y/ O1 `$ n
LPSKILL lpSkill = &(m_aJobSkill);
1 G# q( H( n3 n if( lpSkill && lpSkill->dwSkill != NULL_ID )
. p+ S: t& e F {
9 T, i5 a3 O0 X4 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. T- \) L6 I# z% X if( pSkillProp == NULL )1 X' c, d! g0 T4 G; _
continue;3 d" v3 E4 T* p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ C4 Q" U$ l+ l& A, M continue;
3 _, ]% V$ _9 E' r8 N3 b lpSkill->dwLevel = 5;$ P! B8 N' A5 @4 g C1 `9 ~
}
$ E$ c5 m2 Q- ~" u }1 ^# w0 O( n s) I, y
}
& K% s2 D7 f% N# N, z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 e# T4 _/ \; l* x; K8 j if( bGamma )
( W# n2 h J' v- t$ l {
- L; H3 H) R. Q% [, u- e( F m_nExp1 = 0;
/ u$ r- r* p c$ o* R, y. m' |7 R! B }$ R; b# Y# f: }# o4 J0 D- s
2 {4 [/ A5 n% n4 W/ T/ u. I) Q& G
( (CUser*)this )->AddSetChangeJob( nJob );
( t3 e3 l/ A4 T g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 k: d; S# P5 p0 R8 m
+ s3 E8 c0 B. W2 W9 u* j9 U
/ ?) q! p7 {# M$ n- S#if __VER >= 11 // __SYS_PLAYER_DATA
( Y# w; I, ^. ? @& r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; ~! D3 p0 H, P' c% q) b
#else // __SYS_PLAYER_DATA. J4 d$ J8 @, c/ @! ^$ J' i$ b
g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); h3 J& Z5 c0 a7 F$ [3 N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! H3 l) V1 X, _" w if( m_idGuild != 0 )
) b6 Z& k: h* ^& l- n k% l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. |' f/ I8 d! K& ?* ^9 ?. D$ e
#endif // __SYS_PLAYER_DATA' C3 g# |5 z( B6 O5 F& C
SetHitPoint( GetMaxHitPoint() );
& o4 |! N/ {& J, W5 x SetManaPoint( GetMaxManaPoint() );
" x% |3 s \' n" t7 S! ]" z SetFatiguePoint( GetMaxFatiguePoint() ); N- N" B- c) X
if( nJob >= 1 && nJob <= 4 )
$ J* @$ t; K# I+ [* `( V1 l6 X {; Y( }5 m& S' n6 M9 |+ c- J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ J3 C( \* x9 t. w: t% q* [& n m_nRemainGP = 28;
+ Y& K5 a4 ]2 J+ S/ o }
9 i) {- Z T, c3 d* N8 y; s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! ?8 I/ c0 Y8 @0 O5 u$ n {
( P$ [6 |" M+ F( y. O' j0 z m_nRemainGP = 118;/ |, a# y q) v" o* U
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) ]5 _* Y( N* H6 ?( S( S; |2 F m_nStr = m_nSta = m_nDex = m_nInt = 15;# c3 N$ P% X4 g7 I% W* {7 z
}
0 i$ t# P9 w* \& e0 i% P8 a# N if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' k# E0 l r' q! d8 n- m3 _ {
" _9 h- Q* ?4 z7 H* ^ x CItemElem itemelem;4 x% H- A* U9 [
itemelem.m_nItemNum = 1;, ` ]7 \) f3 g. n! X
itemelem.m_bCharged = TRUE;
* k! I5 s+ t3 u8 Q BYTE nID;% U# |. ~1 m9 l/ X& D4 |; j
7 r! S5 ^7 I' ~0 l2 X9 Z# O& P- h if( nJob == JOB_MENTALIST_HERO ). t$ z7 Q8 [2 Z5 O, V
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, C# L% c q5 \" ` ^5 b
if( nJob == JOB_FORCEMASTER_HERO )
! |( X1 p5 u! w+ P2 m6 { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 d1 L7 V8 |, Q% j
+ N, R. @) x" H4 M6 a" U6 I7 \! @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );% C: Z/ z- ]& t5 C4 h
}
: J# B- l/ y4 V' X% l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 Y4 H5 \' D. p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 O' D4 v; u- l0 Q$ i0 F ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% a6 F! w& x( u( I7 ?, } x /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' ^% H( @* h$ X) L" k ( (CUser*)this )->AddTaskBar();*/4 d( H0 q* g1 f/ ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 \3 R8 e9 M1 p, @! F9 x#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 u9 u1 m C% P0 c; H( m; L: M
((CUser*)this)->CheckHonorStat();
& U5 V$ N" \! r* [5 y ((CUser*)this)->AddHonorListAck();9 A/ a+ a. d: N# {
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 G( I# ?2 T U3 R2 q#endif // __HONORABLE_TITLE // ′Tà?. c7 `: v! Q0 D7 D8 _$ Y0 M
}+ G, [( t. V, c4 o* h3 m
#endif // __WORLDSERVER2 t, E N, [' |
} * d/ }/ I" f3 Z
& \6 i( ]$ d) Z8 Q( R: c5 F1 J然后你进入functextcmd.cpp并添加以下
) O2 V5 O- V/ i9 m2 R
( v9 J( n5 z9 P+ c' h! e1 G Y代码:9 T, a$ ^$ }, G# u3 T, V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. k0 P# F' f- h- b下面插入% Q. r \) j* v) j. Z: A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / ~; V, K4 o. b6 {/ Z3 m4 k$ e/ g1 e
& x4 P8 Q. S2 a! w) q3 @( o然后你去$ C: O" ]6 C" L" u: ]
4 m) r# a: T$ A9 E x) {3 {4 y* _* [
代码:; V: |) Z# `3 S5 {# \* j
代码4 E3 a# q+ w5 R+ z% b0 m) D
BOOL TextCmd_ClearPropose( CScanner & s )
/ a6 X- h8 \# Y6 x6 x, Z8 {3 n% e{: O+ z+ }, F/ u" t C
#ifdef __WORLDSERVER& ^1 y0 @, u0 d
CUser* pUser = (CUser*)s.dwValue;1 E( l( c/ B$ Q& q1 n
g_dpDBClient.SendClearPropose();
- G. I8 n6 `; h7 {7 S2 @& f, J#endif // __WORLDSERVER
" d2 u8 i; g# B( b) y return TRUE;& [' ]% `! h6 R# h! x+ }
}
; R: v6 ]) m# c2 |. P, t# k下面插入0 Z8 U4 Z( v1 X) R2 ~ z' Y
BOOL TextCmd_rebirth( CScanner& scanner )9 n8 n6 L$ ^3 `$ w
{
. j; [ q% V% L4 p#ifdef __WORLDSERVER
. c, O. e: ^0 I9 VCUser *pUser;
- P# o+ S* T J% `; u$ l0 P2 R2 vpUser = (CUser*)scanner.dwValue;$ Q* A) S3 k; y. P
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 @7 M) c* t5 ] V& u' @+ o% R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' V/ E8 l) [0 l: i: Q( T. e' Lelse( \4 d! \/ C1 W7 |0 i2 g/ i
pUser->AddText("你还未达到重生条件!");, I" g+ e8 g2 ?6 Q7 _- i$ U2 f
#endif9 T: Q1 t$ g( z1 _8 r
return TRUE;% b: ?0 d v2 e: g- V
}
& t# a8 @9 O( O( j. E* E+ ?' G3 F* i# f& W6 k8 R
/ G1 h6 I2 U3 _- r u
q5 Y# b- O, v
# _" ], D4 M$ h% c
|
|