|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# n7 l9 g- S* w* w7 I3 g [' F6 S0 X; Q/ `# e
Mover.h8 s6 i; p4 K* v
代码:
% V' U" A0 h6 [" M找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) o7 I! t: X; B/ ], q' e3 ?
8 j+ G: H9 o Y" u6 S. \. _9 N下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) B- g$ w2 A2 p% A, p4 { d/ H
$ w3 l9 U' x0 y* s1 B然后你去mover.cpp添加6 b" s; B1 J2 Z: H, \
1 v C# D: D x$ |
代码:
4 Q- n% P: j d" F, z/ Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 y. j. R: t: g. E6 e{
3 N8 b) B0 g" a: T) u' X) J5 w#ifdef __WORLDSERVER& D0 {4 {' J+ v! x/ g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 a6 e" R$ [ A1 Q
MoverProp* pProp = GetProp();* |* Z; `. N6 H% y" c2 m. N
if( pProp )5 _8 A0 Z b% q" v8 A4 W
{
4 }* j+ ]7 ?1 W$ A if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 N" Q3 z6 n! h
{
7 _) \ g. C j* C AddChangeJob( nJob );
6 L! N& z/ n% a T }else{
6 c3 W/ h" \! N9 q3 U3 `5 @ return;
& z# o6 {7 O/ k4 x5 }1 { }
) V) w$ |( p `- m' u& F6 f int nPoint = 0;# k* T' x: N- V5 I& [2 T
if( m_nJob == JOB_MERCENARY )# R2 b1 ?8 f4 N# `( w" h; w' x
nPoint += 40;
5 |) r) S# r r$ s* t% x* ] else if( m_nJob == JOB_ACROBAT )
2 c6 X6 }$ I$ g \ nPoint += 50;8 }3 T* s& Q7 D0 N4 ^. I8 n
else if( m_nJob == JOB_ASSIST )0 c6 f6 G, ~% |) R. D6 i$ t( W
nPoint += 60;
2 K* L9 o) I1 W4 Y! f8 S else if( m_nJob == JOB_MAGICIAN )
7 M4 g+ }3 [8 g$ I( \ nPoint += 90;# Y7 ]5 L6 `. \* ~: H+ Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 ]% O) _3 Z/ w) l% [ nPoint += 120;
) ^4 A2 _ @1 q, s" R7 o1 t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" ^6 m9 z2 c& n1 Y$ s
nPoint += 150;
W% Y, X0 Q- | }( Q W" c else if( m_nJob == JOB_RINGMASTER )
0 q- L! u7 k' x4 m, j, p, i nPoint += 160;
0 K& G2 x) U V7 a else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* o" k4 ^; O. D& Y+ C
nPoint += 180;
* |1 @3 M& Q/ ?' Q8 [- Z. X else if( m_nJob == JOB_ELEMENTOR )/ |' E3 N n" K5 A
nPoint += 390;$ b& {7 b7 s6 V! o6 }+ Z9 _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 C$ |& Y. w+ w9 G9 o3 q
nPoint += 120;6 V- |0 Z8 l8 @/ E" ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 A2 c6 ^4 v' b0 `+ ~. R* `
nPoint += 150;: Z) ?) `5 K' s+ K6 u& B. D7 J
else if( nJob == JOB_FLORIST_HERO )8 D9 K, ?8 g0 u0 {6 p( C8 S9 {5 ~
nPoint += 160;
& |% h' |0 k! M4 ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 ` p: e% F1 J& \! F/ v, W nPoint += 180;
' @+ Q; Q v0 I4 o& i" D, R else if( nJob == JOB_ELEMENTORLORD_HERO ): @ T* S9 e1 g1 [' V- m: x( j ]
nPoint += 390;
8 G& x. B8 f+ j* V* m& v$ E( W( E/ u6 p2 G
AddSkillPoint( nPoint );
4 r1 h! m v5 L m_nLevel = nLevel;, L& f7 v2 F) ~) {+ y( q
$ j4 D; c9 j7 h
SetJobLevel( nLevel, nJob );; j8 t3 |/ q/ C1 x
m_nDeathLevel = nLevel;. i- t3 m5 k; E7 i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 c. S. }3 s% k$ e- b" q
if(IsMaster())6 F2 W9 W! z& a0 X
{0 y2 y, @( ?$ r
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 {$ z0 Q( [1 O; T4 _
if( nLevel > 59 && nLevel < 72 )
( U! Q) _# c$ F9 v( X' X dwTmpSkLevel = 1;& C' B6 T6 H/ O
else if( nLevel > 71 && nLevel < 84 )% v( K; E: f7 R- A: R( m
dwTmpSkLevel = 2;) ]' \* o7 c- n' h0 N/ G& `
else if( nLevel > 83 && nLevel < 96 )
- B) v' K7 M0 B& O3 {: W dwTmpSkLevel = 3;3 a! k, A8 H7 q
else if( nLevel > 95 && nLevel < 108 ). O% v+ {' ?: g
dwTmpSkLevel = 4;) ], L5 x- e) g# j6 P
else if( nLevel > 107 && nLevel < 120 )/ C' \: G$ y& L( h
dwTmpSkLevel = 5;' h2 L' g( [* V% E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 \" l5 Q( ?: ?( ~ {
4 d5 K5 S0 D( V# ? LPSKILL lpSkill = &(m_aJobSkill);' _. X5 c+ g. \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& f! t& u% N" x/ C1 t0 c# L {) u2 Y7 r6 K% ^4 I4 R$ E7 D I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 g ]' ~' ~! E6 _% b9 p% p if( pSkillProp == NULL ). G$ l# Z& F! O) S4 w6 p& T
continue;
# N, ^% h" ]* u; F4 ]" y6 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ m% y0 ]0 A7 o. f continue;" H0 P1 a% U3 I' C# I8 f4 X( L
lpSkill->dwLevel = dwTmpSkLevel;
( K2 w9 W! h* {# y: Q }
; P" y/ _" f% M/ t+ G }
/ `1 r% d( V6 f# X0 G; y }
1 v9 S$ v7 I- ?0 [ else if(IsHero()), e b) w# A/ p- u* {% j, q( M
{
# y; _( w& G d3 P( t( Y. \# Q) g for( int i = 0; i < MAX_SKILL_JOB; i++ ) / A* H( f& {1 x) `9 {3 D0 O
{
" ~3 {. R( b# E% H/ ~, }) b W LPSKILL lpSkill = &(m_aJobSkill);
9 D& [' ~2 P' d$ l if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 `- N8 i# h1 p5 s: ^ {& {% F1 \: t! Z: Z4 W, e$ f0 ^+ x, N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( n' w0 {: P! J+ N F if( pSkillProp == NULL )* L8 c4 Z5 i# t3 M5 i6 l" _1 k
continue;: c- H0 s! W& Y3 |) Z; M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 F% U9 L$ s8 a) }7 h8 t- B N continue;
. p1 ~% l* ^( A0 n& a% J: r lpSkill->dwLevel = 5;
1 Z& L% ~: e9 A# T2 C2 T6 I } M' x( e$ w+ z, s4 z U5 H
}* S! Y& }6 ~7 M7 G" j8 J- j
}
8 r7 R4 v& ?! r else if(IsLegendHero())$ j& y8 |( Q6 _" z6 X, ~
{1 R+ [% J1 f, Q$ t2 t( L5 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # a6 t$ n( k; Q
{ 2 @6 V" c% [# U
LPSKILL lpSkill = &(m_aJobSkill);
4 q# W3 P/ y. f if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 j& H% A; I# A/ z5 E+ |! _ {7 q1 k g8 T+ s; a E; n# W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + ]6 \4 H V2 O% Z
if( pSkillProp == NULL ), P5 R' u Q' T ?: d- K' w( q
continue;
$ ^# |2 M) |5 |+ r1 } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 `; J. s% r- i% s- O- ` continue;. f0 E% |$ M% @9 o
lpSkill->dwLevel = 5;5 ?5 [4 |) N" O2 v! B5 q
}1 t6 Z! Q- g" m! V6 ]4 N6 ^
}
8 j6 Q1 @- S1 u6 \ M- T }
7 o6 r3 O1 h, a1 {#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 L. n4 x4 j/ g5 T8 [2 J0 b if( bGamma )
3 ]! M3 p1 e- Q% b. V {
# T0 R5 V& w5 I/ t m_nExp1 = 0;
+ r6 B3 [8 o8 ^ ~4 N. p* Y }
' g9 m# a- g+ V& ~* I9 e+ E: Y9 B+ n' Z' H/ N
( (CUser*)this )->AddSetChangeJob( nJob );$ ?3 f1 ?2 C) [9 m; Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) W: _4 e6 Z6 ]$ i9 n& W. a- s, T* n1 N
* o! G4 B0 y" I6 t+ {
#if __VER >= 11 // __SYS_PLAYER_DATA; ]4 E4 C% }! ?8 N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 `" Q' y' Z- f6 ?! Y* w8 X( f
#else // __SYS_PLAYER_DATA, _! P5 ] _/ Y- V4 r, n6 E& {8 p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" g( B0 ^. U _, k9 ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% o& E& u8 b* }( R; [) j; F, j& p; j if( m_idGuild != 0 )( z, N, k, c. b6 \2 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 [7 o/ G; ?- s( A#endif // __SYS_PLAYER_DATA6 f( ]' W9 v3 p9 b- H6 `& K
SetHitPoint( GetMaxHitPoint() );! o8 k/ W$ X3 W% d- h
SetManaPoint( GetMaxManaPoint() );7 t7 a) r) E& ^' m; `
SetFatiguePoint( GetMaxFatiguePoint() );0 ^' b+ r. Z7 c# g& O
if( nJob >= 1 && nJob <= 4 )6 o; j5 Y3 h4 P! V9 f6 L) F" Q
{: _: @& u2 S" R5 F0 q0 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# y& t9 o1 Z0 g4 H" h5 s6 c5 H m_nRemainGP = 28;. ?- \. ^* R3 p( ^
}
. B- s8 X2 u/ E, K, J0 [+ ? if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 Q8 B7 E4 _+ `% i {' R, r/ w) T+ K4 O
m_nRemainGP = 118;
5 W+ W6 [( ]* }4 u2 {0 a' \6 P; M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) A7 M2 t) o7 ]) i- w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, U# m/ i* v/ C" p }
7 C1 s) d! t- _) ^' W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 V4 J! f/ A" [; U {% H6 y9 G! {; `. l- o2 N
CItemElem itemelem;
6 A4 ^! G$ _ X7 Q, r itemelem.m_nItemNum = 1;
& h! b: m; }5 b) }0 c itemelem.m_bCharged = TRUE;
1 r; k. U* K4 p9 Q8 u U BYTE nID;" O) M* D0 Q. i. l1 z5 p6 X
2 B0 n5 I6 V9 L3 B& I; u, w" M if( nJob == JOB_MENTALIST_HERO )+ ~- @6 p9 U0 D; @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 `( o/ J4 ^# s if( nJob == JOB_FORCEMASTER_HERO )
" O, H, u; F' [8 Y& N4 w/ N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: c; N" ~/ J9 M4 I: Y
1 ]1 j' l3 |' k, o8 {5 N4 c/ | ( ( CUser*)this)->CreateItem( &itemelem, &nID );
: n3 j9 _9 ?) ^5 N: G }
' C N3 G" c2 w* P5 Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& I5 e; Z6 f# W- K6 G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- a- S3 I+ ^8 q" _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) j0 l9 c" I' y3 ?) p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, B, R2 f! F* V% \" o$ p
( (CUser*)this )->AddTaskBar();*/
+ \6 D& Y# @8 t- u* J# t% Y9 P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 s1 b6 K# t. V8 a- L' o+ N0 a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. P7 M+ i+ U5 n4 z* s* R5 D
((CUser*)this)->CheckHonorStat();; s9 p! T; h% `, H' x$ _
((CUser*)this)->AddHonorListAck();
( d; I0 ^: e) O# y- t g_UserMng.AddHonorTitleChange( this, m_nHonor);
% G4 V: M4 f9 s7 c% p- q#endif // __HONORABLE_TITLE // ′Tà?
9 R ]4 N b, p2 D. \4 W1 A' z$ Y }
, O( n, _- W0 O7 J$ _8 J- m# R#endif // __WORLDSERVER3 d* y0 ?3 m0 A, W# Y
} 9 ]# d+ {6 j! L- i
, d+ k) C1 s; ~! ~3 [. z* a
然后你进入functextcmd.cpp并添加以下
# @: C9 v* y ^; E
8 a, m- ?% Q) q. U& i代码:
, Z! P8 C. ]! B" pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 \3 N) x- J% Q2 g+ N- B6 Y0 t! ^
下面插入
& _* m/ }# A1 u' @: N2 E9 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ H9 J; B$ z5 D+ ^
. N; z% E* K" R5 k, D然后你去4 k7 M" U# m- d3 B5 j: J4 g: f6 t
8 g, _. `# h% n7 ?
代码:7 u Z1 Y o R& k
代码4 t; C. L! s: d6 ~
BOOL TextCmd_ClearPropose( CScanner & s )
- b2 V" |9 W$ J' `- @{2 |8 s- f: ~& i/ ^6 a E3 t) C
#ifdef __WORLDSERVER
) ~* H: c: n* J( x CUser* pUser = (CUser*)s.dwValue;
/ N6 _$ R* x$ P g_dpDBClient.SendClearPropose();+ c( h6 Z( q/ a6 L9 ^2 v8 _' r! S9 u: {
#endif // __WORLDSERVER
8 m" e: @2 `+ Q* Y$ R# { return TRUE;) a: T2 C/ C, K6 I. c. \9 U
}# E! v( B& x M* a& e* i1 _! P
下面插入, z3 L9 ~8 T: Q) U# U8 k" p
BOOL TextCmd_rebirth( CScanner& scanner )
9 E# q3 Q( b3 [. y{1 T; ?% Q0 l7 M8 Y
#ifdef __WORLDSERVER( P( J" Y- G1 O a. f& q! k/ d& G
CUser *pUser;
5 u W8 g s3 Y4 b; apUser = (CUser*)scanner.dwValue;
- Z. V [/ l9 u4 U; p# Vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! i8 W1 n2 L5 k- R0 U+ Z0 T" }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 h, _, X3 J% K" d( j. B
else
; ]0 }' N& J$ q1 npUser->AddText("你还未达到重生条件!");
, K1 U/ e: H! Z4 q#endif
) r2 n6 W( s: A& d i1 N% {return TRUE;
& y% L% [6 a- W O+ z' X7 Q2 v: s}
6 L. ^$ j. P% A7 \4 u* s S5 E
# l3 C7 e8 x. d
9 h' c8 g0 P' z# m& g) @+ u
: m9 d/ `1 s& I8 W% ^7 e, C- E! E% H0 P0 [& z
|
|