|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 G/ N! ^- d: v! U# a8 ?+ O. Y
$ k4 ~1 Y4 y, Q" [Mover.h6 Q" i+ b0 R! C
代码:+ r# U! I, [' k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& ]: B1 T1 |& q4 G6 Q; i
) `0 k: r" V( U2 [/ S* z7 Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
E1 v$ g9 V6 I4 s/ \6 Z4 p" L
# {7 _* F+ o" P. T0 u5 i3 r然后你去mover.cpp添加
4 p/ q, G3 q& t4 ^" q; b9 O8 [+ z W
代码:
4 |. N, @! B1 [* Z8 V8 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" ~% s& c( ]! i{4 o$ c- R$ [1 f% W$ t1 O
#ifdef __WORLDSERVER
/ h: O n4 ?: l8 a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. T* p2 b3 e, D N1 Z! k5 v MoverProp* pProp = GetProp();
8 c' [9 ]) d; R9 Q; _ if( pProp )
+ c. R; E1 U. q3 o) G8 B( w, E# ]# E {6 a. f" ]! v2 g, P: I+ U6 [' U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( x5 O2 h% V1 T1 h: L {
; c$ ?. J3 h! R; w8 M AddChangeJob( nJob );
5 x2 N( a& x0 |, g }else{
+ _6 B# {; m7 V: W( N8 R# m) J' e# }. t return;
/ r& o# P$ o1 o6 @" R G } j& x* T- N# i9 D( K/ Q3 x# P
int nPoint = 0;
/ B. e$ m1 L. Z: S; i if( m_nJob == JOB_MERCENARY )
- U6 V. t4 w+ [7 B nPoint += 40;
% D; t1 c% b: k0 I; b else if( m_nJob == JOB_ACROBAT )
, p- ?0 C; s* i! Q nPoint += 50;# b% p$ n0 K* @7 S2 a" Z* [/ V4 {
else if( m_nJob == JOB_ASSIST )
! S1 {+ o2 a! w nPoint += 60;! V( k) ?) U0 |0 G( @# X2 F& N, p
else if( m_nJob == JOB_MAGICIAN )" ]- S/ g9 z, r, N8 Q
nPoint += 90;5 Y7 d6 x8 v8 K m) m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' a' E+ k. F1 {
nPoint += 120;
$ X! h& O2 l6 G8 ]4 q3 ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' J; T+ v! D+ J nPoint += 150;1 Y9 h7 W3 V. B& [; P
else if( m_nJob == JOB_RINGMASTER )
h$ [0 H" a6 y& z ]( \ nPoint += 160;6 I- A$ [$ B- K5 p! H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# D7 w# Q5 N2 c# j
nPoint += 180;
1 h. z: G1 L2 _! |) i5 `4 z else if( m_nJob == JOB_ELEMENTOR )
9 q1 _0 G& {' n. f' f6 F1 ` nPoint += 390;
" L( ?$ i r" ?! Z* f else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 T3 Z$ U7 Z3 O6 U
nPoint += 120;9 g/ j& S. x1 ]& _7 A9 c+ l1 E4 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# k' Y3 J* y) U3 g
nPoint += 150;
, Y0 s7 f$ X9 V4 H2 }; F else if( nJob == JOB_FLORIST_HERO )
l8 M' x/ y- y) l$ q' _ nPoint += 160;
- c d8 G+ e9 t# \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 c9 f1 {. d; x9 v4 p# R
nPoint += 180;( y/ K1 { \) [% V+ ^
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 n- \- _) Q# q" S4 V2 \7 ^/ X nPoint += 390;- k4 Z$ B: \, O4 p. Y' S
/ I5 t M- G. Y! H. V' n% h- E9 x
AddSkillPoint( nPoint );
0 |& n' C% n: ?- t0 J m_nLevel = nLevel;
/ I4 f9 _" m- ?/ g- P' \* s" P1 Y/ O9 M7 I
SetJobLevel( nLevel, nJob );0 j+ m$ {% d. o/ Q+ H2 u
m_nDeathLevel = nLevel;
7 }; z' Y& G2 r1 k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 H/ ]5 e" ]- M3 ^3 ?3 F! x8 J# A
if(IsMaster())
l% H: T$ S) D# J8 O {
2 @' G: h a& K: E1 o; [% ] int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ X$ ], e" m% @
if( nLevel > 59 && nLevel < 72 )
- ^( z; i( |* R, I9 x dwTmpSkLevel = 1;! U& C/ z, u8 g/ Z5 j6 Y# a& ?
else if( nLevel > 71 && nLevel < 84 )9 |- p0 O' f* h. v6 N
dwTmpSkLevel = 2;3 A& w ^$ `- T6 y% n
else if( nLevel > 83 && nLevel < 96 )
1 v/ x* I( \+ r, O X dwTmpSkLevel = 3;
4 ?. G0 o% _% `" V7 D. T else if( nLevel > 95 && nLevel < 108 )
2 d. e- \# s* A) J3 l dwTmpSkLevel = 4;( S" H; C }9 ~2 i; \# o+ P; M
else if( nLevel > 107 && nLevel < 120 )
6 ^+ J/ p* u1 Q) x, A! M9 g0 q dwTmpSkLevel = 5;
c# t6 s2 E; I" ?& a4 f for( int i = 0; i < MAX_SKILL_JOB; i++ )
. d. o9 ?2 T4 d) _, e1 p& D3 L {
* L' G+ R0 U+ H2 n8 y LPSKILL lpSkill = &(m_aJobSkill);$ b5 j5 B9 M) V4 n j# [3 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 G, w3 @* ^2 C4 h k$ d" |; | {
$ \( s, A2 s( O8 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 S" R+ ]# O+ B3 g- j( F+ k
if( pSkillProp == NULL )
+ V- U, e; Z4 d3 p continue;
& Q0 t$ E! `0 m4 o9 B6 F+ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 t! h. k/ w* w: ^. |- z/ b& ~
continue;/ f+ C6 B/ X) S' F7 {- Y) j
lpSkill->dwLevel = dwTmpSkLevel;
$ t6 Y2 e$ u+ T4 L& [ }
+ ^/ @! Y- K: x: D' D( F+ ` }
$ c2 ^/ {: S, D1 B* j& r2 J }( l$ T! h) T3 o/ R( |' N
else if(IsHero())% Y1 O7 i( g8 Q9 Z4 d% D5 l
{; P, E0 u2 ]0 g, C& H# N( o% F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - p5 C2 G5 @8 ^
{
a1 @; u4 g2 } LPSKILL lpSkill = &(m_aJobSkill);" \- Q( ~. j5 ]: Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% o2 j9 E+ n6 n! w( j' } {
+ o( d r; E- o8 q! G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) @ D0 w5 ~* s8 i; ] if( pSkillProp == NULL )/ e/ }+ D2 K- i7 ~
continue;8 d0 n6 @) e- o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 N* y0 Y: ]4 s continue;
( a* b! P6 J8 u1 O, x$ e lpSkill->dwLevel = 5;, D% h6 j U# D
}/ s3 S& [# j1 S# e/ T
}9 }$ [! S' O, |3 c
}
. g& i+ ^- L. p else if(IsLegendHero()); w$ V; B/ V+ L$ d" t6 N7 g e
{9 x9 w- @4 o) J. [5 x: z" ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 D7 X# g) F) ~7 [
{
+ r9 [ S4 B |! h+ v: H# e( m LPSKILL lpSkill = &(m_aJobSkill);6 k, y+ Q, s0 m& M" n" n4 x2 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* n" b. F9 A$ L8 @% M {
( u) t3 T$ h# h. `9 [" J' z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 E% A9 [ k+ p9 H2 [
if( pSkillProp == NULL )8 m. i, \6 r$ p( u
continue;
2 J7 U4 B' E0 |3 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* V4 h3 l1 Z+ v8 [! B
continue;
9 U* a) ~# L$ X; _! Q, U lpSkill->dwLevel = 5;+ r4 o0 k! G* d+ x! q. \
}
5 ?. Z$ B3 T+ P0 \, f% z }
. g1 Q A" H9 w$ C9 L- N6 a& j4 d( C( s }
2 s1 p8 O9 B% v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* |# d0 a" _3 n# F+ y8 z
if( bGamma )
B( b+ R2 N0 u, j# Y4 A% b {
: m( L. v$ c- ?0 p8 M3 O4 x4 t6 ~ m_nExp1 = 0;
?6 _- Y7 X; T; Z% ?, U9 } }
* i5 L8 R. x% v+ b0 }8 R
8 H$ R0 s% [* h4 M% R& P ( (CUser*)this )->AddSetChangeJob( nJob );
4 i5 l1 m% c4 j# V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. Q) p4 w7 ^0 I9 |! v+ w
" B t) f0 Q6 y7 U* Y8 ^% S2 C* ~$ p1 `5 t- w
#if __VER >= 11 // __SYS_PLAYER_DATA" G" a0 {, M/ e* J3 o: _
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 u- R( x! E$ K' ~5 @+ r/ U/ J# _
#else // __SYS_PLAYER_DATA
. q: e8 B1 g& P, h2 U, E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ n. o" E4 g5 r( n' N2 H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 @+ o: F% Z- ^! h9 e: A if( m_idGuild != 0 )
2 P9 K2 I y" E* y9 G3 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 m- J" [. G9 t1 C! Q/ K
#endif // __SYS_PLAYER_DATA% a7 D1 X0 j# \. J
SetHitPoint( GetMaxHitPoint() );
& u" o* l7 s8 T* C SetManaPoint( GetMaxManaPoint() );0 E$ P4 x& U4 D8 q8 ]
SetFatiguePoint( GetMaxFatiguePoint() );. P& o. m, U1 G1 a
if( nJob >= 1 && nJob <= 4 )) f+ N8 l! ` g: [% {* r
{
2 [4 _7 B" Y8 n C/ D1 ` m_nStr = m_nSta = m_nDex = m_nInt = 15;$ W! W5 E: o5 K# O1 G
m_nRemainGP = 28;+ D& c% D8 J# g
}- A3 V0 q% G" Y) c8 j2 z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' W& J$ w+ Y9 g, \+ X0 I H {* ^, }) V1 |; W8 D7 K% M
m_nRemainGP = 118;
" f. a o% _* G4 ]( {2 W, d% s6 n //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ ?7 Y# \) O2 S. V m_nStr = m_nSta = m_nDex = m_nInt = 15;
. T5 V" [1 T/ Z. k }
* ` ?8 q1 ^0 @ g7 s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 z/ B7 S- l8 F, _/ d
{% Z [0 _8 j2 e: K4 G( V, s; J5 e0 G
CItemElem itemelem;
0 z4 R5 |9 y4 x, V; A! x* `% @ itemelem.m_nItemNum = 1;
0 u, _8 D. w& f; ] itemelem.m_bCharged = TRUE;) G0 e5 v! p; A
BYTE nID;
) W; g' {, ^$ e, g& M8 w& {
) W v# i9 N, j( c& j1 b, ~# F if( nJob == JOB_MENTALIST_HERO )
8 @ C9 }- O0 S" N0 e3 H: a" A itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 Z4 J* I: Q/ ~# ]& m
if( nJob == JOB_FORCEMASTER_HERO )9 m. I/ \; Z n) O/ `, | s8 V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& N- @2 S6 c' l* z, l' U% R
3 Z2 y, C- d( e) I7 a0 ^ ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 x- ?! U& {6 d" }, N: Y) T s* a; @ r
}6 u: w5 [! ~' q8 d+ L7 V/ d' `' E% k2 P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( d1 w2 {) y9 K% u1 o
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& T7 k W% m z& ~( u* ~0 J
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 x3 @! e- u& `. ?) H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% q* ^9 l ?0 s2 } }4 Y
( (CUser*)this )->AddTaskBar();*/' I8 ^5 x# n5 n }6 `/ B; d
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 S; ?1 |; {: v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" a8 G- z- I* @! T
((CUser*)this)->CheckHonorStat();; r! o! J8 L. c+ O; C* t
((CUser*)this)->AddHonorListAck();& S! ~5 s4 i& z. k
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 }* n, {. v7 }/ r5 H7 ?6 O! H
#endif // __HONORABLE_TITLE // ′Tà?2 j& M! g) v. x' H
}7 C% r. Q4 M, {
#endif // __WORLDSERVER" r) P- v5 @. D$ G4 g. N& v& y
}
, x; {1 p7 v$ U* N& n8 v! {6 N8 V6 \' e5 B
然后你进入functextcmd.cpp并添加以下
) i5 c/ K' ^' {) C% D. b f- H/ L8 Y) Q0 A6 u! L
代码:
3 S, n! \0 g# O" n7 a( f- ]6 GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 f2 W: N1 m$ W. B4 X, {8 |
下面插入. A3 L2 Y0 O! A' L q. n4 w( a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) H. H' _6 r, L# ~( j0 l) f; E4 y& E+ f- u9 x4 I& G$ v1 l8 I9 a# d
然后你去
0 P6 G& K$ Q7 K+ P) T0 t0 d0 b& b9 R4 o- q9 T8 Y+ Y
代码: k) H2 k7 M; a& u2 R& z
代码/ }' f( g' J/ H/ |/ ?+ Z6 d$ e
BOOL TextCmd_ClearPropose( CScanner & s )4 t( E4 D+ Y3 ?9 ]* H
{
8 b! T6 k4 y6 Y$ V) `. `#ifdef __WORLDSERVER5 ]4 ^1 e( |5 y& X* t! e8 q( A
CUser* pUser = (CUser*)s.dwValue;9 M* ]: B7 U# R5 M# O0 y# W
g_dpDBClient.SendClearPropose(); r4 ]. ~7 }$ p$ H0 c* B3 o
#endif // __WORLDSERVER
& V6 N# m* ?* O return TRUE;
. k) H2 J; S" j, ~3 _" R}; O9 Q) f/ n1 ]8 @
下面插入9 o# S5 O0 a0 c! d
BOOL TextCmd_rebirth( CScanner& scanner )
7 S2 L a& N0 W, X& m7 b4 ?{" J Z% J1 o, W6 t
#ifdef __WORLDSERVER9 {& K6 L+ `- \
CUser *pUser;
( R3 n1 D6 _5 ppUser = (CUser*)scanner.dwValue;8 `/ c, P" N( M/ k/ G5 `
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 R: p* q7 [0 U# R @6 L' Y9 u) CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' [/ @+ H; G4 `0 D6 L. I) [! r
else
3 X, I7 o1 Y# b$ b' jpUser->AddText("你还未达到重生条件!");
. X/ Y/ Q$ }8 Z# x& K' j& ]" v5 y#endif
6 P5 G' Y* b- W! F8 @' ]7 A# Z- }9 Jreturn TRUE;
1 ?5 B- G, A3 W# n} : D0 c3 h f3 p
9 [) |( T- C5 }
1 k% L5 d% F& k; v$ L" t1 l% W0 d2 L6 ]6 G, g% \' a
$ E V+ u S3 K7 p: M2 \ |
|