|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ ]9 l! o! I: ?" t6 }, D
( I5 Y l! Z ~% I- Q/ N' N( @Mover.h% l& a2 J( ?2 F, k1 N6 H
代码:
! ~# N, |: _1 t找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 {( e3 x- O t# t3 s1 s" w' ^
1 e/ H; W: O! \4 z& h8 b下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 `: N4 W8 [1 G' H5 f* g1 T& c5 n: w6 h( w
然后你去mover.cpp添加; v) Z2 U" L! X
4 n3 E" h' m& {5 m! c* d
代码:+ N4 L' k; G1 o& I# J' z1 s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: t, f0 V, } u; v{ l5 t5 e, d, Y3 ?5 I7 W9 S& _
#ifdef __WORLDSERVER
3 s3 O' O6 n1 I- A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! K" E o5 G0 m
MoverProp* pProp = GetProp();% g' V3 o/ `5 T" ]2 ?! Y
if( pProp )- R% x& V) b: R8 Q9 @" |+ Z) ^
{% g8 Z4 x6 o* {. ] {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( Z! {1 h0 {7 Q {
" U' q, R0 q* R% d AddChangeJob( nJob );! u6 b1 H- T q1 t% }
}else{
" s. U: K) _8 m3 w+ ~ return;
( z) o k" u7 F0 o M }
$ P3 w5 w( b+ U4 t6 g5 |) C1 F. g int nPoint = 0;
- o0 h/ n* p6 I6 Z3 C$ F if( m_nJob == JOB_MERCENARY )+ A" H, f- Z2 `1 @( U5 ]
nPoint += 40;) ?8 w5 G7 s% ^( ]" C
else if( m_nJob == JOB_ACROBAT )2 n) v; O) x% \+ d1 m; k+ i4 B
nPoint += 50;1 [$ R8 p* x0 D: W' e6 r
else if( m_nJob == JOB_ASSIST )9 ]3 A) ~7 k/ a' M. g0 B
nPoint += 60;
0 }6 Y% [8 P; S- B. v/ S! i else if( m_nJob == JOB_MAGICIAN ): u1 u5 V3 J$ T( z4 g- d
nPoint += 90;
/ ^. c$ g9 B4 W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) |6 Z, g4 W# S B1 W+ b9 f! y
nPoint += 120;
9 C: k! D2 M" ~2 M0 @ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 x* g4 T# m" Z" q
nPoint += 150;
1 O2 X8 E [+ O8 q2 A else if( m_nJob == JOB_RINGMASTER )
9 L; q' j1 a' s nPoint += 160;
, i+ q5 ]5 s% M) f3 G! r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% [# P) J2 W% G& k nPoint += 180;! p% R ?3 \# x# k6 K
else if( m_nJob == JOB_ELEMENTOR )
: j( k5 L3 a/ Q. R3 l: e nPoint += 390;/ }9 {6 s* k" M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ _5 N2 D7 W: g0 s8 F7 a/ f: b8 k nPoint += 120;
( R6 c$ i: S9 j$ z) ^9 \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 M; \3 g- y* ~- G; G9 N nPoint += 150;9 `& E) Q0 |# T3 V: e+ X. F$ v
else if( nJob == JOB_FLORIST_HERO ). q- |% q9 |. S6 T/ \7 |/ P
nPoint += 160;
" a# B: M5 m2 ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 \ B2 x/ X& ?/ I- Y
nPoint += 180;
6 `4 u; m+ l. f0 ~% O else if( nJob == JOB_ELEMENTORLORD_HERO )$ D0 ~) ?4 q, P. w
nPoint += 390;
! f+ z- G! r% F7 u c" z9 V7 ]) _# g, n+ K: d" N
AddSkillPoint( nPoint );
, T2 M2 j/ L: r1 Q9 `: Z3 J& { m_nLevel = nLevel;
$ F1 k, S! I+ n4 P- h1 k. L6 L/ h) @ q$ L/ Q5 B( n( b0 n
SetJobLevel( nLevel, nJob );
( c/ c+ P7 T3 l9 q: Z m_nDeathLevel = nLevel;
1 ^; Q# e! w. S* i- T. n" e/ C! V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
c4 ]0 l) w4 U9 q. w if(IsMaster())
5 ]8 V$ m* p$ e q {
" |: n3 ]2 r7 h0 f# r+ f+ y- g int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- `$ m& F3 k* d4 { if( nLevel > 59 && nLevel < 72 )+ u2 O; a* s. `4 Q' n1 G
dwTmpSkLevel = 1;
Z( k. M, k, G( V! r else if( nLevel > 71 && nLevel < 84 )
0 ~5 N6 n0 Z! f" r dwTmpSkLevel = 2;
! L. d0 u$ ?% S4 \% k4 P$ l$ F else if( nLevel > 83 && nLevel < 96 )
! d: `/ ]+ u- L; j# K+ c dwTmpSkLevel = 3;
. Q! M: b6 n5 B# `/ h9 T" V/ z' y else if( nLevel > 95 && nLevel < 108 )
3 m! I& x7 E1 T5 S3 T7 ]- D+ j dwTmpSkLevel = 4;. ^) b- W5 U% U. p
else if( nLevel > 107 && nLevel < 120 )3 x- i3 E8 M* r) G3 N2 Z6 M& b, z& ^* B
dwTmpSkLevel = 5;+ H" z" S6 i/ j: ^" {( n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* O, P0 \ S" T3 \2 F+ f { ' z; t4 E4 M+ o4 n
LPSKILL lpSkill = &(m_aJobSkill);& t+ s6 T( B k5 g
if( lpSkill && lpSkill->dwSkill != NULL_ID ) J2 ]. S( ^, N# d: y3 t9 P
{
& @! a. z, |+ O* |2 G$ f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, n# P/ g6 p0 @* S9 f$ b9 | if( pSkillProp == NULL )
: n5 y6 i# P* l continue;
) j) \& M/ t, F0 @& H; r7 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 H& r+ ^( y1 ]' n$ y continue;
0 `. j4 Q* ^- n) d5 S- A lpSkill->dwLevel = dwTmpSkLevel;8 H2 K& S5 m: z& |- A
}
: d: E& H1 C4 [1 N4 Q( M }5 T m8 j4 R* |1 U8 ^
}
. T- ]6 G4 N& v! e$ @; V else if(IsHero()): B5 o1 k* s" m1 R
{
) O( z9 N; y1 A* Q6 r4 j P H for( int i = 0; i < MAX_SKILL_JOB; i++ )
- l- x0 N* Q5 ]* m' { c/ b {
% _" X- I$ _8 U" j/ ? LPSKILL lpSkill = &(m_aJobSkill);4 `, N o E7 j/ _; |# V4 N, `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ b% ?6 e- V: G' z( ~) @ {6 P1 ^8 l% W/ T% w1 {& \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & L0 J7 _7 X: @/ A% W0 f+ _
if( pSkillProp == NULL )
5 p9 d$ ]6 l/ W8 @4 o continue;* | |9 t9 S4 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 O% Q! F; v5 _
continue;
y2 k, F+ G: P, l; b) \ lpSkill->dwLevel = 5;- R+ @. A$ R( z$ u
}2 b9 ]4 f y0 V; \7 c8 H7 o
}
$ \& N) ?( U: G4 Z( [ }
* ^( p+ b5 ]7 Q# V1 [; r* C1 I4 t else if(IsLegendHero())
; d1 f6 ]9 t3 u, w2 ? {& Z5 Y2 ^( e6 R8 o5 Q( k& C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- c2 s# }' Y+ q; x- ~/ \. m# E {
: p" V3 m s& l LPSKILL lpSkill = &(m_aJobSkill);
& | p0 n6 Q8 v; q) F) W9 I if( lpSkill && lpSkill->dwSkill != NULL_ID )
" V1 \2 a" v' \3 {' v {
$ A9 ~% M% G- s! ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " V* k9 ?, K' W. U6 U4 Z, @" L9 q8 v
if( pSkillProp == NULL )/ s8 ~! T3 J9 |0 V0 ~
continue;% q9 R0 T% j4 ` N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ z+ p% l2 u) U' V0 D0 ]
continue;' d5 o6 v1 f1 j2 A9 [1 e
lpSkill->dwLevel = 5;
P0 P% m, B# S/ q1 p+ [ }
8 z' Y2 t+ s" k: `8 k }7 r9 N; O. m9 {# q& s( W, {
}
* P- h0 n' v# T: I/ _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! `4 |3 _ \+ B0 K8 i' r. i if( bGamma )
. H7 Q8 X# c' u( s$ ?( [ {" K! s' o3 R. k" u/ w
m_nExp1 = 0;1 P" ^; p6 r" h
}
5 [& c5 m; J1 Y I% E1 d& R$ t0 M' ^+ j4 E: b- S4 ]
( (CUser*)this )->AddSetChangeJob( nJob );
4 F4 f1 h: S8 V2 z8 ^- l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ R( b% O1 p3 p2 f
( F% z" I' e$ E+ w! P, Y9 ?; R+ g- M& g8 \) ?
#if __VER >= 11 // __SYS_PLAYER_DATA
0 M7 S: J; g& g: q/ r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% E% h) r/ v3 y6 m" G- G3 F* O [#else // __SYS_PLAYER_DATA
6 A! H1 L: H+ _* o$ T g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ q/ w( ~- p# J9 \1 d. j# k2 i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 Y3 |4 R# @. s, d- D- L
if( m_idGuild != 0 )0 r" x- n5 |4 L- d, R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); m( _% \4 z8 B9 @5 S% \
#endif // __SYS_PLAYER_DATA
9 C% t; D, O7 F6 P8 w: Z SetHitPoint( GetMaxHitPoint() );
3 l3 m8 W, e7 s0 a4 r) ~ SetManaPoint( GetMaxManaPoint() );
7 X+ ]- J# k! E SetFatiguePoint( GetMaxFatiguePoint() );% P% y v6 A, R: N$ g `2 G( O3 `
if( nJob >= 1 && nJob <= 4 )
7 X. _# Q2 V" l" D0 a( k, v {/ F4 Y, ~* x8 O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: m# i% F7 t8 F m_nRemainGP = 28;' j: P5 ?0 ~% J6 q) X
}
/ |, w2 r% |2 B. n if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 m- ?/ v& v. B& X
{
/ e2 j7 L3 `2 F; X3 [: R m_nRemainGP = 118;
: A- K# @! }# h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 e* w& y0 n4 u; A& Z+ P m_nStr = m_nSta = m_nDex = m_nInt = 15;$ l+ p4 s4 I& X$ q
}
) m. B9 Q) S1 j$ p- C8 T n g2 J if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 \, z4 O" p5 n* f7 R {
, B; F, B$ l$ o9 C I/ Q CItemElem itemelem;- G) p1 C- k, [5 z9 y
itemelem.m_nItemNum = 1;2 ^9 [2 [' }( s8 ]7 r4 v; [/ J
itemelem.m_bCharged = TRUE;
2 @8 _1 c- W' e. j+ j BYTE nID;
. J! i$ [- M/ P* q7 O, s) m6 \0 ~ f# L4 W: Z0 N) ?
if( nJob == JOB_MENTALIST_HERO )+ g- K8 c3 A. b0 F6 x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 x7 J6 q7 S5 i% ^' G& o if( nJob == JOB_FORCEMASTER_HERO )
9 K9 J+ H v! P! y4 D6 \5 `, r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 a( F8 I/ A( w- r3 W: c `# i" X$ S
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ n8 F4 m8 T. E }: k' _8 n1 ?/ K( w5 b" o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ A* t8 G, C8 ?, M3 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: a7 Z" Z9 R& S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# r4 R( e I) _ X" ^$ ^! U$ l7 R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, `% l8 K, z+ o# v3 I
( (CUser*)this )->AddTaskBar();*/2 W* V V2 Z# u% ^( \# b: \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* P/ u) d" N# C' l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 }; |# Q( [; r+ \" `
((CUser*)this)->CheckHonorStat();( W7 K2 @, h( K. `2 g9 f- ?
((CUser*)this)->AddHonorListAck();
! c4 o6 ], L# l. A8 o: {9 W g_UserMng.AddHonorTitleChange( this, m_nHonor);' ]- y' x, R; w6 r5 O
#endif // __HONORABLE_TITLE // ′Tà?
" ^+ y/ t# ?+ Q% w8 g! y }' T: q& ]2 ]: n' R3 k1 u# Q p, h ~
#endif // __WORLDSERVER" G4 z, z$ ?; W% {
}
; Q0 H$ [ {9 U3 y( x! \2 _
. W9 W+ K2 S* O2 S0 ]# A$ J然后你进入functextcmd.cpp并添加以下
) C- E( w1 l" d* C6 M8 N- m
: m3 N, W) _( E代码: \, q- b7 P/ G- R( u! P7 s3 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). D) N3 g- B0 K; }0 A
下面插入
! S) o+ [5 v; g; H0 ^# a2 VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . T7 N& y$ B9 I9 [
6 V) T9 x7 U: ] Q然后你去
5 b8 T4 M; r. D4 s$ x1 X( I% q( v [6 s
代码:/ j& t8 b# _% r; S3 f Z* b
代码; T. H9 W# \' Y" N
BOOL TextCmd_ClearPropose( CScanner & s )
, K3 H+ k3 d$ B y{5 j2 L- b( s# z$ w; p
#ifdef __WORLDSERVER
' u' C( n+ j3 v" l* Q6 u CUser* pUser = (CUser*)s.dwValue;- Z0 R+ s% C( T, ~) j# N
g_dpDBClient.SendClearPropose();
+ R* b: i0 b, F. k4 |# M! A#endif // __WORLDSERVER
; R8 h$ I5 g* W9 U$ d return TRUE;
1 G( X1 m8 c6 Q. l$ L0 V}
' Z. k2 F4 N& G* ~8 C6 E) m下面插入
9 A9 B2 `9 g! K& T- pBOOL TextCmd_rebirth( CScanner& scanner )
. |6 G2 E9 f! j0 a* [) Y{+ s- ^8 I6 f0 u9 j; [+ p
#ifdef __WORLDSERVER
) ?0 q9 T# y: u/ TCUser *pUser;
: S" W5 n& a( ?, ?pUser = (CUser*)scanner.dwValue;! V: u. a8 ` l) r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! j. G; \6 v9 }5 Z% v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
U' n, l9 J& ?else( |# M6 s" W" z& ~
pUser->AddText("你还未达到重生条件!");5 U8 y2 a/ ?# C" ~( j; [" ~
#endif
! `7 a. }9 X. y+ `: Y& b+ S; Zreturn TRUE;2 t1 _9 m( W z9 u( ]# I: Z
} 0 Z* e: ^; m$ q+ @3 K
) {1 B* Y3 U# f& s2 l) q# y2 h
" M$ F! _1 G. f6 x! g8 G5 o; F
( a( n7 L' L) Y
$ G' K5 j* A/ \9 f% q6 @. S% p$ x U
|
|