|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 v0 B' V. J+ m
8 P7 c' k3 i D: E- h1 Q5 yMover.h
( ~7 H9 n: i0 j1 _代码:
+ N4 o' n! @# _: Q/ e" ~: t找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ f8 p/ J( x& z( ?3 ]
& a7 b; @0 c G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ [3 h* t8 M* k: t" i& A% L) ^0 S8 z0 |
然后你去mover.cpp添加
, W# k% ]4 L1 }3 ~% o
3 c" D& G9 {2 g1 W3 z$ m- Z代码:
3 i4 K/ c, o1 R% I# F4 _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% L: F$ E; T2 t/ `- A0 u
{
3 B: W/ x& V( o+ l7 K#ifdef __WORLDSERVER
* c. h9 V4 P/ t- L1 E( q) N3 q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( g# P0 D, `2 x8 |
MoverProp* pProp = GetProp();
6 o+ u8 _" s! @& D* z+ i if( pProp )
3 [1 P/ H, M$ C {* H- n' O( N& q3 `5 G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 u' C4 l* }. a+ [5 B+ k {* a% F' A" L' O" T. V& K& Q
AddChangeJob( nJob );; K3 c: j; }% a" L; S1 l: k, R! D
}else{
. U8 j' `% G) }) R; H return;$ p, w2 C2 S* m# n& e
}' F+ I3 r. V t& D; L5 B
int nPoint = 0;0 z7 y" U+ P+ }9 e6 \9 @" O
if( m_nJob == JOB_MERCENARY )
' S" a% Q2 P& [ nPoint += 40;
9 G* q5 K" |* o8 b else if( m_nJob == JOB_ACROBAT )% I% D8 R3 u0 o7 i
nPoint += 50;# J6 @% ~+ r* ]" `6 z
else if( m_nJob == JOB_ASSIST )
3 T7 [+ W/ o/ |% [' e6 P nPoint += 60;) i- A4 k9 e! m; z5 \
else if( m_nJob == JOB_MAGICIAN )
) F, H5 ^) H# |0 {. N nPoint += 90;; s( F2 T+ w. p0 N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( z& y9 L8 }, B% T nPoint += 120;; E0 Q) d D; m0 f2 v1 w2 L2 H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) ?4 H+ B: l2 \ nPoint += 150;. I' \, H& n9 X9 }7 n
else if( m_nJob == JOB_RINGMASTER )
9 s$ k7 B6 g7 Z( M* |2 h nPoint += 160;
& |& P* V2 l$ @- g: e& Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. l0 l, u, |8 C/ i. k6 a$ I nPoint += 180;6 B' V3 l$ ], R, h s V3 q0 G
else if( m_nJob == JOB_ELEMENTOR )
1 A$ X; R" v( `' A8 f' D9 e( e nPoint += 390;0 x* F' c4 }" Q& W6 A R; s
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ t4 K: `$ |9 }" K! U2 V
nPoint += 120;3 j3 R! z, M& p4 c' B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) O6 j0 E+ w% I. d; K! S
nPoint += 150;/ O5 {# N \" h7 Z$ S- Y9 L* ~
else if( nJob == JOB_FLORIST_HERO )
/ p5 D P+ E# c2 z5 _4 ~8 ] nPoint += 160;
# n5 Y6 J P5 S( P6 r8 v4 Z M! n- ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' o3 F3 D7 h# l) s% E( n# J% t- j nPoint += 180;
' E* p2 r# i f5 b else if( nJob == JOB_ELEMENTORLORD_HERO )
. _( d7 J6 q+ t! k& v nPoint += 390;: E% w) Z! Y* r3 n% }! t
5 p, _7 G, M- A+ D, g
AddSkillPoint( nPoint );2 u9 Z* K" U+ R$ [9 V" i
m_nLevel = nLevel;- T0 J5 o- s, b9 f( M
" B& b7 Q% E$ Y1 \( W) X5 i, I! E SetJobLevel( nLevel, nJob );
5 t0 E2 |: K$ j* Q) Z! ^9 k% [ m_nDeathLevel = nLevel;$ t) z$ k$ Q$ U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* M# H% o8 w5 t0 H
if(IsMaster())
$ s( c( b- h5 O( e3 k) N0 ~ {3 u! W* D! P! t! T( E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ E G# |; o0 m) Y# J# }% q9 ] if( nLevel > 59 && nLevel < 72 )
' Z: U9 Z9 P! W, X K dwTmpSkLevel = 1;
# `9 ?& W) Z6 p1 o5 ?2 R2 A: z else if( nLevel > 71 && nLevel < 84 )/ e. ^, R5 S/ w9 \8 m# V
dwTmpSkLevel = 2;
( l: u" [) N, c3 y0 O- S& }+ j else if( nLevel > 83 && nLevel < 96 )
& E1 N) U# c6 v5 L" U v dwTmpSkLevel = 3;9 d7 V6 Q" Z) w4 P3 h: V0 e: c
else if( nLevel > 95 && nLevel < 108 )
5 @ K0 ?1 y+ C8 ]8 [+ u1 ` dwTmpSkLevel = 4;
, }3 X- P1 t: U. Z else if( nLevel > 107 && nLevel < 120 )
3 A8 |" Y' g# C5 E. {8 e8 I dwTmpSkLevel = 5;& G" b( w% z1 u8 K) w4 ~9 _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 A) I$ M# g% }; ^7 m0 k4 x* j
{
; j* Y) Y [* _ LPSKILL lpSkill = &(m_aJobSkill);: K) ~. |. x8 E( d* ?8 Q) ]( V% z) y
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ Z1 \; Z3 d6 h7 K
{
# C/ T: G, h. R% U) |3 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* C" X8 c, C$ Z1 m1 D8 w* X if( pSkillProp == NULL )
) P) t) V: ^' N' V$ t continue;- i i( J( l" a8 g, X+ @7 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( W5 F$ @+ e9 k B continue;
+ u! n' a5 {% B5 D7 [5 {! _ lpSkill->dwLevel = dwTmpSkLevel;$ _- J- }- }" E: I
}
P& {! b9 c8 q }
+ y% @& F4 h& @* ~7 ~7 ~% `$ B. | }5 o4 f1 e/ W( u0 \" z
else if(IsHero())
5 z& o/ c' L4 ^, ^ {
& ?0 I9 T0 c; L" m) s7 e* i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 @. M( u) g- q+ A
{ 1 G0 n% q! z P( Q( k5 ~! m
LPSKILL lpSkill = &(m_aJobSkill);) Q [2 y' L3 I5 J
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ M4 E1 h$ ?3 o- b
{" L) f) [$ |0 t9 F$ e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); c9 f) N1 ?" `2 j9 h
if( pSkillProp == NULL )
/ _1 t$ M% s% t( b continue;% m t1 H0 D) f9 x* C R) q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 P; N, a$ D6 n0 w, ?: m6 G continue;
9 L1 l! I0 h( A3 C5 A lpSkill->dwLevel = 5;# Q. Z" t" |& p- g2 @, v* Q
}# d/ Z7 R0 w! c3 f
}4 _9 H' j, @, T# k$ \9 L9 T
}9 p( {: a$ O B V/ D
else if(IsLegendHero())! s! h% G8 r0 I
{. g, Y% f) q1 v) W1 i8 G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 W7 J; Q- U' b3 G; C; I3 ? {
- j. j& `, E9 z+ H: X( C/ `( V LPSKILL lpSkill = &(m_aJobSkill);
* t- O# ~4 J- ?1 [0 Z* M if( lpSkill && lpSkill->dwSkill != NULL_ID )
, e2 ?4 I: t) H) W {
4 A; R0 P8 N7 q5 _6 V$ T2 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 U% W* j6 D3 m O7 u4 J& _ if( pSkillProp == NULL )
7 V* j4 V) F! D' B, d continue;8 O' [4 `' K# [' J0 R8 ]2 A3 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): e" `+ G9 F) `! Y: N
continue;% S( b6 B/ H4 t8 w) z
lpSkill->dwLevel = 5;9 z5 E/ A8 J4 f1 J
}, k. [6 J& n- a% ^
}
+ p! p, g% w% F0 e& \ }
" F3 s+ w' i6 B5 K#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 S, {. ~$ U# |/ N, ?
if( bGamma )
2 c" R( A' ]+ ]/ V: |4 j {9 m8 R, C. e9 [$ [( n( W" E) _
m_nExp1 = 0;" A3 G& o+ _9 ?( t$ H) \
}
0 m( [1 C6 M9 F/ I( p- q
/ P/ @3 L( J2 K ( (CUser*)this )->AddSetChangeJob( nJob );1 R; F# y9 r6 o
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 U: a9 B4 f/ p0 w' v: @8 T3 \1 o7 o( _
& q$ O8 l" d4 c
#if __VER >= 11 // __SYS_PLAYER_DATA
/ \1 @" k4 r8 _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 X: v! G% ^4 F4 X7 i$ Z7 E8 h
#else // __SYS_PLAYER_DATA
# r, C+ {2 y! Q8 t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ N) U" Q7 E0 X* U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 Z% a% A+ e3 w if( m_idGuild != 0 )( x( w. w) h1 @' e: {; K! g) g) N' {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); O* r6 X- l# \) X$ S. h3 E
#endif // __SYS_PLAYER_DATA Z5 {8 V0 H* \3 I) F, I; Q
SetHitPoint( GetMaxHitPoint() );' `# Y$ E; ~# c. V0 R
SetManaPoint( GetMaxManaPoint() );9 w, {5 g4 \0 K- [7 b
SetFatiguePoint( GetMaxFatiguePoint() );9 a0 U) E+ H* m
if( nJob >= 1 && nJob <= 4 )
( y6 P7 I) o: S0 t {0 _7 {/ a, D/ L) Y* P3 V) L* A+ O$ ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 E$ }( a1 B, M
m_nRemainGP = 28;, e; @+ f7 n) j7 H
}/ {+ f; O! b- z% \8 v1 ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% Q1 ^" j* v- } r% N {) a4 k# V% P& D" B7 t& ^
m_nRemainGP = 118;( q: y5 K' ]+ l6 \6 W) g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& s3 g& J% m' K0 x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 w% t* V( W4 y8 { }
% ^6 @5 b: [8 y2 t' c3 @! b4 k if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ j! w- Z% z5 g
{
" x& o% f) d- J CItemElem itemelem;
* ~ d5 q# p$ l5 G- P" z4 A4 b itemelem.m_nItemNum = 1;! M8 L- u7 M: O( M) Y
itemelem.m_bCharged = TRUE;. E- A [0 j( @! k- Z
BYTE nID;6 |1 J+ A- l0 y% M' w- H
. A% E1 }8 @$ m$ M; X
if( nJob == JOB_MENTALIST_HERO )
* N7 p' Q* d: U& c. A1 g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ j: B" [/ _2 ^5 V if( nJob == JOB_FORCEMASTER_HERO )
' k1 S6 N5 B% N, [2 x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 O0 Y2 O& U# G+ z
3 D% h4 H2 e2 T* m! d ( ( CUser*)this)->CreateItem( &itemelem, &nID );! T7 `3 g$ D4 X& k- _" q0 y) O
}" x; |/ O7 M0 C. ]6 Q. z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 b. J. _- O# b$ M4 [( G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" H/ \; Y1 P+ I0 K: t8 n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- J0 l" C' Q" G( c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' J6 t0 @+ X5 I0 b, c i; p' B2 Y# G ( (CUser*)this )->AddTaskBar();*/
$ X" h8 d/ ^+ Z' o: e! f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" L- C1 ]0 Z; ^% B3 i8 w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: J, t$ q% p- k
((CUser*)this)->CheckHonorStat();$ d" {4 M* u' U! b4 |' S' P# \( D
((CUser*)this)->AddHonorListAck();
3 [# S4 t- G! p$ H5 x" z g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ A1 G2 c) w3 J0 Q' G4 F#endif // __HONORABLE_TITLE // ′Tà?
$ @9 K8 i* `1 o }
6 T6 A( c+ |* Q. N T#endif // __WORLDSERVER
4 p3 {# J) i; u+ ?2 a/ H9 f* M+ B: T} - W" z" @; J+ H& n+ T
, k( t9 u: L4 E# A ~3 L然后你进入functextcmd.cpp并添加以下9 d: ~2 t5 I' q
$ l# e: j, w! @5 u* \- D
代码:" T7 P3 ]2 Q2 K7 J( P/ a' L/ p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 c* P1 H& x- H/ C
下面插入% x: }0 ?4 s0 {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " W; D% P) U8 e9 z5 N+ F( i
4 K: c0 _& D0 [5 U: G然后你去
+ W( R# g d+ Y' H- L* R/ {5 X+ ]
+ z6 e; x0 |* o D: o$ h4 O9 T& e代码:
: v" U: O9 k3 f0 v8 [% s9 T代码
; t) |( S2 j- d4 H; J' {0 \4 {BOOL TextCmd_ClearPropose( CScanner & s )5 F( A8 |, l, z0 V
{
6 f6 i8 L4 k4 h2 p' E8 L/ _#ifdef __WORLDSERVER6 o8 r6 M7 n" Q# O' A& \
CUser* pUser = (CUser*)s.dwValue;4 f& J9 V6 F' o
g_dpDBClient.SendClearPropose();
8 V/ o& K5 d$ V* i# T3 f( @; x#endif // __WORLDSERVER, ]" J3 C* M, E& O+ d$ Y$ P' q: B
return TRUE;
& D% j* N; W& D- k" u2 S6 v}
, {8 G; w$ k6 E7 w, g3 v下面插入: q2 {) ~) r5 i7 n& Q
BOOL TextCmd_rebirth( CScanner& scanner )
" [5 E) W& j$ `/ H& t% P& t1 J{
1 G6 h2 i* A( y& x: [#ifdef __WORLDSERVER8 ?+ b- }% J# Z
CUser *pUser;$ ]/ }* U9 \ q
pUser = (CUser*)scanner.dwValue;
! y3 ]! l' N7 j4 s- r+ ~$ bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' y) v( D- C% I( m: @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 T- `9 t9 r O* o6 k
else
0 i: o- x. q( l' Q1 qpUser->AddText("你还未达到重生条件!");
: u0 `$ w& K2 a+ H! w0 [#endif
; E' ^4 u9 b! T- m% P7 L* mreturn TRUE;$ u& o8 `- |9 \: @# h
}
6 k/ ~3 c# K5 G+ y: ?) x( `, f6 y% E
0 P& |1 B# J" M6 x \, c4 X2 k! L$ l
% h) F5 B+ @9 A) m
5 `! F; M, F& c' ]( W, ^ @ R% g) W1 z, c$ u
|
|