|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 A" q* ~& E8 q C7 n
Q: K5 j& K9 W+ L0 q$ GMover.h
3 F) m; u/ l/ q9 M$ @6 D代码:- S: H$ a) Q1 s+ C& X$ e0 I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, O, U6 K# Z9 g. t4 b: @: C' i
$ p& b" a% t) K' F) x/ P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 Q* d% @4 k+ M; H) Q p9 @
) x; T w; n2 b% ?" @然后你去mover.cpp添加; B: B3 Z8 w6 ]7 f/ a
# Y2 V4 O4 j- J4 ~- x' b8 E9 u: F9 f代码:
1 C# u8 v& A+ D8 d+ hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- x& e; m- n% t7 a j/ _
{
; G" |. t: E: i, k#ifdef __WORLDSERVER
1 I7 }8 h5 e' v5 y$ @6 q0 k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" s; K, p2 n |, M! o MoverProp* pProp = GetProp();( S$ G$ O: Q5 m# _" s( j( ?" e. x% }
if( pProp )
3 \, s* A! v; \* t; a5 Y9 M% K; D {# _2 E# _% M4 i7 A! ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% e5 z# h# T# \1 ]& e# U( T
{
. W2 W1 E$ V, z AddChangeJob( nJob );' W s( s; E) J6 o0 T5 W7 P. L( n
}else{ v6 ^1 H! ]/ X$ W3 r6 R
return;
2 {" \. F, d! P1 w! s }3 o# [! q# G6 ]' C; }
int nPoint = 0;& J/ Z9 j' C# r4 ]3 ^
if( m_nJob == JOB_MERCENARY )
+ D2 s2 M- }* C3 k) f- p/ r2 C nPoint += 40;
! H8 Q ~: o7 [" I/ c1 P else if( m_nJob == JOB_ACROBAT )' p& A5 `) _! o; a- P! ^
nPoint += 50;
) `9 {9 u% Z4 J) j( n else if( m_nJob == JOB_ASSIST )
* s E' l* X8 q nPoint += 60;
; H. W! C7 m2 ]. i5 a+ x7 i. d else if( m_nJob == JOB_MAGICIAN )
( W1 Z8 V& v' R! O: }2 D' f nPoint += 90;* v. Y$ V- K4 Z+ k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% e7 B( T4 h; Q) t7 o
nPoint += 120;
/ V* t' c, @1 D) F+ j8 x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( a0 [/ p- C5 o5 b) z+ x( S/ m nPoint += 150;( l( O% c, Y- l# z
else if( m_nJob == JOB_RINGMASTER ) \/ D t2 Q: ]! C% C8 C
nPoint += 160;- R2 g$ L8 [) J% F! g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' Q& z0 B# o& X- E& u
nPoint += 180;
7 I) `* j7 B7 c$ V2 \ else if( m_nJob == JOB_ELEMENTOR )
* ~3 F- t6 v5 d% W# b+ } nPoint += 390;2 V/ e3 f% x8 o. b; l0 R9 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' E" C2 \. I+ U% _0 K: A
nPoint += 120;+ Y: a; ]; u0 v1 A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( @" d6 a/ Y; H nPoint += 150;+ k6 N& ]% d1 ^: Z4 ?$ j
else if( nJob == JOB_FLORIST_HERO )* K7 o6 Q% v/ a
nPoint += 160;
# J/ L/ G8 @+ p% {. I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 ~( V) ]1 B z) s5 {! Y2 E nPoint += 180;
+ Y6 K" |; c, e: \8 R else if( nJob == JOB_ELEMENTORLORD_HERO )" ?$ e0 ?* J3 i% L/ l2 ?5 K, e
nPoint += 390;
& [7 r1 d9 n! H1 C$ {* A% m( u5 _1 l) Z# u( p% t
AddSkillPoint( nPoint );
3 l( E& `% c! m$ E/ i m_nLevel = nLevel;
" o i4 @* Y" g6 Q! ^; C" q
/ A7 {, K1 m. X: k, Y7 {0 t SetJobLevel( nLevel, nJob );
2 H0 e1 X" k' A3 r5 \- w* k m_nDeathLevel = nLevel;$ ^0 t/ _: a1 H$ t) i% x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* j& P$ X! m% l1 P
if(IsMaster())) i+ e8 @# L: R9 V- [' e9 \( P/ _
{
; P$ b4 C6 w7 D2 E7 h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! h/ n- X- i5 T0 V, i if( nLevel > 59 && nLevel < 72 )$ s9 M& E$ A3 K' x
dwTmpSkLevel = 1;% n& B. W* N) o* w& `
else if( nLevel > 71 && nLevel < 84 )
t2 ]- k8 Y& i) E! ~ dwTmpSkLevel = 2;
7 X' M, l& j- S$ E+ s else if( nLevel > 83 && nLevel < 96 ); A) @1 P) b! W# Q0 P
dwTmpSkLevel = 3;
% C8 V7 M8 g2 m6 ` else if( nLevel > 95 && nLevel < 108 )
" J0 ^7 Y# Y/ J+ p' t dwTmpSkLevel = 4;3 o/ X. l4 u/ a, q* a5 t( n
else if( nLevel > 107 && nLevel < 120 )# f; s5 u: P* F' d
dwTmpSkLevel = 5;
# n$ x7 N" r& ]/ _5 f' z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 t. b# ]: E1 v2 b) `
{
1 w6 I4 P9 ~ ? LPSKILL lpSkill = &(m_aJobSkill);! m( W' d# h4 y6 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- M' j; R7 o2 l( f9 t) }) E/ _ {
- {+ I& D' T) F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. c# H- x% {/ s4 S3 P4 Z if( pSkillProp == NULL )' V: o; c" I- ~. q
continue;! P. T' V8 Y! x( _0 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ c2 n/ b2 ^8 e4 ^+ ] O$ `
continue;' A- p2 c3 r; m! v! Z" z* \' v
lpSkill->dwLevel = dwTmpSkLevel;* y2 T6 ~" V& L( y: r
}: a6 c8 s: A! w
}0 ?6 a- A/ _1 n1 l! n: ^
}# c9 L. F2 g) J' o3 B
else if(IsHero())/ s$ H, q% e/ W; a+ h
{" u+ T% O" m( P) O; C' x& x* X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' H6 u% L2 @- n
{
5 P8 c' W5 e# f! y+ v. j LPSKILL lpSkill = &(m_aJobSkill);
6 B i3 X# M1 g5 j if( lpSkill && lpSkill->dwSkill != NULL_ID )
' R+ c8 a$ q9 X- ^+ C {3 T8 e. r. }; w0 n$ e9 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* `0 r6 z O4 P! V6 ~$ K9 Y2 { if( pSkillProp == NULL )" n1 W) {5 @ a4 C i7 t
continue;
0 y+ E7 _% p1 a3 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 A9 x2 T$ f# v& X. d+ g( d continue;
3 K# E1 e, ]8 j( n' O4 S, k N" k lpSkill->dwLevel = 5;
# K* P% r9 R+ d- k! ^: X4 T }
+ B8 h: Z' |1 ]; L& H/ c }
% q- Y+ J+ u- r( K x }
( ~7 q, K) X8 Y% B/ Y4 b3 T- B: Z else if(IsLegendHero())5 w) g' |' A* t: M. O. Y
{! a- b! R2 e/ g5 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - r7 B6 J$ d) V) f0 c
{
& U1 X8 P: K7 D- H6 I/ ?# q% f1 U LPSKILL lpSkill = &(m_aJobSkill);7 |. g" i! \% M7 A9 R3 b7 [& y& Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 U" a& A9 D: |, D: T1 s, v
{( W M% ~! A# M. k" n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 m% A+ G$ |$ z2 M! z& {
if( pSkillProp == NULL )' V. l$ J3 D1 J) \ k
continue;
9 J: J' p1 q2 ~& V. T B- U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) R1 a$ X0 G2 l
continue;- P) f9 @; k; V' n3 o
lpSkill->dwLevel = 5;0 ~4 {6 W" U/ n# H; r/ `
}
* S j# ~+ T8 Q, L1 V5 I; z }
8 ^1 R9 V/ c) i" F, N0 D' m }5 @% ?% ]2 z, V) p' Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: _& P2 v5 e* a; T/ `7 l, o
if( bGamma )9 M6 h, q# U# r$ E5 R' ^1 m
{
5 l3 k% |& ?* ]8 e. l/ L' [ m_nExp1 = 0;
0 A6 G5 Z5 l4 O' W }( ~0 {( J+ }! ~" s$ a ^
A- M: ^0 A2 B& y
( (CUser*)this )->AddSetChangeJob( nJob );- ^9 ]. K4 d2 A+ F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ v! {2 h& ?. {5 `# g& Q! c8 D( G
8 R, h- V7 V6 K* a
5 e7 \; H9 F% J g. ?) c
#if __VER >= 11 // __SYS_PLAYER_DATA
1 w/ v- J* J1 [: E3 W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# ~ j/ K5 [: M; ]! }
#else // __SYS_PLAYER_DATA
* J% c) i6 ?' T/ d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 a, O" z5 h4 T- F* S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% _1 k6 R2 o/ W9 y
if( m_idGuild != 0 ): _& M4 {' {5 s9 _8 ^7 t- G: P
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ A0 e! p/ r/ r; B$ Z% i6 x! ], ^) J
#endif // __SYS_PLAYER_DATA e3 t4 w6 `4 v8 [. t/ \$ S. t9 J
SetHitPoint( GetMaxHitPoint() );' J2 `9 f- P q( d
SetManaPoint( GetMaxManaPoint() );
L- ]4 Q7 { \' P$ @ SetFatiguePoint( GetMaxFatiguePoint() );# C! G: b% p0 g( s# a+ i. T7 {- l
if( nJob >= 1 && nJob <= 4 )
' E; l g! |0 T9 L0 n& K {
+ V4 ~- h `3 J( a+ F m_nStr = m_nSta = m_nDex = m_nInt = 15;
k8 E" ?0 D& ^4 V. Y d: L m_nRemainGP = 28;
1 |0 a1 ~! \ J/ y" U9 w }
& E) \- U) f/ Y7 R7 L; ?# M0 | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 ~, m5 `; r z8 T0 Z( P. y
{8 v* _- V/ t5 m/ a% h1 E! ^
m_nRemainGP = 118;, e x5 B7 i: b0 ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% [ o3 [2 Y( C m_nStr = m_nSta = m_nDex = m_nInt = 15;
. y, p5 @$ q: I4 F }
, n! p) B5 k$ b" g$ D8 } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 c2 v7 \! A5 r: F' X
{7 R* _- F4 H3 V
CItemElem itemelem;' j$ _7 M0 K% o% d1 U6 ^
itemelem.m_nItemNum = 1;8 }, R4 s* L0 E& A) x6 m0 z
itemelem.m_bCharged = TRUE;
/ s. t2 x( u" ]9 O9 T BYTE nID;
. e1 w% @2 N z4 z }$ t# {/ Z; b: e) [& O0 z( U
if( nJob == JOB_MENTALIST_HERO )# w$ F: x) [2 y: |( v! b* r' ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 f) B! Z8 A. b7 D3 J( Q if( nJob == JOB_FORCEMASTER_HERO )! w& c. r! H" O* C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) C: ?, R1 f: E G6 y# q2 P8 B
; t' l1 u' \6 M4 h
( ( CUser*)this)->CreateItem( &itemelem, &nID );- W. M$ U; P& {3 i- v, i# y5 ~: X9 l
}
]/ B3 ^; F/ V$ t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& s) z2 Q x9 y! l$ R! D: I: _4 ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 E8 O& b: Y5 E. ~$ e7 ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. d6 [& O/ n' b/ R( S c8 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, Z* M5 C+ w8 ]
( (CUser*)this )->AddTaskBar();*/" a8 T+ ~- @4 l6 \6 S% e2 V
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 ~" C/ z' I @0 B3 a% t#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: i" F* v$ D/ a
((CUser*)this)->CheckHonorStat();- G8 ~* o+ l$ a$ u
((CUser*)this)->AddHonorListAck();
) O$ l# W6 q" ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);# M. Z8 y* O; Z* ]
#endif // __HONORABLE_TITLE // ′Tà?3 ?1 d7 y1 W* f1 @' u3 G! }$ i
}
* G4 _3 f& f2 b# y4 x/ T4 W+ X#endif // __WORLDSERVER
" T. f) @' C& U3 f! J0 G}
5 w% J, X( @; U# X6 a, S
- O& ~8 |! K9 @6 s# D8 X5 q; ?1 c然后你进入functextcmd.cpp并添加以下
+ r1 _3 o: S$ o6 x/ E: p9 |5 s( W P& m) A, t" c4 t
代码:
2 m, a8 A' R' f* ^) v- GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! q& }3 g4 ~( u1 a* U4 F下面插入2 x* u2 l4 Y Z- o9 ]1 N) {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ?% |" x g' _7 k+ t) Z+ G" z
9 K5 U# Y. X6 }6 p, J* |3 Z然后你去
1 ?2 P4 g: P/ f
, l2 Y; } U! A" R# k- p代码:. C |0 j/ R; g( X# F2 P0 o2 T
代码, A. o. ]9 j4 L0 g7 _4 {' w7 K
BOOL TextCmd_ClearPropose( CScanner & s )& c9 T. ?/ P1 r: P0 B% `% C
{
5 Y$ R8 N; I7 D5 {; e/ m#ifdef __WORLDSERVER$ N" U: g+ C, ^+ j" E
CUser* pUser = (CUser*)s.dwValue;: g. B0 ?( D& ]0 E5 l* N2 z
g_dpDBClient.SendClearPropose();
+ C. Q8 z' l$ a! H4 C#endif // __WORLDSERVER2 a( w2 P. A* ^; S* u
return TRUE;
$ B, P3 ]$ I7 W0 Q}2 C7 ?0 _4 P+ D7 l7 ?& x! m
下面插入
8 S" r9 v3 I8 X" C! g6 LBOOL TextCmd_rebirth( CScanner& scanner )& ~+ ^! c) Y4 [' |
{* D6 \4 Q, V: S9 C7 z$ U
#ifdef __WORLDSERVER
2 i' x( W/ d3 R. |* {, N$ UCUser *pUser;6 f! I V) J& V7 m
pUser = (CUser*)scanner.dwValue; e4 v4 n& R7 N2 r0 |8 x
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! E! e. N( m& R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& r; f4 i- w2 J) N
else& p# Y" L) L% P2 [. Z9 v" |
pUser->AddText("你还未达到重生条件!");
1 t' n& q: I* }" K& a8 v#endif1 x$ L+ o: Z2 s% y' r A4 K
return TRUE;5 f ?( D8 R/ U% ^
}
& ^, H8 }3 i2 B0 |5 O" g# _
% I: Q3 q: d3 w+ l$ w; W7 K3 Q! r( x. ?
7 b0 `. i2 e% ~ ~) d5 Q& x/ }% b
|
|