|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% @" u& U" m2 H& W; }; }+ Y2 k
+ L) k- R1 N0 E! t6 W7 A+ H: jMover.h
5 b' s3 e* O" u8 d- [6 E% M代码:( {, A6 _1 H5 k; D
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 p f+ v, I& T9 O4 L( z9 v- _$ N: n* ]. D0 Q4 [6 C, V1 |
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . S9 [% H/ Y" Z# F2 f4 D
2 k' w8 g/ }' m
然后你去mover.cpp添加
# M& S+ n$ m! X L( R! _
6 M/ Q' ]* ~; J$ x1 D代码:. z9 G. q9 g" Z/ R+ ~8 S9 \1 j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ J: F: }/ ?3 X" q w# ?% u6 p{
2 d& K6 \8 V) k4 M. U" e: p. y% x#ifdef __WORLDSERVER
3 O, ~4 k" U1 N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! `5 W F% J8 Z
MoverProp* pProp = GetProp();# s' x2 K; J2 X% b' N
if( pProp )' S) V, x. U' ]$ G+ Q: {
{; W% }" n7 d1 ]# ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 f5 ^7 D) o) c% B7 J) y# m
{
# O1 e; v& [$ |$ f) ~ AddChangeJob( nJob );' W& w5 K. H4 Z' E5 x" }0 E
}else{
; I) ~: }/ i9 @( b, R, \* D return;
9 N. ~& ]9 Q: O" a5 e }4 m* P( t5 ^# e6 K0 m1 `
int nPoint = 0;, P9 v0 y+ K/ N. R2 w
if( m_nJob == JOB_MERCENARY )9 e1 h5 ^0 ?: d% g& ?
nPoint += 40;% h( Q* {9 M" Q, P7 H
else if( m_nJob == JOB_ACROBAT )
$ i, o' B* g. U. z nPoint += 50;
9 @4 I' u4 c! o' K1 w else if( m_nJob == JOB_ASSIST )
+ {9 r! |( H& }6 L" O( M nPoint += 60;5 E3 T7 g n( |! A/ `9 J
else if( m_nJob == JOB_MAGICIAN )0 ^5 P4 J. ?& {* D! q2 X
nPoint += 90;% E' L# Z U% G5 V0 Q0 w5 C _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 M, z* M( }9 u* J) c; n nPoint += 120;& r, G7 s" k9 f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ E0 d8 g! W) h- T. D nPoint += 150;
/ |2 L2 G( O6 J7 f3 z4 ~ else if( m_nJob == JOB_RINGMASTER )+ Y( ~3 w2 x1 Q. w& F) L. d& X
nPoint += 160;( ?3 `9 n. j; a, l, D1 [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( |, ^; [' s. e" O1 A nPoint += 180;3 u! l, {0 c# }
else if( m_nJob == JOB_ELEMENTOR ), Y3 x" ]) d. H4 i* D
nPoint += 390;
3 f+ k" c! n L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 J ^5 K5 J h+ l { nPoint += 120;
" m& c e) t6 E& w: S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 }3 Y% b0 b& _5 U$ m nPoint += 150;0 o% a. R3 ?! d' n
else if( nJob == JOB_FLORIST_HERO )4 @! M5 g! y2 D" }! G
nPoint += 160;
& }" I+ T$ o" n4 r4 C0 ^3 v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ q* L2 r" N. E/ S# ^1 p9 z- T
nPoint += 180;3 G6 P1 f. u( W( ~- ~$ R$ F
else if( nJob == JOB_ELEMENTORLORD_HERO )8 i; _/ Q; O; H. Q! G! w5 j/ R
nPoint += 390;
, U0 @" e9 _, h% [2 n3 H
7 [7 J# |, u8 E2 e5 u/ p: U& h AddSkillPoint( nPoint );
. N$ d9 }" n0 w m_nLevel = nLevel;
# z8 Y1 U1 c0 u4 q: X3 g
2 X& k$ |2 Y1 ] f SetJobLevel( nLevel, nJob );8 S9 |4 B) x# h0 w- H
m_nDeathLevel = nLevel;$ |( W7 k' |. a# ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: s( v- x9 `1 \9 k) @" P* Z if(IsMaster())4 e7 v3 a6 [5 D5 [" O6 I
{& n3 v3 K4 S6 A2 t; Y& U$ m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 K- ^ Y( m6 B
if( nLevel > 59 && nLevel < 72 ) h) E6 {7 v+ b( m/ A' C; l
dwTmpSkLevel = 1;6 ^2 N m' A) j) o& n7 I4 y
else if( nLevel > 71 && nLevel < 84 )
1 U, w9 T& ^! e/ I; \ x dwTmpSkLevel = 2;% f* s U# @7 p- D$ G
else if( nLevel > 83 && nLevel < 96 )
% U' l9 c( U3 g1 ^$ b dwTmpSkLevel = 3;
3 {3 m9 r9 m4 a' W# d else if( nLevel > 95 && nLevel < 108 )" @5 ]* a" R# m4 u
dwTmpSkLevel = 4;
3 i m# _$ g# D' i, E else if( nLevel > 107 && nLevel < 120 )4 e8 n1 `) I$ O. ?
dwTmpSkLevel = 5;' f+ T5 r# U4 `* e* z3 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! e* W4 ^" z) q1 N7 P9 @: {0 b {
9 I/ d( o/ i) {6 O/ k- `4 [% y LPSKILL lpSkill = &(m_aJobSkill);+ j7 f. }$ q: K$ H1 F& r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" I, n; F( ?( r. n {
3 e) B) I& ~- l7 M! ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 v% m' O! e' B1 U5 \' Q2 [4 d) e if( pSkillProp == NULL )
/ X4 G5 D3 _1 I+ y4 e7 r; w continue;
$ T3 U( \) w8 Q( L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# j2 |$ E9 i3 O% _# e
continue;
H: ~9 w- g- ]7 W lpSkill->dwLevel = dwTmpSkLevel;) W( w+ I7 }# E$ N$ x( o+ a
}
& ^' V0 x; I3 Q }4 v4 p' F" z) F2 q
}+ e. }! Y# O3 K x
else if(IsHero())
/ R( W M0 w4 a {% k9 S e& s' H+ `, C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! J& d/ s: n6 o' \/ H
{ ( k2 M+ D( M4 |/ L
LPSKILL lpSkill = &(m_aJobSkill);4 J$ F. k8 q. C8 M' u) d9 ] s( J
if( lpSkill && lpSkill->dwSkill != NULL_ID )- a, _% G' j3 n2 J, \: ]
{
' G: L3 ]1 R( G( d9 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 G) {2 v0 Z% w- y- }8 R( }6 k% ~ if( pSkillProp == NULL )
: k0 [9 K9 K, D8 q. ]' E$ o continue;) c7 ^ l% z- o* m3 T( U! S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) \* m/ }# k* e: E- c continue;
# d9 k. _- e* ^; g+ n( E8 }8 D lpSkill->dwLevel = 5;
5 I0 \5 U( K, ]. y* I, i/ l }
. H! |+ { ~2 a# N" s }
6 D! p$ l3 { b) D4 ^3 v }) q% N3 ~6 {! Z0 ]0 y. k' y
else if(IsLegendHero())
: u7 M u. T. I" \ P {5 ]! T7 p, Y/ J1 t4 Y, J+ v: e3 p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ e- Y( H& Q! I% M8 w
{
( \- n n1 f4 D LPSKILL lpSkill = &(m_aJobSkill);( M2 D5 x, s+ V6 u7 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) I- s; v% ~3 @' V; C* j5 I* T8 A2 C {
0 ]! J; m$ a& z( W6 [- D- J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . A. i% S; {4 r2 I5 ~8 F* y
if( pSkillProp == NULL ). `; ?; y8 W! C5 h
continue;
+ R+ _# ^" M; y+ s' w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# z! |- ^# n" h3 C
continue;6 h- }2 B( N* v: e
lpSkill->dwLevel = 5;# C7 {: j4 L8 n. P
}
/ r1 x7 N9 X4 N' r& ]) T }; `' b8 z$ B" f
}
' f" E$ P `' i! H4 I, {3 y: |9 d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 q9 ?5 D3 z4 l% Y- d7 a if( bGamma )0 A$ r; E, h$ _) U: Y9 h
{
* k' F- a! t$ }8 { m_nExp1 = 0;# n: t5 _+ t# a% p9 a' T4 Z
}
: c# l; p# W: m! r! C1 `3 A: ?; Y
( (CUser*)this )->AddSetChangeJob( nJob );
' y/ Q9 @ T" q" ]0 c5 H/ q# R g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ z9 F" k+ g9 d' V1 D* x5 e) X# T# N+ w0 l9 W* \, B
# v2 r: _8 c) ? D+ s) [- a#if __VER >= 11 // __SYS_PLAYER_DATA) ~( R' \) c0 r- T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 H7 k8 c: p4 y& R7 ^7 y9 F#else // __SYS_PLAYER_DATA
3 u8 o# j7 B! i9 G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! C# _4 r6 F* S( Y1 Q- O" M g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& V/ m6 ^ \0 V' D% M) s
if( m_idGuild != 0 ). D$ u8 O3 T4 ^& y: N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 f& w/ g& M* y#endif // __SYS_PLAYER_DATA) { J3 u4 n" d. W0 J! P6 L
SetHitPoint( GetMaxHitPoint() );
: q9 [3 W9 E4 N$ R6 ^ SetManaPoint( GetMaxManaPoint() );0 h/ |, {4 D3 P5 M2 o) {
SetFatiguePoint( GetMaxFatiguePoint() );
, n' f3 U5 l7 M! t4 F2 y* N if( nJob >= 1 && nJob <= 4 )- L" b+ @! Q; J* ^/ d( c2 K. R$ j
{4 `( {0 R% W O* S5 J/ a8 N, g
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 G& A: M* h+ O8 t8 ]
m_nRemainGP = 28;
1 N4 j* t: ~1 G3 U! h }
. A$ f: k$ J# M% b% u3 L8 C* V1 O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 s" h" b! c- c1 ]1 _; y
{
8 Z" v @* g; j- \# } m_nRemainGP = 118;
6 q. G# L$ t- D7 y3 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 V b5 q" t$ _$ [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 k' D, x! R* z4 h }/ W c0 I! G8 Y9 r
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) Y/ h2 q/ h0 U
{
2 u( o4 j* z( |3 a8 |8 c CItemElem itemelem;
$ ?! S S& L9 T: K/ ~8 q itemelem.m_nItemNum = 1;
; d* q- x, L* i, ] itemelem.m_bCharged = TRUE;
# N( o) k8 t% n; G. K# Y4 T BYTE nID;- G1 E% x4 u! s# Z( }( C( u# r
- P g: k0 L+ U$ [: m8 K: f3 L if( nJob == JOB_MENTALIST_HERO ), y. f' s. @0 P. ^- S! z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 Y) A+ r$ U. ?$ A- X; N: A/ `3 |
if( nJob == JOB_FORCEMASTER_HERO )! X) `! F1 F l0 e& J. @2 e$ M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 {8 U9 T4 y5 h+ M9 u+ r9 ^
7 R, V5 O& |1 Y; `1 _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 c. \1 q v0 u9 F% C }! E- q, Q! \+ M3 O/ R& b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* T( h: O2 C( y" p* z% z/ f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 r9 N7 u$ G0 H. \9 \/ j) P' ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" ?' R: \3 X, Y4 t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% P1 t6 j" V6 y2 s) q* F) _ ( (CUser*)this )->AddTaskBar();*/
' T A; H* ]% U, E ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ a. p% S3 O1 f$ y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- m. S+ B+ C1 T% W
((CUser*)this)->CheckHonorStat();
3 f7 A% F9 v5 V- k1 V' s ((CUser*)this)->AddHonorListAck();/ P+ ^* g1 i" |5 b# p& L. K% Y% E% Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: f: m; Z# p$ b1 R; d1 ]4 H* r5 P#endif // __HONORABLE_TITLE // ′Tà?" E3 ]; Z ^/ u0 f6 Q
}+ U' B6 g7 Z7 n
#endif // __WORLDSERVER8 r2 E, z9 N0 ~% I
} ( \4 @; b- N, t7 m
: _8 F- o; M$ ]* F* s然后你进入functextcmd.cpp并添加以下( d; j( f1 K8 M- j9 k
) a- O7 I9 e* q3 K代码:
* X3 a$ E4 \3 G9 WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ _/ z$ E) t+ `
下面插入0 i. P. m; {0 q% O$ v) |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 ]; @; X3 |5 [: d9 O
' Z$ \$ D* B1 W/ h然后你去
4 c- I) w, w! d: n$ \0 y* D8 G+ t, c
代码:: W* E2 j' G& p; E% ~0 d
代码
7 r5 ?1 t- z1 S" m0 c6 x# uBOOL TextCmd_ClearPropose( CScanner & s )
9 G, B% y/ y. a0 {+ W& M3 K F0 F2 K{
. w1 [) \7 E" f/ s+ s- R! Y9 z) x#ifdef __WORLDSERVER! Z' r" v0 e6 p
CUser* pUser = (CUser*)s.dwValue;
, E% y- {8 P4 }9 `: R7 Y+ K2 L g_dpDBClient.SendClearPropose();0 N; ]; X' [8 j7 s/ Q5 G
#endif // __WORLDSERVER$ ]. o8 W$ X% W/ Y
return TRUE;
6 Q6 a4 m- F B: `1 a}
% y6 Z1 H7 S; _: z下面插入
9 c0 B0 K* I2 |; U) eBOOL TextCmd_rebirth( CScanner& scanner )$ C. m. d. M+ Z
{
2 o0 c9 s7 k/ X* I' n. i7 X#ifdef __WORLDSERVER
9 `0 A6 a& y& fCUser *pUser;
( X) }& d/ H7 U% l1 w1 h/ MpUser = (CUser*)scanner.dwValue;2 s! ~0 R/ L7 [$ a4 }* e. \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% G5 i9 \/ u4 V* n) e/ }; ipUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, a# K! V1 F+ V: o8 G+ T
else9 X/ h# d1 b5 q9 r$ h" |! B/ U7 f6 a
pUser->AddText("你还未达到重生条件!");. y2 e$ M" Q6 o6 u7 k: _
#endif
. Q7 H, j0 t5 h: R1 qreturn TRUE;
1 I1 R- h6 U6 G8 h3 o}
! t; N$ }% g+ d- o" T
- z9 K+ `: }" Q7 D3 ~ ^0 E
. R8 S6 w2 Z+ c* I* g1 H& G; Z: b! Z! q5 m2 z. |5 t
3 h! G( D2 Z% |2 q+ T |
|