|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 ]! `- L9 d4 Q( z3 A0 U2 e" ]4 r+ g! R: x( U4 V8 E. S: s
Mover.h( H( w, |" K" k' ~; p- B
代码:
# p$ `. c; A9 ? u" m8 J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
|/ d3 [$ ?" A! Y5 S+ N- M* h6 ~. d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) j u& l) \* r8 e; V
7 I Z3 P7 f( r1 ?7 v然后你去mover.cpp添加
1 ^. G; R _" _% T0 l% a6 v
+ |+ k( @, E, B代码:/ v: F3 x! g% Q/ v0 v6 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: o* {. f: ~6 v" g% |/ x{
6 _% A' X7 a8 e" l#ifdef __WORLDSERVER
9 u' B! Y" ^5 H7 h1 y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ X8 H4 l& e( W( f! t9 T
MoverProp* pProp = GetProp();. t+ v7 y( o L, ]) q
if( pProp )
- ]3 E4 @( V/ F/ G( U, S# d' n" n: U6 y {, Q1 c6 | m9 }1 k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 \% Y! C7 t) }) e9 Z9 f8 d {
4 C1 c; ^' S% i4 P AddChangeJob( nJob );
& G) n/ O& i, i/ z }else{+ e& N& f3 b2 D9 a0 z. O* L
return;
/ U* P% I& k! F8 ], o9 g" x% w }6 s9 M! o$ x6 {5 E7 `+ \
int nPoint = 0;
: I; n# V2 d7 T- Y- e if( m_nJob == JOB_MERCENARY )" f9 g. r, T( S5 C; z, H0 z0 c
nPoint += 40;. z# H6 M+ D! n, H$ }' N, J [1 W
else if( m_nJob == JOB_ACROBAT )
$ M9 V! Q$ c- z# ?& q ?, B nPoint += 50;- T" m' g9 G! ?! V+ t) h
else if( m_nJob == JOB_ASSIST )
: w7 _" R8 V+ P. K; W, b nPoint += 60;4 }' \; U- B1 j
else if( m_nJob == JOB_MAGICIAN )
+ t1 i* G6 o0 o- ^9 I8 j; z7 ?) n nPoint += 90;+ n2 W" B, C2 d, j1 x" T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) Q$ W( ~* j. X3 H/ t! e' g' a
nPoint += 120;! y. L2 x$ A* u8 Y3 N2 n V
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ h$ L6 `5 ~. r$ X nPoint += 150;
, P, H# a' S3 }, F else if( m_nJob == JOB_RINGMASTER )
& g! |+ d- b% r$ p nPoint += 160;
8 Z' a% w& L3 H* C/ }- a9 f* _$ E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 _4 |$ N$ q V5 c Z: L0 p, X; l
nPoint += 180;
9 Q0 Z4 z8 H( |+ h" q else if( m_nJob == JOB_ELEMENTOR )
$ Z3 M( u- A2 ~' s3 l nPoint += 390;. U' S6 O. _6 L& V$ d- T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 I/ W: N' @" t+ R9 V/ y nPoint += 120;; v! x& _5 {. c; I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( Y( l- u+ @' w" h% O7 u3 n. T9 z$ F nPoint += 150;
- @" ], p7 c* R8 Y; V! [8 g4 r* {" c else if( nJob == JOB_FLORIST_HERO )
3 f/ _+ M1 a1 E$ F. J n nPoint += 160;
$ w2 {) Q q$ W# v' Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ ?( e8 [ ]9 {: p
nPoint += 180;- B k5 V* \, ^
else if( nJob == JOB_ELEMENTORLORD_HERO )
" m: p7 O$ {: r7 U# X! v' O nPoint += 390;5 P7 m4 r7 z: Z6 Z* E5 u8 C" s6 Q
: b& O3 c0 e5 }; g" ~/ v
AddSkillPoint( nPoint );0 v9 @: B% @' `! Y
m_nLevel = nLevel;1 |4 k+ p+ _4 J
& ?( x) m: ~8 \ SetJobLevel( nLevel, nJob );, B; R v1 A$ x" I' h j/ p' g
m_nDeathLevel = nLevel;0 z8 t+ i; N3 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 Z' x/ T7 o: V# L# b/ v if(IsMaster())- W) U2 D L. R3 |) p, H
{# N, t( U. y1 ]! @: p, s- p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
_' w& N# p( U& W if( nLevel > 59 && nLevel < 72 )
. I+ m" u5 e+ @3 C5 K- I9 _# R- m dwTmpSkLevel = 1;
: G; @" f& o, _# G else if( nLevel > 71 && nLevel < 84 )- U, c" {4 Y5 E! n/ z+ J" y
dwTmpSkLevel = 2;# Q& m% z* }" {" K8 I6 Y9 X
else if( nLevel > 83 && nLevel < 96 )
1 h$ V: q, k# N dwTmpSkLevel = 3;6 f. _9 r- f) w3 h; r4 a3 F
else if( nLevel > 95 && nLevel < 108 ) |2 }' ]* N/ G2 r. g: ~: v+ v
dwTmpSkLevel = 4;
+ ]4 W8 G; c7 f" |1 X7 O* H* C/ I else if( nLevel > 107 && nLevel < 120 ). Y, F5 j6 t }6 C8 @
dwTmpSkLevel = 5;9 n1 n7 K0 r, U( q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 u8 h- P! ]5 B1 V { ) C( o5 a6 d+ ?
LPSKILL lpSkill = &(m_aJobSkill);
5 L$ \% ^$ {7 W/ X$ _9 n if( lpSkill && lpSkill->dwSkill != NULL_ID )3 Y% N- m) b4 P( j2 R
{3 X/ k% f% f' E; c5 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; @) d4 g2 E- J& S1 m0 L
if( pSkillProp == NULL )) } v2 {9 J8 x: G G! I% k& n
continue;
: v' q; d" k3 t& z$ c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ _0 m& t- h- i! ?% X/ h% W2 W0 U l continue;
1 u7 r8 q! L* N! B' q lpSkill->dwLevel = dwTmpSkLevel;8 R/ x3 x) |0 V, M; d: n
}
# f' i" T- i1 V7 j3 A8 E+ h+ g, a }2 Q X% P$ R0 t% H! q: }2 y `
}
; }, u7 [) t* _2 [: [7 B else if(IsHero())* N$ M) f) S% @ Z/ v% \: B0 P
{
! a- f2 K; P5 u V( R3 r( Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' ?5 m' j4 X7 S) e' m9 g( Z$ e
{
. K+ S8 K; ^3 }- r LPSKILL lpSkill = &(m_aJobSkill);
# N! t6 M" g; T; I; l if( lpSkill && lpSkill->dwSkill != NULL_ID )) J2 j P# N2 h6 N2 f
{7 h) | Q8 m) {9 j$ s7 S9 W1 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 N r4 `6 @' T _ n: [
if( pSkillProp == NULL ). W( _7 K3 ?/ _8 B
continue;" [( _/ ~% s4 s- U( L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& a# l& q5 k9 o4 _; M continue;! d G/ c: z N; |
lpSkill->dwLevel = 5;# X" \" c$ D9 U& y I% |* ?" d( i" B
}6 `$ @" p, _+ x) g: H L5 M/ Q. e1 a
}7 A3 V& p7 W G w$ d- v' J& c
}
' R5 U% Z( `! h7 ?2 O else if(IsLegendHero())
: u9 ]5 b, U8 U* E {
) ^( Q3 ^ D! G0 | for( int i = 0; i < MAX_SKILL_JOB; i++ )
) L& q: c: I, E# ?# l/ H2 N { 7 q7 k5 S( [5 y( D# T' r% w* |
LPSKILL lpSkill = &(m_aJobSkill);
! D3 d4 {/ ^' m8 `5 F5 Q5 R4 T if( lpSkill && lpSkill->dwSkill != NULL_ID ) `; }- x" l5 o5 o i
{
8 M/ b+ H0 W# y/ e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); A1 @! k5 f! n6 W
if( pSkillProp == NULL )
$ E# ^# ?6 E' y+ k6 P) u continue;
! p0 l+ ]* B) W: R5 Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 L! V( l& d2 l3 y
continue;: s( l: i2 x0 E# b8 k
lpSkill->dwLevel = 5;
2 R. O' `4 c/ q }! | W( e0 d* q* a' E" I
}
2 k% V# @: I: k. G& i; O" B }
( C5 W0 u! E% |% n1 S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
\7 J# U# y- ?( M2 c/ { if( bGamma )- {# G4 B/ O5 r. \. S
{: H* N6 U! S/ A% i0 s
m_nExp1 = 0;5 G4 c1 i+ d) E& P" L: w
}6 b4 r: Y7 c- S6 C6 l+ ^, D3 S
% x7 _3 Y9 |( t! r! \ ( (CUser*)this )->AddSetChangeJob( nJob );
7 j/ N+ y- y& z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- l) T- v+ d; C
/ t6 T0 F; v. d) ]7 M, O. ?5 g
6 H3 C6 Y$ O; r& u4 U
#if __VER >= 11 // __SYS_PLAYER_DATA
6 W( C; Z9 ]5 h, ~- [% ^! M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 F0 F. J! D% U; k- q8 P$ V
#else // __SYS_PLAYER_DATA
9 Q8 g- u5 V2 S/ g+ k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 \9 B9 N6 T6 r/ W2 E g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 {4 y9 x8 R% A( | if( m_idGuild != 0 )2 h0 t& `8 {5 v! k* L1 i6 o9 C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 B z; v" M1 L/ ^, I! {#endif // __SYS_PLAYER_DATA
' Z" ^9 N1 `" m2 I SetHitPoint( GetMaxHitPoint() );
& f5 g4 C+ ^# z2 A: f SetManaPoint( GetMaxManaPoint() );
5 N$ }& \5 ~) f0 S6 G7 W9 U: b SetFatiguePoint( GetMaxFatiguePoint() );1 X7 M+ t% F; O
if( nJob >= 1 && nJob <= 4 )
3 o' Z4 w2 u0 l; W {
! ?. t# M! A* [. ^5 k1 A/ Y; c; j m_nStr = m_nSta = m_nDex = m_nInt = 15;" h& g) u: N8 e4 E' `- R- H
m_nRemainGP = 28;0 W/ e" e1 L3 z: d$ P9 J
}
8 ]3 B R% v3 K; M, h- T) O, ? if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( T- @8 y8 A' K1 ]9 t9 @ {
+ N; n8 x5 \( ?* G- l m_nRemainGP = 118;7 e9 z* w" s1 T# D- o* O/ g" U# _) S" c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 `) @, h( L5 a" k4 P/ n& Q# P6 \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ I/ D/ k- M- ]9 w( e0 h7 w' Y$ O& E }
: x2 S3 n6 k( q% f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" g/ A# M, P) G4 ~2 {$ s) A! v0 K5 s
{
# e+ ^: u$ k: K' o& j CItemElem itemelem;0 H0 O2 x# a$ i; \+ i1 |/ y# \, ]
itemelem.m_nItemNum = 1;
' M7 o2 H: N, t7 i; g itemelem.m_bCharged = TRUE;1 { @) D/ s; d n& q
BYTE nID;0 a# D& q N6 s
& ~$ |. @3 s: G
if( nJob == JOB_MENTALIST_HERO )
- X/ I: j' o# @% k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 w8 O% [0 [- ~8 n if( nJob == JOB_FORCEMASTER_HERO )
* @) h/ D3 @! n, F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; `4 o3 d& V& j5 e* l! d3 y0 p1 w
6 D; N2 [( V& S1 Z, h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
R% s: A6 t" f) l" M }
5 p" v% K, J/ w/ n( Y& K" Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% ]2 m% w- ~( ]$ C& i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 K) ~( Q2 l8 L7 `8 U, F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 ?% T, @9 X4 ^0 Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' g u* U d4 I9 l8 B' Z6 Q% E
( (CUser*)this )->AddTaskBar();*/' y; R# V F: v Y7 D0 c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& |* L/ m4 J& E5 T! U$ K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' w, [' s+ Q9 Z, n
((CUser*)this)->CheckHonorStat();4 H1 Y( {- U& x7 v' b
((CUser*)this)->AddHonorListAck();( q+ p7 H/ V/ E" ^* o+ _9 l: i% ?, T
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 p. R) l6 w v: R! ~
#endif // __HONORABLE_TITLE // ′Tà?
( O: {# C8 i$ N/ h" l' w4 F) s }
2 {' L: S7 D, A: N; Y5 ~#endif // __WORLDSERVER2 F9 ^; u3 u3 p8 t+ y- n2 D6 k
} 6 B0 V1 J; T( l2 d. X
, [" Y( ?# H' t
然后你进入functextcmd.cpp并添加以下 ]9 h# Y2 P+ A+ G" \# n t$ D
/ T+ y3 E" j! B$ e! y |
代码:3 a0 o% V3 V j+ j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" [2 J' u6 x2 i. ^3 z9 H8 p下面插入
& g) ], k, S' Q3 FON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # u+ [. L& X, {; x$ K
2 r# w: c0 ?$ R7 b
然后你去3 h' f# z* h0 N* V* G# I
( z& q: z- y W2 Q1 I; S1 c# V
代码:
G0 E* O |2 \ \7 q代码
5 C- q/ V9 N# t3 h, r5 }- v5 vBOOL TextCmd_ClearPropose( CScanner & s )
, G2 S- K% w u9 V& \' I{# Y! W5 m- I/ V0 r; E
#ifdef __WORLDSERVER
, F/ C: A3 [6 W: e5 G CUser* pUser = (CUser*)s.dwValue;/ I" G( ^* g1 o6 d0 H5 K$ m2 i
g_dpDBClient.SendClearPropose();
# @( L/ _9 S2 E8 R4 I; L#endif // __WORLDSERVER& [+ r, i# K& s F" n
return TRUE;
0 i' z$ s( M2 U; {. K}; V3 d* U2 e+ ~+ p1 T1 ]! P
下面插入+ `$ z% A* d+ f7 {
BOOL TextCmd_rebirth( CScanner& scanner )
4 b, i+ D# q4 K{# h# |4 [ [2 J
#ifdef __WORLDSERVER
, n# ?" i4 [+ OCUser *pUser;8 \7 O. P, ~# a' N; l1 L
pUser = (CUser*)scanner.dwValue;6 n5 m0 Y! K. c7 j" h* x9 J2 x+ H+ ^2 g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 @+ q( Y! g* l/ ^0 B& d! ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
F1 i( J. ]3 H1 Q: D$ i6 uelse" x' J2 {7 Z" j" n
pUser->AddText("你还未达到重生条件!");) C- N! m5 k- T) w6 U3 ` z% `8 y& l
#endif
6 E* A5 v) x6 A! Y C: {- g6 Ireturn TRUE;
' i8 a7 S' [8 d}
" z$ C" N* y9 ?, G$ {' s- g* ]8 A4 T& v
0 T5 H5 j5 n0 r" k+ C0 L
1 ?% b4 B) }- B$ t$ Y& W4 @- E" y0 v5 O y' h. w
|
|