|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 g+ d' P ]5 u' j3 _7 ^
- ?$ D( I2 ^9 o! p- A
Mover.h
; Y' h* w: d) j代码:8 H1 i1 F; h1 l1 } ]6 m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# Q1 A) F% u+ b0 \* g! g6 C& Q2 ], g }4 G; v( {6 _; X! W; v* B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 u8 k2 ?1 W4 q. t3 C
4 s7 S! o( D) ]* E0 k+ M/ O然后你去mover.cpp添加( [. M) u! Q. b
& R, M. e' T1 v
代码:
2 b! U4 o( x- s/ @5 A, d' tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% x: N% T, G; z' r- c2 v1 ~
{, x+ ]) f* c" O; l/ S2 u" e, b
#ifdef __WORLDSERVER
9 |% W$ K7 R: J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
l1 X1 }' ?9 J5 w4 q' ` MoverProp* pProp = GetProp();
0 c: k0 d$ Y$ Y) k3 m4 P: m if( pProp )- A, k# N* u# S9 s1 b. ^% M% p
{- D$ z, I: h. c, v0 k" j* o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ e+ E+ z1 _# y
{
3 S% Z+ C, a5 p4 l# h- r/ Q AddChangeJob( nJob );7 `: I9 n( A" u2 d; ]! I& O( F
}else{
/ t' |1 ?! S4 }8 { return;
3 Z* a) s& w+ N1 |$ t }/ X6 `/ I7 l0 K% w$ S# G n8 ?
int nPoint = 0;& F8 m( o m3 F- v8 c: h
if( m_nJob == JOB_MERCENARY )3 K4 j2 `) [1 w; `! ^
nPoint += 40;+ t* D. w3 q4 a' }' V
else if( m_nJob == JOB_ACROBAT )+ X9 O3 o# i6 f
nPoint += 50;5 h" Z$ M$ v8 ?. k: l
else if( m_nJob == JOB_ASSIST )- q1 x" B% U5 z3 v8 |/ K
nPoint += 60;
0 t* o& h% z/ e' Q8 Z6 O else if( m_nJob == JOB_MAGICIAN )
$ Z/ }$ |" V/ L I% ^' \ nPoint += 90;
: W: k. } g: t3 D. i else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 J2 y2 Q9 Z9 A! ?' R: h# J# R N
nPoint += 120;
+ r: w8 w1 _- K' ]+ b else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. L' N! A: R( b2 R( h' V nPoint += 150;! A2 ?4 b! @8 v/ b d1 y5 Y8 L3 m
else if( m_nJob == JOB_RINGMASTER )) b# g7 M! d0 B$ r. e, [
nPoint += 160;/ \1 L& z4 d* w/ |% c" ]3 t& o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* x& s3 n' H5 i2 D; u0 [/ [9 e5 ~
nPoint += 180;. t; ]0 z4 H/ `% `0 j) m j8 p
else if( m_nJob == JOB_ELEMENTOR )- Z% L) m# w; f
nPoint += 390;
+ ~2 E6 R ], D5 m" P6 \6 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- a/ t3 ~! n; [- d
nPoint += 120;6 y( a( E/ y2 C! Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); r: O7 C( F$ l- i1 m" U
nPoint += 150;
0 i6 \+ P" W; s" W% d' H2 Y else if( nJob == JOB_FLORIST_HERO )
; r4 j* ^% {# n9 e- v2 h nPoint += 160;
# @ x! w3 x- g6 Y) y else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 b7 B% h" Y- B. h* C5 m2 t* k' S nPoint += 180;0 Y4 g7 ~( I- y: \, c# b
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 r$ K; ~; |/ v9 J: X. I4 ? nPoint += 390;+ {! Z# O+ l$ C2 Q- M7 q& U
+ k) o( J" j0 S1 B. M
AddSkillPoint( nPoint );
& q$ {0 B( m0 b$ z( K m_nLevel = nLevel;2 Y9 P3 [7 O, | j% a0 _
+ R h0 B" c$ t7 P1 _7 P
SetJobLevel( nLevel, nJob );
. i2 B. [+ {9 U, d ~ m_nDeathLevel = nLevel;
' @0 u, j3 p# o% C8 R9 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ q: i7 n+ \5 Z0 R& Q
if(IsMaster()) E. G; S( {' d8 G, t: ^
{
! y( w3 u# }8 H; d' i+ l int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 F# D% O' g0 z( q: F" f7 F7 S1 [+ X
if( nLevel > 59 && nLevel < 72 )5 ^8 t" i/ k1 i
dwTmpSkLevel = 1;
* i, ]& `8 b) R6 t. ~! H; z else if( nLevel > 71 && nLevel < 84 )
8 T1 S2 f2 q: ~' O6 j dwTmpSkLevel = 2;
) Q5 A J8 @; l2 P. ^9 b else if( nLevel > 83 && nLevel < 96 )
2 K! q- ~3 K' s6 E. \( y dwTmpSkLevel = 3;3 z# I' U$ _9 X" D
else if( nLevel > 95 && nLevel < 108 )
+ |% N9 }4 o! F, i& q dwTmpSkLevel = 4;# j/ y& _- F5 Y, a
else if( nLevel > 107 && nLevel < 120 )
, X# M# ]$ I) @ dwTmpSkLevel = 5;
9 v7 c0 e/ {- E8 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 ^1 O0 ^$ d1 G3 G# n2 B( c# @ { , }4 z1 z: B2 W/ z
LPSKILL lpSkill = &(m_aJobSkill);, y* J4 q4 l0 Q2 A# y% _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& i: v( B* C& \0 U; \& x {
7 ?9 @6 t4 v# O4 |7 D m( }# X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 T4 `) ^, ?: z6 a
if( pSkillProp == NULL )' N( c3 m% u6 Y% C( U6 L6 O
continue;5 u) U* |& X6 l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) s, U" G6 v, v' o/ F continue;! q5 e1 M. T' i% i; }& F
lpSkill->dwLevel = dwTmpSkLevel;( Z, B- z) p& ~3 c# Z6 x6 f
}. i1 C" a) \9 e* _
}
7 }9 b5 k8 _- U$ ^3 V }
* Q2 q# i `2 T/ w. |& w else if(IsHero())2 C' J0 S& h# X" k7 K9 v
{
2 s8 U+ u ^% Q5 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
& V% \: R# i7 l1 _% H {
) P P! I4 V. a, z LPSKILL lpSkill = &(m_aJobSkill);
3 ^" V5 S3 w) j! @4 U- _/ N if( lpSkill && lpSkill->dwSkill != NULL_ID )
: a. x0 X* q7 q ~2 h. ~ {! @" P/ ~; C7 b2 ^( ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: u7 B7 G+ G, u7 l8 Y Q" A if( pSkillProp == NULL )
, Q' V! n- T2 N4 N6 s f1 E q: ]. p# p continue;
2 e* A+ h- _% ^& k4 G* J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 V1 |0 i" p8 F1 e' Q' j* j
continue;
. f, s( T: Y- ?6 J lpSkill->dwLevel = 5;
0 _! C: _& D: d: F }
! K5 m4 ~. H& y& h# }+ G }1 R! Y8 `. y, H4 e* M: |6 B
}3 E, z$ l2 p+ `7 E
else if(IsLegendHero())' q# t6 A- j4 b% }
{
' u( u2 D0 E+ h/ z for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 D6 `1 m% \( Q# k9 t* s { % q, E+ W- F# P {. c i* n, l
LPSKILL lpSkill = &(m_aJobSkill);
1 Q% y+ x$ Z" _( [# v/ B# l if( lpSkill && lpSkill->dwSkill != NULL_ID )
* D0 V' X8 p3 v+ b, G8 p* V v {
$ i3 d7 M2 O! w. E" B: ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % d" _! X% B$ B2 ]( @9 e
if( pSkillProp == NULL )
% E! k) _, Q8 x. W9 \. J* I; i- D continue;3 l0 q4 ]- G5 p& _& W& j" t) Z2 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, h0 \# S+ p9 y$ o$ K" P. r4 ~ continue;5 R5 X( E5 o- r/ U4 T" C4 _" l
lpSkill->dwLevel = 5;
$ P5 k* T0 ]) }: [9 ?1 o }
% Y5 Z( b6 j2 i8 ?* v. p }
+ V% p2 P$ `/ G5 ~ }- ^4 d0 A. S0 c ?, L+ }/ s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& E5 c, p: y- F+ a* k7 a+ E* f: U
if( bGamma )8 i: r' L/ B9 i8 f$ a
{+ e Y& \" r" Y6 L: @" ^
m_nExp1 = 0;
% v0 K6 c% Z! j6 ? }
, O. F/ Y4 M# O2 |, w/ D
) Z, l9 G C5 {% ?; i5 b: x* x ( (CUser*)this )->AddSetChangeJob( nJob );8 X7 } H) Q, u% _* N( W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 N+ g- n* Z9 R9 `7 N( \# b- j" h
% v d3 V* A) o% |* s: {#if __VER >= 11 // __SYS_PLAYER_DATA& d. X0 }- D3 W6 I' M; U
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* R! \( d o% h+ ^8 Z
#else // __SYS_PLAYER_DATA' C( h8 G, |4 P. `
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; ?) \# d5 `+ [5 q* Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 r, F) v) N' e4 _0 o$ j if( m_idGuild != 0 ): U7 _ [: F6 G+ j- r8 v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 L6 M6 l4 e& C: w#endif // __SYS_PLAYER_DATA
. |5 R" ?: W# g, [: N+ \; X7 v SetHitPoint( GetMaxHitPoint() );
3 i. p3 v& v% f+ V- q, Z0 Z SetManaPoint( GetMaxManaPoint() );3 h; |; O# q, b% P0 L
SetFatiguePoint( GetMaxFatiguePoint() );
8 ?/ O( Y$ v# k& `4 o) x if( nJob >= 1 && nJob <= 4 )
5 e; o c0 y0 O* |6 r& |$ N {
* X" B, R& W! [ m_nStr = m_nSta = m_nDex = m_nInt = 15;+ d0 f8 \6 @! q. z: s
m_nRemainGP = 28;
& q+ p$ c! R, _ }7 j, @% V; o$ j5 m, m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% N3 z3 ` z- x/ f
{
3 @$ s, D! G- u m_nRemainGP = 118;
6 O5 [# Y2 p! `3 x" @) x: E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 t' H) ], r3 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' H4 l' p( l" _& _1 E' i2 j& W, f }
, D$ G5 V* f4 r) `, B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( i7 y! X& P+ ~- Z {
! r* F; j ?# s I7 ^7 ] CItemElem itemelem;- m* p; v9 h, P( r& x
itemelem.m_nItemNum = 1;: C& V' v2 e* s5 v. p" Z- R
itemelem.m_bCharged = TRUE;
, M. B: ]( p( H' g- t( i* }3 [ BYTE nID;
- B' _$ c+ e+ g# ^: g/ v
$ a4 [: T) e/ @5 D0 H+ H if( nJob == JOB_MENTALIST_HERO )
/ O2 S, y) X# G" ?8 R* t p0 f itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* W0 A' U1 e" w" L9 x
if( nJob == JOB_FORCEMASTER_HERO )0 g+ Q/ n$ ?+ |' o( r: n* h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- A! [# F, i: ^* K0 i6 v5 h
, K9 ~4 h2 `+ D1 M ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 C. t7 ]1 T U! {5 O1 L& C
}
3 ~5 E4 ]! x1 z( [+ O0 A# ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, B& w3 o. p& f2 `3 r. V, b; z0 ^1 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" O! S- l" D5 {2 G7 X% K0 q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: a1 Z/ \9 {2 G' R8 [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" `1 m3 M, n- E; g# i& {4 O
( (CUser*)this )->AddTaskBar();*/& C$ P6 F% {' x: X; e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 t. `# q! C1 ?' Z7 K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& r! F% \$ l& L# u% r& ~ U& v
((CUser*)this)->CheckHonorStat();
7 ]8 R" h) E: h ((CUser*)this)->AddHonorListAck();3 w \3 L5 {3 A4 w' Z' l4 x, }! g. O
g_UserMng.AddHonorTitleChange( this, m_nHonor);; U" i7 s+ X/ v' E9 T
#endif // __HONORABLE_TITLE // ′Tà?
; T) Y0 s* t' o- V8 q3 q4 }" Q }5 e4 d* }+ V- W) c" y- ]
#endif // __WORLDSERVER4 I; i F% m5 _" R5 y+ @: Z$ q
} ' P) z+ x2 W$ K/ A; }* |$ P c
: y4 w: y/ x3 }- T; |' L然后你进入functextcmd.cpp并添加以下 m, l+ X; E, G" f" J
5 Z, y y% a3 R( X5 z) h! ?代码:/ Z( ]; L W7 Q$ e, ]# c; p7 | A7 e7 T2 |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# M' B( t. h6 q7 K7 x
下面插入
( s" h# \' P* d9 V" OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 v7 v" L: {3 H8 ~/ N% k4 q
+ {- Z5 N* q+ f, r* H! m( {然后你去5 v# G0 Z9 \' }0 a6 f' v! v
. Y: K& U0 x, G# A# ?6 Z0 |
代码:
7 \) {. x4 Q3 U+ y代码
; x" x* o) X; _BOOL TextCmd_ClearPropose( CScanner & s )
: M8 J% g! `7 Q8 G. r{
5 ]# s* `1 p4 b/ D/ Z9 r- I. i#ifdef __WORLDSERVER& i0 R/ i) d8 [# u0 W( f
CUser* pUser = (CUser*)s.dwValue;# K1 z. C' B3 ?7 }3 x% Y2 _4 y
g_dpDBClient.SendClearPropose();
6 R% b' }5 V6 b8 P' \3 o: G" F; ~#endif // __WORLDSERVER
( m4 e" t* n4 d- W$ u return TRUE;3 f1 l3 B; y3 {) Q
}- p' O' }7 k, o2 S; q
下面插入
: I- a. J3 D/ TBOOL TextCmd_rebirth( CScanner& scanner )
5 a1 X( [6 t3 K. K; _{3 U$ ?' q/ R! i& w1 s, K: E
#ifdef __WORLDSERVER4 G' ]" e% F1 B5 V: m" ?$ v% c0 n
CUser *pUser;
7 C4 ^6 L9 b1 gpUser = (CUser*)scanner.dwValue;& b; j$ N4 s" ^/ p: w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 k2 q$ {& z4 p' s) Z5 K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ f8 ^3 x" d, E) _9 Qelse$ N! T( n7 c: \1 Q
pUser->AddText("你还未达到重生条件!");8 M& t4 K0 e* f* M5 o. {! H
#endif
0 d* P$ I H; b6 Z2 [2 a6 S* Lreturn TRUE;) ~6 h, Z3 g X
} 9 X, N5 P: x6 {) l
. ^$ F4 |9 G( T4 F) E; Q
, ]. }& {+ n; S8 A" x& p8 L
0 d+ V9 m; O, A$ r" I( u, t7 ~+ b6 S3 S/ B
|
|