|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. f: g" W1 X4 U& ]' q3 }
8 R( R# g' `! d Y% d; H( |; mMover.h9 e4 M, U$ `. G, S" |" y0 z# l5 n
代码:
4 d d* M- S, e7 P& Z. L找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, [$ K: r; B3 q$ ?2 u% N6 ^7 T
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . E5 i* u4 H( \- E: M$ Y6 b
; x2 O. _6 {* n6 i% j: i然后你去mover.cpp添加' v' a$ C* F$ c _. `% s
3 G, {3 `) Q2 t8 ~
代码:6 ]8 l4 \$ B( [ U, F. x# K/ d1 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- j5 Q4 ^8 ?2 e6 t: u* S7 _& a ?{6 ^) e( X- a! E* w: a8 D7 m% X
#ifdef __WORLDSERVER
; e3 y7 s* a9 i1 S // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 s( V) q* |( o: F MoverProp* pProp = GetProp();: P7 n& l I: b ]) ^$ ^1 e; m
if( pProp )- e7 E Z3 j# Q0 y/ u
{
9 \. |+ p: Y) [5 S$ I0 C' ?3 Y if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) K+ J- @1 B& I# N i; A {/ t( q7 V) F! F+ Q& t# \0 C& `
AddChangeJob( nJob );9 }8 y" E3 N+ ]7 ^
}else{
) \ q6 @9 B5 E* t } return;( e, m2 {& y& T/ Y4 e
} X' V4 e9 b6 @# x; M3 g. U2 k/ p
int nPoint = 0;; G8 |9 W/ i1 o" @9 G+ x
if( m_nJob == JOB_MERCENARY )& M2 N. @% T3 O5 C" U
nPoint += 40;
! ~: T; t& H4 Q% u$ W else if( m_nJob == JOB_ACROBAT )4 o* h4 S: G+ o5 Y
nPoint += 50;
8 n) {$ C! P: ~7 x else if( m_nJob == JOB_ASSIST )8 F/ w5 y# E- S7 y
nPoint += 60;
. M7 A ~7 A( a! H$ k$ u else if( m_nJob == JOB_MAGICIAN )5 ]6 ~7 U, ?6 z) E+ R9 M* p
nPoint += 90;2 Z G4 j* e# }( {2 L, g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 N& \2 c+ p1 {. N& l+ L C# R nPoint += 120;
4 f. i) \: x7 D2 B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 i; H6 R/ a$ @; I7 q3 S; M
nPoint += 150;1 n5 B: V9 a0 D, { w! J8 o2 Y
else if( m_nJob == JOB_RINGMASTER )
- Q3 m4 M8 [! ~' Z nPoint += 160;
- t- Q7 s5 [9 h8 n4 _ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 c, }8 p! N6 c) n, c% ?1 B& s nPoint += 180;+ s: @, b* Q: a) [' a
else if( m_nJob == JOB_ELEMENTOR )4 u/ {: \* j7 G
nPoint += 390;2 F# h% I) Y" w: N# I4 |( `$ I
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% t+ R: f1 g9 U' @5 v: G! I nPoint += 120;0 b; p- r$ H' Z$ d: I; B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* S# G0 A1 F: K8 C( Q" { nPoint += 150;+ x, Q, |# F) X+ x# {
else if( nJob == JOB_FLORIST_HERO )$ F1 M& Q( R! F8 V
nPoint += 160;. d% A2 k. y" q& E$ N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! \; M0 ]) N3 Y4 o. s8 y+ s nPoint += 180;
' ~/ A$ W( x6 l0 V& t$ A2 u) }# d else if( nJob == JOB_ELEMENTORLORD_HERO )5 M. l/ `9 Q1 ?- c! {# p
nPoint += 390;9 q- e0 Y2 G h/ g* A& b, r' r/ }
! Z* E. a4 ~) y( [( {! U( w
AddSkillPoint( nPoint );" z1 p0 G( V& q
m_nLevel = nLevel;
% A5 \* i$ X \" H4 d4 O4 s9 N* u- c5 K _6 s
SetJobLevel( nLevel, nJob );
& y5 d$ ~& ] L' Y2 c, h' h8 X m_nDeathLevel = nLevel;
* m0 U. b# A5 ^6 j8 y* D/ P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& B5 Z* Z# b) s; Z if(IsMaster())
, U% F" `7 w! q: S: m {2 M: d4 G. @3 t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( l% f( i2 A$ a: e7 v. `3 M( ?# [5 K8 K if( nLevel > 59 && nLevel < 72 )
3 W3 X+ p; I& C- z3 ? dwTmpSkLevel = 1;4 E5 H" g* h; A
else if( nLevel > 71 && nLevel < 84 )8 s) \9 ]/ I. V+ D; \! e- T
dwTmpSkLevel = 2;: e+ c' s+ U0 W
else if( nLevel > 83 && nLevel < 96 )
4 z- y+ \' C3 u- o! y dwTmpSkLevel = 3;
E- m5 \. N. G# D; u6 i else if( nLevel > 95 && nLevel < 108 )
# R: C6 @" U' M$ n: K dwTmpSkLevel = 4;4 ?! ]- i2 L5 y/ A
else if( nLevel > 107 && nLevel < 120 ), w& }9 ^" |( k
dwTmpSkLevel = 5;
- f. i3 B" @* M" M$ P3 b+ b for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 U+ H/ I2 e y! C {
/ Q6 D- a- t" t; o9 l9 o& k& ` LPSKILL lpSkill = &(m_aJobSkill);4 E7 I8 q7 ~; Y4 e2 Q5 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )! D. Z4 y; @/ a) H
{
% f- i t( C$ [6 k% w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
y4 o( {& W9 ^; G7 K$ e$ B if( pSkillProp == NULL )5 _3 L. R6 a* a
continue;! P3 s! }8 A, F+ u: Y/ i! x$ m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 T9 s$ j! [; L continue;
) X9 |9 q4 C2 t lpSkill->dwLevel = dwTmpSkLevel;
/ C: z* `1 T3 c }
1 {# c6 E2 \& z1 s# W& W! m }: ?5 S X+ p4 x; A3 L- m
}6 _5 P) s" H" k, h, |; |' b2 W
else if(IsHero())
4 U3 k7 V! @' q% S; P {
6 m. y+ P8 Y) M2 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ J; C, W& d1 {* j# \8 g# W- F {
% q1 V* h0 P/ v- \4 U" s: l% w LPSKILL lpSkill = &(m_aJobSkill);
: { e$ o" y- J9 I8 q- z0 T if( lpSkill && lpSkill->dwSkill != NULL_ID )4 X" q$ ~* r. h4 a$ G; O" V
{
; G$ m% `6 x7 `. K# Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - F" g" I+ {# m+ E
if( pSkillProp == NULL )4 z- h+ x( c* ?/ i* L; P
continue;
/ K* {0 f' j z, l1 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 E/ V& P* g7 F, O# f
continue;' z$ p. ]% Z8 g7 d- a
lpSkill->dwLevel = 5;
! r |) v( u3 `- A1 s4 A, [ }
/ o: E# P1 t. g) |3 O- j" b }8 z8 d" g# u8 N9 t o1 O
}
) O/ _( S# I. } O: i5 H* B else if(IsLegendHero())' L+ E& p2 u) P# J' ~3 x% G/ d) p
{$ }/ j" J9 y$ o5 P( C* k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; A$ H) d. U7 D' @' i5 m { * @; q7 b4 \- b# O, u! J6 z! P& a
LPSKILL lpSkill = &(m_aJobSkill);
% H, r2 \% k# P if( lpSkill && lpSkill->dwSkill != NULL_ID )
& b( l6 b2 K _" ^ {( |' Z& t! U4 | y/ \" v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! p( R, `: |8 Y$ \# g% V% p4 a
if( pSkillProp == NULL )
' F1 h% T; g% w! C continue;. g; T) F) M! s: u/ U+ d/ l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
J, j( M# L. A7 | continue;( n6 x$ X U+ M& O9 r. U) E1 {' I
lpSkill->dwLevel = 5;
( N+ l; j2 b7 b+ ` }5 Q& w4 \$ q% \5 I# d$ E
}
+ E- j$ o9 D M( x5 r }1 N4 q. b$ z( T s8 J' `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; k2 f% l6 d; ~1 y
if( bGamma )( |6 I2 [$ S3 \1 k+ x$ L
{
% P* _8 K9 z8 W3 b: o6 o m_nExp1 = 0;
. [) x* |1 k3 e }( o, [+ M7 Q2 `6 s8 L
/ E0 y. O( J. s
( (CUser*)this )->AddSetChangeJob( nJob );7 t+ M8 Z# R* |9 \- N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
n8 w, x+ v+ }7 X8 L8 V6 D7 G" [7 V. T3 ~. D
$ l* V6 M3 \6 J
#if __VER >= 11 // __SYS_PLAYER_DATA, Y4 S# n* I' l* b) t9 M5 ~* f* A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 Y3 x1 i4 V' V/ y( P3 L! \
#else // __SYS_PLAYER_DATA) ^. _; {; G# C( A ]# X
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* H t: I4 \! s8 c% W% ?3 y1 b0 K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) O4 e S) D0 e7 J/ t2 F& \ if( m_idGuild != 0 )
0 \4 I1 c- N1 {7 E. H4 \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 `0 S" R- O6 u; c& d#endif // __SYS_PLAYER_DATA
/ n; }& G, @: |3 V* J7 X SetHitPoint( GetMaxHitPoint() );
* _% g2 U% g- Q SetManaPoint( GetMaxManaPoint() );
8 o& u! s) |' M" P+ l* K: S SetFatiguePoint( GetMaxFatiguePoint() );- ] Y2 s3 ?# d" W
if( nJob >= 1 && nJob <= 4 )
2 H; q0 B8 q" _ {
8 z3 @: y/ V; G- j2 {& Q* j m_nStr = m_nSta = m_nDex = m_nInt = 15;2 d( g6 @" A9 ?( N7 ^* z9 V" Z
m_nRemainGP = 28;
8 m" U) H' n2 Z5 z! A7 Z% q }' I" E) g, a7 @% A$ ?3 {8 g' r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( {1 S5 `; P" ^. C
{0 |2 P0 a3 p. u$ j- p) B
m_nRemainGP = 118;
1 A; N% B7 C; y- v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* w/ t4 L: O+ I4 r0 I0 h/ C) A m_nStr = m_nSta = m_nDex = m_nInt = 15;
( f1 k1 c5 N9 B' C% z }
/ \2 l+ m5 Q- i$ X! S' p- g+ d* V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# y" G, J4 u# t5 F
{
* ?0 O* G1 a5 X4 y; t6 D CItemElem itemelem;8 ]" P" Z4 W8 [& f# J. ~7 w
itemelem.m_nItemNum = 1;
6 U8 I9 a% m, F" c( B& l, D7 v itemelem.m_bCharged = TRUE;
8 |5 e0 e, Z* @. }: K5 ~% f5 O BYTE nID;) W6 G, c2 ~2 S( X# q3 g
# e" _# I/ A0 I if( nJob == JOB_MENTALIST_HERO )
- f* g7 ?: y' S6 c# Y itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 s6 _$ a. q+ l8 X- M
if( nJob == JOB_FORCEMASTER_HERO )/ l" e8 j5 T* B# V% L0 [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 [: G3 }$ i( r6 n5 a1 Z# L! _* ?9 ?; m5 g$ c1 d
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 R5 E. M5 I4 Q" r# T/ z2 g' V. ^
}0 b ?5 W f; J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* e- [3 F/ J* I/ {' r9 W& U% }8 F
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 n0 [$ p6 O$ O* o! Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* M# w) ?* O+ s6 F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" E+ B5 N; @* C' q6 }5 h
( (CUser*)this )->AddTaskBar();*/
* M: X; F) j* d) @ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ \" a' F9 a/ x. u& s0 [: C: U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# ~5 R, |% H5 n9 d. L: _7 w
((CUser*)this)->CheckHonorStat();( R! e: g& ?9 O/ m0 \' `
((CUser*)this)->AddHonorListAck();0 n. k% G8 D' |$ `( D
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ J8 s, X" T: \1 J" Y#endif // __HONORABLE_TITLE // ′Tà?# {. W+ Y2 g, F8 w3 e* u. r* F! ~
}: z4 n- k1 W0 O
#endif // __WORLDSERVER
: G# P/ X3 P' F" @! g+ p$ T3 x} ; a2 f, V; Q; f u. R! A5 y w
" N& e, M- X, S) U5 y
然后你进入functextcmd.cpp并添加以下; h- F r' V' [ }+ ~' A
7 b3 _5 m9 d1 |6 h代码:7 j. b( {& d2 K- z9 A0 P' z6 \! J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) N; `* ~/ Y H3 C% ?( z; ~# ?' y
下面插入4 ~, `& V# S' H2 D' Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 z6 e- h: [4 Z. h& J7 T' y6 k: [8 e9 e
然后你去9 Z' L' ?6 M R7 i( l) T
$ B7 Q; G0 D# D代码:
' C1 Q4 I6 ~8 x) y1 e2 p) [代码4 t7 q# L F- Y; w# q. D
BOOL TextCmd_ClearPropose( CScanner & s )& e7 I: g( |3 d) J) l2 n. a: Y
{) M: w3 `1 I0 [/ |$ Z
#ifdef __WORLDSERVER
3 D2 }& I" T( X0 E+ a1 d CUser* pUser = (CUser*)s.dwValue;
" H, ]/ Z, I2 Z# X g_dpDBClient.SendClearPropose();
- p% F5 A/ Z- P; v. |& J#endif // __WORLDSERVER
( X0 C$ r2 b: K) {4 w- j# V return TRUE;2 b/ Q* d4 c* n) f4 Q0 D( ]: a
}8 o4 v. o% x+ q- f
下面插入' r: M% a+ j e" K5 ^9 F
BOOL TextCmd_rebirth( CScanner& scanner )3 r8 {* H, k5 B9 _- W
{
+ G/ p" l( x. z#ifdef __WORLDSERVER3 R7 R k, }% z/ o4 D
CUser *pUser;6 r! R( c/ f% |0 d, b& n7 [
pUser = (CUser*)scanner.dwValue;1 P7 e0 U& e- u6 \* D
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( i; S2 `1 {4 }* S& @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
g4 E4 J) H1 melse( \1 [/ L& h/ s* D9 J9 D1 `
pUser->AddText("你还未达到重生条件!");1 E& N0 D! H6 k6 h6 _ ]$ e% ]
#endif, |- ^" {9 X9 P; ^/ J$ y$ ^1 W
return TRUE;% R5 _% q& j' c; m" U& J3 N
} 0 c9 X' r p5 u* x
* `8 P6 Y; l' A) {0 L6 ^. D+ W. ]: O" M( _
* l, n }2 i: @8 X+ H; J- E3 d$ s9 {
|
|