|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, h- ?8 ]+ w) q E) o! f _9 s, o0 @$ h: \0 e3 e0 R& e+ }" r6 w
Mover.h& y( D9 e' W& y1 x, c9 B4 ]
代码:
|0 K( ?# `0 t+ ~( \8 }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 C* K: L3 M4 t6 j. d
% S: a; J ]7 k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) v4 D5 r: }' k) w' f* U: f$ G& b2 ^7 u' r; O% y* m% N8 t3 P
然后你去mover.cpp添加- G; b, J" d# v7 s! h
& \+ j0 \8 D, } n代码:
* ]8 g ]7 @( ^# }1 s5 D/ nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# |3 Z& h! _$ [8 W2 h* d$ n$ ?. j1 ?
{1 F. O' i) e: r4 a
#ifdef __WORLDSERVER
: i1 W8 P5 J/ x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# L) ~. j% A; L. x. o1 { MoverProp* pProp = GetProp();. g5 e# |/ ^: M/ \9 _. S6 f
if( pProp )+ ~) \ a& g9 E. m
{
: b- c7 |, i2 \: f0 [) S, C if( nJob > 0 && nJob < MAX_LEGEND_HERO )% j! A+ S' `" T: k& p8 U% q% h: B
{7 q4 N% H# a0 p7 r5 O( I
AddChangeJob( nJob );
* g+ r" P+ ~' N( P4 F5 c% G }else{
: ?5 c: S& n% i5 G' t" V6 \ return;
/ x+ d' g4 c0 E" T0 ]' c) D }% d/ c. q, H4 |! g+ x
int nPoint = 0;
; M% M* x3 J8 q. l# U if( m_nJob == JOB_MERCENARY )+ o q9 q8 j( J8 a8 `
nPoint += 40;
6 j$ g9 K7 p$ v! i* ]8 P else if( m_nJob == JOB_ACROBAT )
% t4 X& P4 b$ i- F; Q8 R; _+ d nPoint += 50;
; j! |" V' C/ n6 l else if( m_nJob == JOB_ASSIST )
- v4 z3 R$ C7 w& I7 y nPoint += 60;
1 K. Y" G+ z7 J* g1 j$ W0 h else if( m_nJob == JOB_MAGICIAN )
3 r; G' \6 L3 I" _- w, j( s nPoint += 90;
: ^# i% B p( n! {% A# X else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. z* W( Q/ _ Y. H8 o* u nPoint += 120;
8 Y9 C1 B% _% N2 R# }+ Q- H. i' j else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 s, @# H) `# }' E) } nPoint += 150;" Z7 g' v8 L" O2 m! h0 y; M
else if( m_nJob == JOB_RINGMASTER )
0 W6 b5 U% c+ u' L4 T; K nPoint += 160;" h1 x/ W, ^$ A/ p! A5 \8 E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 o: n$ w; r& D- S nPoint += 180;
; o4 A/ }5 F8 I# K* y else if( m_nJob == JOB_ELEMENTOR )
. @, j. Q* D$ @" k5 [' D3 R nPoint += 390;, k8 ~ w$ T" r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 p) X( |' h+ w9 c0 Z( D4 M) O nPoint += 120;
+ _7 N8 [4 w( Q* b) X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- X; n' ]; `9 N' P7 [" O9 {! O! i
nPoint += 150;! w d1 X3 @/ @& V, J
else if( nJob == JOB_FLORIST_HERO )
$ {& Z. v: [% w9 u" r5 m* a3 k( d. ^" V nPoint += 160;
& p9 Y; C) |# S+ @6 z+ h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% q5 a( w. R! C# ~# N6 ^. Z! Y& `; J" k nPoint += 180;
8 f, u0 H2 b2 j$ @ else if( nJob == JOB_ELEMENTORLORD_HERO ). H' x; Q, Q! o
nPoint += 390;
1 }. ^: h1 ^6 a, j, U/ j' x! u% b3 ?0 A! O% W" o4 {
AddSkillPoint( nPoint );
& e$ e: K, B/ q! C. T6 c m_nLevel = nLevel;, A' s/ ^0 G/ V$ ?; l, u7 [/ d, h
' E, D8 b( i# m8 K SetJobLevel( nLevel, nJob );
, y `+ |: a2 V6 k) y/ j2 Q% { m_nDeathLevel = nLevel;
+ `3 c2 ~0 w: g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& u& E' f; e" H: K2 V6 H
if(IsMaster())
9 @, d/ B; D0 N2 `7 t, z" C7 k {
7 u" [" e( u1 P7 u* C$ `( S% N int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 U& c& m8 n. H8 ]
if( nLevel > 59 && nLevel < 72 )
3 \) f2 Z5 T7 U* o1 W, r" ]) a4 B0 a dwTmpSkLevel = 1;
; p8 K* `1 h( y3 | else if( nLevel > 71 && nLevel < 84 )
& ]- M) G1 q7 | dwTmpSkLevel = 2;4 W3 o+ A( b* s/ m, m9 A* o
else if( nLevel > 83 && nLevel < 96 )9 v; E! L# Q+ P) x2 j b
dwTmpSkLevel = 3;$ |- G5 D: t& B0 v* b
else if( nLevel > 95 && nLevel < 108 )
% }4 o/ T$ {% z$ x# E dwTmpSkLevel = 4;- _1 L; ?; D( E5 I7 t, N8 x- T
else if( nLevel > 107 && nLevel < 120 )
. N2 l' A. [' C4 e0 l& Q1 e dwTmpSkLevel = 5;! _& O' H- l3 B/ U' U5 {1 b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 h( s' R2 v* _; T7 O6 G5 X
{ " H8 l& ^6 | ]# n# w
LPSKILL lpSkill = &(m_aJobSkill);+ X9 u* g4 L8 P# p! ~
if( lpSkill && lpSkill->dwSkill != NULL_ID ) \; H1 |' R7 u# E, Y6 C0 {
{$ v# d' H3 F# V, y* S3 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* F- Y1 h& _; h, [. [ if( pSkillProp == NULL )) X* B. g+ o5 `9 e3 m
continue;
) D( @1 v1 t, m, p0 N% [* @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 ^. `+ m& c/ P. F; h, y0 E3 G) W
continue;
' ^; b$ t) P) |* T9 p7 X lpSkill->dwLevel = dwTmpSkLevel;; a: B" J& D1 r5 {9 a! T2 |
}
& [; w. f- h2 t' ?' V }: P1 t# a$ o# L7 z1 l
}8 d$ Q$ D" r5 J1 `$ [0 D
else if(IsHero())6 d2 J" Y2 K( {0 B+ @9 |* g
{
& J3 a" e5 B1 D5 E1 ^, ?. X& J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 B4 k) A7 T% Q% q7 ?
{
) z A& u6 z' H6 }9 x2 t! w LPSKILL lpSkill = &(m_aJobSkill);
/ C& v& d# P' S6 e; i8 G. B* _* n if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z5 l" J' H2 t. ?# j {
8 p P% g; o7 M. W8 |. V; v x Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; \4 {" m% X U, V" P4 u
if( pSkillProp == NULL )6 q% |* a1 i+ B
continue;4 z7 t) J' @' j6 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 y1 Q/ J6 X' h8 W continue;
$ l1 ]8 C" E, _' f8 l2 ?4 U lpSkill->dwLevel = 5;
- b5 Y& w9 U) c* L8 l, O/ E } C, H6 j6 u; P0 S
}$ D+ V* p$ `5 m& I1 o6 r
} Q( X# s5 `2 P
else if(IsLegendHero()): v' [' g- y X8 @. e4 Z w& B6 F
{$ F6 S; a0 k% I9 Z8 n1 H0 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 a$ G3 V2 g$ e+ p1 ~8 t7 w# s4 s {
! P! C1 k) w$ U3 U4 A* ?$ _1 S LPSKILL lpSkill = &(m_aJobSkill);
5 j4 {" q5 X% G if( lpSkill && lpSkill->dwSkill != NULL_ID )6 E/ _0 B! Q. V4 e; [
{2 X: c5 O" ?; ~/ W, B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; Y& Y- G) j) |1 E if( pSkillProp == NULL )4 Q% h/ ^% m3 D3 p7 ~
continue;
% z. x; O$ q% \3 f/ w6 o# J# C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" ?. S+ \# o; g( r& z/ R5 I1 k& C continue;
: `! A# |3 |& k3 n7 F& p lpSkill->dwLevel = 5;
$ d. X. U! U/ d F" P# C# ~ }
& u- J- e# [& b; A, R3 G+ { }/ l _) ]1 N- q K o; _1 q4 S; U
}
: I2 j2 j. |0 }! |% M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ o0 V5 C+ V7 O% x4 E
if( bGamma )
- z9 g( o6 r) z, t# i {
1 }2 g, T+ s/ C' O# ^7 } m_nExp1 = 0;
0 {, ]* f2 n' w% [( ~4 u }' P, b* ?0 E3 q) i
b" i9 _5 P0 J* L1 i& X, y ( (CUser*)this )->AddSetChangeJob( nJob );8 l5 U" D% K$ w% n7 z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 M" p$ i6 K Y. q- U& }0 P9 k8 W0 k% `; M6 ~4 U' ^. r8 Q) _
) S* k1 V W' G8 I3 K+ C#if __VER >= 11 // __SYS_PLAYER_DATA
- E! n2 q+ a) [3 J0 n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* ~- |2 e Y3 q" c#else // __SYS_PLAYER_DATA
1 z- Z; r% H' n( q$ Q) G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 o s7 c" E8 C! y8 X
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 L9 S8 _9 V! e j8 T
if( m_idGuild != 0 )
+ i) Q6 s U1 m2 a9 w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 u0 I4 N) ]. W' N* C2 y( ~3 I
#endif // __SYS_PLAYER_DATA
. e; v0 l6 R) k3 J% ]+ N* { SetHitPoint( GetMaxHitPoint() );* K' i4 k9 p' L9 L" N, a
SetManaPoint( GetMaxManaPoint() );7 [+ I0 T! ^9 [5 n3 ?& h
SetFatiguePoint( GetMaxFatiguePoint() );
& H5 ?7 v" b5 X8 C" ]3 H if( nJob >= 1 && nJob <= 4 )$ h6 N7 _ V# ^& A% ^
{4 l q: Y! [7 g o0 \3 l0 s9 b8 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# R, a2 K2 Y, r$ n; ^: L m_nRemainGP = 28;% S/ s3 o: |( ]5 c
}. X P& Y6 X- D P' i7 I) l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- v$ m5 S2 ~' {; r$ f; C4 r
{
6 [" x4 L/ k5 _ m_nRemainGP = 118;
# D' y3 W( f. S7 T6 [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- I% j5 n1 L! B1 w. q) K9 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- m7 D8 {: b8 Y }% N5 M0 E. h- B
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); X6 F0 X3 K" g6 f3 N! q
{" N/ q& N8 C. M# s; N
CItemElem itemelem; M6 Y; G# F/ I2 K7 v
itemelem.m_nItemNum = 1;' a) f9 C3 W5 T6 a, V
itemelem.m_bCharged = TRUE;
, e* @, b6 a- U( b* z BYTE nID;/ m5 d/ n p. A$ {* b: J
" f! K9 M8 \2 j/ R0 h- s0 ~9 f, d
if( nJob == JOB_MENTALIST_HERO )
) s5 r& L" Y0 f* F! X3 N itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 n( F$ f! J$ A2 ?0 p- ^, c. V
if( nJob == JOB_FORCEMASTER_HERO )
% i9 e0 ~, _; M+ B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 W# B q1 _! C [
) p3 |" G( H3 b- d ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ x1 u5 C% E' g) d, L' ]
}
5 c# D- w# r) V: q; b$ d! H g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 E9 m3 v, G3 f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- B0 m8 ]/ N0 s6 {$ j# ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" m( ^& y( v0 J ^; k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) O1 @0 [4 v" M$ B) }
( (CUser*)this )->AddTaskBar();*/
8 G, J- [, t: l: j5 D" [" j ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ l& c X+ j% q9 B& o! L1 Y% F Y8 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 b0 }* U9 l0 P+ |2 _# n w ((CUser*)this)->CheckHonorStat();: p5 P! |* V! F
((CUser*)this)->AddHonorListAck();) i0 C3 I/ ^( p4 u! u3 }
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; o' L3 I3 }' P M5 U#endif // __HONORABLE_TITLE // ′Tà?
+ r& J. J8 T9 Z N1 b }5 z) B! D- n- p: {$ m$ {( K2 A
#endif // __WORLDSERVER
1 _+ G. W. _. M. a/ ?} ) g& G- U- {) v5 ]! z
* a+ Z/ X1 S' J然后你进入functextcmd.cpp并添加以下0 E5 Y) z. z9 v) }
( d1 z; @5 a+ j$ S4 Q代码:1 }- ~ q( ]1 c' x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 E" y( ?7 X' k) H$ u4 H! m3 Y
下面插入, {' d4 t7 O" F' G8 j. _, q9 M g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 t Z, B* L6 _: J- o
1 P+ J# a- j& X1 U% L0 A然后你去' h% z* w) A* h9 i, k4 n
: s2 n6 w# @* u3 k# Z7 ^
代码:, Z) z# V g0 ?0 Y. B
代码
, G2 m# W2 }/ p% _% j( u& U8 m7 _BOOL TextCmd_ClearPropose( CScanner & s )* K" T& q$ c/ M, ~ B
{# [$ ~+ x8 i/ ~0 N6 g/ u
#ifdef __WORLDSERVER9 m: O/ R' j! Z$ u0 V7 m1 V: D
CUser* pUser = (CUser*)s.dwValue;
8 a! W" Q2 f# a% F1 ^+ y& k4 B g_dpDBClient.SendClearPropose();
& m" _& H6 i1 C7 q* Y#endif // __WORLDSERVER
A5 H# F7 z! I) \' r" o( @ return TRUE; l! I0 W6 [3 I* u
}
9 I( g3 b# g m8 l/ j8 Z" x* f, M下面插入0 H+ A! D# J0 x: S
BOOL TextCmd_rebirth( CScanner& scanner )
* |. ~1 n7 s/ H9 ~{7 J2 e( T3 i% [# q( e
#ifdef __WORLDSERVER
3 h( [2 ~8 O8 N7 }/ W# e4 TCUser *pUser;
9 _& _0 t' B* } y) K: z" hpUser = (CUser*)scanner.dwValue;
+ x( ]6 i9 D. P% Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' c, Q9 {6 `! ?/ j3 L$ j5 V) OpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' h$ H1 R) t, W+ H# d7 velse
# x9 ?( K2 G; ?: U% {pUser->AddText("你还未达到重生条件!");/ R# q' |$ W) c. Z, h- P8 f8 g* Q
#endif
8 g7 B/ ]: K% j2 ]2 D* U$ Creturn TRUE;
( x+ o4 h) O. l} 2 u. }+ E' n( o* ?6 W6 `
$ y$ i x2 e6 |! C) {/ v; G5 P
$ s9 R' E. U6 Q1 h( ~; K9 q! C, T7 `, D. a. U# ?
9 P9 i) k( G( z7 x1 G S |
|