|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 t: I/ m6 C) r2 Z( V5 a$ n- s6 N6 c* A& _7 B( `9 F" P
Mover.h
+ `- h6 A- [6 H% n代码:
2 ~: Z. p, N/ W0 Z" g找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 [- w8 L) t/ g# C4 K4 A$ M# v
& l9 ]( l" U! \& k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ H, a0 Z9 j1 U1 i' E) D( Q: o& n7 m5 |8 q4 v& k! a, J L+ x
然后你去mover.cpp添加( R/ E2 o4 S; [3 ~8 f2 w. A) v" C
- D& E, D+ a# x8 D* w# \7 i6 }
代码:
" H7 h/ T+ n, m9 U/ x0 L/ z6 v bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* O5 `; C' I$ C" x Z' A{0 q _9 L7 ~, u7 q( U- s
#ifdef __WORLDSERVER' l9 b$ X( C% N0 N4 [" M, ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* K9 v$ L# Z/ t0 ?# d. _+ v5 x
MoverProp* pProp = GetProp();# z& F+ g( b& ?1 P( S
if( pProp )
3 e5 b7 K0 v% U* j { U& C& B4 s+ {# H* ?! L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 H% i" p1 m. d {* O- x# Q8 Z {
5 X' T+ i7 r0 X+ K AddChangeJob( nJob );
1 p' K2 C- \' d$ w) p* c }else{: {7 E; j, T2 I( I" ]
return;4 _& @6 V. ~& _0 S
}
1 V4 f. L3 C9 R/ A+ \3 g) Q- N3 U int nPoint = 0;
3 @% H/ H& p9 |: e- t- ^* ^, c if( m_nJob == JOB_MERCENARY )
3 T- u1 c; n5 k. ` nPoint += 40;
. A! F A3 I3 d/ J3 B else if( m_nJob == JOB_ACROBAT )
0 U8 K. u1 s M$ ?. i+ r nPoint += 50;+ @* u+ |( A' o. m) t5 l
else if( m_nJob == JOB_ASSIST )9 R3 v; s3 k$ P/ g
nPoint += 60;2 e/ |/ ^' e( \" t1 I
else if( m_nJob == JOB_MAGICIAN )
, l4 a! e0 ?% c nPoint += 90;
5 X8 h. J& T; y5 c$ ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# @2 T9 e2 s' t4 z
nPoint += 120;
3 f) H0 O; E$ J- R; ~) J b p! D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) D9 Y1 {2 I) c
nPoint += 150;
7 W- e) n' m4 T2 M( h else if( m_nJob == JOB_RINGMASTER )' b1 J. H/ k) D. j% a; O3 m
nPoint += 160;5 `8 D' f: Y! N0 y# {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' u, ^1 E( K) Z nPoint += 180; N" [9 C9 L6 b* l9 I
else if( m_nJob == JOB_ELEMENTOR )# X3 ]( v: E4 W5 `' Z7 ]
nPoint += 390;
1 D6 x+ |3 f$ Y9 `2 @ B6 B* o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# O5 B$ z- x( e: A) ~ nPoint += 120;
3 B8 r3 `8 I5 r: }8 L K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' Q t& k s/ H+ M8 V
nPoint += 150;
d4 p& d" @( n5 v$ j+ e else if( nJob == JOB_FLORIST_HERO )5 [+ x, u* K, [1 [
nPoint += 160;$ I J8 e5 |" t# f/ A* t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& i" V& A. D6 `* [ nPoint += 180;9 E2 G$ Z# X. L( D7 H G5 _/ C
else if( nJob == JOB_ELEMENTORLORD_HERO )
( I; ^2 w0 ?6 m nPoint += 390;
. k# @) b+ @6 X2 F1 |2 w5 P: d E: R7 t
AddSkillPoint( nPoint );
0 V6 _# e/ d. q( M' V m_nLevel = nLevel;
6 }- O E) `; e7 Z6 F/ a
* F5 g3 T3 x( q$ l/ q! p SetJobLevel( nLevel, nJob );; O* R7 J0 S; A
m_nDeathLevel = nLevel;
+ d# _3 \. G. H* |' {#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' M; K, B& ? F; U: y6 {; ~ if(IsMaster())9 W0 |& S& N& p- {# B% A
{0 m* N: J4 w& L0 w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' X c- ^" K# r$ u, @: d6 u5 a
if( nLevel > 59 && nLevel < 72 )! ~" L, L& w: k% N; h: H$ U
dwTmpSkLevel = 1;# s( {, f, V5 P6 H9 V P
else if( nLevel > 71 && nLevel < 84 )! P& j j1 C1 j0 |9 k$ ]8 |
dwTmpSkLevel = 2;5 a! Z6 B- B# |, Z
else if( nLevel > 83 && nLevel < 96 )
; V5 A* J! }# D, ]" M# Y+ x7 z* f dwTmpSkLevel = 3;
/ t, b( R6 w& F2 I% u" @ else if( nLevel > 95 && nLevel < 108 )
. R3 V5 m3 ~* G; e b7 v dwTmpSkLevel = 4;& J) W' Y9 n6 T) o- e2 h
else if( nLevel > 107 && nLevel < 120 )
' [4 ]3 O. i! P dwTmpSkLevel = 5;" ^. N: J4 x( ^+ n& Q( w6 ?) K. m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 r: W: z8 b+ r/ j$ ?
{
2 D& I0 Q. P y7 P; R# v6 ] LPSKILL lpSkill = &(m_aJobSkill); v2 A' v$ f8 a! W% g9 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ `8 Z$ p/ k) v2 Q
{
, Z7 b. F8 i! t7 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 c9 S) Q6 e9 r) _2 T if( pSkillProp == NULL )
/ t1 f' @8 ?' ?$ w7 T+ T continue;; T, @* W4 ]& X* {; X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! i( Q% v r% {5 D9 M: ?
continue;0 Z) Y+ W1 a+ q: I) s% e
lpSkill->dwLevel = dwTmpSkLevel;
% \! Y+ ?6 e: X8 w }7 _- Q5 \! l m, G6 ^
}8 @0 m1 m+ c5 Q7 a- \6 e& p; }$ ^
}" o7 j3 J3 {( g/ q8 a( P& P6 {+ I
else if(IsHero())
& u ]2 G0 V3 M- w {
# a( w8 q9 v8 o. [* e8 h- | for( int i = 0; i < MAX_SKILL_JOB; i++ ) - b& C# r& u# N5 \5 T/ w( L
{
# u8 ?8 |# y8 P3 o LPSKILL lpSkill = &(m_aJobSkill);
/ ]7 P& W; g( L8 j3 ^* R& F3 {: ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
( H% K% h$ }- e8 O. X6 G {1 i' F8 y7 v# W. T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ M& B. U2 v, c- I$ Q. ? if( pSkillProp == NULL )
1 q- a) _0 R8 O/ C. @9 x continue;, p( k/ \6 |" ]+ Q/ M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& \3 T& }# x9 A4 @8 C
continue;
. F1 b! y* a: c4 [ lpSkill->dwLevel = 5;9 X+ n ^3 H, h" ^6 I# t1 h
}% c6 O8 R8 d. V3 _2 ^* U
}
, {9 l' B0 w( L9 f# j' x1 A" S }
* s! u: Z( _' ? else if(IsLegendHero())
$ x% i9 s' s3 H: n; v {
* S( d1 T3 P5 }. Y F for( int i = 0; i < MAX_SKILL_JOB; i++ )
t& N+ y: s8 t2 n. ` {
7 G( V: `9 w' b) B& c5 i LPSKILL lpSkill = &(m_aJobSkill);
& m3 L' N0 e! M( l4 G. b if( lpSkill && lpSkill->dwSkill != NULL_ID )) h. S4 \; O: l& D! @7 K
{
4 g" O$ h, `' H0 t9 i( I8 W% { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# E6 G8 b- r9 a$ l! O0 y if( pSkillProp == NULL )
1 }7 Q& Q" P; g9 f1 k5 C$ B continue;
" a8 Z; K) K) `8 a2 h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; E! R# Z8 x0 E) { continue;. n. F0 K4 @5 r @' H
lpSkill->dwLevel = 5;: w" b2 t: E- y7 t
}% p. d+ P* l6 B4 s8 N7 X
}- q, a* l! n, v/ y# O. Q3 r
}
2 R2 o/ j) c, h+ Q) ]#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: s5 d- W+ ?& d* O if( bGamma )+ t% ?$ f9 g: t9 \. U2 I
{
5 e" y3 g3 @. w" m4 ~' D0 N" |( F m_nExp1 = 0;$ K1 j* u \* D F8 P+ r; y
}. |3 U6 t* Z( G2 P( z, q* e
# Y8 s8 Q) B; ]1 i; _
( (CUser*)this )->AddSetChangeJob( nJob );
1 s: G# {( d+ p( V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" D7 I& {: F2 O5 [
( h' M1 m+ E6 B! J* ?* l$ [. e: y! k) V" p5 S# T5 j- W: E
#if __VER >= 11 // __SYS_PLAYER_DATA
6 X& Y% P) @) T& q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 K" n2 L; ~/ U2 _8 }0 ~#else // __SYS_PLAYER_DATA6 x* W. S4 ]6 p% |$ n
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 M7 S5 ?1 H& R: I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' W" T E( e& s% [2 v
if( m_idGuild != 0 )
1 o: |/ p5 n! w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. V# N9 V9 B$ G/ w8 z1 n* V
#endif // __SYS_PLAYER_DATA
* f1 P, Q: c& s. Q) ~; l3 \) I2 ` SetHitPoint( GetMaxHitPoint() );8 b$ B) @( b8 K3 Z1 T
SetManaPoint( GetMaxManaPoint() );
i0 T5 L5 A' X% x( } SetFatiguePoint( GetMaxFatiguePoint() );: j: e6 o5 O. K5 A
if( nJob >= 1 && nJob <= 4 )7 v) }; }- h S# e6 A
{) g B; f( V* T; o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" R, L8 z7 c: M# c* k m_nRemainGP = 28;
! n' R/ p& E' n- R }
9 C5 N Z! d8 x+ D- K; y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" D7 Q3 Q0 p r6 W {. Y9 l+ U& W/ \, P. H
m_nRemainGP = 118;
7 ^7 c+ k: J: ^8 ?: s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ a- T0 d2 M* T8 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;( Q" x+ H0 _9 T/ X
}
. b/ [( p6 J( m/ o if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* p+ P& }5 z2 }
{ d! S5 m. T" x
CItemElem itemelem;: Z" i* i. y$ v3 |5 K
itemelem.m_nItemNum = 1;
4 f" j; w* G0 ^+ @# \ itemelem.m_bCharged = TRUE;$ \# W. ?5 Q2 r7 q+ T" F; L; }
BYTE nID;
5 k: D% E4 ]( L! g& }+ M- E- }3 r9 x$ G9 b, I. K+ C( Q4 X
if( nJob == JOB_MENTALIST_HERO )
& [9 }/ ^, [9 T" O; G+ L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 ~0 ?' h8 L! t* @ P8 E if( nJob == JOB_FORCEMASTER_HERO )
3 v- @" E6 a% j) p; `/ S. }- h itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 l% Z( @/ \+ t6 N
5 e, u; a, U) M! z& e; } ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% |& ?( x3 L0 G) a }
$ A$ h f( E, L6 Q( E1 X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ }8 Q* s( h8 b2 q$ E; z% Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. k% P6 ?7 |$ t) o1 l! L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 ~+ \. N4 m& K# B* b /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: c3 t0 z+ O Y/ g0 h' f* D( m$ A ( (CUser*)this )->AddTaskBar();*/
( p0 I" m$ G. c, `7 i9 k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 b$ A' u' o2 @- s/ e3 E6 `: ?2 U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 Y4 ?/ K! \7 c' H* u
((CUser*)this)->CheckHonorStat();3 q, N( p6 ]; W; q+ j8 c
((CUser*)this)->AddHonorListAck();9 Y0 F# @: S! m9 j# Z8 T
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& g7 q) x6 W$ \( D#endif // __HONORABLE_TITLE // ′Tà?# j" F! l, x, h }( B$ I" V' @
}
: \, ~: N( ~2 y( [5 v#endif // __WORLDSERVER
, ~+ w2 U+ ~, P+ v}
, l y( x: P) r6 X: G. _8 ]3 _6 t4 B" p+ |( B
然后你进入functextcmd.cpp并添加以下: A3 ~/ g& \# L; a) R0 y: f6 h9 N1 t
( p( }& n; _) c8 o6 n- {9 L代码:5 c) `: Y' I0 t/ [ {, E8 [' W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 l+ q9 i+ z2 R
下面插入
7 a1 Y7 w2 N1 g" `6 Z" J; rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! B9 S$ h$ u" _" G% H( b3 s/ s
然后你去, z; A0 u9 r- }2 ~/ O/ Q( ~
9 e; Y2 H$ s9 E! ~! S代码:
* q$ V0 E1 N5 G9 t# @代码0 P" l0 _7 [3 L
BOOL TextCmd_ClearPropose( CScanner & s )3 Z9 U. T5 }* u; u5 s8 I8 g
{
' N) H' b8 E0 p+ \# M#ifdef __WORLDSERVER
2 V& D+ |3 b9 ~- ~. F6 V+ J CUser* pUser = (CUser*)s.dwValue;9 R: K1 k. ?3 ^4 ~4 m
g_dpDBClient.SendClearPropose();. ?! k& Y2 h1 }9 R- M: G( y
#endif // __WORLDSERVER
' z: ~7 k0 V: X2 |) O5 w return TRUE;
7 g6 [. x! Z/ V, V% F2 s} D0 w$ R( H: `$ }2 {. c/ x
下面插入
4 d* p. R/ B' c! P5 {9 mBOOL TextCmd_rebirth( CScanner& scanner )
3 {2 S* @' V/ F: z" m. b1 y{! y8 m# {# n# D/ s, r% m
#ifdef __WORLDSERVER% o6 q5 x3 [! O. G, ^
CUser *pUser; ]. _* n& G! V4 Y7 T
pUser = (CUser*)scanner.dwValue;; U! [4 f$ }& s7 ?! h6 G5 d
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ ^. H+ L* s) s2 Q C4 ypUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; A: y$ h0 S3 ?& t1 \
else
/ ^. X5 l7 e; O: E9 z' }pUser->AddText("你还未达到重生条件!");
/ Q5 G- Y) l* j) u7 |! E#endif
8 O, m0 \: ]! k+ yreturn TRUE;
' @2 I$ X! n% Y}
1 `7 ~$ X% c4 T% \0 |5 j/ p8 m' ^! o* H1 j1 a
, M! L5 c1 T4 }
3 m: }' k* D* i* _+ {1 ~% t% h
+ r0 g9 g% E1 v# R+ q1 F
|
|