|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ F4 N5 R/ z @3 e$ U1 n2 u/ p- v: t1 _0 ^! H0 f3 z* b: J6 @
Mover.h
' C' H+ d% e9 ]0 U, x0 H% N; p* \代码:( A* J4 I5 ^$ h5 I: k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- y9 H% w4 A" V J3 \. l0 A+ g, y5 [- ]. f3 Y! A0 o
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) ]; _! N: q( y( k+ V' \0 }5 d: d; M" d# A" P2 M
然后你去mover.cpp添加) |3 i. _7 |) X$ T# C
# x i& \' ^ @+ ~: a9 ]代码:5 c1 f$ v& |& W% b! {* m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, j }- h" K( Z( a{
) [' m. Y( ]5 i' v7 {. w0 S#ifdef __WORLDSERVER% C& A$ z( F6 D3 {8 v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 ?! J; \' @+ y. [
MoverProp* pProp = GetProp();
: s, f0 V( b: j if( pProp )% ^* W% [1 ^/ Y# x: T) k
{& M; i% K" n% P; H! Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( i5 a' P" |6 b% b/ P {* G7 o8 a; H0 b) S, V& n6 s
AddChangeJob( nJob );7 Q8 E2 k" g# S3 f: I S: d- m
}else{5 M9 W" ^( U0 Z& Q! O
return;% n9 j+ R7 s3 {/ S8 m
}1 k) ~6 u. o! p7 I- J4 j/ s
int nPoint = 0;: S( j( G8 ]# U+ T
if( m_nJob == JOB_MERCENARY )! t' w! c) w7 u2 M/ }3 c6 h' J
nPoint += 40;2 w* b6 ~% |! B2 Y; Y! N
else if( m_nJob == JOB_ACROBAT )) z) U1 l4 C# a1 J" Z( a8 g
nPoint += 50;
8 H$ L- W, r! H: R! Z else if( m_nJob == JOB_ASSIST )
% X* R& U9 O& ^# T, i1 H nPoint += 60;- a' c% a/ i; z: X" b
else if( m_nJob == JOB_MAGICIAN )
$ R. h1 e$ w. Q) n nPoint += 90;% r4 E( U: }# o& w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( o6 }" J( v9 Y: w$ T
nPoint += 120;
7 k) L5 N X: L" Y& m P4 b5 p/ ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): H% n. G) R1 `
nPoint += 150;
: j; S; K, w8 v4 ^# T5 m else if( m_nJob == JOB_RINGMASTER )
2 t4 X* {& ]4 m4 y nPoint += 160;
7 O }) C$ `& \% r! A8 b& E* L2 M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 \% Z8 z6 a" ] nPoint += 180;7 M/ D7 e) j) A0 T$ Z3 I% g4 v
else if( m_nJob == JOB_ELEMENTOR )
7 U% a* Y. _, l7 a nPoint += 390;& |1 o+ [% {7 `1 [1 E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 ?4 E0 \; y$ `. V0 e5 j/ V nPoint += 120;% D$ Z' _" V3 i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ R/ R1 y [- x) \" }/ n nPoint += 150;
# {% w1 S2 ^7 L2 K' F else if( nJob == JOB_FLORIST_HERO )
: w% M: ?4 z n8 r1 C# m+ A nPoint += 160;: D x8 H+ X1 ^0 [: O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 ] j( A& n2 Y K$ h0 h nPoint += 180;
* l8 K Q- D8 P8 Q else if( nJob == JOB_ELEMENTORLORD_HERO )! g$ C. a7 T3 | I
nPoint += 390;
1 }' C0 g2 R9 m' G x9 A W* x) x6 u9 J' n
AddSkillPoint( nPoint );8 B0 g- F9 X. E* }2 Z
m_nLevel = nLevel;$ }$ R& j" y$ s7 P
& D5 K; G' l% v; g/ c' [$ B
SetJobLevel( nLevel, nJob );
* E! A9 V+ \% V* U. Z+ A m_nDeathLevel = nLevel;
% @% W$ t9 a2 q u9 g$ h- r1 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 K! o ], n( S if(IsMaster())- `) {% s) w, D4 R: N K
{0 G4 W, A( h0 n" P3 n3 j V0 X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: F6 t2 F$ Z5 | if( nLevel > 59 && nLevel < 72 )
! W# K& l9 b' a a5 h4 Q( V6 B dwTmpSkLevel = 1;
, m4 n3 b: s5 m( U else if( nLevel > 71 && nLevel < 84 )
, x& p3 R( A$ x( m: h dwTmpSkLevel = 2;
: Q. @5 a6 W5 S6 X* z& Z else if( nLevel > 83 && nLevel < 96 )+ l: U* L$ [8 w
dwTmpSkLevel = 3;2 W8 X- m6 s3 C! m8 `* B1 h+ S
else if( nLevel > 95 && nLevel < 108 )
* M- o$ f! ~, L2 J dwTmpSkLevel = 4;
6 Z8 z9 | P8 }! z9 [ else if( nLevel > 107 && nLevel < 120 )# ?3 V. j$ u! ?! f- z
dwTmpSkLevel = 5;% n. g7 A4 A/ W# g$ g/ a; L* V' P% {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! s/ {7 l& J T3 m
{ ( n3 u, ~) y# _5 X- T3 _
LPSKILL lpSkill = &(m_aJobSkill);4 X' g4 m. m% f% s# O
if( lpSkill && lpSkill->dwSkill != NULL_ID )( o: k* d# i' p4 F: P$ q6 ?4 t
{
; `' V, i& ]+ M$ \' _# R) \- k8 A/ }4 V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' }4 [9 A& r0 }9 u; E- C
if( pSkillProp == NULL )% T7 T4 \4 E2 X2 H% H( W& x
continue;
4 }0 ?) H8 s& v, S# ?3 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 W3 ~9 t3 U. S6 t* d L continue;
" i5 F0 C' ^: ^8 L9 V% \ lpSkill->dwLevel = dwTmpSkLevel;
6 W6 w. L% @- A. I8 x4 J t! h }
+ k$ e$ C3 Y1 n" L5 J) t }
' z# D* q3 [! A ~) m# ?1 |4 m }3 ^* p" G! U$ \$ ]
else if(IsHero())
8 L6 q+ J0 Z4 b' _1 ^6 N {* N; e( q+ \/ C# f8 o* ~' m4 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ^ \: m# ~( C E, _ {
+ l/ E0 }7 r3 l; M. u4 | LPSKILL lpSkill = &(m_aJobSkill);
( V k3 L4 o5 r# a9 l; M0 E& p if( lpSkill && lpSkill->dwSkill != NULL_ID )
. w2 l- N- v) ]4 S6 ~ {
' q2 R" V# }# x3 } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 ]/ |2 m; L- f: D4 v, q0 h2 t
if( pSkillProp == NULL )
Y( p5 D9 a8 {0 R& z: @ continue;
6 s6 k" ]4 u& }& Q+ |% v d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' a7 C% k8 N- M$ M8 @& k8 F
continue;
4 j- m& s- B# h) s) l8 z" | lpSkill->dwLevel = 5;
8 k- y) L) _, S4 b8 J6 L7 Z* Y }6 ]2 k& Z5 s9 X
}
t: f3 ^4 B- d7 H' y" o }
' V3 Q$ I. W/ a3 k else if(IsLegendHero())
! v- C0 Y/ H: T, P {
- P- q! m$ Z( r/ G* z. N7 g5 r" R for( int i = 0; i < MAX_SKILL_JOB; i++ ) # j2 e- k. ]* S5 T
{ 3 L- I# e4 Z# D3 x9 a4 @1 I
LPSKILL lpSkill = &(m_aJobSkill);
, `2 a" L7 K+ M# z3 p2 d if( lpSkill && lpSkill->dwSkill != NULL_ID )8 N9 @. s2 U5 A2 f$ h% d
{. s* s5 l- m, }# [6 `. Z4 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 M: k# d3 w* T* R
if( pSkillProp == NULL )7 R7 s( J4 `8 R; K) v0 c; n
continue;5 @: z- P$ W! R2 x7 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' E3 }& [0 m/ W( h3 z: r7 B4 | continue;& h$ Y3 `$ A% {- t
lpSkill->dwLevel = 5;
$ y+ a; [- c8 e! r& B) W8 l }
$ ~8 I" a8 \# F) S1 o) V! @. o3 p5 j }( `* `1 U1 Y5 V+ y: c
}! j6 D# f: c8 x! S. x$ V& F$ a9 Y9 P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans P; y ~& g$ f' _7 h ]% I
if( bGamma )
: W1 H, B( F1 e8 X3 x4 N: L; n {
# s' t# X) W- m# N: ]1 H m_nExp1 = 0;
: ]# U$ K W1 y2 }* J }: g+ J( p1 u* E9 O+ j4 b
3 n5 U. F8 l+ P. ]# t" Y1 g3 o
( (CUser*)this )->AddSetChangeJob( nJob );
8 s+ Y& r' J7 f4 C! m5 H g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& w! q; }% m! i6 {$ p' z4 Y. d4 j3 d: Z- q. h
5 R+ W4 P) T, n: |7 y# [6 K7 E
#if __VER >= 11 // __SYS_PLAYER_DATA* L- g0 j$ o3 `& ]6 }4 Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) I3 Z1 M+ x; d#else // __SYS_PLAYER_DATA; x( j1 k5 Q# o/ m2 `0 k
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 v! e- S- h( O- O3 o) s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 E$ N: O$ K" s P+ L/ m if( m_idGuild != 0 )
* P _& F; g5 {" i& ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( m$ [; Y: [" ]5 B, U
#endif // __SYS_PLAYER_DATA
4 Q+ o( K8 N) N4 m4 P' f1 L$ O6 U" I SetHitPoint( GetMaxHitPoint() );
$ C {+ K6 _; ^8 n' N SetManaPoint( GetMaxManaPoint() );
/ I/ E( g! W; L SetFatiguePoint( GetMaxFatiguePoint() );
9 w, @9 A; v1 A+ w+ C& @& r; Y1 y: R if( nJob >= 1 && nJob <= 4 )) X( }- f3 J1 _; F
{! Z+ [' P$ k! R
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 V) Z/ G( }& _' Z
m_nRemainGP = 28;. X6 i4 e0 N* H r$ f$ f/ K# I: m7 J
}
0 l W5 ~9 e* k: W6 m% G4 O: ^ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
}$ W, g" i9 E$ [ {
6 u* A6 Y8 b1 A; C. W( i m_nRemainGP = 118;' U2 t6 `: {' _) Z8 p7 E- H2 O0 G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 R/ G& j1 X$ i: ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ }# n% s. T; i6 ~* s# y }
- P3 Z m6 N7 _8 [! H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 M% b6 G5 V% c% w; x$ K
{: i! I0 z4 U$ R# l9 d
CItemElem itemelem;( g4 N3 @7 l9 H! @6 y; f0 h% o5 X
itemelem.m_nItemNum = 1;
9 G; {3 x A) R+ G& @; V itemelem.m_bCharged = TRUE;2 p/ D- C+ y% N% H& a
BYTE nID;
. i1 `, O- B/ D3 Y$ g( w, [
" ?9 `2 H5 K1 Q, z& S( p7 V if( nJob == JOB_MENTALIST_HERO )
0 X P6 l; p8 B s% L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' k) F4 _( ^0 _, k* E6 [! w
if( nJob == JOB_FORCEMASTER_HERO )+ ~) Z! ^) x( y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 C* R- v: r: q; g/ W0 u( D4 ?, x6 T$ s, G% r/ S9 p# B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 }; p5 ^3 H' h. p2 P }
) D* |4 }* E) D- P. K1 @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
M8 ^: w8 u2 E8 t+ O" V6 X ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 y: x4 M5 a% \4 f* @% b
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 t# L ]1 a8 r, M! D& m, a! f5 O /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) `, H) R/ k$ E- B+ k' Y+ m ( (CUser*)this )->AddTaskBar();*/$ w2 A# W2 s$ a: ]1 h5 c8 F( h' `
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( c) ^7 b2 R; Q) Q G6 |! U' Q5 O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 J+ s# u- H& s! p( N- F ((CUser*)this)->CheckHonorStat();+ T( c4 V+ T* U+ V. a' H
((CUser*)this)->AddHonorListAck();/ \* T+ [% s2 V2 R' T# f4 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);) k9 C+ h, N0 T
#endif // __HONORABLE_TITLE // ′Tà?
) X! n* ?; f2 ], B }
- `3 j; n, |* F#endif // __WORLDSERVER
( m# I7 A, g0 w) q9 _) Z}
" R6 S, i* c; w1 S2 S6 Z% d1 {6 I+ G
然后你进入functextcmd.cpp并添加以下( a9 z* v2 v# r0 p2 `& |/ w
: z; B5 h2 f9 w& N4 ~代码:
. p" o0 l4 x' @' R1 L& CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): O; o$ M/ d$ E) C- x" @3 ?
下面插入3 y9 H% A" M1 d, F4 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 ?# p; g$ ~- I0 I) }: c; c. H: ]: u- ~ y2 G; Q4 b8 }
然后你去
; W6 ~4 @( [% T0 w) J3 I
, O4 D, j4 T) I+ Q代码:& Q* {+ J: N+ p
代码8 d* r" z5 H( D% i( T
BOOL TextCmd_ClearPropose( CScanner & s ); \: m7 O2 `1 M, C
{
* X& s$ R, q& D$ r) W#ifdef __WORLDSERVER: N# |- j) r7 e( o
CUser* pUser = (CUser*)s.dwValue;& o3 u+ \( {$ Z9 O$ A
g_dpDBClient.SendClearPropose();
E u8 [ e) O/ S4 l- \3 Y#endif // __WORLDSERVER% C' ^; }! I3 a: p$ L& O$ |
return TRUE;
* I" @ }2 Q0 I1 z! r}
5 B; Y. G, i. S' L0 T1 a; O下面插入8 F0 f \6 d5 K0 f' G
BOOL TextCmd_rebirth( CScanner& scanner )
7 l% G* S6 y) A! K/ U{
- i( P5 p* Y" q G& z) g! ~& ?#ifdef __WORLDSERVER, v8 M" l8 I: z) ~! C# O' k- N
CUser *pUser;! q* O- ?. O Y8 E6 @
pUser = (CUser*)scanner.dwValue;/ W/ j! @+ A6 b$ V8 }- P! w$ h) Z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 R+ v% B: S1 w$ R/ j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ r6 ]6 @8 E) ]
else
' H! Q: a0 C7 r- z: T j& [pUser->AddText("你还未达到重生条件!");
+ T4 _6 S8 e8 A' j/ T$ E a+ ?) ~#endif
1 b% y6 {0 u8 A7 `/ D% ?! O) h' h) A! treturn TRUE;$ `. \0 L5 z) C" }. F
}
" |% j4 y+ I, e \7 z* u: I7 s. g# }5 \/ k( ^+ [: M
9 K8 I: v- h/ ~8 h+ ~& B, @ J) a$ _; _ z& `+ h9 Y2 b c
, I: T1 D% t, m s7 k0 {6 b+ i! M |
|