|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ `0 X: X: g- Q8 W0 I* v. T- u7 i/ n j2 v
Mover.h
b" c: c& A! o4 l代码:
' z' f' G p) X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; }# N# \- C1 ^& U/ M3 L; ?" w& ~- m; T1 `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( B3 x2 S1 \+ h- H; @' n3 b
1 B$ O/ h3 z- I
然后你去mover.cpp添加% C% {3 F$ A* w8 X% |5 U
( ^: G7 I, D k! b$ J* V+ O/ y
代码:
7 [. S+ [1 e& T# Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: ]) ~/ v" b0 g' O{/ N" o; j% b" L3 d0 Q
#ifdef __WORLDSERVER
" K" [8 Q" K4 E- s- }- f7 } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó O8 I V* Q2 f. g; n3 A
MoverProp* pProp = GetProp();
1 S, s; t7 \' S/ ~6 s if( pProp )8 R+ O3 |/ ?8 X7 `$ N7 J
{
- x4 F% \( Z. b, w e if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 v2 m: f5 z+ G l5 J {& M. B' |7 M- {2 v; T3 j, a
AddChangeJob( nJob );
, N5 [! o, \( ~, f3 L7 m# s) C }else{
5 v, b( [& _6 ^" z, b# p. v- Z return;
# {6 I- P' P, \ }
1 M3 r! k& w/ m* _$ ^3 ]5 E' n int nPoint = 0;
) ^6 [$ Z. O- {0 U if( m_nJob == JOB_MERCENARY )
8 h. m: a# d1 }) A nPoint += 40;
1 ]4 W& `9 x& z' y9 ~3 {" } else if( m_nJob == JOB_ACROBAT )
- V% T# H3 X) u8 W nPoint += 50;
7 E3 I1 Z+ v/ X; b/ n else if( m_nJob == JOB_ASSIST )
. s4 p4 B' M+ t+ Z P, @' Z nPoint += 60;' _. d9 i, E: [- V$ m
else if( m_nJob == JOB_MAGICIAN )1 \# @7 O0 u! R
nPoint += 90;2 L" J- H9 U- }' c2 D7 G2 f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 V- l2 y; J% _- m# `! a2 Q
nPoint += 120;
, C7 d# z2 A% f. V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ y: U+ z, B2 y nPoint += 150;- T2 q' x$ o7 p; ]" q& k! Z) ^
else if( m_nJob == JOB_RINGMASTER )! E3 ~9 _: I8 U7 K8 ^( a
nPoint += 160;- q9 z# @* h4 r p+ I! g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& {9 O- m. {9 W) _ nPoint += 180;. a0 z: T+ S" p" p7 p; d
else if( m_nJob == JOB_ELEMENTOR )
# w. F" b. B6 _3 E6 U# P+ O. j nPoint += 390;
3 J) h$ i1 u3 q2 T) n& \* j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* ?: C5 K3 @- d* L; V
nPoint += 120;# _8 F- U1 I0 G% i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 x' K5 Z- @0 F% r& i
nPoint += 150;
0 m( X+ g( H7 J" X else if( nJob == JOB_FLORIST_HERO )
, A; }- ]/ j+ G) @& n& H nPoint += 160;
3 N. R8 I- B3 e+ U7 g; b/ n, f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 x! K: R( y+ j! Z2 l
nPoint += 180;
6 K2 Z0 ]% |, } else if( nJob == JOB_ELEMENTORLORD_HERO )5 W Q% H# F" u9 X. N
nPoint += 390;
* e5 |; ?! @% a. [2 A$ O" d
0 k; S: f [" }/ R' Z7 J }& y AddSkillPoint( nPoint );
5 T6 r+ j& l, ~. u3 _% @ m_nLevel = nLevel;2 `+ ?0 a) c" N) l; h6 S9 C6 _$ i
8 B1 }5 o7 X l+ h+ L5 W
SetJobLevel( nLevel, nJob );
3 p, F+ b1 h# D" f m_nDeathLevel = nLevel;( x/ v4 Z' ^# S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, ?7 L3 y v& m; R* D3 i/ i' }; ~
if(IsMaster())+ j7 p0 }- U, o! }+ p9 U
{
# h; _1 ~' X1 A int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ j1 a! t! ^ t) f2 ^ if( nLevel > 59 && nLevel < 72 ). L, y; {* X( x& Y- r! j
dwTmpSkLevel = 1;
1 m# e* N6 m/ K/ g! y else if( nLevel > 71 && nLevel < 84 )
$ k+ V3 ]( k7 ` dwTmpSkLevel = 2;3 w$ H" }+ k/ z. ^2 h6 z" p$ u
else if( nLevel > 83 && nLevel < 96 )1 N( T- R `) T9 `2 K% V
dwTmpSkLevel = 3;& t; v; b/ U) K2 s
else if( nLevel > 95 && nLevel < 108 )
& |, ~ g" K, N) x dwTmpSkLevel = 4;
4 c" A% z! l2 o else if( nLevel > 107 && nLevel < 120 )4 v/ H K# B$ D0 d
dwTmpSkLevel = 5;* L" E4 x4 W: c7 ?) O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " o4 d' i, ?: T* K: ]( u' N6 d
{
) a v7 _) x& c2 Y; L LPSKILL lpSkill = &(m_aJobSkill);! s& S! T7 V' K
if( lpSkill && lpSkill->dwSkill != NULL_ID ), g/ W7 w0 @$ k4 `- |
{
/ }$ u- ?/ d G, U1 }# b0 Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & y: O2 z3 T% U1 K% N; \
if( pSkillProp == NULL )- u$ ?; N! k9 I6 S& h- q
continue;5 { a: {: @, J9 Q) ~5 l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 U$ k' u! k8 L5 L! R: g Y continue;) H* I6 D! f) ?3 ^
lpSkill->dwLevel = dwTmpSkLevel;2 [2 y7 S6 x) P- z
}
- h! {8 \0 M8 @- t3 L }" {0 s! t! ~2 E; k$ e; i
}
* X" s8 N9 y( {4 Y9 F* J. { else if(IsHero())
4 I1 I k: q- `1 U: }; y+ C7 C8 c {/ l8 {4 l; t$ S2 t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% [2 N$ n2 r& H/ g2 r {
1 h0 f/ j% G w/ w L5 N, r. G LPSKILL lpSkill = &(m_aJobSkill);/ u% j6 w, s9 E8 z [- @& T# c
if( lpSkill && lpSkill->dwSkill != NULL_ID )) w8 l7 ]$ a! Y0 J
{
/ W# X! F$ w5 @. Y, F5 |1 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 ~% y4 Z; n. y q% F
if( pSkillProp == NULL )! u+ \- r- A$ W- h- p8 B" k4 }' `
continue;; n. d5 y, f) U; ?' i" r# |2 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); M7 Z: i0 u% l: `" z2 J A1 C
continue;
+ Q5 p' Y+ k, Y( d+ f, V- m3 j lpSkill->dwLevel = 5;, `; f5 ]8 g$ p
}
% `4 `: c" j% \6 p$ K }
: b2 T/ W% ?0 ~- C3 y" f* @3 b1 a }/ Q/ a1 H$ w6 {/ c
else if(IsLegendHero())
# j4 z& `6 h9 G7 H$ w k: Q {2 U# x4 m! y* [$ g' R$ I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / ~# S* |% a" x j
{ , B& n7 g6 d3 Y/ Q
LPSKILL lpSkill = &(m_aJobSkill);
0 ?3 u6 G6 ]2 o0 Z! S& T+ x if( lpSkill && lpSkill->dwSkill != NULL_ID )' f+ K5 e( K$ G
{ A4 |: [) a, F }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ d% |4 G5 i" ]; G* g1 t if( pSkillProp == NULL ); L& I' \( W, B( h% ]3 G
continue;
$ r) z7 I! B0 [/ J3 k" F' h& I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- D. W& ~+ F; W- U' W continue;) e( [( ?: Q e9 Y6 k" R! ?
lpSkill->dwLevel = 5;
) A6 _6 _, e5 ] }
7 X- d/ b7 m$ _2 {8 s7 J }
% ?& @' Q+ T* u! v4 y }3 d+ A+ x' g" T- P8 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ \; x5 U! J' [! P+ v8 a3 A7 r; P
if( bGamma )
4 y& j! a. S2 g/ {$ X5 e* o% l {
7 x5 @) E+ g* ]7 {( M& R m_nExp1 = 0;: m- a, Y( u r) W& A+ p
} N) B$ ?1 k5 K/ ]" \6 @
, |: \- j1 V( S2 b8 y
( (CUser*)this )->AddSetChangeJob( nJob );. z% t/ ]. d# |' W# I4 h
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 u2 S# @- ]3 @8 D( s
( ~: Q4 M5 d; x# F2 {. f! r* ^
8 B7 w/ H8 M& L2 v5 V#if __VER >= 11 // __SYS_PLAYER_DATA5 S0 y9 _" E& }+ Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 z. H) ], s& \4 f) Y
#else // __SYS_PLAYER_DATA" E6 ^: d/ u* Q4 d, W9 G
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ w5 O( Y% ^0 e( @! r, N2 y7 p
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 ^/ L+ r6 S. ~" c+ ]; J: ~ if( m_idGuild != 0 )
) K" t }- A. g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- b3 P# r. v* x3 D# o! U% ?) c& |
#endif // __SYS_PLAYER_DATA1 D1 ]: f6 Z0 u* q0 a) |
SetHitPoint( GetMaxHitPoint() );6 l& \5 Y! o7 e# t; Z& Z
SetManaPoint( GetMaxManaPoint() );7 X; n( t& ~8 F" v$ J
SetFatiguePoint( GetMaxFatiguePoint() );9 p) Z9 C" c2 Q& S' _3 C* C
if( nJob >= 1 && nJob <= 4 )
6 i+ L1 A5 D. n7 n/ k {
$ d( B2 B$ J: G/ _: p9 c2 ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 z/ F- m& ?0 F, y" Q7 p& G m_nRemainGP = 28;
h2 c, ?8 K7 b" |3 L \% {4 T }) j: I+ q0 l5 G2 \0 ~ u
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( L/ r- y$ f R3 W1 d {5 X" |/ L+ I! X+ W7 D
m_nRemainGP = 118;
9 U) l9 y `4 R //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 ]# {- t9 r, k/ x1 r m_nStr = m_nSta = m_nDex = m_nInt = 15;
, n" k; [8 t! N }
. q" Q3 t6 ^# o3 ] if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# D9 W$ V3 A/ l! {6 r5 N) a
{. M' T% K! b5 X) ~
CItemElem itemelem;0 y- q; K" J6 o
itemelem.m_nItemNum = 1;
& L- |" X5 A* e+ O6 J' \! [3 U9 m itemelem.m_bCharged = TRUE;8 i: `. O( ^+ M7 F- X0 d
BYTE nID;0 a9 i# o9 R' P8 o" k+ J
Q7 k( J7 h- X. A+ F; S; [+ r
if( nJob == JOB_MENTALIST_HERO )
0 o, y6 n3 o: Z4 i$ p/ h+ ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) z" f y3 e& {+ }& {" e- [ if( nJob == JOB_FORCEMASTER_HERO )+ w* b4 o8 {% V5 Q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, b h# k' p4 L; ]
( H# @( k- Q; H3 u* ]4 |5 w% o
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 b! w; ^! l( e5 M& e/ C
}
6 `. p& \$ O; h) I5 L g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 C% Q: F. {5 `, p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ K1 L: ^0 l5 P# i' E; Z/ ^1 j7 F ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, [3 d9 P( ], w5 Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ x, Y' Y. v( u0 n+ ]: L8 m9 T ( (CUser*)this )->AddTaskBar();*/
" Q$ F0 ]6 ^/ G2 ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, X1 J0 N2 c, d! v$ L& @9 D, R# O( _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 J! ~4 C( y: K9 G* `1 M, k' q+ {! _ ((CUser*)this)->CheckHonorStat();
8 ^1 M) h6 S& E/ N r2 o/ S ((CUser*)this)->AddHonorListAck();
L# V8 i" M6 T( y, v/ v" z, x g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 ^* a: Q, l/ \# t- \#endif // __HONORABLE_TITLE // ′Tà?
* h2 ~" ]# h+ [ P9 k }5 C. D5 i- T8 v
#endif // __WORLDSERVER# }6 E5 c' h8 @# A+ E
}
8 B$ W( M- d% i; x2 ]) D- ]6 I2 ?( K. a6 U5 H" ]# N
然后你进入functextcmd.cpp并添加以下
2 X% C# W! {3 x$ a# U
8 R3 Z# h- b: A; U代码:1 @3 H; w/ Q& A0 s4 b% [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% B& I2 [5 i1 B' [2 C
下面插入
) F! \! d* {3 R! V# T2 c" B+ o8 K2 u" kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# A) Y( |* n% G! b v
5 `% @; @4 ?1 Z6 O' N$ X1 q- S然后你去! I: @3 |2 O& V# s: u
0 P* P$ ? B6 s+ ?
代码:% G( W s& ^& f! Q( b9 @5 q
代码
* q; M8 j, ?" P3 T4 SBOOL TextCmd_ClearPropose( CScanner & s )5 W" U {, }& L
{
9 M* Q1 u. J4 i) [ ^, @0 k#ifdef __WORLDSERVER- \; L! h/ o( o% z# H7 ?1 c
CUser* pUser = (CUser*)s.dwValue;. _) E. Z" _- M: t& @+ u# [* j
g_dpDBClient.SendClearPropose();
: s# a' M& |+ g& W" i' u#endif // __WORLDSERVER( a( Z! \/ s1 Q7 |9 l/ C. u
return TRUE;
, t$ D1 n6 i. t}! ?+ F* R+ q$ e7 D) E( `* X6 s9 J
下面插入( j$ G1 D& ~0 c4 l
BOOL TextCmd_rebirth( CScanner& scanner )
( l2 J$ ]) ~ t8 t- l{5 s" r- P% M1 v# z+ p
#ifdef __WORLDSERVER
$ q4 B& y3 W. V* b0 S, n2 zCUser *pUser;
/ p7 M2 w: A3 F3 ApUser = (CUser*)scanner.dwValue;. T. r: ~1 N9 D
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* N0 l/ Z8 M0 M0 m% ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 |9 j3 @# q u+ r# z% Helse
0 D h1 c* X- R P gpUser->AddText("你还未达到重生条件!");5 C' k' G2 P0 a) }8 _
#endif
( L( e0 D# x/ `& rreturn TRUE;
# n3 o6 J2 u, z' J4 V4 K6 d} ( r; [) t, ]8 @1 x) Q
- ~- u8 U# D+ L7 `, L& v4 Y4 {
5 z3 w& y5 T; Q; h
1 `7 n: Z+ g4 N0 {9 H0 ]6 G6 i. N
2 \+ E' |# ?* i0 P$ J2 y; v n# j |
|