|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; `# g; k ~4 O
& a% H+ y- l5 R2 }0 a
Mover.h
5 w& R' b9 H$ J$ N代码:
: H M7 D# x. S1 W) u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- y2 M# D. y# v7 V, U- z6 k* L/ m
b8 J. T1 S6 g6 y. v# n" `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 o7 h4 _1 D! K6 ?+ Q0 N
; p% X" k, B" M1 |然后你去mover.cpp添加
2 O' k; S' u2 e* m: @) m. I% V7 V# T
代码:
( Z+ F( a+ p6 c: f `0 N5 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, o# {- K8 t; V0 ~& R- e5 t H{8 F) L' A7 i9 \& m; z! a
#ifdef __WORLDSERVER
( q3 [" k& {% J" X2 R0 j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- m, R G) E, C+ l# q, h
MoverProp* pProp = GetProp();0 r- t6 m$ D1 I% ^+ f
if( pProp )5 L+ f: @& b" t$ h( l3 z
{
1 D* M; C0 ^4 ]+ T0 f" s! V# l; W if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ O0 C6 U" G% x- U9 i' S, x
{! @- @7 ^! i$ f! F4 N+ X' X
AddChangeJob( nJob );7 W3 k6 w9 |3 [3 t1 l# Q) v5 z
}else{* J3 e3 r: ?2 D0 n
return;
; B* |; Z; ?, N& E2 z1 r, i }
3 P- I' c9 _+ A H0 e5 R4 \ int nPoint = 0;
, I* } b- h3 ?/ w( U8 r. _/ I if( m_nJob == JOB_MERCENARY ): k5 F2 e5 x8 ]2 a+ d
nPoint += 40;/ p% E, t( |) O& W
else if( m_nJob == JOB_ACROBAT )
$ k3 i$ _) j) H% i/ q4 d! J* t nPoint += 50;
: t4 A6 T5 R: d' s else if( m_nJob == JOB_ASSIST )
' T. J6 F0 g9 | nPoint += 60;
/ h' P4 R( P4 |+ ] x else if( m_nJob == JOB_MAGICIAN )
9 L& m1 |9 G7 x# [0 S- b nPoint += 90;
# A; p ~: w/ t2 N: D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 F9 a4 ^) Q. O# w( M
nPoint += 120;0 B- k0 n7 D0 n- n( a% {( ~7 H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 j! U7 Z8 w; N- v4 I2 m1 A. } nPoint += 150;4 M+ p# J) [, q9 c0 H
else if( m_nJob == JOB_RINGMASTER ). t$ j# M8 A& a0 ~$ C! |3 d5 H+ _8 B
nPoint += 160;+ D4 Y, g& }; M2 I6 t- Z4 J7 R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; n( R- X4 E# m9 z/ w7 f" Y nPoint += 180;9 R8 \5 c- D( j+ K* |
else if( m_nJob == JOB_ELEMENTOR )
$ H( S" O) P' j* y- G nPoint += 390;
: h0 P) a" l Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 V0 W! ?* H; C2 q1 S6 n# a/ b nPoint += 120;9 H" g+ C! B/ b4 n& ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, Y6 F }; `) Y nPoint += 150; w* ^+ f4 J1 z" ?
else if( nJob == JOB_FLORIST_HERO )
3 X c: i# v r9 U! K$ p nPoint += 160;' `& T& Z2 [/ Z2 ?2 J! p0 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) v% P9 c3 r/ v7 t) n# {: u, ^8 H nPoint += 180;7 g) ?% f& r# N! Z9 f
else if( nJob == JOB_ELEMENTORLORD_HERO )# E) ^7 @5 |' X' R
nPoint += 390;1 d- @# K% {: D# C
7 i+ s% ^) j; M5 q
AddSkillPoint( nPoint );
- B9 i3 T6 b& U+ n5 { m_nLevel = nLevel;
8 D R( L! C2 F9 z3 {" p6 a
7 g. S/ o. _0 p: M SetJobLevel( nLevel, nJob );
5 @6 p: J5 b2 P# M/ N, s- [* I m_nDeathLevel = nLevel;% D0 r+ q: R( N5 U6 {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 I6 N9 Y) z4 @: ^9 t. w if(IsMaster())- _# L7 ~0 C! j4 \) U( q7 a
{
+ S. S0 i i( u1 i* Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 b. h+ D6 N. [: @7 V# B
if( nLevel > 59 && nLevel < 72 )/ o' ?% _' J7 x' S3 k7 X: ^2 }& ~
dwTmpSkLevel = 1;* q( M) i4 i4 D a6 P7 ]" b) Y
else if( nLevel > 71 && nLevel < 84 ): y' j% ^0 m" G; p
dwTmpSkLevel = 2;) U+ J' T2 K' C# A$ L; J
else if( nLevel > 83 && nLevel < 96 )
' }0 i" J7 J( t" f dwTmpSkLevel = 3; ]- i8 c6 k' P3 p- q
else if( nLevel > 95 && nLevel < 108 ) U9 j# _3 A) m* D' k! d" B
dwTmpSkLevel = 4;
9 o$ s+ m* R& t2 e* f6 _ else if( nLevel > 107 && nLevel < 120 )2 ^) s5 s* ~8 K' L, d$ T7 G* v' j7 M
dwTmpSkLevel = 5;
7 Z `* M7 c* d- N for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! _7 j# t. L# w3 X
{
, C& j6 k# N5 k LPSKILL lpSkill = &(m_aJobSkill);3 p; ~ F; }8 f1 c& d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ S1 |9 O( q% k4 `4 _ {
* I- ]2 {4 M- o! i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 A" r% n- J- F: N @& X5 i6 j( F
if( pSkillProp == NULL )/ N4 w3 l5 A2 x. f4 g0 c# j
continue;/ d1 r$ C! J; b2 c% P; E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 L+ ~- ^. n1 z9 O9 q S) b continue;) X- j- Y8 q/ G2 s
lpSkill->dwLevel = dwTmpSkLevel;( s% `( Y e6 x9 i$ y+ B
}( p2 n A# V: Z9 Y3 X5 f
}
: y ?" B% m) b9 d6 r; x/ x }
, ~! g7 P) Z5 q6 A else if(IsHero())
; J1 j4 d( u' ^ {
. @) R6 [1 b* E for( int i = 0; i < MAX_SKILL_JOB; i++ )
, l) @& U6 {/ N9 U- W; c$ I d {
4 {3 Q- U8 F! m3 v- L- o; t4 m: i LPSKILL lpSkill = &(m_aJobSkill);
: J7 L7 {8 Z& ?6 d" Q/ Y6 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 `" Z7 j0 S% Z7 [' @9 \# I {9 v% f3 o, \" e f2 v- q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 A: D& x( B$ [& [7 M if( pSkillProp == NULL )
6 L# u4 q! _# b+ K continue;
" b* ?6 V3 l( ], x- b2 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 A% ]1 B* [8 U# i/ R, {* e continue;: f" o: p3 S9 ~- |/ j, ?% D( j
lpSkill->dwLevel = 5;
* ?( ~6 `! i( L7 T P Z3 T4 {% a0 t }: ]3 d, G! n% q
}+ m. x( \0 G7 W$ ?9 E; m
}- {9 G0 B( S' T) W8 g9 A `
else if(IsLegendHero())
% H. j1 X# `$ ]/ o# a4 F& | {
- w; e. A8 F) z* n3 J/ ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; b) g1 E7 R9 z2 a0 `
{
2 k4 e* a# M1 e6 b& Q LPSKILL lpSkill = &(m_aJobSkill);+ R2 M$ K& W/ m3 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( U" {" W( r0 f6 ~ {+ u0 z/ s8 Z' X" }7 ?' h+ e, f5 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! t& Q- g+ y. e" M0 X
if( pSkillProp == NULL )) b' w, a3 p% ?3 C1 e
continue;
/ F3 {( }, {+ |( y3 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ Y/ u1 o: O8 x( N& L+ F. Z
continue;+ A3 a8 k: |8 u$ E1 @+ B) X. }4 m
lpSkill->dwLevel = 5;7 N) K M# ]% a0 L. d3 q0 H) W+ ?
}+ L; I+ Q5 d6 t
}
1 U0 E$ X1 m1 |( x( x* k P1 Z }
' w- P1 Z2 n/ N6 Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 x) O2 b( G( [ if( bGamma )
" |) B+ o! r7 G9 o+ m. \ {
* `8 \! z& l1 ]" T m_nExp1 = 0;
6 L) a; I( x3 H% k' O* B. n( u }
* z8 {; O; ~9 n
- C3 F# J5 U$ s% h! Y! J8 O5 r ( (CUser*)this )->AddSetChangeJob( nJob );+ A$ u& v$ X, Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 O# R' i8 B" |3 }9 L) ~
' p |- S$ Y* q" }" b+ K; M
9 m; {+ J# N' ?2 H$ B4 m#if __VER >= 11 // __SYS_PLAYER_DATA
* V% t8 N$ Q/ U" r4 m0 R g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 J" P. R6 f4 \) l- n#else // __SYS_PLAYER_DATA- w# ^' X7 l3 \, V
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 C7 S' ]. p; L$ ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! {+ H, ?& Z7 l2 W
if( m_idGuild != 0 )
4 X% M( W5 J( q4 g( e0 v g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); t! A$ I8 _! Y$ ^5 K0 F6 J* Y; n
#endif // __SYS_PLAYER_DATA
# C6 p# ^8 m; I, e2 n ~* a SetHitPoint( GetMaxHitPoint() );, m: r; ~0 |9 e6 F' R* V0 |
SetManaPoint( GetMaxManaPoint() );
- [; A+ u7 ^) m2 ?# W | SetFatiguePoint( GetMaxFatiguePoint() );/ I$ A* x# M# Y
if( nJob >= 1 && nJob <= 4 )
- H$ A4 |" Y' Y8 R4 l {
; t% t$ Q, e) {1 C# o: A$ |: c m_nStr = m_nSta = m_nDex = m_nInt = 15;9 K; x, j! A/ B( O. |
m_nRemainGP = 28;
' a5 U; j- o: Q" w! M }
( ]6 t- ^$ e* t. f/ P0 G9 {! @ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 p! x! B& H9 V8 b {
5 N* V1 I/ t# z+ ^ m_nRemainGP = 118;! b2 q( k# r1 E0 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: k7 X+ P7 \& A5 o0 k m_nStr = m_nSta = m_nDex = m_nInt = 15;1 z) y8 b, C1 _' P/ `% P& T# d2 ]
}6 G6 d8 h2 \: R: Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 r% b( d' h9 `/ V
{
- O" i+ S* F$ ~) T) {- x CItemElem itemelem;
. @% z! n" B4 S9 ^) A3 | itemelem.m_nItemNum = 1;
& \$ Y; F4 w1 D; u" ] itemelem.m_bCharged = TRUE;
7 n2 x q1 ?6 i" s4 {# H( m" [/ Q. T: o6 m BYTE nID;
7 i- E1 v* x" R- C5 B# K! \) j+ @1 `, Y" e7 A' @+ D
if( nJob == JOB_MENTALIST_HERO )& y' O/ [; v W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 M) j) Y$ j+ ~
if( nJob == JOB_FORCEMASTER_HERO )
( |1 a8 A% j( Y* o3 `. U7 p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 T7 R# x7 e6 C) D P" S% {) P, I9 G& I
( ( CUser*)this)->CreateItem( &itemelem, &nID );' j& C) n9 l6 V2 `- y
}3 t5 u- W! r$ ]' v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. n+ W5 e1 Q& i% p, @' \ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 q& ^+ B1 {8 L; p3 b
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 ?) Y% a4 r0 @+ o, j5 p* J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 n! Q) J# h' ]$ H5 L8 y
( (CUser*)this )->AddTaskBar();*/
+ }/ ^+ f8 O6 r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ H6 }8 `) f/ Z: E% C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& x/ t5 j5 k! B. n3 L, H
((CUser*)this)->CheckHonorStat();
1 J; c9 a3 {; a, U! Y- p ((CUser*)this)->AddHonorListAck();
/ T7 X& u6 }, h! A5 Q* j m* Q g_UserMng.AddHonorTitleChange( this, m_nHonor);
: J, Z2 q( f" w$ Y#endif // __HONORABLE_TITLE // ′Tà?" F) O K V. U5 q. J
}5 m1 d9 y( O$ r
#endif // __WORLDSERVER
5 z. P& k5 D9 X; Z4 t v" S4 E+ L} 0 a# ]) f2 o5 M1 x
. h. m2 B5 J; E% J
然后你进入functextcmd.cpp并添加以下9 I7 _0 w2 l; h( C6 G* ^
0 v; e" b( \' q) B. ^7 z# |+ |代码:8 j5 [% a! y5 }/ Y. H2 c7 `. ^. U! V/ u3 q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ N+ c# A) a7 e4 A
下面插入4 F" I- Q1 _3 _2 g* t, b% i8 x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : |6 @% Q$ w! u( Z' p5 v
4 S4 F/ r0 ^ E+ s, w _然后你去8 @3 I( H8 ?2 G. Q
8 i! w# J( O4 N! Q \5 }代码:& q: V" }" H# P* |
代码
; Q7 i" _8 A" l* C3 DBOOL TextCmd_ClearPropose( CScanner & s )
% V# M* N' S% {7 N* v% e{' H- ]# R2 [6 Z; j$ W- H5 b$ K7 t
#ifdef __WORLDSERVER
5 c) E0 o9 q8 _2 h+ b CUser* pUser = (CUser*)s.dwValue;( b! Z# Q3 V+ l7 H1 e4 M
g_dpDBClient.SendClearPropose();0 C4 F# F- N3 ^
#endif // __WORLDSERVER
4 E" s# q# }1 I9 [+ E4 U7 ?/ Q return TRUE;
# O: n& E3 y' m1 F} D2 |) I5 n2 |" F4 z& [$ t
下面插入7 }1 ?) }! E: _
BOOL TextCmd_rebirth( CScanner& scanner )0 r# E/ \1 r- c E
{3 M% `, Z+ E7 G0 I
#ifdef __WORLDSERVER
S$ a* |4 G& ` oCUser *pUser; L. V" ? |- l4 S! g' C
pUser = (CUser*)scanner.dwValue;
6 y8 N- U) j( Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 e; @, ^& u/ v6 e5 @ ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' O$ `4 k4 N2 ~- C1 k. i1 u" O- ~
else8 g; z) ^) L/ F4 F* ]; p9 z9 Y+ _5 S
pUser->AddText("你还未达到重生条件!");) N% g- ]' [6 P9 T$ T7 p/ N) `
#endif
z; l3 B# s- u, k+ a% Q, w! w/ xreturn TRUE;( g: p) n( p2 \9 o4 H$ E, @4 r: |
}
, F" h5 H5 [ b! R" k% `
9 U+ V1 c, C8 `0 q; y& a: l
6 S6 e, \, ^4 e. D: n$ N* O, S
. A) b, p- t$ X; _0 u
* s8 l' E$ Z+ b8 ~4 Y! e |
|