|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 C" A/ i/ }$ t1 w6 U6 O
. G- ]6 @; w& L( C" X. G9 CMover.h& L# b8 d0 w1 d6 f; f
代码:2 d4 f$ z0 T* [( \, I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# i/ S$ y4 e# |! T8 o
' l. C9 I+ D" K3 M" G3 I, M& C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' h; R1 p8 B# C q! j3 R' T9 r: L
: J4 |& A ^" e9 s: u然后你去mover.cpp添加
; `/ ^ A, v' H
' ?+ X6 L9 Z# g/ ?8 x X代码:
$ F& p) D" D) _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 @& M# T+ L7 M2 E' l% G2 i# |9 Z$ m5 m{% H$ G5 `$ s' `+ f' `
#ifdef __WORLDSERVER$ k: \- T8 w I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 T3 e; D- f- M E+ Y4 C) X- x MoverProp* pProp = GetProp();5 \& D3 C+ J& W' `
if( pProp )
9 X* ^" n- d& c' H z4 X {' t" @9 f `2 A9 K" ?) i" o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# t5 k5 w9 k* _* l7 f$ U {
( p, D- B P( p5 c4 z% v8 }' m AddChangeJob( nJob );
; ~* n! O- d2 {; [7 j }else{8 t1 \# X: e# W6 j8 K( V( ~% Y
return;4 N" N4 L7 Y& g* a
}
% g0 d0 a% `4 r+ K( o6 q int nPoint = 0;
- H0 R" S7 L& W3 {* C if( m_nJob == JOB_MERCENARY )+ n. |; l! C# ^5 i) H4 r* g
nPoint += 40;
0 E8 n1 N7 _0 ` else if( m_nJob == JOB_ACROBAT )* e h, c, \% T& \' P* z
nPoint += 50;
2 p! T5 g- l6 }+ @6 z6 ?) ^2 e else if( m_nJob == JOB_ASSIST )5 n/ g$ S7 o" M( i* s
nPoint += 60;
. E g/ \1 y( z else if( m_nJob == JOB_MAGICIAN )# L8 V/ [! W* A
nPoint += 90;6 z6 u7 q* r; v' t& F& L0 ^+ f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# b/ W+ Y# t# j* y
nPoint += 120;# T a9 \. K; i# m l7 W
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. Y# E6 W6 j7 [& t9 { nPoint += 150;
# K7 H, i) L) r" d else if( m_nJob == JOB_RINGMASTER )* a1 }% w" ?$ A0 F ?2 ^7 Z
nPoint += 160;
, k) ]0 f4 [" O# o4 C else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* L& @. A6 x' G
nPoint += 180;
H& U. S3 X& k5 O( N else if( m_nJob == JOB_ELEMENTOR )% o; u. n0 ^2 l0 B6 ], g$ l
nPoint += 390;* M* Q; P" t1 _0 b! ?" H' N8 S( {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 w1 l6 n2 L& ~ u/ W
nPoint += 120;
7 |: A& f8 p5 |+ e" ^/ y9 ~, M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 D) M( R1 z Z; H F$ M nPoint += 150;3 \5 R- o/ }; L/ [; ~# l
else if( nJob == JOB_FLORIST_HERO )
6 L% p4 f3 \5 T4 m nPoint += 160;& I0 J9 u$ o Q% Y4 P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! M/ j/ r' R4 Y% ^! G+ e nPoint += 180;6 w" q% X! |9 b1 ]
else if( nJob == JOB_ELEMENTORLORD_HERO )$ @3 L! _% B+ ~; n$ x' }. t
nPoint += 390;
4 }7 `& \' P# t/ }: F# h- m' I/ Y& L/ y: Z1 H+ K- }4 ~3 v! l
AddSkillPoint( nPoint );6 J. x. f; F8 r5 R9 {
m_nLevel = nLevel;' S' b0 g' R5 ?5 Q
_% c9 t5 Q: g" T& E* X, \3 b) J SetJobLevel( nLevel, nJob );( V9 ?! H: d4 z0 F4 k4 l; F. `( Y5 q
m_nDeathLevel = nLevel;% M& _) H& p1 [: e8 H+ n1 H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& r. E8 o+ M' T$ H
if(IsMaster())
, U1 c8 e( m8 ~1 [+ X {
`1 M0 Z1 t) B- `- i) ~1 i int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ g: M4 b/ D$ ~+ n3 n9 Q
if( nLevel > 59 && nLevel < 72 )
8 p* J6 t4 F" ]& e$ i$ a dwTmpSkLevel = 1;- A* u2 _2 n7 g3 i
else if( nLevel > 71 && nLevel < 84 )
0 n7 E( `% @/ S dwTmpSkLevel = 2;
& \; f- H! d- m, x( O$ n else if( nLevel > 83 && nLevel < 96 )/ T7 g3 O/ D: C
dwTmpSkLevel = 3;
/ c: K, R( a- f% }: X( ?- ` else if( nLevel > 95 && nLevel < 108 )3 d( J+ C% A3 I1 u1 z- \
dwTmpSkLevel = 4;# X9 p, W# J: v) _3 t5 M% w
else if( nLevel > 107 && nLevel < 120 ) Z6 d, `) z5 P$ x6 M4 B
dwTmpSkLevel = 5;
: b% G! @4 k9 w& v/ u8 E for( int i = 0; i < MAX_SKILL_JOB; i++ ) - {0 K, q i0 L- Q, ?: Y
{
5 u" K/ r+ m0 a8 ^# R LPSKILL lpSkill = &(m_aJobSkill);8 I0 O* v' Y3 Y. ~3 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ ]& X9 _' t4 m5 T
{
3 k& N( w6 G# \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & m) m1 U; |: x2 O1 h: Q9 B q
if( pSkillProp == NULL ); q' C, B9 e' B; i2 p
continue;. G5 w6 n$ \( n" P* [* {( F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, {$ f: z* K4 C# m' \7 x* Z p continue;
/ e& A, ]; r$ V6 d* Q; v lpSkill->dwLevel = dwTmpSkLevel;
2 S1 c5 _( b: b2 T }0 P6 n; c+ g# g% K* E
}
4 K/ J) a' [# c- D! D1 p$ x3 r; m }
0 a% @. g3 `8 S$ l else if(IsHero())
$ U% ~ u/ E# q {
! n& y# U: W! h" O7 r4 ]) q9 j for( int i = 0; i < MAX_SKILL_JOB; i++ ) + O- t/ w: m4 K' g; w
{ - y6 t0 o$ \! J3 n, T' Z4 C
LPSKILL lpSkill = &(m_aJobSkill);
3 J- x0 O. F! V7 ^9 E if( lpSkill && lpSkill->dwSkill != NULL_ID )$ M4 ?( O# ]8 {; y: q
{
2 p# n! x( a6 `4 F. j% O7 m5 a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: l& w0 K+ D. \$ G k, T# \ if( pSkillProp == NULL )
/ i: A' ~/ j( P3 x; h0 t+ c- g continue;
& M0 ~* J. v( d I' P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% e$ O4 }( n5 q0 y
continue;) O' s: R' N% W M: B! k7 O# @
lpSkill->dwLevel = 5;
( S" j4 p% S& J }& _( x; |9 P: ~4 z( E# ? t, z
}0 z8 B: I2 V% o
}
`" c; U$ w8 E I7 d8 h else if(IsLegendHero())
1 i$ J3 {' B. {+ F+ w ?, K {
: Y* e7 G; J1 z for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 R9 h5 V5 b, j% \3 K5 F, n {
+ s# E6 o1 @* D) B LPSKILL lpSkill = &(m_aJobSkill);
8 y) l0 ]1 S- r. ] if( lpSkill && lpSkill->dwSkill != NULL_ID )% \- m# O0 m( b! Y- C
{% J: O0 H$ S8 `+ g V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , ?* A' j, V; v/ u; k4 b
if( pSkillProp == NULL )
6 X* H& {9 S5 {% A5 l continue;" s& P+ P( u% V: w, k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ r `0 f7 j. X% ?2 Z
continue;0 l6 Q$ n5 n' T# ^# C7 I
lpSkill->dwLevel = 5;
8 A; ?- v4 h6 q7 {" y5 Q/ Z3 p% E' p }
$ Z. E T o$ P& s& ^ }5 L5 t5 a4 C; }1 Y, @: @" S# A
}# S; `; `; ]1 w2 L% D+ q6 ?1 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( R/ V- I$ ^' W' r if( bGamma ); S8 u5 j5 Y9 {) g' A9 p( j4 f
{
0 N+ T- K7 h8 F) D+ a7 r m_nExp1 = 0;' ]6 \6 P+ R. { @" D, J
}
. r2 \, C3 t3 b: H, b |- ^& D/ c, E" h0 [$ r6 I3 [, z5 _
( (CUser*)this )->AddSetChangeJob( nJob );
% k# o- P$ {; e; l$ T7 y2 ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 L: s6 T" A, ?: ~/ a1 T# s9 i6 W& R1 Q
: p) z# U" A2 A: w, V
#if __VER >= 11 // __SYS_PLAYER_DATA2 z+ w) ~! b3 f$ W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( K/ m. V% s* f' ~
#else // __SYS_PLAYER_DATA
5 t6 O( X4 ?9 O7 Z9 E+ A8 e8 l: d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- M# ?3 z& P7 U/ B) I- C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 u% g/ t9 K( p$ r: t+ a. Z if( m_idGuild != 0 )6 r7 g, @2 q; Q3 u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 t8 T: c& f% @#endif // __SYS_PLAYER_DATA
/ m3 Q9 J; E8 {( e2 [3 a SetHitPoint( GetMaxHitPoint() );
. t+ p) c$ R7 X/ B' P+ s$ f# c SetManaPoint( GetMaxManaPoint() );
. z$ a. ^ o( z; _( O& t- B* X SetFatiguePoint( GetMaxFatiguePoint() );; w- O6 E8 {0 ?( b
if( nJob >= 1 && nJob <= 4 )8 B; P8 L: J1 ]* Y& a r. g
{
3 ^; a/ l9 u3 f! e. Y m_nStr = m_nSta = m_nDex = m_nInt = 15;& U. P) A( Q& i* k+ i7 u6 a
m_nRemainGP = 28;
& g! i8 C) M: y4 y+ ~ }8 m) ~4 x4 u$ K, Q3 Z- d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( c: X5 A0 |6 s. d9 P {- F+ J, Z! L* D2 u* h/ p/ ?
m_nRemainGP = 118;
$ o) z% j( e' ~$ R //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 R/ G$ y q( P( a- W3 a m_nStr = m_nSta = m_nDex = m_nInt = 15;) { Y# F9 J% b: S' m
}
- [. c4 V0 y1 v* g9 b$ y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 m* Z7 E: I1 J {
8 G; ]3 N$ ]% Z8 e7 h+ e CItemElem itemelem;
5 S! v" U9 u( F4 \& H, J# v itemelem.m_nItemNum = 1;. d7 M# ? N9 n C
itemelem.m_bCharged = TRUE;
. [' ~8 J' k" p" Q4 O. z BYTE nID;6 i5 D2 v/ x4 c/ {/ `& N
' S0 B% P0 c) d$ ?
if( nJob == JOB_MENTALIST_HERO )
" E. N1 T* O+ p) F1 z, i5 E I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 Z- n/ Y9 [/ }3 x' u. B
if( nJob == JOB_FORCEMASTER_HERO )6 g3 I5 G$ B F3 B# A: D- d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& C$ [8 [; S: x
: v" h' K+ J& k5 | ( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ ?& m/ n- S5 l. n K }
$ r6 B* U) Y& F% ^4 Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 L+ d! A* U0 Q w3 V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 l* V E: `+ s
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' `0 _0 M% f& i8 w/ w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 u( [( _- A* Q0 V# D4 x
( (CUser*)this )->AddTaskBar();*/
* y: W+ Z* M& r3 C3 v, x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" N! W' @# E' G' p9 d- K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: w4 ~- e ^7 P3 k ((CUser*)this)->CheckHonorStat();
6 Y0 ]7 b) q: e- y8 _7 x ((CUser*)this)->AddHonorListAck();, \+ Q% Q- `; W
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 y% ^0 J9 `/ \#endif // __HONORABLE_TITLE // ′Tà?/ z# K0 S; G9 P1 ]6 d: g
}2 Z. q0 k' c9 G
#endif // __WORLDSERVER
* l$ p6 ?4 H) x} ) x+ P' S, J8 e* a
1 r3 s. D) X& O0 z3 A然后你进入functextcmd.cpp并添加以下4 U7 d; D/ L2 l4 b, `8 v# M
4 e/ _: T' d. F: w
代码:, Z" }( ~) H6 _" [* A; B( y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 C: R( Z8 F6 \* Q: X0 _8 ]! p下面插入
+ h1 \& w% }1 v$ }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( k" S8 w: {0 d" q% O% Y ?
. V6 k+ a, D1 B" x
然后你去; |" _, J+ @8 X9 z; @% S+ m# k
% Z1 L' E- a) m
代码:1 @' Z, T: s) K% v* |9 g8 A' ~
代码$ D: S. }* j" E8 N
BOOL TextCmd_ClearPropose( CScanner & s )+ d5 M4 K/ Z3 _" C% J, L
{6 _" Z4 X0 j/ B2 J4 c: q
#ifdef __WORLDSERVER
5 s4 _6 u0 u1 y+ y& M CUser* pUser = (CUser*)s.dwValue;
/ _+ q1 o8 z) b g_dpDBClient.SendClearPropose();, d! V" B/ v, ~3 ]( D
#endif // __WORLDSERVER
/ A1 x; B" Q' H- P return TRUE;
5 h7 m$ F& \ g y}: i: k8 v$ G9 z2 u% l0 \
下面插入; E6 e# G/ \0 p, K0 R
BOOL TextCmd_rebirth( CScanner& scanner ): @& M% m7 @. b# Y0 H
{" U% o# w2 n& ?1 Z" Z3 _
#ifdef __WORLDSERVER, F/ I- L9 `; u3 `9 n" o
CUser *pUser;7 I z7 X" i* c- g" [
pUser = (CUser*)scanner.dwValue;
3 X& r3 h* ?! D. J& g1 bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: j; Y0 C5 `, \: { cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); g3 D0 f/ Q. w0 x5 t' e$ _8 j
else
- z: e" I# D9 a! s; ~% zpUser->AddText("你还未达到重生条件!");/ C; `2 O$ j# H
#endif& N) C/ d( |* T2 I }
return TRUE;
+ q5 V: o r1 l; c: `}
* |, z# o% | ^1 o, g) M, s
: y0 Y. x" e s( l" ?1 R. A
0 \2 i* N) w: \1 E7 `8 ~* Z& x2 d5 r, }, y
1 z' K {8 z, o( H: X( s% C' Y, p& m7 { |
|