|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
J+ A+ E% ~& ~9 n& r$ d* k9 r8 R8 c/ d- o6 _ M
Mover.h
9 S# k2 J& `% C; a6 |代码:* o9 d' j7 I, _) n: y: L0 w N7 j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; V5 ~+ w' \3 w3 ]* [3 ]3 j, d$ u8 }; M; D' N; V- C% N5 e/ i/ H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( K) [8 N/ f6 c/ h3 g
9 |6 x* ]; g3 {8 M0 l% v9 T, Y然后你去mover.cpp添加
' u5 D* p1 J2 \& Z% Q7 k4 L$ }! Z+ d7 R
代码:
" P9 w" t$ F( @" V" ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( p! b6 f/ v! c/ w, L* z
{- E3 V- R% B/ n6 v6 e; @+ k
#ifdef __WORLDSERVER) U p" I# @2 z- j; Z( p2 t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 h8 D+ }9 ~ B& U3 n0 [ MoverProp* pProp = GetProp();( A0 N% X5 }. |0 n/ N$ D% w
if( pProp )
7 M. s' B, m, N {5 I# K" ~6 B% j6 |' Y! @' Y& V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' i; P+ h: M( a3 [& h" m {
s* d' `/ Y* G. u AddChangeJob( nJob );
" t/ g. r1 _4 {+ H- h0 J }else{
5 M9 z5 n8 T$ L return;: _( y/ a& @ W/ G
}
; x/ y/ I, ]8 o$ b% o! ` int nPoint = 0;# A- ~9 D+ V: r/ i W
if( m_nJob == JOB_MERCENARY )
2 A1 w" r9 ^/ E9 V1 ^2 D nPoint += 40;5 ?/ P1 l4 r9 ]+ s1 G. T
else if( m_nJob == JOB_ACROBAT )
5 p7 P/ ?. q/ a nPoint += 50;5 m+ q! _! c/ N- v% }* k! K% \
else if( m_nJob == JOB_ASSIST )
1 F! O- @9 o. k! X: Y nPoint += 60;
B9 X% ]3 X# l7 w- r- S8 V else if( m_nJob == JOB_MAGICIAN )& U5 S r% P5 p( a6 s9 x( N6 y
nPoint += 90;
; F9 W+ ?3 |3 G- G9 j: v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 d. y3 u0 C! L/ o: M3 Z
nPoint += 120;$ p( g, G- A3 ]7 _ u+ `: C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" p. }1 U2 `& a nPoint += 150;
/ }% Q/ \4 D0 U/ I6 S' z* d else if( m_nJob == JOB_RINGMASTER )
) F4 N* i9 s$ x/ @ nPoint += 160;
5 X- V( z# l$ ^3 G g5 E4 F else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 {. J! T( y2 p+ o! w( g7 h! M
nPoint += 180;7 n1 |# s9 A- N
else if( m_nJob == JOB_ELEMENTOR ) d2 s a M, e% J# H
nPoint += 390;3 ?- S5 R0 ?& n5 _! w; l4 p9 i2 z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). p3 d/ o0 O+ I
nPoint += 120;/ t" y7 @8 l( j' Y5 I9 a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 G( |- I) L; }; i3 S6 l/ N nPoint += 150;% @( _- Y, `% I' V( o! ~; z3 a
else if( nJob == JOB_FLORIST_HERO )) K2 m I, f% L/ P' f' q% v2 }
nPoint += 160;) R, d, {1 S$ ^% y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- O9 V7 N1 s8 n! D' B/ L nPoint += 180;
: @( s7 `1 |7 K% e, t# D- o else if( nJob == JOB_ELEMENTORLORD_HERO )
$ d7 T6 R( ]! L, P2 Z. v/ Y nPoint += 390;
( G f. N6 f; p& X% \. S, v
; {/ B+ g, l* ?) T$ j, k AddSkillPoint( nPoint );
$ o1 e& F* ]& m! {7 ~0 z2 n m_nLevel = nLevel;
1 p0 Q" o- y3 ]6 c o" F- g: |
7 v8 d: J' F3 K- F( e; W SetJobLevel( nLevel, nJob );6 G6 [7 c. ^% ~ g/ c
m_nDeathLevel = nLevel;
$ g$ U4 L! t+ a" g5 B* i- X3 ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: r1 r+ `' N K9 ?2 {+ H
if(IsMaster())
3 m7 e! E( H$ e! d- u, S {2 O; U% K: w( ?% d( G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 o' P% ?% E* W: F3 q8 g
if( nLevel > 59 && nLevel < 72 )
# q+ E/ @, V$ R) s$ W3 u0 C3 k9 g dwTmpSkLevel = 1;- ^$ `! |& q6 J! B
else if( nLevel > 71 && nLevel < 84 )
, b3 J* l3 X% V/ ]1 A+ M/ I9 Z dwTmpSkLevel = 2;; G" v ?& M' A8 U$ v4 i. |
else if( nLevel > 83 && nLevel < 96 )1 C) Q7 X, ^% J' ?" [
dwTmpSkLevel = 3; L3 g" C2 c; k4 d
else if( nLevel > 95 && nLevel < 108 )
! U& Y1 q( X- I dwTmpSkLevel = 4;
- _2 \0 _7 g2 N7 `7 Z else if( nLevel > 107 && nLevel < 120 )
3 m4 m! T% c% s9 X- F0 o, G2 v dwTmpSkLevel = 5;1 e* b) P8 K t. f) ?2 J" k1 f# q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" M- V7 \3 r' q1 U4 j& y {
; m+ @4 T+ Z/ S( b LPSKILL lpSkill = &(m_aJobSkill);- P1 G q& M5 b- n! ?* f9 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 q& |5 K( p# Z
{3 L8 ?7 \* A. b- v O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* @# I# \, |8 a4 }* E( H if( pSkillProp == NULL ). O: L& E; g& e* V, B! K7 T* a
continue;+ p) J, l2 y) k! `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): ]* Z% F1 Y) a
continue;
1 ~8 U3 ?; p/ K# X lpSkill->dwLevel = dwTmpSkLevel;
( k( d5 \" `) S, I% i* l5 v }
- c9 q/ v1 |3 r9 Y; A% N2 s }. ~6 I3 V$ c9 _! w7 v) E; l
}
4 T$ j% |, }2 V) M" x8 R# E- U else if(IsHero()). h% c% b/ |( d) c
{( S& g+ [ R" o5 b4 ]! y5 m+ U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 l% a% |! y _) U4 F" o
{
/ Z1 }# F6 j6 J LPSKILL lpSkill = &(m_aJobSkill);
5 O7 W, g2 A: Q* v* P3 l if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 Q. e) G. n# H- W {/ g5 u: j1 W5 G: d& S5 _0 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / r# J9 V$ M1 }, U- Q
if( pSkillProp == NULL )
- Y, R* `% d. x continue;/ l# R4 a6 M% t$ B, N ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" u* D* ?0 d, r, W" \) C, ^& ^
continue;
9 a- C/ J d- T A1 M lpSkill->dwLevel = 5;1 i# ^9 J0 h/ V# U! U! r% e
}
- K: y5 i: k! T7 v' D$ S1 M# m }
3 p% m- _ M1 S }
7 f) Y9 d) u9 r7 o3 K6 N7 S else if(IsLegendHero()). v1 Y8 C2 Q2 g/ }
{, B! W0 J- m! ^- H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % T( y2 O- n. p" _
{ + v2 X- u$ h/ E/ i" C7 q7 w6 n
LPSKILL lpSkill = &(m_aJobSkill);, w3 A8 \- s' R- F* V% g) R% f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- X5 l: w( L, w" C" N5 S, Q {
, n; R0 V C% D' {: Y" Z$ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
N# m6 W7 ]2 \9 C( W# Z if( pSkillProp == NULL )! W: e, S4 |$ L! T
continue;) m$ U: U& w. T. Q4 u+ h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 l; R' J3 H. u& I
continue;
7 n1 Y0 S, P5 {5 g3 v3 G3 f/ j lpSkill->dwLevel = 5;) G V x1 E7 x9 S8 A
}& z9 m0 B' a% \% D; V
}& L; x5 |1 F1 W* D7 @- m% G
}+ J8 K5 l9 L0 R9 ?, I* C
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% v$ Z5 o& J4 j! w$ q
if( bGamma )
2 i) W: }" W# M1 t& m) | {
( W, K: W' G" F. l3 \- K" m# @ m_nExp1 = 0;4 r+ @/ `+ B7 M; I
}
4 Q7 }3 \- e. r/ L( ^* w
h: L& \& {% w3 d ( (CUser*)this )->AddSetChangeJob( nJob );: ]* _0 [" z' J9 k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ J$ _3 N3 y) {9 z5 G. ]( @) r4 P. E' U! L3 r% k0 B
6 g. O3 g% G5 p! T6 l. K* O' t$ w
#if __VER >= 11 // __SYS_PLAYER_DATA: r# G. }+ s" r' c% R& E* h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: a6 C- _6 J: \5 e
#else // __SYS_PLAYER_DATA/ ]: o" o: N, o0 h* [7 l- F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 g, _2 _8 d% m9 V! G6 m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 D9 a8 z( t- ^, R. F# O
if( m_idGuild != 0 )/ u2 G' x& L( C$ s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 R8 [7 Q; N/ ?/ F% {7 n. b7 K6 A#endif // __SYS_PLAYER_DATA6 ^% `- e' ^! [) y5 ?+ ?8 M% v
SetHitPoint( GetMaxHitPoint() );
1 z. M( F& L4 t, ^ SetManaPoint( GetMaxManaPoint() );. a3 O0 {* t: b) T/ }6 `
SetFatiguePoint( GetMaxFatiguePoint() );
: h: f& U$ e' Z1 o! U5 z3 @/ T if( nJob >= 1 && nJob <= 4 )0 O: L8 `; v( q5 t$ B. \( ?6 g. k
{
' ~, }( \% {: y) o m_nStr = m_nSta = m_nDex = m_nInt = 15; s% s7 ^+ p' Z! R) X
m_nRemainGP = 28;9 p+ s+ d) a, m
}
1 ~7 ~) E) _& `+ Y2 A t( v) o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- w! t5 t# S) ^4 Z8 E$ g {
: ]4 y% e9 J1 ~* M* g m_nRemainGP = 118;: u) T y6 `/ r2 N( i- D
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 k K1 s/ E- F1 ~& I1 g) m m_nStr = m_nSta = m_nDex = m_nInt = 15;2 b$ \: c6 s6 ?4 H" t2 s# I* n
}
6 P, d+ ?' T; |" K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 M7 v' t: L9 ?0 y7 K. y1 S
{
( N1 o8 H% Y/ j8 | {! a; l CItemElem itemelem;3 ^; b [: h4 Y, ~- n1 c
itemelem.m_nItemNum = 1;3 L5 M/ t8 Y& E2 f: N# M4 @
itemelem.m_bCharged = TRUE;
% L" R4 l8 P# k BYTE nID;
8 Z" W2 J u; e" O' o& I! c9 n4 z* I
if( nJob == JOB_MENTALIST_HERO )
; O( f+ }* e8 j" Q$ K3 a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 o4 e( K8 |0 @0 c
if( nJob == JOB_FORCEMASTER_HERO )
6 F" K' T" r& g itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# X- f/ o& p m# ]
6 v" `8 q+ O/ C( G* V: x( T0 J ( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 E h6 m% E: W6 B$ u$ G3 j }
# A+ N8 p# U3 u/ w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 |( O- e5 d) V: f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 k) u6 [" L, g. o ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# M h5 o. j( d; \" l0 Q6 J7 w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 ]; l$ }- K- g$ K ( (CUser*)this )->AddTaskBar();*/
3 n' t! Y# K4 x) X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 M& q% X! u L" F' V' N p# q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 L& l x% ?5 C' J/ ^/ ^: E w Y ((CUser*)this)->CheckHonorStat();1 G; y) r. L% q2 i# B
((CUser*)this)->AddHonorListAck();
$ O$ ]& P# c; z7 u2 U' r* h( Z g_UserMng.AddHonorTitleChange( this, m_nHonor);6 R3 O( r& ]3 P) z9 P- i
#endif // __HONORABLE_TITLE // ′Tà?, e2 E7 v4 T& j' n' b/ [
}
/ {8 S6 y) `2 d( F0 U# b+ n5 p#endif // __WORLDSERVER
" Q/ G- S7 m6 {$ ~. ~} ! `5 i: G- p: N, t
, H& \7 \0 O% C, S然后你进入functextcmd.cpp并添加以下
6 J9 A1 R: c4 C( D5 A2 H8 n- z% \$ y3 v; e: E
代码:. i; ^& _# t& |* d1 V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 m' F/ R& a" M2 \: ^
下面插入
8 m h, T8 Z5 v) ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* Y" w5 `. p& X9 A& I9 V
; n. e5 r7 p5 K( e. m% H然后你去
* l, R3 G9 g+ X% D3 C# N8 U7 \4 C0 B) b' g; g" e+ O8 w
代码:
7 b) {3 ]! A' H, A& b代码, H3 h- `8 J% y% p1 h
BOOL TextCmd_ClearPropose( CScanner & s ) G2 r: n" M: c9 y2 m
{/ w. [" V& M4 I- \
#ifdef __WORLDSERVER
) ~6 r" t+ L- `/ H CUser* pUser = (CUser*)s.dwValue;' a3 W0 A- p4 L$ W2 E
g_dpDBClient.SendClearPropose();
6 `. t$ L( @3 F! f. s#endif // __WORLDSERVER( p9 {7 k4 X+ ?* ]; V% C% i9 H
return TRUE;
- e; D ^- m* g( j4 p5 ]8 h7 @0 v}0 R1 s1 h: O1 \' @- x
下面插入- k0 ~ a: \2 s& Z0 ~
BOOL TextCmd_rebirth( CScanner& scanner )
, k; u4 w. _0 {# S; T- a$ ?{2 x" Y1 D s0 f2 w& u2 A/ p# C, T
#ifdef __WORLDSERVER
3 h/ n2 ~7 b4 n) X8 GCUser *pUser;
0 F; i2 e+ I- o l5 PpUser = (CUser*)scanner.dwValue;
+ h: \9 Y: Y+ `: v6 P9 \if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 Z& V( y! @. _1 m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, f6 P' c. X' o9 w5 R1 h/ y! eelse
' N' @ W. E7 s0 ]pUser->AddText("你还未达到重生条件!");
y0 _* T! B0 C' A7 O8 V, h3 e#endif
4 v7 a2 M; Y2 y' qreturn TRUE;% O( H* U& Z% f5 y
} A' t3 c; I+ i' y+ f
u% Z5 \8 d7 P/ I s) `
8 N8 _6 S& `# O
5 h3 \8 i* Y+ `: _9 ?
! s9 G& q3 p' O+ A0 f+ P |
|