|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 y- P" [% |8 n5 \$ \) g1 X$ x* L( M( }0 Q! j2 Q
Mover.h' r3 t- c5 R+ _
代码:
, I3 H/ [& D1 U3 ^4 y, M- W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( j1 U- W7 d) p5 u- `" g
; b2 B6 y6 [7 x @ E& g$ h( @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ y8 n8 w. C, y- p4 m1 N& q( T* P3 k1 A# p
然后你去mover.cpp添加
, `5 h2 t+ p- W2 ?
$ |, ~7 _) l$ x2 N9 w' `! U代码:
+ S7 x$ d5 Y1 a9 {- T2 dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; t4 }, h; K# c, W0 I: D' Q* M{
$ ^' v6 c: n2 \; r* l" X# U#ifdef __WORLDSERVER
5 W0 }# _; E1 ?2 R // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- j* ^9 \+ [: \/ U+ ?
MoverProp* pProp = GetProp();
" c* F9 y m+ E7 G9 c1 R( |) N# M if( pProp )
! O2 r- C( _# ?* x. r) R {4 n6 P6 d# t5 _ I- K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 E' v; P8 @. R: M {
+ Q, C" | |6 }' \3 {3 ]$ b& K AddChangeJob( nJob );
, g _+ {% g/ P }else{
2 ^$ A$ Q- b7 }2 c: n; s4 G return;: J( Z# |9 Y' H! c/ o) K0 U) C
}0 Z, s2 U; V- h8 W1 w* P
int nPoint = 0;
% E# L; {- M* q* E) @0 b4 n, Y if( m_nJob == JOB_MERCENARY )4 S3 I/ {' ~2 o# W* o c
nPoint += 40;
+ D3 v: N \* I8 ]- U else if( m_nJob == JOB_ACROBAT )
5 ?+ x8 h- G. t( }: S5 W2 Z+ N nPoint += 50;3 g- {3 ]6 a4 ~- U8 Y
else if( m_nJob == JOB_ASSIST )9 b% U9 n. d+ [4 ?) N1 g
nPoint += 60;
4 {9 [4 K7 T" W, h else if( m_nJob == JOB_MAGICIAN )" t5 {+ J8 m* q: i$ D( ]
nPoint += 90;
6 y4 X1 d$ n! |& c: q4 Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* v1 g# j2 f! V' A" p- z1 F/ {2 U; ^
nPoint += 120;
- v R2 W" I! f* N1 J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 w7 O- g4 j3 Z+ x' I4 U
nPoint += 150;) K, o$ l' S+ p) d% p
else if( m_nJob == JOB_RINGMASTER )$ H, o& y( b) C) A' [& H
nPoint += 160;: ^7 V: T S* q! S, C
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 M& j/ j" m% G4 v
nPoint += 180;
U C9 H* s8 Q3 J9 G7 O else if( m_nJob == JOB_ELEMENTOR )7 ?: n( j- o6 W: }) E; v
nPoint += 390;
$ z5 x6 M" R9 @0 y( s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# r3 s9 E3 b' d& W1 Y nPoint += 120;
8 x( ~- O/ K- H. w) W* {8 G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 w" v8 H8 Q; w2 v. H0 @
nPoint += 150;: T8 x9 u# @0 B9 U
else if( nJob == JOB_FLORIST_HERO )' x2 d* }6 s8 s% g) N
nPoint += 160;7 H) W5 @5 r4 |* Y/ D3 t" R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! v" z @5 p) c* P2 ]3 [ nPoint += 180;
: v: U6 p) o& h3 [% J4 | else if( nJob == JOB_ELEMENTORLORD_HERO )/ v* p' s9 S0 I. G+ [( {0 d
nPoint += 390;
( _, V l' G2 e7 T( l( b7 A' j
L: }7 U" b2 _2 ]% B AddSkillPoint( nPoint );9 I. W6 x; x0 O, ^& g
m_nLevel = nLevel;
3 N; B }+ d0 m C2 T" H7 R6 k* e2 |6 i$ x& L3 P9 ^
SetJobLevel( nLevel, nJob );
6 a5 v6 ?8 b# i: y m_nDeathLevel = nLevel;' Q. O) I z$ f$ E! C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 m; B. o4 K% B0 p2 \1 K: S' `6 `
if(IsMaster()). U, V$ r I1 i9 n+ z
{
p0 }2 P$ H% C& x6 Y3 x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- G- F5 \ D9 ~! t if( nLevel > 59 && nLevel < 72 )
9 W3 a0 s* M* f dwTmpSkLevel = 1;! M+ K2 E0 v% t3 M v( ~
else if( nLevel > 71 && nLevel < 84 )
% v1 T# [3 u# U7 o6 I$ f& P dwTmpSkLevel = 2;& W1 o/ F& F$ }7 p% c8 K1 A
else if( nLevel > 83 && nLevel < 96 )
' d+ Q+ y! N& h1 r2 e# v dwTmpSkLevel = 3;
f* w+ ^8 E I else if( nLevel > 95 && nLevel < 108 )
. A$ j4 `' D& ^3 P; J Z dwTmpSkLevel = 4;
E0 K) a% L! M3 f0 D# O# K else if( nLevel > 107 && nLevel < 120 )1 Z D! r7 Z& M/ L8 B# P8 n
dwTmpSkLevel = 5;
) o2 j9 a1 ~" ]! A& `' f for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 [. b6 D0 z: n1 k { . ?+ k5 a& \' Y) m
LPSKILL lpSkill = &(m_aJobSkill);, i- h% p6 p. r0 F* ^8 _% D1 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 {' e+ N; E/ {) y1 A {0 q y+ K8 b- q: g& Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 c y( d0 W5 z4 |! C, v
if( pSkillProp == NULL )
- N- r* f9 n- I1 z6 ~9 s continue;
9 o8 T& e% N( g% W/ u. \3 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' E2 G$ B9 _0 _2 w* X/ Y
continue;3 p4 q0 a# h( |: i( _5 K) c; l
lpSkill->dwLevel = dwTmpSkLevel;' K2 o# w5 ~) b. K3 t/ z; q& s
}
R9 l) p& M0 B, F- {* W% _9 ? }2 L7 H# Y, D) z% d, B
}$ I* E- @3 [3 @( D
else if(IsHero())& o8 I+ y$ @; ^ K9 h- _/ A: m
{
8 g0 B! @' {2 @# N7 X# K, l* Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 v" \" Q f. \& V% ^) J& t
{
3 x% T* _) V0 {- b( H5 i LPSKILL lpSkill = &(m_aJobSkill);2 W3 {' e" S x# x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 T* t0 A/ ]# ], I {) B1 F0 f1 _# F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ x1 Z, V3 l& N) T! J8 A if( pSkillProp == NULL )
& {/ m7 \( _" C5 t0 G continue;! v5 n3 N, u# \4 |: N5 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 g% |; X: j: ]0 `5 C8 ~ continue;! o; ^- l0 b2 p
lpSkill->dwLevel = 5;
' D& c0 v. c3 j8 t+ D }
. { Y6 |+ }* P" ~8 A }3 F5 @; o( J( V. S' G6 j/ D
}' W0 _% Y% M ~1 U3 m) v8 E& Z
else if(IsLegendHero())& v; g3 H" R6 A9 a
{' W# G; R& C" t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " S" K# f* g) \) R, @
{ " K$ I7 e( ?2 E" z( H: k. _
LPSKILL lpSkill = &(m_aJobSkill);
* f# @: p3 A: S! f1 Q8 F/ I1 S r8 Z if( lpSkill && lpSkill->dwSkill != NULL_ID )( D2 S/ ^5 \' q0 c; [# ]0 U% l- C. h8 d
{ J* N8 ?" G$ d) P0 S# D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , L8 V& s9 o( ^$ ^0 \/ a
if( pSkillProp == NULL )
( X$ p% N& k Q9 G, e# j+ B continue;
4 O' e* [4 y% O8 F4 ^$ | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 y6 x" E3 ^' t: F continue;
* H7 J( p0 A4 `( s( g lpSkill->dwLevel = 5;
2 ?! [" p) p1 @* `7 k8 P, q! Q }
1 Z5 ~+ }* {) H: L* | }
" e$ h: v" s: [* k8 _ }
+ Y! x- y. G) [- K#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% [$ U, P0 e. R) v- Q if( bGamma )5 y# r; j- W; c F# m
{: @) i* Z y1 p) E% A
m_nExp1 = 0;+ @( D9 i: v8 K' B! [+ j
}& j8 m4 G2 t9 I7 x
# R% u# U% j( o) K9 N$ |: _ ( (CUser*)this )->AddSetChangeJob( nJob );
/ N0 ^$ w3 S/ Q5 ~3 o* b2 @( Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' s) }" g. f, @5 N$ v
# u3 |! {* [) ?, f! {
0 d* e# ^4 A$ `5 q* p3 Q
#if __VER >= 11 // __SYS_PLAYER_DATA
% c+ \; `, x% ~7 w# \# m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 w& U! B" w: i#else // __SYS_PLAYER_DATA7 d6 n+ Y, a6 e7 J; o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& R3 {7 v+ M' h8 b5 U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* e, h+ O1 E5 l+ s# M! A1 \1 C
if( m_idGuild != 0 )
$ ^, \" j) g8 F, X4 o9 x( L% H- n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: P& A8 y$ j/ ]1 Q4 _3 Z#endif // __SYS_PLAYER_DATA
4 x) S1 o" K, E# j( w( a: Y SetHitPoint( GetMaxHitPoint() );
1 I. h1 {6 T4 ~- ~ SetManaPoint( GetMaxManaPoint() );2 Z7 Q! @8 P5 `
SetFatiguePoint( GetMaxFatiguePoint() );: G2 k7 A4 j) V+ [- Q: c5 U
if( nJob >= 1 && nJob <= 4 )& I& H1 C( z( i
{8 T$ k1 X0 g8 n3 }( J( y( j3 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ i' y' y' c, C4 { m_nRemainGP = 28;9 r- R9 w3 Y- |
}
( n! I, X- C8 B3 h% D5 j* U! O1 v! d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 B% u W9 W' n$ g2 t {
3 f/ D' j& u+ j6 p m_nRemainGP = 118;
0 h/ F! ]5 l6 n9 @ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ L( d& x. k T) a
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ p5 f0 X, [: l' f4 X( |$ }3 y
}+ v) a* Z# B3 T3 c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% q) t3 N# x9 d' Z# d0 w {% H5 G" Y" ~( }' q6 v. a* g2 l i9 A1 m
CItemElem itemelem;3 f; K0 L# U+ X3 l
itemelem.m_nItemNum = 1;% [6 z5 s' N6 l2 ~$ R; a0 ^
itemelem.m_bCharged = TRUE;; u9 I# m+ b K
BYTE nID;7 j6 I6 c! G" F' g5 x6 m5 q m6 q
, ?9 M! j4 v& ?0 S/ \ if( nJob == JOB_MENTALIST_HERO ): N5 l2 {2 R7 \, H2 Z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! |- N2 n1 v) P7 X0 d8 N! x
if( nJob == JOB_FORCEMASTER_HERO )
/ M! ]2 d9 }6 t/ e" \ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: u( n9 `) B5 ]3 z
2 [# v6 s6 x8 g8 W8 n ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 Y7 h8 l/ l: B- ~0 v' P9 q0 d& u. Z
}) u; D Y$ Z/ C7 l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
P! Q& A0 E- Q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- @& h$ A0 q8 {7 I1 J8 d3 V1 q% z ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; A V$ R+ U$ x3 w* r! } X2 ]& g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. A1 q5 R S2 R
( (CUser*)this )->AddTaskBar();*/
( @9 P% i* V! d* E6 X7 v( \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ j9 I; H) `; S) E3 u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) H5 O9 m! a* C) `. A
((CUser*)this)->CheckHonorStat();
0 ]7 Z1 I& ]( U+ |3 M$ a3 F! ? ((CUser*)this)->AddHonorListAck();
: R! l4 F0 a) f" _$ Y. L# H g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ r, F# u i {$ r* t+ H Y4 r#endif // __HONORABLE_TITLE // ′Tà?& O6 B% r5 _+ D; O) e$ }
}
! ?, {: X) `% r0 L- ^#endif // __WORLDSERVER
% c0 s" k9 M u}
e+ B- O- Y2 D" ]& X
5 q( m( E8 c' l* v然后你进入functextcmd.cpp并添加以下
1 y2 u5 ^, a6 X0 M' y# `
; n5 }1 E4 T* `4 V& s) J) s/ x代码:
d, g; M" ?3 p+ k, EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 k/ c% O+ q2 X* { d4 p- m& M下面插入
! o6 [' F& Y' k; AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 g; [7 r# p$ b* Q2 t; G0 G
8 m$ H# n. j5 |! r, c9 W( N然后你去2 f; U u' W, n9 K9 j9 S( k
' j# Y+ D+ z6 ~, k9 s
代码:( e7 c9 O+ A( k. d ?; _8 B- F
代码
* s. d' A( h# r0 _0 v1 z0 h+ p( PBOOL TextCmd_ClearPropose( CScanner & s )
! G3 ]' U5 k- Q% }! _{
/ E- Y6 q: h( f6 ~8 o#ifdef __WORLDSERVER
/ d$ ^" ?) _0 Z: K CUser* pUser = (CUser*)s.dwValue;
h! D7 ~, [2 S: B, I) r, P g_dpDBClient.SendClearPropose();
) w' t4 g4 y* f- A4 ?& ]3 r* C#endif // __WORLDSERVER5 R8 l* } @. X) e
return TRUE;+ N9 f$ x+ g! T8 @ I( m
}0 V) S0 o* R- [3 A# [0 J* W& ^
下面插入
+ f X$ z' X2 ]$ {. GBOOL TextCmd_rebirth( CScanner& scanner ). P# d: E! ]+ @+ A
{3 i5 r8 c4 [9 S
#ifdef __WORLDSERVER
& ]. }% i. C! oCUser *pUser;
& I% K) k$ q. E# }) J0 ` j: ?/ w7 X+ F3 QpUser = (CUser*)scanner.dwValue;
! y7 t' c9 _' \& pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* J" V" [6 D; _' K" i* j' \7 M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. y7 x" ?; G4 b( Z# H! Kelse$ s$ F7 }2 a! R$ n. r3 p' U
pUser->AddText("你还未达到重生条件!");! I- Z6 _+ y9 U! F7 T: j+ {; y' `( C5 k
#endif
3 S) D' e$ a& p. z4 i! Freturn TRUE;
0 p! o" B5 X$ D5 Z! [* ]}
% e2 a$ P1 r" {4 x- X# t1 L U& J
4 w( S' D. M# a" \8 t. C. Q
3 D) u: x2 @* \) x- T7 [# c% g/ `0 a! J& H, h/ z$ s& V
# p7 X( ?" k2 O* Q: z6 G
|
|