|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" o4 r0 T8 t- Q9 o3 p e* L5 J1 u0 c
Mover.h7 N! N& W" n$ H9 {3 ^5 Q+ R2 X
代码:% \5 Y6 o& C- G: s$ }1 e% z+ Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ f; s7 E/ U9 ^# P3 ]* I2 d, e% q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 Y6 H3 B, [. C( {+ B
; m/ ~! x" m- h8 a
然后你去mover.cpp添加
: l# O4 t% Y8 `/ {4 R0 p3 P& g* Q( \+ c4 L3 }
代码:
m8 J: t: j, d( d5 T4 o( w6 h9 Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' g: E @& r1 o$ L2 E9 U6 s{+ x! @( @; i4 W" a
#ifdef __WORLDSERVER" `) ?# u3 ^* l/ G5 e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ o8 k0 E4 q2 h L0 }, Y
MoverProp* pProp = GetProp();
" A2 ?9 l; c# c) k if( pProp )* o2 D5 Z3 @, L" P& Z* ?6 `
{
~5 P. M, X2 b x. J9 M if( nJob > 0 && nJob < MAX_LEGEND_HERO )) K$ f R# z: x5 g, e0 g5 {, c
{
! m1 Z+ ]7 R+ y0 y1 R AddChangeJob( nJob );- L' t) K- _. O6 u
}else{
8 ?9 B! x6 o H3 N: M5 p5 ` return;' ]* w) v( M" c9 `
} u' c8 P* b' K- H6 p
int nPoint = 0;) u4 q( I2 |* B2 c
if( m_nJob == JOB_MERCENARY )
' Q0 V4 m/ ]! V$ i" D" j9 e nPoint += 40;- J# e$ m+ n5 G% K. A
else if( m_nJob == JOB_ACROBAT )
2 E U2 X$ }$ }4 t5 c nPoint += 50;+ M5 S; {4 L; ^2 z* F( c
else if( m_nJob == JOB_ASSIST )
' R6 _, k% s) ^( d% x" j7 h nPoint += 60;) Y, l; H: ~3 L+ u- w( [8 v
else if( m_nJob == JOB_MAGICIAN ), \1 A: t) X9 @ t
nPoint += 90;
: f6 ?) G" V _! u% e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 |, G" o# R7 f2 Z# m
nPoint += 120;
" b% a, V( j0 g2 r" D6 N g u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) ~2 Z' M& g L- f2 b
nPoint += 150;3 H. B! {' a. ?6 Z
else if( m_nJob == JOB_RINGMASTER )
/ E. ?6 c3 j9 H nPoint += 160;
; p$ H5 P3 s8 z7 I# D- u6 u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" j H r* s! [
nPoint += 180;$ Z/ ?- U2 Y T" ]7 Z
else if( m_nJob == JOB_ELEMENTOR ); t6 ?$ k% o0 R+ ]7 H
nPoint += 390;
* ]: m$ H9 k" E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) Q! D% s$ ~6 N: `8 A
nPoint += 120;" C, H1 `- L1 H3 T3 g' R+ T
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 D- v1 M& J* b3 M4 m# o4 L
nPoint += 150;+ A, ^( B' e g* p
else if( nJob == JOB_FLORIST_HERO )0 ~3 w1 }8 e, z. A
nPoint += 160;
* M2 [; V% A j2 t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 c! K/ L* ~ J" B# _5 Z1 a* F8 c/ `7 B
nPoint += 180;* U, _# j. e& s$ V
else if( nJob == JOB_ELEMENTORLORD_HERO )
- R3 `. _' m" i. L nPoint += 390;3 z' t% A. M P5 Q" V/ u8 n; Z
( x. ]* e" i \5 x/ W
AddSkillPoint( nPoint );
! ], H/ P$ U5 w' l/ G m_nLevel = nLevel;3 N3 d: M' x+ p$ b
|; U# \: u* J SetJobLevel( nLevel, nJob );- d5 P! C( Y7 c: a/ l! \
m_nDeathLevel = nLevel;/ Y6 R6 q- u" x9 x8 S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& t" W0 t; H# q$ I
if(IsMaster())/ n8 H ]+ j/ l& c& h$ @8 g" ~4 J
{
+ F) g9 V# P; y! y' J: R6 { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 S- o4 L, w+ y d4 Q8 m% c2 e if( nLevel > 59 && nLevel < 72 )
g0 h1 Z5 p" E2 K7 M9 _8 a! s dwTmpSkLevel = 1;
/ G+ y: e3 y( s: c2 f' j$ v1 x else if( nLevel > 71 && nLevel < 84 )
/ l: D. t( j* o ? dwTmpSkLevel = 2;
; T$ l' n- H# n- Z6 o5 d2 {) X else if( nLevel > 83 && nLevel < 96 )
; d$ W1 o/ w, B$ }! ^% t! R: h; s) m dwTmpSkLevel = 3;' j1 z( J V) S0 }
else if( nLevel > 95 && nLevel < 108 )
* {. D! M* ~- B b2 h dwTmpSkLevel = 4;- C" T( W& |1 _; x1 E1 i8 N" p
else if( nLevel > 107 && nLevel < 120 )
& A- T+ d7 x% Z) N dwTmpSkLevel = 5;
, S2 ?# e0 y% ]! }# O4 u3 y for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ x1 T# Y( Q3 h
{ , o8 D+ L1 {# F4 n% A
LPSKILL lpSkill = &(m_aJobSkill);$ ~# k0 v" A5 S$ g4 P- w1 f. S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: V9 Q! P9 Z+ \6 ` {
1 U5 }) b9 V/ {; s; n$ r/ o" ~- ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 K% V% \- ]1 g8 }- r! I& N0 O) x
if( pSkillProp == NULL )
4 ]0 c$ T# o/ N9 J continue;
8 }# n. V }& i7 v9 ~$ O; ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( f: F4 |* b! R1 L7 Y
continue;
# x% H# I7 g* M( u" J lpSkill->dwLevel = dwTmpSkLevel;4 N% `3 m) Y1 \% U: X
}
6 D) a+ H! W8 R! Y" {& o' j$ g+ T }: n; }: t' S9 S' p
}& R' W3 K( {- A$ a- p0 }4 J, K, \
else if(IsHero())
2 ]6 m* |0 _2 d/ C8 j L {. ~& j' ~% A* A8 T: R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # W5 G6 u- o2 H. }5 n
{
7 W l" ?) i' Z4 {0 y' ?7 F LPSKILL lpSkill = &(m_aJobSkill);* d& r. r! H# {7 X4 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. J M. {4 D+ e4 K0 y" p: O {" y6 u1 @2 i$ b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 H0 W. ^" S5 }- l. c3 ?$ f if( pSkillProp == NULL )+ V# X) k' m* @9 W4 p. }
continue;
0 w4 X0 H0 H+ L; c2 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) a8 q+ L7 t. n, I" x! g
continue;
& r- x2 c! W* W) K2 ~1 {! c lpSkill->dwLevel = 5;
; t/ t; c7 J U0 H7 q( A% Y1 H4 V }
; ?1 Q+ U6 Z( {+ ~; s p! Y, I) g$ y+ r }/ F9 W/ J" r/ G5 W4 M4 e
}
8 F* s4 `5 w' H" K else if(IsLegendHero()), N$ ?" i1 E# K
{
8 I9 Y o. E# \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! h9 ~& B& V# J) F
{
3 Y) j: r8 u3 E, ~4 S LPSKILL lpSkill = &(m_aJobSkill);- a8 u8 s- g8 y! L. s2 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )) I4 ~9 _8 z ]/ f: U- {
{
% ~5 b1 N! V# f6 P8 y4 H) f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: [" P- h' C8 Z8 C. X$ |9 J5 B. T if( pSkillProp == NULL )
$ O: G0 u% r( e1 W5 o# d' `% H continue;
3 l4 g. b" A9 |2 ]6 E8 L$ a& \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ V7 k- r/ s+ K! B1 r
continue;
% n, U* Z! b+ o; Y" ? @' Q$ @/ O7 { lpSkill->dwLevel = 5;
3 M) ?- _5 }: z& I3 f+ d$ N }
. s) B9 r' W6 r; p2 X }/ [% O. `, r/ t
}
* K& X+ K, ~6 a5 L* F8 B#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( a* o$ L$ r( }+ R' I6 l6 U if( bGamma )
9 C7 `& L* H9 a- k1 D {
( N- E: i% B$ w- S9 w2 J2 }5 D m_nExp1 = 0;4 O% V8 R9 v' i+ ]! x
}; a; R+ s& u/ D) h
3 a5 W4 U& d7 ?$ k8 ?% R ( (CUser*)this )->AddSetChangeJob( nJob );. @3 b. ?: ~$ }$ S H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 e( J& n7 L( H
! s" y' r; J( j! P; \' n; E( K2 }1 {8 a3 }
#if __VER >= 11 // __SYS_PLAYER_DATA
$ F1 N2 U. a6 C4 M* X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 Q6 T5 i Q* C9 W# G#else // __SYS_PLAYER_DATA
$ N7 O E4 ^8 o& L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 T2 K1 H. q* z3 i: i X g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 z' b& N t6 U4 s. S
if( m_idGuild != 0 )
. ?) |. D1 ]' S# ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 x' j4 z# j0 W/ B
#endif // __SYS_PLAYER_DATA
) e7 D! _, ]1 }/ s7 a; ^ SetHitPoint( GetMaxHitPoint() );' D t9 ` }* S1 E& t! N
SetManaPoint( GetMaxManaPoint() );
. a, Y' O: X9 Z6 {: ~) \ SetFatiguePoint( GetMaxFatiguePoint() ); ~7 R7 ?' U, g- A5 z: S
if( nJob >= 1 && nJob <= 4 )( V7 U+ t* `9 ]- `! P) k G( v
{( T, V$ I: ^2 T! a# C/ |& L
m_nStr = m_nSta = m_nDex = m_nInt = 15;- r+ P' m6 N ^) }
m_nRemainGP = 28;4 s+ d+ l5 f0 A* G
}
2 l* M& j7 m2 B/ q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: t# w6 c0 u% d9 ~$ z5 m {7 Z4 y6 O8 j2 e& m0 g
m_nRemainGP = 118;" L7 O! r9 o, {1 h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( g/ W, j3 |, G0 P0 K! L
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 |) l. T4 P8 V Y( w# e& g
}
* C4 p* ?) c! T1 C/ w if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 M, ]5 _' ?4 {; k) p {
4 ~/ N% y- f d' h* D CItemElem itemelem;
+ f' N9 N0 F2 u1 T7 W itemelem.m_nItemNum = 1;4 M7 w X( Q' T$ K* V- D1 l
itemelem.m_bCharged = TRUE;( y2 Z3 w# p( S( Y* F( x+ N, v% y
BYTE nID;. A3 E6 X; d& [4 Y* e5 `: R1 V+ C
$ g2 c. g7 O3 F, w1 t( d if( nJob == JOB_MENTALIST_HERO )
/ I3 r1 ^5 m. [+ p itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- \- e) I: ]9 h6 q+ n7 D
if( nJob == JOB_FORCEMASTER_HERO )7 F# _: z. c+ |8 C) z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 |. O) Y3 _( V7 G8 j
! p. s; L4 Q# z' R. n ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ y8 d8 l+ Z: ] S; } }! q7 O0 J; C+ P5 S7 ?3 r" k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 ?+ D. s$ x& j' G( W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" H# K0 _1 H0 ]. D1 B: \0 y7 z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 ~- C. m j5 h3 `, M l) T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 b" f# A% q$ P: K2 f3 U ( (CUser*)this )->AddTaskBar();*/
+ M/ W, g0 [' h- u# ?( t# B" I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 f2 ]# |& W1 M#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ w" @1 s8 b7 f4 k7 k ((CUser*)this)->CheckHonorStat();# ^! p, Q5 |6 C7 W5 m1 F
((CUser*)this)->AddHonorListAck();
5 t$ X m! i6 V4 T g_UserMng.AddHonorTitleChange( this, m_nHonor);2 n; C# V; @! a2 i5 {. k' b R
#endif // __HONORABLE_TITLE // ′Tà?* m, v, a; \! q9 F) N7 F4 y
}# v' Q% c1 ^" {+ b7 f
#endif // __WORLDSERVER& A1 o* B/ K: u/ o* s
} F; ~. j: { k! B( k
# Q6 q9 A) G* C9 G, \& e4 y; s: O5 @( V
然后你进入functextcmd.cpp并添加以下
7 R, r* o6 n! D% i7 ?$ m
2 k# n) d2 R# p& y$ w5 }0 f& V+ u代码:2 c; T. n7 f) S2 }/ ~" K }8 }# f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 g$ k8 j% `4 a) B6 h k* D: b) S6 }
下面插入; @) a8 a5 [( S$ ~* t; A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 \: _5 E, S; _. c
# c) W7 B4 D2 {4 a然后你去+ ?, Y+ o( Q* \5 N
7 A$ h& A7 B$ T: W' J" D
代码:7 d3 @3 Q6 l4 I3 {: o( B# O0 n9 |
代码5 k8 Y/ X# r/ N/ c/ B5 {. T9 y& n( E
BOOL TextCmd_ClearPropose( CScanner & s )
" A) b; _# S1 I! g5 W) w { G' m! n+ W{2 J: n0 B4 N1 \4 H# W
#ifdef __WORLDSERVER/ X+ F: m. A* _8 ^( ~1 i& s; Z
CUser* pUser = (CUser*)s.dwValue; C- l4 \7 f" j
g_dpDBClient.SendClearPropose();' X" W# t, R8 Y
#endif // __WORLDSERVER
" D/ l" K9 c( ~4 c return TRUE;
6 r, U( |& t- h8 ?8 Y}
; b& n% Z; L, { W下面插入
( G: }3 C6 u' G# A9 F5 pBOOL TextCmd_rebirth( CScanner& scanner )& U) X2 W# Q! Z
{
& p; [% X4 e( M4 y#ifdef __WORLDSERVER
% `( ?8 R. t. E! oCUser *pUser; Q6 f0 t/ c3 d# E! J2 T( g
pUser = (CUser*)scanner.dwValue;
7 i) E5 ~6 d' c S* }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 X# n# v3 ?7 v9 ppUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' E1 j7 i \" Y9 G% Z
else
' K5 t3 W5 i+ ~) z, x$ W: wpUser->AddText("你还未达到重生条件!");
6 r9 d* r5 ~. \#endif
: m- J& J% X0 E. \( y8 ]return TRUE;
* O+ d0 Y0 P# |% ^}
! d9 U, f* z& m/ o5 g) @" ?0 k- }3 f% D1 w
& R Y3 o- k# P( ]
0 e. u6 R- @3 d% ~8 S
! L3 t9 [9 p6 ^$ o! b7 }0 ~ |
|