|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' Y7 i! e! h# L# ?* j
6 b. {, O& y8 c3 d3 \/ u; \0 g
Mover.h
! @- m5 B# |) ^3 ?9 I" u! T代码:
6 w- ^0 H L' a2 f) Y- i6 V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# K: i& I+ E& S7 _2 q2 S% p, }
4 a' y/ |' e w. _0 r5 S下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 D+ m v( {3 D1 E" z) }+ b) K8 Y- V- C" V7 B
然后你去mover.cpp添加+ {9 H) J$ R) Q4 x
" Z- _4 \- L. W! R7 T代码:4 e! o" e' {/ X4 U1 @& q+ V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( _3 g h* r% p- n{! s5 m2 x0 y" |3 q/ c
#ifdef __WORLDSERVER. n1 k! [9 T9 _: K) [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* [* p# @* ]( W0 d2 t }
MoverProp* pProp = GetProp();* X. Q3 F: Z- d% P2 a$ H: E( h$ N
if( pProp )
, }. g9 T$ W: z/ r' E {" Y1 Y2 l* _* f$ L; e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 L/ b% _- T" ?' @- j a( G
{
- r' a7 A5 H8 a+ h9 L9 s9 R1 U AddChangeJob( nJob );
2 V9 V( P% U: A5 R: I. j. D }else{( D# D. N/ x9 `0 T7 F7 }5 ^
return;
6 n; A, w6 j: r9 l9 j" w }1 W/ q$ v3 e$ Y+ t5 p. u6 y
int nPoint = 0;
/ W7 t5 L1 g6 ~' F g if( m_nJob == JOB_MERCENARY )
3 v# \) u* d# j, U( B+ h; A nPoint += 40;) J4 S1 u @. P+ D) m+ j1 u
else if( m_nJob == JOB_ACROBAT )' p2 n% S# K G- Y# K# c
nPoint += 50;
8 E$ Q: f9 q3 }$ h% U7 `2 l else if( m_nJob == JOB_ASSIST )
' Z2 V* S: O4 y5 Q0 X nPoint += 60;
9 v. s1 W' p! e+ ^ else if( m_nJob == JOB_MAGICIAN )
9 Z) S7 G' e1 u nPoint += 90;' a x* w, x+ D4 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) [+ H, f2 O) a3 c
nPoint += 120;$ ~8 W- i4 u+ Q* V
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) O# C9 \! ?8 H8 Y0 r; D
nPoint += 150;5 T. Y% \ h5 e9 Q9 S
else if( m_nJob == JOB_RINGMASTER ); k& G2 t, X7 X0 X. x' W X3 o
nPoint += 160;
7 g( t" C4 _7 y& O2 T6 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. @3 U" W# s- j) O1 U) |" I5 E nPoint += 180;
3 U4 Y; y& k1 ^# b5 n else if( m_nJob == JOB_ELEMENTOR )! P* Z3 } Z# Y4 q8 R" j8 p
nPoint += 390;, n' J1 \# i9 L1 U# p+ X0 a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& j! x8 _: [& C" N2 O0 k
nPoint += 120;
* }% u8 M$ A2 s) f" | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ |. q) ^3 `8 Y- U. i9 v nPoint += 150;
8 {( h# `3 I2 K. \) s else if( nJob == JOB_FLORIST_HERO )
8 Q* y% w' L1 `4 N2 j( |6 ~( Y nPoint += 160;
) E, z. y/ X/ Y1 u9 J1 R5 \ u else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ q4 U; |" ^/ w
nPoint += 180;+ u$ i, _+ O; B/ |* |
else if( nJob == JOB_ELEMENTORLORD_HERO )
! z/ Z6 P/ O, j2 l8 U4 J; {2 F nPoint += 390;
" M' G. g1 y* R7 a( L5 e6 O+ f# k R# W
AddSkillPoint( nPoint );. p* q2 H# m! x- ^$ k7 C
m_nLevel = nLevel;
$ `8 p, K8 X* V! t' S' W- w- t' S9 T2 F- b
SetJobLevel( nLevel, nJob );/ `; Y8 x- x' k4 v1 |3 L
m_nDeathLevel = nLevel;
+ P8 E) F! O% V" R r" p' D# p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. ?+ o$ A& b; ^% e
if(IsMaster())
/ y) S) B+ N1 K {) n8 \' A" w+ \, W
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% d- V' b; [" N) b! `( q
if( nLevel > 59 && nLevel < 72 )
0 f) o2 C5 L* ]( L; ^6 v dwTmpSkLevel = 1;8 F7 ` |! n1 D S
else if( nLevel > 71 && nLevel < 84 )/ d) J/ I% h, E
dwTmpSkLevel = 2;
, K0 S/ m5 C) o( l) b else if( nLevel > 83 && nLevel < 96 )
9 w: U9 ^% g; m+ ^+ ] dwTmpSkLevel = 3;8 g e% r, f% D5 W9 U$ r
else if( nLevel > 95 && nLevel < 108 )' u/ \+ p8 [& W$ j- }5 U, ?4 Q
dwTmpSkLevel = 4;; h6 s6 k, u8 k4 a/ {5 j7 A
else if( nLevel > 107 && nLevel < 120 )+ d% E2 N# Q @0 K* G6 S
dwTmpSkLevel = 5;9 J# l+ o6 K& d3 V& t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " b! t) B$ O6 Q4 G) f8 x, f! U
{ [, i3 _& }9 s, N2 N1 ^5 a
LPSKILL lpSkill = &(m_aJobSkill);
* i7 v( G4 w4 w( T* r8 i q! _ if( lpSkill && lpSkill->dwSkill != NULL_ID ) Y0 F; ?% H |2 H4 }+ U8 t; F0 S
{. c% \/ ?/ h" U8 e* Q+ u# Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + V$ @. ~4 J& c
if( pSkillProp == NULL )
5 Y( e! a! K: Z7 v9 q8 a. b continue;
" y) x, `- Q8 G' Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ K" i% c7 }. c) e
continue;
% Z2 t" E+ m- n4 J2 W lpSkill->dwLevel = dwTmpSkLevel;
6 v4 r( T" | T, P }0 t+ s1 E0 r7 H: M
}
# s1 z! V( U8 {4 p7 r. S' o }
6 ]/ H1 m/ R$ B else if(IsHero())" p9 ^" \$ U6 w
{1 ?( s- \4 X9 X2 E: m* I. r0 g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( ^/ [0 r$ _) b" `$ d
{ 4 K: }, z( x7 f. A% t9 F
LPSKILL lpSkill = &(m_aJobSkill);
" I8 u$ u! H+ O) _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
) }; k9 F5 G/ C+ I+ L2 r0 C$ { {+ ~* D" m/ q: g( y" P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. F; i) e7 u2 e% a# }- |6 _9 E2 @' C if( pSkillProp == NULL )- i0 {+ C, y! Z( O8 S: v
continue;
! q% \# d, T' W* _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) j @+ o( P' y6 J+ W, a* H
continue;
2 U h4 Q1 U$ R8 a1 ^+ E- y6 h6 q lpSkill->dwLevel = 5;
/ V* N! R0 s( C3 u }
2 K* m. s7 \. N% C }
% B% P% S/ |9 k5 ~ }
. ]( h$ j3 a! a8 Y else if(IsLegendHero())
; a+ Q+ Q9 ^. x1 y0 q7 B. [9 n {
6 k6 K' {* L5 o+ | for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( V1 W9 w2 y2 _1 x# v; S
{
0 m/ P+ ~+ }: `$ @) p r3 f LPSKILL lpSkill = &(m_aJobSkill);7 z0 }# ?2 S4 n* X: \3 n7 L3 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 f z7 D/ d( F# g
{
5 K- o4 u) ^/ h& E" k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 l' B2 k8 ]; Z% G, b if( pSkillProp == NULL )
3 x, S7 r1 L( y4 p( R6 z continue;
* C) M) O% b1 n; Q* W! y1 { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ t3 c1 {3 C/ t continue;0 {$ j0 Z1 ?. S4 K" i
lpSkill->dwLevel = 5;
5 f A( p6 `. R% i( t/ @ }
; ^* c! Y; y: w4 {$ b }; l+ ?9 b) E5 S9 }
}
2 {' g; s9 b" J; r" |, W* _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ F4 W, X+ i4 x if( bGamma )
" m* \2 r/ W& {( P6 s6 _3 b9 ^ {5 h. `$ v1 G; C/ H
m_nExp1 = 0;
7 v, @5 z1 P8 H( f1 R }; ?) [$ E/ c( e* h! |" ^" o
% P7 V3 z! d3 `/ A; u0 U4 H ( (CUser*)this )->AddSetChangeJob( nJob );
; Z! X" e2 p, X9 F v g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
]! A9 y" e( `' ?( }) H S- W8 s; n$ [. r% ^
' d+ B4 s3 x2 q% L8 O) S#if __VER >= 11 // __SYS_PLAYER_DATA0 Z6 Y- a) E" ` F0 G
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ }- X. c9 W$ T4 q2 Q7 i
#else // __SYS_PLAYER_DATA$ L2 g: ^9 F, x, ?) x* ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* T2 Y; M$ N) H" P1 k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) c; c% E: C* `$ y; c- j6 b6 s if( m_idGuild != 0 )
- R! G$ P: T. n L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& @& m# |% V' W ^% x! X4 x
#endif // __SYS_PLAYER_DATA' M8 b! v( J+ A8 c, X$ f' D4 [
SetHitPoint( GetMaxHitPoint() );
" S% N0 b' E4 G4 w$ d3 c7 f) d/ y SetManaPoint( GetMaxManaPoint() );) W3 N1 b. o; h% |/ T
SetFatiguePoint( GetMaxFatiguePoint() );
# n( z! E4 e1 I# X$ W- e6 j2 o8 x if( nJob >= 1 && nJob <= 4 )2 n! l$ n, B' S. V4 Y
{
. ?; j+ m9 k+ t' \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
; M1 w0 n s! W' r4 X/ w3 w/ D m_nRemainGP = 28;
% _" c% Z' N% F/ h$ z5 `/ W+ p }- n) R4 x/ l% ]$ n( V/ C/ ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ p" R9 _' t: ~/ M; I( r. x4 B5 Y5 s {
5 }$ O u4 F% i# B. E3 k( H9 m m_nRemainGP = 118;
. V3 |% N) z5 ^$ z2 ?" Y# Q& v& U6 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& O5 s- J* S7 e. U! [ D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 Z4 o! u* |2 c6 b/ R0 Y- x8 G- n+ N }
5 `& D& n' U+ s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
{/ H4 T" N: {9 @+ i C) @ {4 h9 V1 H9 r2 }6 d8 j0 W
CItemElem itemelem;
: a$ u$ k5 `- z$ a* C, W: G itemelem.m_nItemNum = 1;
3 l% o* V# A/ { itemelem.m_bCharged = TRUE;0 j9 W9 Z$ ?! M4 C: w4 X! L5 X. S
BYTE nID;- o& u5 _8 Q+ b J
- i) h5 z, m; p# M& Q if( nJob == JOB_MENTALIST_HERO )
2 f0 }8 e9 @9 \4 [+ Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% Q- G% j5 I M
if( nJob == JOB_FORCEMASTER_HERO ) p$ ~* i$ m3 p& V+ m
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' X1 q% M. [5 x
6 g q0 [) X- v! L- c7 Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# S5 K( l4 U# y( A }
, w2 \% d- l9 u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) r2 x6 \8 v Z# X9 c% v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! ~7 ^( p: D) |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ f0 `" ?9 {1 E: F% L2 L+ B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' ~5 n0 G( U/ p. ?2 N6 W
( (CUser*)this )->AddTaskBar();*/; I! o9 e" O, s" N+ o: p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; ]# O. V. k8 p7 x+ m ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; y) n( j$ u' u$ @3 D" W3 i
((CUser*)this)->CheckHonorStat();8 h% y2 i. m O2 G1 x+ d# g# V/ A
((CUser*)this)->AddHonorListAck();# {( o! m4 M( o# O! r
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 `# |, W( @) V2 x9 g#endif // __HONORABLE_TITLE // ′Tà?. l$ U; ]4 X# T. r
}
. O2 y% `% j Q0 }5 Q4 J4 Q#endif // __WORLDSERVER6 H4 F5 i+ ^3 w# Z4 ?0 Y u Y
}
- w2 h$ b: e# ^# N8 l X) y/ f" t6 @: l6 f+ V, v
然后你进入functextcmd.cpp并添加以下
9 U& a. w2 z! V! J9 Z0 v, d% l
& b' D: K( W! J6 E代码:
3 r9 N0 t" N) w: p9 N0 \$ h. {2 yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- w3 r3 r% d% ^下面插入
* Q# @9 o5 j6 C R, |ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / `1 B4 m o( K) b d( G* m0 h
2 q5 j, g1 g6 \# R- _4 M. t/ M然后你去
3 i7 I/ c9 D4 T) L6 c5 f
0 d$ @% q: I) E, U( D代码:
/ _+ C( ~* T7 M+ Y j* k9 o5 l代码; F# I4 f" @1 @
BOOL TextCmd_ClearPropose( CScanner & s ) d; X; p( w7 M: r
{
0 l7 A8 S& q" J z0 A8 ?#ifdef __WORLDSERVER* m1 _" T1 }1 I# e
CUser* pUser = (CUser*)s.dwValue;
( C" } d- W6 l- g5 k4 x# z g_dpDBClient.SendClearPropose();& m$ }# v% \& g- l) t
#endif // __WORLDSERVER; H: R9 b9 g6 l9 l1 D8 z, q+ ^ f+ D
return TRUE;$ T) T; r& H8 k2 ?' Q
}
+ I8 {9 j! X+ b3 K# t K/ a" g: T下面插入
: I, [1 l6 _" V7 r* g7 t, p" z$ dBOOL TextCmd_rebirth( CScanner& scanner )
: t2 |# p7 e- |8 o2 U5 K{
; m5 {+ }" F! a( h$ _: N' o$ @#ifdef __WORLDSERVER( c% T* K' P; f+ A
CUser *pUser; u, P/ ^7 ~. N4 D2 Y7 V7 _" {
pUser = (CUser*)scanner.dwValue;
1 N; c% r8 l* _* V+ J8 t/ e Pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 P) t+ B! w: M! _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& E, l" w& s& L- `3 ]6 e- i9 C
else, D, w3 e+ k! w k) V
pUser->AddText("你还未达到重生条件!");3 }* f& m P4 |- g; S/ |5 I# n
#endif7 |1 E6 w) g# P1 i* B
return TRUE;+ T# S% H. C6 y) R
} i4 F: O+ T0 Z6 q
e) G7 W! L, x/ M P t& M Q; z/ _1 l5 t4 I- a
' T5 d5 y1 ?& O% Q
6 F {$ K$ e: E; X
|
|