|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! s# A3 @9 I) j. E3 W( g) h9 [8 y- ^, p' j S& T/ s& @. \8 X" r" T2 r9 z
Mover.h m8 j) _; C7 ^9 J' w* l5 |0 [
代码:% p4 ` i( X2 w( {/ S7 Y. k' X0 p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ H& y1 }& M; }$ [0 v/ O/ j
* D0 ?, i1 w o0 k+ g4 |" ^$ n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : h9 l5 `% O0 i5 H. l$ C0 L- c
. M5 E7 l& i6 ~3 E然后你去mover.cpp添加* o$ `% \) s. O3 H7 i
/ X, ^# \0 j! Q/ T' r7 T. [代码:) S7 d3 o$ {- u5 W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 ~2 w2 N8 H+ U# Z# ^, b{0 g, Z% m) v! R2 a4 l5 V9 R
#ifdef __WORLDSERVER
8 F+ {/ m% ]7 l4 {; A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* k) s4 J1 X, S+ `
MoverProp* pProp = GetProp();
8 |: ~' |8 t# N, f* Y$ Y if( pProp )
) |- g7 J% |, z, k/ I* ]# `. N {4 P# j! c& f/ Z( _% }- n- q# F
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): w3 K6 n$ R, P6 n" B) @2 c& X
{
$ ^7 ]1 j* D4 c AddChangeJob( nJob );
7 W& m9 B& B( y! y& r8 y }else{7 L% M" U; Z+ M: c* c
return;
7 u# @8 w; ?$ I9 c }
, g- Q) V4 W1 Q: H9 ~% Y int nPoint = 0;
# I( O J% q/ ?, J$ q if( m_nJob == JOB_MERCENARY ) ^7 M. z% E) z; w
nPoint += 40;1 s! J) @! l) l
else if( m_nJob == JOB_ACROBAT )
: @; D2 A; m A2 x. @" ]' n nPoint += 50;
: t: k; b0 Y9 h, ~ else if( m_nJob == JOB_ASSIST )
2 g) p. |4 |9 ^& e nPoint += 60;
. n& d& w! i9 K# S3 F- I0 Z else if( m_nJob == JOB_MAGICIAN )
0 {% X9 N5 G# X9 |7 r5 y nPoint += 90;5 o( y* j# L9 k. {& ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* W# o' m6 t- O' y' s nPoint += 120;
0 L" v! \4 F1 w5 i else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 w" r8 u M& i u7 A( ?1 O5 X
nPoint += 150;2 u6 i* W5 U& d, z2 {! Y3 I+ V
else if( m_nJob == JOB_RINGMASTER ): u5 r! H# O k. c6 |
nPoint += 160;8 d/ o% L- [0 J7 a+ r/ W$ w% b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 h& z; F& Z' |6 R
nPoint += 180;
2 j* Q) }+ n1 S7 [9 g else if( m_nJob == JOB_ELEMENTOR )
( q0 M1 e' i0 a# ]/ W9 Y5 d4 X+ l nPoint += 390;
; C/ x) c" F1 n9 W* j! u' e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ `$ ~7 i! R: l8 }2 ]! I nPoint += 120;
. O. p, T) i0 L2 ]6 E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: {6 O5 C" T2 d4 }- f4 H nPoint += 150;
W; \" I; n# C! Y4 b8 X else if( nJob == JOB_FLORIST_HERO ); Q: d! F, d- h
nPoint += 160; A% h- |' X9 X3 p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 J# g3 g/ Z2 Y: W9 Q
nPoint += 180;
$ i2 ?( m! E# r else if( nJob == JOB_ELEMENTORLORD_HERO )
0 Z% y4 P2 i1 o% h. I2 S! T nPoint += 390;+ M( D0 w1 A0 X2 ]/ h. q7 |
% a H! k ]0 l1 O* t7 A
AddSkillPoint( nPoint );
" r; W( m6 L7 v$ a1 w" h1 K m_nLevel = nLevel;
( L" R& S5 B7 p* S d! E
' c3 _# s+ X) v3 c2 m& ] SetJobLevel( nLevel, nJob );& ^8 |/ Z! i/ J
m_nDeathLevel = nLevel;
) D* N8 q% h, _#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 Q" L. x0 @! n" v* n" T+ ^/ e2 v# N if(IsMaster())
) K$ e* A# Z& q/ \1 K {& O" C+ ~) l7 T( W& X$ a: j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* L9 U9 ~" C. z* H) j0 ~
if( nLevel > 59 && nLevel < 72 )
* o; l* _; _- J! u' t dwTmpSkLevel = 1;) H4 ?% v& l) `; x. P- U
else if( nLevel > 71 && nLevel < 84 )
6 s( x/ y: H, T, z dwTmpSkLevel = 2;
0 a2 W, U2 f2 _; c9 W0 V else if( nLevel > 83 && nLevel < 96 )
3 W( [# X& h3 Q8 K: G6 J3 f dwTmpSkLevel = 3;) K5 I4 ]' u6 ?) H' v
else if( nLevel > 95 && nLevel < 108 )
3 K8 Q7 `: b3 P" ~ dwTmpSkLevel = 4;
; g, h2 ], e4 U3 R$ w, T else if( nLevel > 107 && nLevel < 120 )
- V1 f6 s; ]: ^' v dwTmpSkLevel = 5;
3 S5 ]3 ]8 d7 G. m+ ]- H for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Y! b; @* @! n& o" D: I4 k O; q { 9 D; t0 b$ \# N# z- r
LPSKILL lpSkill = &(m_aJobSkill);
Z% y1 F5 y$ E% I! x if( lpSkill && lpSkill->dwSkill != NULL_ID )
% Y$ P; x u4 ^0 h, n {2 a& B) n9 s1 I; b/ W" ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. w; J; g P3 r) G( ~ if( pSkillProp == NULL )! O. q' C. A" e+ g% k$ A1 `$ R
continue;3 F1 a8 E) h0 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- C" f1 q& D) x `" N% _
continue; R/ @* X2 V0 N4 h& U$ U7 w
lpSkill->dwLevel = dwTmpSkLevel;' k) P8 \* u3 z s ~
}
0 s; o7 [3 q w# s }5 l" A+ n% m4 C$ e4 \
}
* S& ?! O [# A# G- B2 Q) a5 r else if(IsHero())" C/ O3 j Z- a
{
+ \6 n4 I- z: q( _) U for( int i = 0; i < MAX_SKILL_JOB; i++ )
! _, |1 u: E$ p# j { 5 Y% u$ K0 O1 N; C* U( {7 j9 q
LPSKILL lpSkill = &(m_aJobSkill);( a: f6 N1 C. L0 C, d( q
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 C3 O( ?% A% {3 v6 ^
{
; ^4 U5 X9 @4 \$ _$ `% W- @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 o7 k, q' e; n+ {6 j9 [ if( pSkillProp == NULL )
: x# S+ x4 I. H# I+ W6 G: q. f- ] continue;# |* c9 }" t' c; _/ q. g! z4 ~( }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 i! q, z' ?" N+ n! d
continue;
( S4 F& k9 ], @8 Y U4 k. A lpSkill->dwLevel = 5;
' |$ l5 y3 [4 z& U3 G" o6 a }& R! v8 G; a, D: I( w
} P" Y. V D, W1 \/ B, _9 G! w# {
}1 ~4 t- g% E+ A
else if(IsLegendHero())
! q8 z* B6 V9 H8 F {+ |- \9 v: o( b( u# V& W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( q! m3 {3 L0 L! ~& C" d ~ {
, x# o- {# u. ^! ] LPSKILL lpSkill = &(m_aJobSkill);
' Y5 J9 e4 o- I, \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
V& y+ {$ T0 x$ H {- _: S% z, L3 t9 a" x$ H0 B, u# ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 K8 w( a5 k6 H4 f' } if( pSkillProp == NULL )
$ r% s0 u4 u5 L, i+ I8 W- R continue;
9 ]+ Q# C: O- k2 E1 M5 j8 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ m# M* K0 g/ u( T% u
continue;/ |" X% C' V+ D/ E; i
lpSkill->dwLevel = 5;/ }0 t7 _ P1 f; @: n
}+ ]* L. O. d$ k# v
}
$ j$ D$ k! h" T0 \+ x9 D" x }
# Z3 J+ q. f% q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) M! Y S" Y2 H8 K' [9 H if( bGamma )
+ ^$ w; K' @6 _$ n; Y {8 r# \6 ^( D' A7 a
m_nExp1 = 0;
4 s x8 H! m; |# S5 S } e: U3 W' [) W$ Q2 W) x
+ _/ e1 r2 h, i7 s8 @4 h7 y0 x ( (CUser*)this )->AddSetChangeJob( nJob );
# I! z! |; R% \) k# U7 e! v g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
^. m) U0 G& s- ^0 q. `- G/ D
/ B5 U% f0 R7 b/ v5 r1 `' l5 @
4 B# x6 h2 Y9 R% N. \8 u0 N1 B N#if __VER >= 11 // __SYS_PLAYER_DATA4 P- P+ J% a# z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
J7 k7 J, v# B5 Z8 }4 k#else // __SYS_PLAYER_DATA
X; j( B4 S/ _& R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
i5 C) z K6 ~- |8 w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( J' x ^; o; }* G7 a/ `, { if( m_idGuild != 0 )
, P1 h% x0 ~& P- H: Y1 n7 R7 U6 f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 O: s' M9 X2 K" {" u; T2 r
#endif // __SYS_PLAYER_DATA
w* Y& b/ ?8 k! a! I3 g SetHitPoint( GetMaxHitPoint() );
2 U& q# j( a7 l* B& y# [ | SetManaPoint( GetMaxManaPoint() );
' s2 F( X' B. Q8 p5 ]# y t" u SetFatiguePoint( GetMaxFatiguePoint() );
- [% N9 }. E# Y! e) w r# e% H if( nJob >= 1 && nJob <= 4 )& v; f9 D- H+ ~& s* y8 u
{( J' `- _+ p' W4 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 O" j$ D+ q. _$ e8 G( Q# y
m_nRemainGP = 28;
) B% T, N5 D" O6 x }2 |. P [1 M$ o/ |( Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ F) ~& o: w. V P' ^, m
{. w$ g/ } |% {
m_nRemainGP = 118;) Y+ l" `( ~7 K' S( L' h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: \* {9 N- l! \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. W7 S0 U$ C6 G0 X+ {- C }3 \% @$ K" E0 q$ i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" A! S) y: q* ^ p6 H% P2 l {
0 w$ m# _. }4 H2 Q$ [! l" m* G CItemElem itemelem;5 \, h" t# _9 T. R; S, d
itemelem.m_nItemNum = 1;( {/ Q( C( i9 A- `
itemelem.m_bCharged = TRUE;
( L0 g8 a1 z9 u( H BYTE nID;. l4 [( T+ s4 I
: |: y b$ q( `5 k# U8 k if( nJob == JOB_MENTALIST_HERO ): A2 d& P/ \$ U% p* G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& p# c4 |7 f% U% F; H# e9 u% u& u if( nJob == JOB_FORCEMASTER_HERO )( k \7 @+ n# N1 x- I
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* O( X' w& F. v0 q* \7 {. E
) R6 e- T0 e$ l ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) l0 E: T' h7 d- y+ `+ D }
. E0 k# t. O/ Y3 b- k' Y; M. ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 w" f5 ?1 |- D+ I7 G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ m7 F( M# A& \. o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, L3 R; U& P7 l3 P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; z4 p/ G& H8 s, t+ f' T ( (CUser*)this )->AddTaskBar();*/ U* w( u+ w! i& A) s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# m: C( u8 N4 R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- F7 S1 ^( ~/ }# v" T; T
((CUser*)this)->CheckHonorStat(); r! |) s9 z4 x. o6 [7 U
((CUser*)this)->AddHonorListAck();
3 _5 O0 N# i( u$ P! C- L- r g_UserMng.AddHonorTitleChange( this, m_nHonor);: s2 T/ A2 X$ {6 x- T( t6 \$ i
#endif // __HONORABLE_TITLE // ′Tà?
' J7 M" R, {- u& n7 i, ], m } `: o9 [7 X) n$ u, n! t" J( q
#endif // __WORLDSERVER
- e# ]/ n9 E' z# d} - {- J9 V% N" \2 e% m+ u
$ T4 v& X5 e- \. F" ]7 ?3 ~ N
然后你进入functextcmd.cpp并添加以下5 a" C+ I; o+ h3 I* i
$ {9 Y; }& n8 _3 Q: O/ H* a代码:. ~5 e1 I4 m: l( x1 d
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- N& J: ~: i9 C7 D8 V5 g下面插入; B( `1 c3 X* |/ d/ H* e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 @: a) }- m0 Q- N6 k1 u; R) u
) q, m* M1 ~6 l9 I0 w然后你去& i# v1 m+ _. N" s" ]
6 I3 F( @0 _% z r5 Q. L' d代码:
1 Z9 F% } z: |4 J* q4 x, {代码' u) x) ]: { B) U0 F
BOOL TextCmd_ClearPropose( CScanner & s )
- `) N7 b# K$ l7 `{& B+ N) w# Q! f8 S$ L
#ifdef __WORLDSERVER
" M$ q' w' p1 @4 `% q5 ^1 C CUser* pUser = (CUser*)s.dwValue;8 a3 H9 `! e1 g/ m, D$ s6 s
g_dpDBClient.SendClearPropose();
8 X! z' V& K' n0 A9 l ^#endif // __WORLDSERVER
e; ^0 F$ ^- o7 [/ y1 }2 T7 g6 W return TRUE;8 e3 H4 Q: ?2 ]: s
}
( K% i5 E- {% W! z- f下面插入
) W+ Z t1 G8 nBOOL TextCmd_rebirth( CScanner& scanner )
7 [# q1 K1 B# P' }{
9 z% l% E- M; N8 H2 Z6 a$ L#ifdef __WORLDSERVER5 \9 A9 ^% ]( j" s- {
CUser *pUser;7 s) R3 \. g( Y0 a" C
pUser = (CUser*)scanner.dwValue;8 }0 N. {' E9 S! v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 y, v; ^4 L4 H# HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 I6 I, |: e6 A$ N3 j& U) aelse
/ u8 @' s4 a: V, ypUser->AddText("你还未达到重生条件!");
& y* J- K/ D& n#endif
6 c* D T" J* i5 [$ B9 Oreturn TRUE;
) u. ?) ~ u) l+ P! n! |: r# q}
! I( H7 Q9 V; k" |9 \0 G
6 y% Z7 ]8 o( g/ C+ Y. a7 E% Y6 G' ~' b' d- A- j8 j
8 }4 s+ ]/ O$ t8 j
2 C" R7 V: a/ ~. r& q: Z
|
|