|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 b* d# T6 p: Y9 [. T, K" P
$ _: a# r% N% D3 o4 P5 U4 RMover.h
+ U8 o* G* O3 B% n8 m代码:
) `9 d5 v# M1 C& }# E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 p% y6 a1 v1 K3 q! P1 |
: f3 l5 ^6 \$ r- l9 l8 k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + }) W$ m/ }- g( z! u5 {/ \
- i* J* d. Y. G$ X5 U0 ?" M
然后你去mover.cpp添加. E# S( s0 [) c0 ~) T
1 z# `/ G& H; q5 H" j% s6 M
代码:/ W1 H! T4 } T) Z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ z b3 {5 T8 ^6 a
{
* c% x2 m$ l, \! P#ifdef __WORLDSERVER
$ w1 C8 T: F, \5 W5 v" w" c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- K8 S& f# E! [( Q+ V: q
MoverProp* pProp = GetProp();# d0 H( V' _; l
if( pProp )5 I% `3 Z X! W% c
{% {: I7 z1 K, c! z4 @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* e% {$ a2 _5 d. p {) ~5 N6 D; `8 ^, Q3 B/ m
AddChangeJob( nJob );
% S6 ?2 [: e) w1 q$ B9 u0 m }else{' t5 f- g1 A$ a" C
return;
& @1 X7 x% h8 u# i& P. ? }! c4 {, P3 v, C
int nPoint = 0;) v7 D7 \4 @% ^- L" h2 M
if( m_nJob == JOB_MERCENARY )* n+ u# J' ], Y/ P
nPoint += 40;
2 o. ^1 z0 N" b% C' v else if( m_nJob == JOB_ACROBAT )
% C0 j3 M6 b8 @0 u6 M# E+ H nPoint += 50;
# a$ S, J7 s$ Z5 C! q5 u, F4 [/ j else if( m_nJob == JOB_ASSIST )1 Z/ a0 X( G8 L4 z- v
nPoint += 60;
- P$ x9 ]- D0 j/ a- A' M else if( m_nJob == JOB_MAGICIAN )) V I" H+ X( x: b
nPoint += 90;% p/ A5 [2 A1 u# @% S, l6 W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) B$ k0 ?$ J' }2 \: d7 `: J5 @, |
nPoint += 120;; q. Q; K5 |5 [" u0 j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. g8 P; |( k) k; A* I% _! }1 s& e nPoint += 150;# v9 F% m2 X2 X6 Q7 N. u5 r6 l8 `
else if( m_nJob == JOB_RINGMASTER )7 z2 G; A0 }) ~7 @
nPoint += 160;
- N+ u! k7 u0 S5 I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 Y; J* n9 c: l
nPoint += 180;
+ I7 f. \0 j( g6 m) k/ D- g else if( m_nJob == JOB_ELEMENTOR )
% l4 n9 z5 Q: z5 r1 h( F( ] nPoint += 390;
. q: b/ G9 Q D2 j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 F+ S Q, K5 }2 i5 ?+ s
nPoint += 120;
3 n7 X( e) h4 S8 C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# E9 Q; t. C. d
nPoint += 150;5 L; N% F6 z+ c
else if( nJob == JOB_FLORIST_HERO )
H" x+ P7 J" P! _2 A nPoint += 160;
# j4 o/ y5 {" r3 o. A' H( C1 V4 g else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ `) n8 ?) G& @: u6 M
nPoint += 180;
- C' V; N0 a1 Z else if( nJob == JOB_ELEMENTORLORD_HERO )
! [: j7 C3 G r- {) S nPoint += 390;- r: b9 l' z: C ]# I" G3 {# S) m' U
. d" ?/ \8 i3 c1 N. V2 s AddSkillPoint( nPoint );
" e- }( O( u) ]1 A# ]" E( X m_nLevel = nLevel;
7 `/ a& t2 z6 l$ {6 X" z# T& Q
: s4 B0 q- `3 b9 U% s SetJobLevel( nLevel, nJob );% m5 ~- G/ c2 K7 ]4 U
m_nDeathLevel = nLevel;
+ i6 N5 ^7 H+ u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" R- B3 N' c W% N8 X- U! D; X
if(IsMaster())9 m. h0 g6 F' q/ ]5 w' L2 ~* ~
{. V+ I6 T; m* ]! x2 ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. l8 m/ p/ A1 @7 Y* g) E* Q# K. ? if( nLevel > 59 && nLevel < 72 ): f ^* g! l. X1 Y8 }# w
dwTmpSkLevel = 1;
9 e. s8 [ K! q) S; t. ?) ` else if( nLevel > 71 && nLevel < 84 )9 K. _2 ~- {& t. @
dwTmpSkLevel = 2;) g; @2 x; ]) Q
else if( nLevel > 83 && nLevel < 96 ) q( o s; [: s* I
dwTmpSkLevel = 3;
& k3 B4 h1 E0 f5 w else if( nLevel > 95 && nLevel < 108 )* z; g5 C% S2 [: e7 ?" d7 ?6 C
dwTmpSkLevel = 4;5 u7 |% ^6 G/ N* |& d
else if( nLevel > 107 && nLevel < 120 )+ l' e/ \" H; C2 z/ v& H9 S/ B
dwTmpSkLevel = 5;2 n' j9 O; q( H, f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ U, s1 t/ _$ _8 h; i {
! ~+ M8 u7 D) p* @; h LPSKILL lpSkill = &(m_aJobSkill);
2 `2 L* ^! H) Q6 H/ w5 ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 K& M. N3 s5 i. W8 _8 [5 h {
9 _7 ?* T* Q, ~: M( d2 H( V! @* I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " u4 s' O! E2 w3 U
if( pSkillProp == NULL )
0 W8 I' ^' V& ? continue;
6 w) s4 f6 [: I+ | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 H ]; u- E4 u9 g5 X continue;
$ K0 L$ p8 B- i6 A/ ?2 ~" v3 [4 l lpSkill->dwLevel = dwTmpSkLevel;- ?5 z5 ^3 e3 _2 ^& o* S& g# P/ U
}$ o8 e, I2 ^7 B( [
}
1 s) D$ N' c8 q! U; f }# Q" h: |; x! z* m
else if(IsHero())/ y2 c K. w% q: `' \/ J
{
5 x! ?6 w9 W$ I, ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 v4 @! w9 u7 a W5 h: G t" s' l {
( p% x" A# A) q' Q0 n* U- J LPSKILL lpSkill = &(m_aJobSkill);
( e5 {1 m( a- }- j if( lpSkill && lpSkill->dwSkill != NULL_ID )3 b! |& |7 G% r: o) Z& N# i
{
; n# ^+ f1 S) ^9 P6 ]6 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 j O% o1 b' V4 J" q0 _
if( pSkillProp == NULL )
+ `. }) V" W7 V' v* x continue;' l1 X. @1 x5 p; C/ q4 p7 k' l! e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, h- C* t X3 w1 Q3 H# p l: T. O k continue;3 g1 N- t# o+ f% y5 H+ |0 V
lpSkill->dwLevel = 5;5 O5 t Z9 [9 Y5 W6 m+ ~. g M6 p
}
1 e9 c/ a/ r/ ]6 v# Q, C" N }/ f6 Q3 b( e5 Q A
}
# q1 k& U+ Y- F" }/ N else if(IsLegendHero())$ U8 v3 ~) {# z
{
8 b/ K* r/ z( R/ [4 ~0 M for( int i = 0; i < MAX_SKILL_JOB; i++ )
. j) n1 A, n8 x& N { - X1 x) T. Y7 P, Y1 j- K/ q# a
LPSKILL lpSkill = &(m_aJobSkill);2 [% N: B }& t7 {! `, J5 w. T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 Y' @- W6 `; f6 Q; s$ H {+ q4 e; A- m, O2 Q, X6 Q! O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * I' N5 F- @ O y
if( pSkillProp == NULL )
* G$ \) H& q; L& v4 Q continue;1 Q9 Q5 p, k/ q2 M2 S2 n" Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 ~3 {. ?* S" M6 n/ G continue;
4 x; a. i) t8 j7 r! m lpSkill->dwLevel = 5;( b0 x$ O6 Z y
}
+ F1 @! k7 _2 c( N0 _7 {/ a; ] }1 R3 J; B, B% _" j4 {* M0 `+ i0 J
}" v6 R: p1 x/ q* j* F) B) H, u7 v% g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ p, O$ }# b) T) E1 H3 s( j7 g if( bGamma )
( R _6 w, B+ B' O9 @4 J$ n4 x. } {
( b; n3 b0 c3 q* f' }1 ` m_nExp1 = 0;" q$ G5 O+ Z. B/ |( W8 M
}
8 ?6 X& K9 W& J1 B! g: Z2 H" K, y7 ]4 p/ [4 R7 \" N
( (CUser*)this )->AddSetChangeJob( nJob );
* j. ~ v- E: g! W& S+ z* B# j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ @* H; d; A1 b/ @4 N6 |% X$ N
- X$ k1 A& c4 X1 R/ U5 R$ w: h5 ?* I3 W
#if __VER >= 11 // __SYS_PLAYER_DATA
: e, g& Z. T' O3 i: C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, f0 w7 f; S- M3 _ ^0 e5 L
#else // __SYS_PLAYER_DATA
* j2 k' u3 L) g% F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 t3 U( H% E- r% q: e6 z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 J6 e# Q2 D% X0 G) e
if( m_idGuild != 0 )
' }' Y/ Z7 |$ }( X g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 _. b* b; m$ a! K
#endif // __SYS_PLAYER_DATA4 y* q: _* c( T- q( B" a8 ?, ?" }
SetHitPoint( GetMaxHitPoint() );
5 B# e1 w# }% f" ?9 q: e: C SetManaPoint( GetMaxManaPoint() );; ?5 ?& a: D) R* I
SetFatiguePoint( GetMaxFatiguePoint() );! R- U f% T& J. \1 `1 m( r! }0 Y
if( nJob >= 1 && nJob <= 4 ), t7 d% j0 K$ r! I" c8 b" Z, _
{
C/ h3 W+ X; x. C; v0 v m_nStr = m_nSta = m_nDex = m_nInt = 15;; b; n. `- u o" i% s& E/ h# k! d
m_nRemainGP = 28;
# \" ]+ @8 O+ g }; y6 ^' G: N/ ]8 Q+ H
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 o, u3 `4 J$ P5 s, k7 ^ {# g" ~3 H3 a( @9 n
m_nRemainGP = 118;
& R; i( b' t+ Q2 s# k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 m: m( Q( F+ n. L' }+ C m_nStr = m_nSta = m_nDex = m_nInt = 15;
' ~' r- V7 r; c9 u2 M }
" x( z; k) b$ `1 |# _, l* ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' j) G% Q5 E5 k- Q# ~
{: I+ q B& O! J o# o
CItemElem itemelem;; c- u4 ]* ?* D$ z
itemelem.m_nItemNum = 1;" a! [5 f4 T+ ?/ W
itemelem.m_bCharged = TRUE;
1 @' m' u$ {* a* T BYTE nID;5 Z1 c# Z* g: c3 w6 N5 Y
6 c3 a: B, O& A# G$ l* Q6 A
if( nJob == JOB_MENTALIST_HERO )
) P2 V9 |0 z4 C1 ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, l% d4 L- H0 @* ?. `( f if( nJob == JOB_FORCEMASTER_HERO )! v2 u& ~ e! q. `; P" E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% |4 |* m- y; |: B6 O
/ z N7 W* L/ ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );! z& T( N+ Z3 @6 G; ]. x/ v
}; m; Y! x" @+ G1 Q3 M
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& c9 {, k% A2 `+ F# h( b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 g* o/ I' @1 | w5 ^
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" D! `/ t2 `* V' ]1 v4 W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 Z4 r9 `9 j' P ( (CUser*)this )->AddTaskBar();*/9 e0 ]+ U4 U' ^# p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 l A4 I- q8 j0 H3 W8 f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' V- a# N6 Z( b: k/ `& B ((CUser*)this)->CheckHonorStat();
- v+ E; }3 s) U ((CUser*)this)->AddHonorListAck();8 n" j; X& g2 e; h$ C7 x
g_UserMng.AddHonorTitleChange( this, m_nHonor);" l5 E5 e/ J% a# b' q+ I! M) R# M
#endif // __HONORABLE_TITLE // ′Tà?
p* H1 Q; j5 e, t }
% w& i& l% s$ B/ O& H% q#endif // __WORLDSERVER, O: a+ k8 V# P1 x& ]4 J9 e* s- c
} 8 a( {: b+ [; ]4 U% Q' {1 ~* b
' J6 _# _# L$ r+ F7 ^; f6 e' t
然后你进入functextcmd.cpp并添加以下( T# L2 z# R8 W" p) M1 `, a. y0 I& T
. V$ M L# X ~( `/ A. Z2 T代码:8 V% ~2 M7 `9 }7 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); m0 `: t- e! g3 ~! y
下面插入. M" t" X* h- r6 ^3 I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 i4 \1 n! A0 v0 F% C
7 Z6 o$ G* R( _1 t; u. n
然后你去# J, b) [- w c; G
% t7 S9 G4 P2 r$ o1 I代码:/ Q8 i6 s0 r! K( U- _0 L
代码; G. x+ ]8 O. ~% r- j l4 ~ N
BOOL TextCmd_ClearPropose( CScanner & s )
' I/ f# X( C$ s1 q: {7 D0 l G{
, Z. V. o' @; z! ~#ifdef __WORLDSERVER/ y! h# J- H% y' D& W
CUser* pUser = (CUser*)s.dwValue;
- K$ Z8 E8 Y! o* n- O R g_dpDBClient.SendClearPropose();
$ e& P# g7 b5 \0 ?- W2 Y1 L#endif // __WORLDSERVER! o1 j; o5 _: Q1 J
return TRUE;
* v+ F; g; T @}
9 H6 n, R" H j9 k下面插入& @# q, } {. n$ |7 P9 a- |
BOOL TextCmd_rebirth( CScanner& scanner )( F% W" f+ ?$ j& Y
{2 V8 f0 ~/ I% k! ]
#ifdef __WORLDSERVER1 c5 o" B; J/ ]4 b D: v. V0 \' D
CUser *pUser;
/ F5 \! M& s! q/ C% c! w7 qpUser = (CUser*)scanner.dwValue;
9 }# d+ `) A0 b$ D& [9 yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ ~' P; |2 b# s6 S E& o1 p0 K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, s$ Q: T k8 N% w1 k/ H# Qelse# }" m6 s3 U6 F
pUser->AddText("你还未达到重生条件!");& h7 F2 t: `7 }" Z
#endif4 C" n8 B+ p3 t9 a* e
return TRUE;
4 _0 Y5 u7 `. x' [# @} $ I0 d3 o4 ]$ t/ Y( U' H. ~
+ _0 {# i; |( L4 M: [% Y
$ h( ~4 P* v# h9 F. ]
& P# \" `3 o0 m1 Z. i X; n0 g
y ]7 }# b1 Q0 Q) A# z2 W; S |
|