|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 m* ~" E4 p+ M- {6 O+ T
* k+ v, r) U( M! }& b0 |3 _- t0 x2 s
Mover.h3 W# m4 g8 A( @8 F
代码:
7 p, n! g: {0 [" \2 t3 {/ Q/ B! E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 G2 i: T% A- [' K; C+ O5 S* A0 a6 A3 s2 z3 R
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 {" _2 ^7 C/ M# ~
, t! {5 U0 E7 I然后你去mover.cpp添加
. n# H1 N9 o7 S0 E. p5 f
1 ?* ] q) a2 Q o6 B2 ^代码:
8 [$ u$ U% k3 W, J5 [/ ?) `& i2 Q3 Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. S/ k: M" ]" ], ]{
; M2 v8 \! E8 J#ifdef __WORLDSERVER( i, c8 N' ?2 F! ]0 K% Y- a/ _9 V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( M4 M. ?% t! C. C' U MoverProp* pProp = GetProp();3 l7 u P! Q2 V2 C$ m
if( pProp )
& S1 n( h3 l8 d: X" ~% R {" z/ N$ V' `9 Y: E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 z) R$ v2 t0 X+ l* d: U6 i {
+ }3 }! o3 R9 f* e" M: T0 B8 F AddChangeJob( nJob );7 G5 f8 V l% r4 j8 F
}else{" A$ \# Z* H% w6 B# h
return;
0 A( f- ?6 p5 Y0 Q4 Q }) E6 \& d& V8 `& g! Z& I. M
int nPoint = 0;( r8 F3 m2 P& F! |! e
if( m_nJob == JOB_MERCENARY )4 Q4 z( h* r# ^
nPoint += 40;) A6 Z9 l1 O$ {; U6 v
else if( m_nJob == JOB_ACROBAT )
: {, q. i( u7 L2 y1 o7 h nPoint += 50;" y: ^6 ~ u3 ~
else if( m_nJob == JOB_ASSIST )4 T2 O! ]6 D- e; T5 U) u
nPoint += 60;
, Z" S- X/ v' u1 y5 T# M2 ^ else if( m_nJob == JOB_MAGICIAN )$ C6 k! V: V- E2 |
nPoint += 90;& s& l1 [/ t3 f: T& t+ J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) s$ g: K+ ^% T" x. [
nPoint += 120;3 X/ _9 I/ e% s+ u; T# U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% r, t) t2 r5 h) R% P9 L nPoint += 150;7 x% n2 y. K* L4 p& P+ C
else if( m_nJob == JOB_RINGMASTER )
3 f6 J8 h# r/ t Z1 r' O1 y nPoint += 160;* m/ R! V [% x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* y7 B) G4 ^, l' S0 K3 ^) P5 k
nPoint += 180;; ~ y; X/ o" _: j3 \
else if( m_nJob == JOB_ELEMENTOR )
: ~0 v2 q5 @. k, G# H; B# N$ H2 N7 E nPoint += 390;
' S5 U+ P! P! N else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- s! b. l( \5 w+ I" a7 f& K( J
nPoint += 120;0 P1 f' ]' I0 Z3 |
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, I+ H' d6 Q Z( _) L; d2 s8 ]9 B nPoint += 150;
( m: W. T3 y# r. S# ?4 p else if( nJob == JOB_FLORIST_HERO )# p; s! s7 |! U1 Q. N* o% \* f$ `
nPoint += 160;, O" P8 u+ n( b$ H9 f8 A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 Z5 H6 n" V' Z
nPoint += 180;
- f' h' w* {! l, I2 E else if( nJob == JOB_ELEMENTORLORD_HERO )1 d l% A. g+ I
nPoint += 390;
$ u$ i/ Z! \+ {. I( p/ H% @
" f7 [3 C- W/ f! W* K( U$ }& g AddSkillPoint( nPoint );+ o! P- L. y- _: o. H, L
m_nLevel = nLevel;5 C9 ~3 L3 M! e, N3 ^$ C. q% P
: c* }4 ^* R0 B1 m- Q9 T SetJobLevel( nLevel, nJob );
0 }3 g% B1 \/ n: Q m_nDeathLevel = nLevel;. [, g4 o7 k4 f$ Y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ P6 l6 H* F" y# w4 @2 H
if(IsMaster())1 w3 t# d0 |/ o" w6 X0 B
{
) T# {/ a- B3 N$ w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, d8 P$ y$ X" \2 y if( nLevel > 59 && nLevel < 72 )
5 b4 y7 k6 a# D+ V: E) c dwTmpSkLevel = 1;
4 ]3 a6 @0 q) L( F. d( [% \ else if( nLevel > 71 && nLevel < 84 )+ G+ n6 F& m6 a8 x- h( I
dwTmpSkLevel = 2;
' P0 G# P% [) A! D else if( nLevel > 83 && nLevel < 96 )$ z# _6 h& m& }/ w& s
dwTmpSkLevel = 3;
M M$ r* f2 \) D else if( nLevel > 95 && nLevel < 108 )" P1 ^6 i) ^, c8 }0 s
dwTmpSkLevel = 4;
1 S) u0 m" {& {6 g% D4 T1 ~ else if( nLevel > 107 && nLevel < 120 )
7 {* e/ A8 X: X7 R; q dwTmpSkLevel = 5;" I' e: V: r+ y' s; J e# P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 y% C; |9 }- j/ D
{ 9 H4 x4 c1 f& w# ~3 W& F
LPSKILL lpSkill = &(m_aJobSkill);
; g9 e0 ^8 ]! `3 { \+ X! k if( lpSkill && lpSkill->dwSkill != NULL_ID )! j8 `6 V" W5 f4 C! B: w, L1 M
{
* o- C1 I* H" |1 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 @ m( [; X# j J& Q" t
if( pSkillProp == NULL )$ l- d1 ?: ?( ]7 `/ K% h
continue;
- R5 F4 m3 K$ h" Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER). Z9 b5 l1 n6 F% F$ E9 y) h
continue;' A5 W" V2 W1 z
lpSkill->dwLevel = dwTmpSkLevel;
3 g0 _1 O3 D ^/ a! B) } }
8 F6 p3 M! ~& f, a. [ }) E$ |9 f5 T! L+ U: A& p1 N. y
}
. F. o+ d ]! ` g7 @% Z else if(IsHero())
: U/ Z$ s* \! C4 d {
8 t( f: H' W$ e0 T( r4 n, x* r for( int i = 0; i < MAX_SKILL_JOB; i++ )
X6 R# |% G. X: o0 W. R4 s { / f/ t( Q+ E* q& f1 J
LPSKILL lpSkill = &(m_aJobSkill);
% }$ o! i! ^6 ~' P. { if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 \ C! {- r# C3 m6 B+ g! \2 N {
7 p! ~- S; t) v5 `! N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- ]- F) h; e1 O! T8 M( L if( pSkillProp == NULL )$ a/ p: h/ r4 J: ~" P
continue;* C) N) t# q9 u" B' ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 T3 G3 q1 i* b8 D% a) r continue;
7 B2 o" e9 z" [ lpSkill->dwLevel = 5;
! v9 N4 ~) k( N; z- g }
2 Y9 K% O0 \8 l" s! X }
7 W& J3 D+ a" o/ S5 g$ c }+ I* q0 D+ H* L @' K
else if(IsLegendHero())5 o0 h, [# b9 |0 y
{
; H! O) N9 g& q, Z# d for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 `: E; [% \$ @1 S! Q" \$ x6 H/ l
{
( ^1 _6 \' h( o' L, ] LPSKILL lpSkill = &(m_aJobSkill);1 a: ?" x! R- p* d3 u4 N3 q. D
if( lpSkill && lpSkill->dwSkill != NULL_ID )! f! j/ i1 B- C; P+ n0 S% a7 S- I! p
{3 N5 i- l9 a6 o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 _! I/ V) w! S4 V1 s' |2 F% G if( pSkillProp == NULL )" W/ {' \# q& H7 s; s% y6 t# T. O
continue;1 ~+ n" a! S9 @+ {( W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): |8 c2 {$ u/ R4 P
continue;& j& n) U0 S. U2 B; x0 n$ H+ e
lpSkill->dwLevel = 5;* j5 A) b! @6 t1 T1 I
}! W" Q2 X; O- W- S8 V- Z% g' o
}
& [ V- \: @, f2 B# Q }& v) O& W+ e, c; `: N
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) x* s6 Y' {2 ~- m; \ if( bGamma )
+ H8 r/ `1 ~* Y' J9 Z+ l {
$ m& X- l9 \3 Q; V& g! {; a m_nExp1 = 0;
! V$ [5 T8 g! d8 S }+ H$ w) O$ {, o% }
! S' z, c3 v: w# c9 r; s2 z ( (CUser*)this )->AddSetChangeJob( nJob );
! R) r/ B' |' D( u4 Z; C' ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( P. L0 C8 P) s" ^. a) [
\/ L8 h& l, \2 v' n' x* N$ `1 ]
6 Z& W. |! D* v$ Q2 [#if __VER >= 11 // __SYS_PLAYER_DATA
" w! O* x) `/ L" W, x0 B" \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& }; b8 H9 H4 J3 u#else // __SYS_PLAYER_DATA
% K5 q7 K) Z9 V' j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. j+ X* L( J W, b# ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 R" R0 M/ I# `/ D3 `) z2 V if( m_idGuild != 0 )
! W5 e3 a3 a% g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" J# g7 i5 Z7 l0 \4 i) L
#endif // __SYS_PLAYER_DATA; T$ n. D- P, }5 t
SetHitPoint( GetMaxHitPoint() );
: m1 O5 X- V5 X0 t* c: n- _; R SetManaPoint( GetMaxManaPoint() );
; _+ ` N- [5 I: N( A4 V SetFatiguePoint( GetMaxFatiguePoint() );8 P5 G3 c' Y! X: W1 d9 E8 i3 u
if( nJob >= 1 && nJob <= 4 )
( j; v, r( T8 W; d, ~ J u, u' G {
k! ]( X' b: @9 f) x' G' g m_nStr = m_nSta = m_nDex = m_nInt = 15;0 w0 `- o. Q9 T+ s1 \ l* Y+ R1 w
m_nRemainGP = 28;" q- E! e3 \. e$ y. D; o- ]1 ?
}* M) U9 z/ O ?& N& Q. b; J4 n$ ~9 G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) L% K9 n% p w& o2 w7 a5 } {& k. B2 X7 R/ N
m_nRemainGP = 118;
P; G1 H6 N4 g; T2 H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ K1 C6 [ M* w$ B% N m_nStr = m_nSta = m_nDex = m_nInt = 15;
" h5 r% A7 V8 M& x }
i) K% `7 j1 m! h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! B0 W! w+ z* o, a* i; ~: ]
{# ~3 O1 E/ B" {5 I' f" J+ c
CItemElem itemelem;% W5 j6 x" w4 k: }0 c
itemelem.m_nItemNum = 1;
+ _) [, p+ b8 t: e; e7 f* l itemelem.m_bCharged = TRUE;7 {' W. p) e3 Q7 c
BYTE nID;2 O( n, Q1 c! F
. Q% F, C4 {# E8 w: e$ \3 i0 B* Q0 M
if( nJob == JOB_MENTALIST_HERO )) I1 t2 H, J, s
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 W% @' L7 M/ I% o# U8 x
if( nJob == JOB_FORCEMASTER_HERO ), n. F4 b. r8 _) u: r8 A* B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ C! t8 [3 i$ G) a0 o" k* n) |" w' M2 x# j- o% `
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' N' z% H! }5 R. ?8 k3 ? k: `/ G- {+ A }
- Z$ x7 P8 J! j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 }( h0 m" d1 b( v: Q0 b" j/ ? T$ o1 B2 v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: \! Y# j, h5 {( l. [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 y- \7 }8 C7 E) H" _2 o, `0 P
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ w) [$ ~% k; [2 f7 e) v0 y/ i1 O ( (CUser*)this )->AddTaskBar();*/1 Q( q( ]7 ^9 @ I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 \0 `' c" N! a% S2 I1 E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; x& Q3 Z7 v- f/ P ((CUser*)this)->CheckHonorStat();
+ N2 d* c W0 h2 b. g+ z/ U ((CUser*)this)->AddHonorListAck();7 t! C1 E' n4 G4 {, h# i
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 R4 r, M( r/ y" l2 T
#endif // __HONORABLE_TITLE // ′Tà?' e9 @+ `& S6 Y& n! u# q5 h5 _
}
5 l3 |! a H' y5 F#endif // __WORLDSERVER
v# A; s( x( n( ]6 B} - Z8 Z4 s/ g$ J6 A9 J1 u/ I' x2 S* D R
7 L6 c& h. M1 J1 f然后你进入functextcmd.cpp并添加以下, X3 B* ?, `$ ?5 y/ {( Q. U
/ Y; J) U$ R+ L: ?* v4 j: |8 C代码:
$ ^. N; k# X) }! z) wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): D# p( |% k1 U( H
下面插入1 `& F: B3 N# J! d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ F! ?+ g/ W ~$ t% u3 V5 P0 y) ~" g( K0 U& Y, l+ g' R
然后你去# B# B( N9 O2 v) |1 o9 T; \7 z/ j/ h
2 h( t/ M* {0 e. N( d# K1 s代码:, n5 w) z2 k+ }& A9 A8 n8 N8 Y2 O
代码
$ E& Y9 }7 A) V) JBOOL TextCmd_ClearPropose( CScanner & s )6 ^- B' z3 Q2 F" S2 J. A2 Y; Q" U
{
% C% B# N' A s x#ifdef __WORLDSERVER
' q' q! r" H/ c9 W$ [6 t4 X! m CUser* pUser = (CUser*)s.dwValue;2 r5 |) v6 {1 t+ O: j: d% r
g_dpDBClient.SendClearPropose();: z2 Y3 C/ u9 ?& X5 p* q
#endif // __WORLDSERVER" c5 f2 K$ G3 D' t8 i: s; ^
return TRUE;
* ^4 d! p( |1 [2 N" l9 m}
, l; Z5 @3 x& Z. W下面插入9 f6 d! T! X( {: j
BOOL TextCmd_rebirth( CScanner& scanner )
* t; r' p9 o! A{1 G# l( a C9 P# Y% j1 p
#ifdef __WORLDSERVER- m5 `8 b" E9 w1 n" q1 k# `
CUser *pUser;& V9 ?" Z! [7 j) [
pUser = (CUser*)scanner.dwValue;% E8 K; o' \, S7 Y a
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: T) X( P6 b* IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 }6 t8 j$ L* Y9 x: R" Y% velse1 ?# @. W2 S* b' [& B; B- Z
pUser->AddText("你还未达到重生条件!");
' v3 F9 ]) I& F0 j% t: M#endif. B. |4 `6 {6 s' F/ o3 [. [. U
return TRUE;% ~8 O7 u/ W0 g5 W8 x x: s d4 _
}
. T2 t9 N! o0 u6 Q$ a v# F# g- W
, O, x) T9 x- c' l0 N6 {
% a7 Z0 t/ p z% C1 Q' Q1 V6 W u8 t% u% l3 c) B* h
|
|