|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ `7 P2 ]+ o, a. u
7 ?5 M4 d4 W! w+ b$ \7 ^Mover.h" ^* W9 Z% D v* q3 T! l8 b
代码:* s" j+ w' H% z. {1 s! y% F
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' g5 u; u8 |2 j% p: s
: r. P `3 q, }& E8 x- q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; i8 h$ ]9 o4 E1 L+ H% s$ s. n2 `/ j! c% ]& e" s$ q0 y
然后你去mover.cpp添加0 ]2 w1 G7 K9 Q9 v6 l5 Z
& U4 Z5 Y" L" u4 s+ C代码:
1 O/ N( S2 q6 z& L: ]9 Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) C. b7 i. E4 ^) q, r: a7 R{
' u$ r/ [, z+ ]% Q$ j k#ifdef __WORLDSERVER6 {+ Q, b' i S. }7 M i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 e0 Q5 d c6 u# ^5 p5 n MoverProp* pProp = GetProp();
+ P) Y8 s6 Y4 s( e if( pProp )# E8 N5 d e0 r6 q( I6 d
{
, m8 @9 V- T, X' Q+ C if( nJob > 0 && nJob < MAX_LEGEND_HERO )' V( m* d) s) `8 g# x9 J
{% ?1 o: D( L1 c6 e8 q' b
AddChangeJob( nJob );! ], c1 Z' V2 P4 |
}else{
' B4 h1 k$ |* z return;
* J, F. w! A% U- S- j* ^" M }0 }( J2 |6 g$ L' _ x2 z
int nPoint = 0;
^9 h. O4 p! h0 G# G if( m_nJob == JOB_MERCENARY )" |: m0 o$ D# @% b9 `5 E
nPoint += 40;
' E2 v$ [; ?% J else if( m_nJob == JOB_ACROBAT ), n f* k. N/ {& s* b) W" ?. W
nPoint += 50;; T3 r# _ Q# h& k: X
else if( m_nJob == JOB_ASSIST )
# \" }0 N* L+ F8 k* J nPoint += 60;" i8 V- d) ~9 N0 }' N6 R
else if( m_nJob == JOB_MAGICIAN )% X* c; ?" {7 D$ U( Z" q5 ]; W
nPoint += 90;% F; m/ D' d" x3 ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )/ {) H; E& H$ B! L, o% A% N
nPoint += 120;
+ V) s& l! k2 O) @1 c. y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 X6 u S* V6 k m nPoint += 150;" m v; j: W, k. Y4 f8 a
else if( m_nJob == JOB_RINGMASTER )
8 Y" G. j3 ?% X* b nPoint += 160;
4 L" K& _+ B N. @# \! M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; |; l% V$ d0 W7 b nPoint += 180;8 B5 [2 f2 @, i: x2 Z4 ~, r% w8 A
else if( m_nJob == JOB_ELEMENTOR )! l' A, ]8 b9 I) Q5 @: M% s
nPoint += 390;5 ^* S; A% l4 c0 S
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& I& l( M, t1 P8 z nPoint += 120;+ v1 d: r! r& h( i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 {: w0 A1 n) }
nPoint += 150;+ f5 Q5 Z$ v+ g6 [6 h6 F
else if( nJob == JOB_FLORIST_HERO )
# B/ K1 l0 v+ b2 o nPoint += 160;
( b3 v4 H8 A, e4 j: X! ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# W* L! I: n5 P1 t0 l4 X nPoint += 180;5 l6 C1 ?* q8 B9 l& d6 ~. ~3 A
else if( nJob == JOB_ELEMENTORLORD_HERO )) k" C# g% w7 d/ S8 X
nPoint += 390;& E( P% {9 R9 M
% k& ^" ` x( R8 j; K" |9 O( @# T A
AddSkillPoint( nPoint );1 N* Y, W9 [# X
m_nLevel = nLevel;
6 U& b% B, [) k: E( Z( f0 T3 G
' r* L, F1 g* w. Y% C7 y SetJobLevel( nLevel, nJob );
' B; g% P; @4 V& B, O. W5 v m_nDeathLevel = nLevel;
) \- S1 S& e% t3 J3 R% g6 @) n4 S. v8 I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; u6 A+ w7 m6 B9 f/ t8 L
if(IsMaster())8 \ k) }. c4 j* ?- S' g$ W1 ~5 ~8 Q" [
{
# v" H' ^; X6 h/ ^7 P" v int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: ^/ x: R. I( i+ X% G& D
if( nLevel > 59 && nLevel < 72 )
7 q7 `0 w+ H7 |" Z- C: N2 S dwTmpSkLevel = 1;
1 |9 s& w7 i. [$ I$ o else if( nLevel > 71 && nLevel < 84 )
+ u/ k' C- N1 m G! n- Y4 H dwTmpSkLevel = 2;
( r/ y9 }$ J9 F+ `- u' d3 y else if( nLevel > 83 && nLevel < 96 )
( d5 t/ P! N) O3 F dwTmpSkLevel = 3;
/ d& a& m; N& ]6 `& }1 B, l else if( nLevel > 95 && nLevel < 108 )
' x. R3 k1 k- N3 _0 a dwTmpSkLevel = 4;
* w4 R8 S; x( f" H5 m9 a4 A7 d else if( nLevel > 107 && nLevel < 120 )
" G" C$ q( s6 O3 \, A" `3 b3 n dwTmpSkLevel = 5;$ J N/ x U6 |4 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & b2 R% J2 A Q1 [+ f4 D
{ " x8 b3 M* } }6 l! S
LPSKILL lpSkill = &(m_aJobSkill);
+ b3 w' [7 \( G9 Y: b: m- R if( lpSkill && lpSkill->dwSkill != NULL_ID )2 ? t$ N) h. C% z$ {. B3 l
{7 n' [8 f' f# g) E/ t3 q5 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 M( g2 x' l/ O3 x0 E0 p
if( pSkillProp == NULL ) I" H# i- r5 |% i
continue;
0 U" Z# |1 o. N: F, { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 O4 {4 g# f3 |; t1 Y" h continue;4 n. J' y/ d3 h+ }* W# C# @2 g
lpSkill->dwLevel = dwTmpSkLevel;: s# ]; s/ N5 J% H% O5 p
}
; B$ O. H2 |3 `3 p$ Y$ G }0 a2 H' o- }- I
}; A5 E. w. u {
else if(IsHero())
e+ h3 Z! x: h( ~! v& H/ \9 F" m {
9 e: c; @5 V) x" q for( int i = 0; i < MAX_SKILL_JOB; i++ ) + y, C* @' h: j, S3 M
{
7 x5 k: f- v5 s5 V+ p# n LPSKILL lpSkill = &(m_aJobSkill);, I x* R& u+ _1 x9 l/ _7 t: j9 D
if( lpSkill && lpSkill->dwSkill != NULL_ID ) \- u8 `: g' G) a) v7 S* r% S
{' ^* O! O, o. L% I, i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ o# o# X, Z( P if( pSkillProp == NULL )
8 e7 e( G* ?7 w- p- F' X continue;" R$ ?- } ~$ k' i) W* }) ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' _9 z* y/ O& I# y. a2 S. M6 K continue;2 s. ]5 }- p- t0 R/ S9 a; M
lpSkill->dwLevel = 5;" L! O+ A; i3 S+ F2 P4 u
}9 ^" D* Y y/ l- P! i: O. F
}
3 i5 j$ Y/ ~' _% c3 T# l }
8 v" _; _! M& c( | else if(IsLegendHero())
- ?3 N' q' ^8 R5 i" t- h8 L {+ m" |. j2 n. Y, q( M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # ^: P% ^* n* i" Y6 @
{ . Z. q1 C5 q% f+ o, R3 e
LPSKILL lpSkill = &(m_aJobSkill);
- u) K; L+ u [. d o if( lpSkill && lpSkill->dwSkill != NULL_ID )4 N5 V* i6 }; r; y
{
h% }" }+ `/ T- U6 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( j4 c* S' { j$ Y& R' Q4 @) P- e if( pSkillProp == NULL )
( E( W' p, j" B. Q) t0 |( J2 v. _ continue;
% W; B) L/ r) U \5 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 a! L# K) B& E# p* Q) N continue;( ~) [/ N2 n. E1 h, ?( Q: _
lpSkill->dwLevel = 5;% v! s& k: I; M F1 G
}* |* x* k/ w* K& X
}
! x2 U; O* f; \. e: {6 Z }
0 ]; l' d2 h& g7 v7 j& R5 E; g; j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
H0 G1 _, A9 |3 [1 n4 X if( bGamma )
- H& z* n& z+ D$ W, f {
& {% j$ G- j, T& f+ r- c m_nExp1 = 0;
6 |* j# z6 C; N2 v0 @ }
1 J" I6 M& R% E4 J& h6 v* |
4 `% I. p( H5 Q+ H- T+ U$ l ( (CUser*)this )->AddSetChangeJob( nJob );
& P M# V4 v! k# \8 U) y" q, Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 b) _( e6 \1 T; z f5 t
5 U+ R8 N% R0 ^- [, b- K
% i0 q5 _. ^6 C) i6 x& G" b6 V5 Z7 o#if __VER >= 11 // __SYS_PLAYER_DATA
9 _) r. C- \! d$ ~- O) q5 \$ G4 t7 A g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 f3 _2 S# {$ v3 Z0 }2 _#else // __SYS_PLAYER_DATA
8 a( S+ s% }% `% q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 e* O$ d. k, c8 v2 N0 P0 d7 H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' a& o9 j* G. r8 v% ~ if( m_idGuild != 0 )
# z9 P8 p' O# q q6 q; l5 B+ G5 B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& ~* v- G; u7 h4 w/ i8 L
#endif // __SYS_PLAYER_DATA r* v$ Q8 V# P2 A0 g0 u
SetHitPoint( GetMaxHitPoint() );
. C0 z- L: y* k; T% Y7 c& a SetManaPoint( GetMaxManaPoint() );4 ^* O( L6 }& T5 h" B* }
SetFatiguePoint( GetMaxFatiguePoint() );* Y$ W, z) G# Q
if( nJob >= 1 && nJob <= 4 )2 P7 \% X1 u: v' C7 |; d) m6 _3 d
{" l; A/ ^) ~. E3 q$ z
m_nStr = m_nSta = m_nDex = m_nInt = 15;) w. E( f5 {. B; n* b
m_nRemainGP = 28;
& Y5 D4 B2 n5 S }
+ ~* o& X% `# g1 F! { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. \9 S" j' @/ ?5 r0 A# f {
, j5 h% o. x1 i9 K m_nRemainGP = 118;
, q. z! F! c5 |1 v- z" I8 W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' j, @9 s7 g; j0 A! {. ]: k
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& x# |8 @ A' m" a% z6 A1 S }2 U6 P- }% N u) H: ^5 s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 \" ~# e- i/ S" b* _5 o {
P, w6 \1 o2 Z: s; v# L CItemElem itemelem;3 N4 V! B' x( y" f7 e
itemelem.m_nItemNum = 1;0 V) ?. z0 g5 O! b4 {
itemelem.m_bCharged = TRUE;5 e" }, M3 H5 k+ v
BYTE nID;* E. |8 r' n N3 N* E9 y
" ]8 @" g4 @; c& N, i7 d if( nJob == JOB_MENTALIST_HERO ): N, _7 x! I# c4 V% N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 E( n% _7 O* e3 S8 N: u! F if( nJob == JOB_FORCEMASTER_HERO )
6 m3 H* j# Z" A% y8 C2 r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; t, g G# h6 L3 s: \ P4 L+ F# V. i" C9 W# z2 N
( ( CUser*)this)->CreateItem( &itemelem, &nID );0 E/ A) C# L" ^$ C
}/ r- Z4 V3 ]2 w7 N( S& X# s0 S3 Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. o0 B( I9 h6 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; @0 L H/ b3 {. N3 X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ v8 i3 Y# P" }" [: f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ R7 u- u H' d0 I4 H ( (CUser*)this )->AddTaskBar();*/
2 x. d; z. `* n) z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ m1 E" }$ O e: i9 F! ^
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 |0 y8 A+ X, w ((CUser*)this)->CheckHonorStat();
( G) t% U' N8 [3 O ((CUser*)this)->AddHonorListAck();
' [7 S, f2 E8 q ? g_UserMng.AddHonorTitleChange( this, m_nHonor);
, J" }9 J) s+ n/ u#endif // __HONORABLE_TITLE // ′Tà?
& Q. Z, g, a* }! m7 N }
6 [6 |$ n; N" D# Z# n$ m6 G l#endif // __WORLDSERVER8 o- h+ J8 H Q5 q- u; j9 B
} ; d* E/ [1 P4 H( p" R2 t a5 k
( [8 R$ a! j6 B! i; r7 z0 b6 [2 m8 M然后你进入functextcmd.cpp并添加以下) `8 M) q* a {% V& K
3 N) `. e [+ k# E3 Y
代码:1 n% L7 t% i5 i
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): g! a2 }0 p# {" f7 Q0 o+ i
下面插入( ~3 z1 J8 T0 \$ @0 H8 [2 W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 e- w, p2 J5 f
$ x9 [1 A$ w) u7 i然后你去
; G/ p1 d- f# b9 y) k# a7 `
- h$ Q4 l% b. R6 s4 K3 U" w& `代码:7 N) L( g& m- ?8 O+ ~# t
代码. Q* T, g0 \! I; O! @
BOOL TextCmd_ClearPropose( CScanner & s )
- @) t8 I$ D& Z5 j$ ?% L' Q' v{8 ^8 @0 g6 o P' O2 P( b9 K: P
#ifdef __WORLDSERVER
$ M. p+ q4 D( y* [ CUser* pUser = (CUser*)s.dwValue;
" t* ^8 K8 b6 o8 [* ?' }' J9 R. T g_dpDBClient.SendClearPropose();, H. }% P' e: q* N4 v5 T5 A1 E
#endif // __WORLDSERVER
- |# J* K- G' v( d$ s1 r* J+ ` return TRUE;
) e% f4 z+ K- z}. Y9 {$ _$ l! p4 K. _: A
下面插入
' o; Z/ G/ V* b+ VBOOL TextCmd_rebirth( CScanner& scanner )3 d( d& j! \0 Z6 n( P6 e% U
{2 D7 l7 K8 `" ?5 L- ]
#ifdef __WORLDSERVER
' L {) n" z3 h2 m ACUser *pUser;9 s; |# t+ ]6 U2 p2 H1 Z, [5 a5 j7 |
pUser = (CUser*)scanner.dwValue;
" f, F; S$ c/ Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). k& V. L6 O4 D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, G! v W9 s: w# B$ ?2 s d
else
$ W& A. \! e6 ]8 hpUser->AddText("你还未达到重生条件!");
' m- F5 \* s' A2 U) D$ t#endif$ C0 D" y' u$ p, ~
return TRUE;- `; u: L# I1 }6 F4 B! _. c
} 1 ?& }& w* \% w" h1 G/ r0 U
0 a, m [, G4 r; l1 \) @: |. W6 R6 C: M4 x9 o o8 d7 h1 C0 b+ ]
/ i Y$ N/ c* B1 q- L
: ]7 ?- q1 h0 c! d( S e8 D8 S5 K
|
|