|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; b/ `* o" H5 ?" P: `1 w7 U: M$ d$ R* C, G/ \( Q) K! n
Mover.h9 g5 @) N$ G& D9 D8 n- D
代码:
( R9 L2 f7 X) P+ ~& P1 y- |3 J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü F' x+ F' z% I% I0 Z
! {2 |1 G" ^% R( q4 E7 U3 h7 {* ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : b+ d; Y0 T5 @3 R& @$ v5 a
( X. g0 o: T1 S5 ]2 X然后你去mover.cpp添加
. t8 \* `- e: k. {0 S% b, H( V2 N- e9 N1 @8 A6 H1 q% D& m3 y" M: S; a
代码:
# B* x3 z$ ?5 O8 j, `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), X+ O$ D) I" \
{
4 `) G, Z1 g. q, z#ifdef __WORLDSERVER
7 k9 u% M0 q) {0 F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* R* F& r2 t" ~/ Z: p! h4 Q
MoverProp* pProp = GetProp();
3 X; ^( k! a% H7 a. x E if( pProp )
+ n" N- N- B8 {2 l3 t6 p {
( p* m2 Y& F! H$ L1 w6 f( B if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 p! ^; }( [7 Y/ A3 E
{
. g2 t; ~8 S# T/ X0 u- Z4 l! u AddChangeJob( nJob ); k, Q: X; V6 Y6 L
}else{2 r) d) B/ Z8 Y7 w# V2 E8 _
return;
1 p- b1 C! s+ _" g: C }+ W$ a" y, _. C" |; X5 \
int nPoint = 0; `! A. G/ r4 A& ?
if( m_nJob == JOB_MERCENARY ). T4 ?4 z- b/ ]+ L
nPoint += 40;. U, j, A9 N9 ?% x0 k) |. b. t. l
else if( m_nJob == JOB_ACROBAT )
% O9 G6 z0 p3 ^. }9 {8 ? nPoint += 50;
+ b, u: U' b# U5 h, Z- S else if( m_nJob == JOB_ASSIST )7 ]: d/ h0 z" Y9 n) z3 X
nPoint += 60;: v( s6 u0 C- ~2 ^/ F( q* C
else if( m_nJob == JOB_MAGICIAN )
6 I+ i- S* s5 R' q H$ L J2 G3 Q nPoint += 90;
. T" X# x, b5 e+ I. x8 U/ C0 I$ x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 Y4 g# b8 k& @- c2 B/ d$ \0 N
nPoint += 120;5 }( G2 U4 c4 t! I; j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ ^# e) i) Q. n# f) g. ?& O7 ~ nPoint += 150;) h: y( P9 [2 E1 _7 G8 H
else if( m_nJob == JOB_RINGMASTER )
M# V9 ^% P' t' B) C, P nPoint += 160;, f2 z# M% ^! D# Q, U* v n! E8 Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ w0 }: k/ l7 {1 L% k0 q
nPoint += 180;
% |6 x' ?: U2 N/ l! d else if( m_nJob == JOB_ELEMENTOR )3 X+ [, e5 U$ H9 c- `+ b0 o
nPoint += 390;
2 U0 J# P) Z0 x, u2 z6 f else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 j3 S; m& d1 U$ ?# d
nPoint += 120;
& S0 R" |1 i2 G# X' r else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 A1 \+ @/ L4 q2 @7 c) E nPoint += 150;
: {6 _/ B; ]0 ]: b else if( nJob == JOB_FLORIST_HERO )
. n: g% O* E4 r/ P nPoint += 160;7 d; ^9 `4 ?9 d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); z" I" g9 Z& Z
nPoint += 180;/ v1 [7 M) s; R$ c z9 ~
else if( nJob == JOB_ELEMENTORLORD_HERO )) m+ J# m: ]8 T! @. H
nPoint += 390;$ H- j% s* g9 E, [# l0 s
( K8 ?5 r5 Z! ~0 K: f/ y
AddSkillPoint( nPoint );
1 U3 f% M# i( { m_nLevel = nLevel;1 V* u7 J# K4 p" F; k; ~+ j+ j8 s
, }- E" a+ r& q6 W) S6 Z
SetJobLevel( nLevel, nJob );8 a/ Z" R1 w% T& O" q$ V$ o
m_nDeathLevel = nLevel;
1 g4 ~7 V" G9 w; C( e; \#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( O7 Z: M7 r9 |8 o/ j6 w: V) m; J
if(IsMaster())0 Q, q- |, u" H! K- k! z9 M1 h8 c$ a
{8 V9 ?# a' g) R3 _ I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& U6 U& T- E& ] if( nLevel > 59 && nLevel < 72 )! b! n* g& V: b
dwTmpSkLevel = 1;
8 D6 K5 b' o9 A! e else if( nLevel > 71 && nLevel < 84 )8 ~9 c+ T# `' D/ @0 l) }: N5 i
dwTmpSkLevel = 2;
. M _6 E4 O- p: S4 ^ else if( nLevel > 83 && nLevel < 96 )! P) q# M& _! R9 `
dwTmpSkLevel = 3;
* Y" G7 v6 l; } ^7 N& F else if( nLevel > 95 && nLevel < 108 )
" T4 @; ?: W( T3 @& M* T7 w dwTmpSkLevel = 4;& ~# x( M( [+ w$ t/ s! Z- h
else if( nLevel > 107 && nLevel < 120 )
$ h/ L5 i9 Z/ e dwTmpSkLevel = 5;
: P: z% j. U- F1 j for( int i = 0; i < MAX_SKILL_JOB; i++ )
# w- }- C9 y9 b. E& i7 \/ w { : [7 q* Y* v# S& c& O
LPSKILL lpSkill = &(m_aJobSkill);
& `) q7 f5 v7 q/ C+ ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
" m; t( S$ N0 y j$ Y {' o/ t: s: L, z! T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 D/ c1 N/ [' B, F+ d if( pSkillProp == NULL )
6 a) I: K; i, P$ |1 z3 N continue;
+ w- F( e- u8 c* `/ f; l if( pSkillProp->dwItemKind1 != JTYPE_MASTER) g/ h& Z" l) G# B
continue;
, R3 A I7 i7 O+ w. Y" v% u lpSkill->dwLevel = dwTmpSkLevel;
9 J: v+ @; _) R& q# N }
# X* M9 v }# Q5 K5 O! J! q+ ] }1 ^. b. e: j3 e5 j: t
}
) ?' F l N1 q: Z else if(IsHero())+ _+ Y9 Q, y% G U; ]3 n: @! B& q
{- J5 z2 O4 n: ~% A; w6 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 C y7 b0 C/ ]! s* W# r
{ ; W4 E3 n: E6 J ]8 d& o8 x" [. O
LPSKILL lpSkill = &(m_aJobSkill);$ L. J- c& [ W8 F+ J9 @, e% R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
H5 N7 }1 N4 z- J {' A8 _* k; A' k8 Q4 v5 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& T8 r7 T5 F; h7 O if( pSkillProp == NULL )
9 K$ A. _. L8 I1 N/ T8 | continue;5 a# t5 n# }. M- t9 e& e9 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: Q+ w1 r, `. [+ P continue;
& X3 }' \7 T% G3 T lpSkill->dwLevel = 5;
! ^$ t2 F- F- L0 d }
. B# n" b3 \+ z# R2 Q2 q" ~ }+ Y; i* i7 }" b, V! Y
}( m1 Y9 E" P! a4 \
else if(IsLegendHero()) W& g5 e: g+ s
{" s6 ]* v5 X( Y n3 s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + Z' Q6 Z" `' z% r# V
{
+ Y% W5 b+ o+ w) g& g& g6 F LPSKILL lpSkill = &(m_aJobSkill);
7 i$ b# I! e, ^5 z if( lpSkill && lpSkill->dwSkill != NULL_ID )9 V+ O2 n: i- s( l" B
{3 X+ u/ J; x* |4 X& E$ U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 j& _; `. A9 O6 U1 J# n if( pSkillProp == NULL )! G9 U& ^$ j1 i; C- N& {# b/ g
continue;, R" z+ t! m8 o' ~1 ]: X- J# D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( A* [" @1 M0 b4 U continue;* N' {/ A, L9 J$ e i7 N- [
lpSkill->dwLevel = 5;
. W, B. c) [) T& j }
1 Y7 e1 o% s) [: s4 |$ e }
. b, L+ y9 P# Q* a y8 o8 ^ }
4 o6 ^- q4 G" |# I#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 t) J' Q$ ~' y0 F if( bGamma )+ E' [* J# `% W" c4 C* y
{
2 h3 e( D5 A) H$ u G m_nExp1 = 0;6 m& Y4 v2 u# |1 d: B
}7 i9 X9 C% Z" H5 r
0 t: x& ^' Y- e; N' ^/ Y
( (CUser*)this )->AddSetChangeJob( nJob );( ^( r9 p" _- U+ [$ J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 A; A* C2 P* P& o/ a
1 M7 B, w! m9 g5 r
y# K# y6 b; p4 x#if __VER >= 11 // __SYS_PLAYER_DATA# z! V% G5 i/ |: ^- I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' D% V* L" q& S" l" y( `
#else // __SYS_PLAYER_DATA3 I6 ~9 B- A: c& W/ ?' R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- d3 d- y- W2 Y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 {0 k. q+ X1 T/ ]" K9 E
if( m_idGuild != 0 )) A& n+ r3 G# H2 r7 a2 o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( O7 l) n" r. t" e
#endif // __SYS_PLAYER_DATA
! R. n6 E# e Y8 a SetHitPoint( GetMaxHitPoint() );) }1 P# P8 k, Q. s8 [( V6 [* [
SetManaPoint( GetMaxManaPoint() );
3 x, p1 C% S7 E+ V8 I& \9 [ SetFatiguePoint( GetMaxFatiguePoint() );6 j0 o* _- B9 O7 l- y& N# r
if( nJob >= 1 && nJob <= 4 )5 h; A' r: ~+ O( V3 x4 |, E: v) u; q
{
' e4 b/ t: t$ v" Q2 c( F+ B% S m_nStr = m_nSta = m_nDex = m_nInt = 15;) ~: A/ g+ Y( s' ~9 S
m_nRemainGP = 28;! U) G" r, b' f1 P
}
' J& U1 F: j" m' X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 l7 }$ n0 v0 \5 C {2 M) u+ R7 r8 Y, U! l. S5 F
m_nRemainGP = 118;
3 g+ A8 s4 Q# C8 w& P, j! p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. K5 X# y) i9 H. {) i
m_nStr = m_nSta = m_nDex = m_nInt = 15;* L- j" Y0 c. g" g* d
}
1 O" X7 S4 r4 L } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 I5 j) e: x+ R- i" U {4 }$ @" o6 s* u5 X2 [: n2 z
CItemElem itemelem;8 T0 F) E" ?, j# m! J
itemelem.m_nItemNum = 1;
. G* N1 {9 N& h3 V) e" C9 S2 C9 L itemelem.m_bCharged = TRUE;8 T$ Q& H% K+ ?
BYTE nID;3 R- X# L7 h* f! P" i. [2 x
) w% D. U5 C0 w5 l
if( nJob == JOB_MENTALIST_HERO )+ l% E8 P5 t* b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* i7 D- I( w( {1 \; r5 f, C6 U" K
if( nJob == JOB_FORCEMASTER_HERO )
; z( g9 Y% A( d2 r& T* Z4 {1 z. @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 S, v3 U6 T0 q) M3 s
: u% q' o2 m& K n" s9 X3 m ( ( CUser*)this)->CreateItem( &itemelem, &nID );( N- ^7 _: c" }6 j( T
}
0 w- t8 Y5 `. h6 A g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* G+ i& F1 ]& O& n1 L3 `8 A ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# k' r _' Y: r6 n1 ^3 P, B- ^9 \ ~5 o ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' \8 j6 @/ X; ?% S( K* N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ D7 |: S4 `; ~1 `
( (CUser*)this )->AddTaskBar();*/
' ?, d, A, A8 E x) e ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, J! s+ ?7 z2 ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# g+ o% K$ ?* \' U
((CUser*)this)->CheckHonorStat();
4 r$ b% x' E+ P) c0 J* w5 Q) t& p ((CUser*)this)->AddHonorListAck();
9 r/ h% ~! Q2 R g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 E G" u5 j* m' ^5 K4 Z$ A( x#endif // __HONORABLE_TITLE // ′Tà?
2 ^" l% c3 F5 \ }0 i( S* l: D0 `/ [$ m! }4 j
#endif // __WORLDSERVER8 h1 p/ C! K/ T& l
}
0 `2 `& q# V, B* p3 H
' d8 J8 U* j& v; e然后你进入functextcmd.cpp并添加以下
4 f9 h7 X" o" ]9 H( E$ o$ @/ W' T. k- F, y: ? c% ^
代码: o4 n0 W. k1 m6 G. a7 k
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 W" f# r3 d! ^4 C: Z, Y
下面插入
" T) q) u& P, D9 I( [+ l# k) u% h! TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 w7 d; ?# A9 e. {
* R/ X4 m4 Q/ h, D K4 U( K0 I4 ~然后你去
1 F& \# H; n% C& Z. T/ y; {% ?, e" z) ?6 J6 G+ V7 ~. ^
代码:6 J1 u7 ?% z \/ L5 g
代码' H* r7 ]8 a: s1 `" Q: Q: k
BOOL TextCmd_ClearPropose( CScanner & s )
- e |$ A3 r* H5 p$ [# g c& J{
/ _8 l" G* c0 e' [8 e* d#ifdef __WORLDSERVER
" c# h* e* F ~+ N& y$ t4 \ CUser* pUser = (CUser*)s.dwValue;( [$ x3 l$ \! s' z m
g_dpDBClient.SendClearPropose();
/ }1 l- j4 }5 L* W0 L2 ?' z#endif // __WORLDSERVER" n* S y5 I8 W" V# l5 i
return TRUE;$ l# o% e/ f" k0 T. I6 z X0 J
}0 a8 F# |: M1 |; m" [
下面插入
( k9 g) M, I3 ~$ VBOOL TextCmd_rebirth( CScanner& scanner )
, G3 P' I' l9 m{
1 D3 e2 j9 x& I/ T7 J t#ifdef __WORLDSERVER0 M9 X- o5 h: d- a/ {: @) g
CUser *pUser;
& p& G, r) p$ i7 KpUser = (CUser*)scanner.dwValue;0 N, E% z' S, A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' |) w' C# p4 t0 T4 B- e' I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 }, D0 {; i& D7 C- |
else
: y, b, p# W7 a' TpUser->AddText("你还未达到重生条件!");
6 e; V+ ] h! h' V9 Z#endif- f ^- W1 @% B" E- ^
return TRUE;4 G9 j; ~# t* j
} 2 e% F& }* F$ M4 n
; [% d: o, A7 Y4 }2 A
: d% ]2 \8 h& o
9 }. {( u0 J2 L, s+ F7 m, k. I) }- } K5 _* F
|
|