|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' M6 n0 \3 Y# F( p5 A6 l3 A1 ^# s1 |0 n* g5 U7 P1 N+ t, ~
Mover.h
+ n% ~9 ?, n8 D$ ?) R e6 K代码:8 `1 U- z% V, n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 X J2 v. g; M8 q5 q9 N3 y
+ M1 S4 D) i8 @9 B1 m0 X; \7 m. R- j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 Q k( L0 T# r0 L) y
. s. L8 A) }; V& M5 {然后你去mover.cpp添加
( S4 ^5 I4 u, Q/ {. F5 ?! U' H1 d8 ~3 R
代码:% \) h2 j9 t2 S3 v$ T u3 _2 R! g! Q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( ]- r3 A" W0 h$ E2 L1 b' D4 Z{
& Z9 V, I5 y$ h" j1 |8 Y#ifdef __WORLDSERVER
; e8 E8 O* |8 E) V // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 W) w3 q: q: J1 @6 [) m
MoverProp* pProp = GetProp();4 k# X& s, t j4 C" _& ?+ n8 U" R
if( pProp )
6 c/ v4 M$ ^2 a" i {
0 U7 K, z' @8 j6 A4 \/ W7 l if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 S3 C6 b- {# r) K0 q% y {
! ^. K: x8 ]# D AddChangeJob( nJob );
; Z$ B; V3 P% ]; c0 l) m }else{
. l; s. [( w& B( [! } return;
3 z0 e; K- S Q+ i( Q5 L }7 {6 I7 w0 h! n1 @" y7 ~, {
int nPoint = 0;' B: e# k" _2 {4 c7 v6 K
if( m_nJob == JOB_MERCENARY )
' H4 D5 L3 K3 r7 S6 J. C nPoint += 40;
' f( I [6 }& I w# }2 j else if( m_nJob == JOB_ACROBAT )' s: s+ O% ` H' s. }4 j( i
nPoint += 50;
q4 y( |0 g3 g' `7 u else if( m_nJob == JOB_ASSIST )1 s# d1 O7 J; R1 }
nPoint += 60;
4 F7 B' K* o; J! E else if( m_nJob == JOB_MAGICIAN )
/ J* O% S1 A, A9 [8 N5 W; N5 B nPoint += 90;$ {. f' ~1 U& f$ X
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); |$ I5 ]9 N( f4 t+ _# v
nPoint += 120;
6 c$ Y3 ?$ G! B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: a" ^ _1 ]. E- P nPoint += 150;( H) H. p) j. D9 U! u% E
else if( m_nJob == JOB_RINGMASTER )
6 m$ p2 V2 H) h7 Z2 S nPoint += 160;
) v1 R1 p* p% q: A! Z9 ?1 c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' h A) z; T9 ?: _$ z
nPoint += 180;. E" g2 J6 W' e" v. A
else if( m_nJob == JOB_ELEMENTOR )
# L5 U0 I' w0 O nPoint += 390;: m* y) u) W, _! f. w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 s( _. d* t& K) \' I9 W& E nPoint += 120;
7 w& t/ @" P1 p3 [! t/ m) E% X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% U3 G- [% N* t1 l) J. r
nPoint += 150;
( w2 w$ n! s! n& \ else if( nJob == JOB_FLORIST_HERO )9 c& C# H& s/ o. y2 v) {$ y
nPoint += 160;5 X& p+ a. i5 X$ b* S! [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% c9 M0 f7 b) ? nPoint += 180;
! R, u' J2 g# ~9 ^# j else if( nJob == JOB_ELEMENTORLORD_HERO )
5 t2 O1 \4 e" W! m4 m nPoint += 390;) r4 L! q7 x8 h
/ j# d8 x# t" H
AddSkillPoint( nPoint );
5 A6 p, {! ^" c+ W m_nLevel = nLevel;3 F7 D. \" I& X' x4 {
+ y8 _4 Y& ~, Y4 l J" x
SetJobLevel( nLevel, nJob );7 ?9 w7 y' R* a/ r( c
m_nDeathLevel = nLevel;8 m! [" Q! ^7 ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, W! M" u0 n8 C9 j" { if(IsMaster())4 k# _) x4 G, O4 [
{* H# p4 f6 O0 ?( b& b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* X& E& f, v# Z7 r+ H+ _ if( nLevel > 59 && nLevel < 72 )' y+ j" z. G8 o3 `
dwTmpSkLevel = 1;
. q1 s) g9 \+ |( k; Q$ M6 E R else if( nLevel > 71 && nLevel < 84 )
' ]) Q; L3 F; P dwTmpSkLevel = 2;2 v: v _; |8 A2 g2 z: N! b3 n
else if( nLevel > 83 && nLevel < 96 )
, g& T3 O( s. J) V- s& V' E) ? dwTmpSkLevel = 3;
8 O0 s% t0 O- f* \* L/ E I/ X else if( nLevel > 95 && nLevel < 108 )' |6 ~7 N4 l4 Q! O- ^( R1 z3 I
dwTmpSkLevel = 4;/ n4 m" m4 j( g6 y7 `
else if( nLevel > 107 && nLevel < 120 ). W5 V1 Z8 v C: |3 @& f
dwTmpSkLevel = 5;) }( _# {7 X2 @0 I5 F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 l$ ?7 d( w9 y" B0 S z
{
! X! T4 Y k M# n LPSKILL lpSkill = &(m_aJobSkill);
$ m$ J3 I/ r2 P! B7 g( X if( lpSkill && lpSkill->dwSkill != NULL_ID )
* @& R& |" f9 q' g% ~( O y {
8 F# L9 ^/ G: B& D7 p5 B4 C) t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 ]. P: u, }2 X" c- S if( pSkillProp == NULL )) ^ k, x, E0 |2 K$ r
continue;
/ d. k" P4 t: J8 W5 n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ d9 F0 u; T+ _9 B$ B
continue;+ C$ J& L" T+ `; K% x4 ~5 @
lpSkill->dwLevel = dwTmpSkLevel;0 V4 Z5 K, W, ?9 ?6 x- t
}
9 L5 V, H# `) t, c' ` }
4 \9 J$ w8 d S$ k }4 ]( N. [* M5 V1 U4 U$ [
else if(IsHero())+ y0 k" _( N9 D7 |. X9 _7 y. g
{# m3 r" h+ J2 b5 Z; U4 R! t2 Z4 y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, h1 @2 D% l( I1 V+ G9 ^3 t { # O8 b* [& Z, z" _+ F6 p
LPSKILL lpSkill = &(m_aJobSkill);
5 o) z1 W3 J5 d* y: |" ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
]- X( w3 x6 t2 _' r7 G D {5 w' `. S% B* R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 E; v8 q: k9 V+ F% N: `1 \- O
if( pSkillProp == NULL )9 x+ t& N: s, T3 i; n
continue;% O. b; i$ [) \( S8 H: Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; P1 z" a" P5 n( R: G" U continue;8 f. u l' H: J" ~
lpSkill->dwLevel = 5;7 o+ M: }5 Z5 s9 i; W3 n" _0 K
}5 l: q8 T; a3 t. Y5 m9 j1 T# _) a
}. S# D* t3 i# T( s1 a$ x& x
}" M8 l# O3 B! P* D" D
else if(IsLegendHero())
U- X+ ^ P( e. R4 j {
+ J* q8 R" w* A, D* |. V0 Z4 {3 u for( int i = 0; i < MAX_SKILL_JOB; i++ )
# h# r: ^$ L: A/ \/ s4 w {
# B4 }' p7 P4 x, \0 z+ I5 @ LPSKILL lpSkill = &(m_aJobSkill);
9 k3 P$ |4 R. a8 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 ^$ F( _1 ~6 p& f {
/ q* C+ Q6 o) `0 q. _9 V+ l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 ^9 ?! t# N& E1 }, @, [ if( pSkillProp == NULL )
1 H }. S0 g; e$ h2 \' E continue;
9 M. k9 j6 Z5 r5 U9 }5 t- G& Y% K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
Q% r4 n" P7 \2 G6 s. h continue;
, r' q X# m. `, | lpSkill->dwLevel = 5;
0 i6 Q# v8 {! g2 X% u- Q' V }
0 o! r& B! s: g! \: ~ }3 q% V4 [4 K* d9 d; @
} T, [/ X [7 @! n; m) m
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ ], W: m1 a2 ]2 J: R1 q3 C% u+ o% J if( bGamma ), J; ^2 s, R3 w0 r: _& k
{
7 T" V1 j) M% c m_nExp1 = 0;
$ s1 y! R. ]: ?, E9 O8 U+ v }- T; X4 f" @) f) N7 a9 x* q3 z
4 {) A/ [/ H! A5 Z/ o& l ( (CUser*)this )->AddSetChangeJob( nJob );! J" r" |4 x6 h& x# ^/ K5 @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! J" ~7 i' F4 A' _+ q" G% c6 H
' c- } h; \# L1 g3 h! g" _) t' c
6 \' d# O' [; t- v#if __VER >= 11 // __SYS_PLAYER_DATA* k" H0 c5 N, A4 p' L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- z D) X2 d' j
#else // __SYS_PLAYER_DATA* R. @6 g( w! D! r; h7 x4 g5 [5 j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; ^7 ~+ {) h& y; X+ X1 e g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 r' O/ l6 p& s" g4 c N
if( m_idGuild != 0 )
, Z9 n5 x9 U S# F+ c3 S5 y, V4 S& } g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* Q" a2 f5 \+ s* c( ]5 u! I3 N
#endif // __SYS_PLAYER_DATA
- I7 ~$ R# {4 j7 ]. M7 T SetHitPoint( GetMaxHitPoint() );! O) z3 s; I& V! Z' W: a b
SetManaPoint( GetMaxManaPoint() );! h5 `! p! Q+ Y
SetFatiguePoint( GetMaxFatiguePoint() );0 x# R# m) n1 M* x) @% H3 E- Z& b
if( nJob >= 1 && nJob <= 4 ); p* i6 D2 H& U2 l5 l2 f4 |
{
, F/ O5 h/ N9 `8 J5 s m_nStr = m_nSta = m_nDex = m_nInt = 15;# H9 R# j- _$ _+ u) E, P
m_nRemainGP = 28;
7 ~2 R3 |; ?* b$ w; F }, g. ~: y: \! X: K. d7 L
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' J$ _! F# @& J, _' |- y {
8 _8 d: N- B( L8 @, R! F- | m_nRemainGP = 118;
$ G$ K2 e5 a- m; k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& C4 S, [+ f4 ]( |& N+ Y' C1 m m_nStr = m_nSta = m_nDex = m_nInt = 15;
' d8 W5 t- A- G( M* ^# G- E }
0 I0 S5 M/ O2 { if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) A8 R9 V0 ^2 U" }& b! B
{
, k1 V( |* F! ^7 W+ \ CItemElem itemelem;3 W9 f" k" D& ?% O3 b
itemelem.m_nItemNum = 1;+ P1 u$ N9 x! g( B N7 O7 g3 h
itemelem.m_bCharged = TRUE;! b" D/ _1 v% n; H* K
BYTE nID;. a& I) n- ]1 q" X
+ x# l! U7 d" \" A t
if( nJob == JOB_MENTALIST_HERO )
7 J1 O" f0 D$ D. |' \3 } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: m: {3 F8 w# x- |8 C6 M' ~! N
if( nJob == JOB_FORCEMASTER_HERO )
5 {* x: o$ [* p8 {9 \/ T8 @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( j0 a* V o1 A) K4 y3 g1 I
6 N+ `8 V6 o# M s: c ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 W3 }. }% O0 a( u }6 ^; C7 w; \$ ?; d8 a; f' v- O# H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 C& a( l |4 M. [1 K0 C& ~. t ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; }- o9 K$ ^9 W: N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& F# a, Y, T# G8 t- u9 P5 H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 W& F3 [& I, }6 R ( (CUser*)this )->AddTaskBar();*/, X2 |, A1 u# y* b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) m- \, h/ `4 k% O% p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: U% t. ~! t, s ((CUser*)this)->CheckHonorStat();* n& b. F% e3 [6 u/ K- Q
((CUser*)this)->AddHonorListAck();
0 [! y5 c1 D1 N. t) G# c( ~+ h g_UserMng.AddHonorTitleChange( this, m_nHonor); T7 J9 r, {+ V) Z6 X
#endif // __HONORABLE_TITLE // ′Tà?
0 H6 |& p3 ~7 _8 i# h/ l* @ }
+ u0 j3 [" t" G( {#endif // __WORLDSERVER
1 @) |8 {9 e6 V6 C} ( S( s* i+ r6 b$ E- E$ i F
J5 n& L! T) {. i' J) J5 R然后你进入functextcmd.cpp并添加以下4 K1 _* B# V4 A2 h D
& a- Z9 O- W4 P" l- _
代码:
" [1 Q" G0 R6 V# p7 F7 _2 ?5 g/ OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. y0 v) R0 s; q! K: P& `下面插入
$ N- I; N; l" q1 ^2 p# P! ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 r. k) V* ^* n$ S
; {! [7 s" U& k+ ~2 x然后你去. A+ H1 \) Y; O4 h* C) \' B+ I
5 P7 b. j$ j: {$ D2 N- ?代码:% m+ n L) S, j) f* {& [
代码
' y' w9 g- I( ~. {! P( [BOOL TextCmd_ClearPropose( CScanner & s )1 a' f/ U( j9 S5 u4 O, V
{' e* B$ u3 X, S7 O. p
#ifdef __WORLDSERVER5 Z7 M' o2 _2 I( u+ Z: s
CUser* pUser = (CUser*)s.dwValue;( t4 Y" F+ t( @2 s# @! {
g_dpDBClient.SendClearPropose();
' n0 y' h# F$ i0 ~# m#endif // __WORLDSERVER
* j% f( M5 y4 \, W; w return TRUE;* E! [1 h* k, g. n1 W+ L) k3 f
}
) s9 C) r; B. _9 W }下面插入) i" [* G$ x! R! ?0 \- v% o/ q
BOOL TextCmd_rebirth( CScanner& scanner )- `- C5 e1 J& o% P) Q7 w! P2 v
{& ~4 Q. e- I" u7 @/ J: e4 Z
#ifdef __WORLDSERVER4 b# U1 N+ ]. m) ^2 @/ c
CUser *pUser;
& n1 d! b& i4 a" dpUser = (CUser*)scanner.dwValue;
7 h! \: A d' w& e, B1 dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 j" x* a+ u E6 A1 Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- N# |2 k8 u/ ]' W' |else) B( ?- a* Z4 o9 w/ ?
pUser->AddText("你还未达到重生条件!");
+ Q$ G: R: x, V' b8 ^#endif+ ?5 T& l" Y, N( t
return TRUE;" `2 o9 x- d) S" H9 f/ p) D
} 2 {7 U1 G* N9 w0 k, P, r: E
+ ]3 ^" G+ R& G2 \9 W3 s1 Y! |: s* H: C$ P2 K d" Z" F
4 G* |6 G8 v$ X
2 i" x4 L5 j8 C5 H! H |
|