|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ P1 Z1 U4 y* F/ f) g5 ]" K
& c4 A1 ~% g# |- i6 {
Mover.h
) H! d0 r, _! L2 D7 O: r1 ^代码:
- v8 K6 o+ V _1 [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 I" s" o) n* O+ D3 L
2 M, O7 Q+ _% K, i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& {+ S( q5 Q$ V$ K9 w3 a o) V) t' M7 \2 S, O+ R
然后你去mover.cpp添加" M3 [7 A; h2 Q+ }
# f4 p" l% S3 o6 y' O& O代码:
. q- a' b! o6 rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' z$ Y7 @. E: |& U# W{
9 E ]4 o8 O8 T- X#ifdef __WORLDSERVER7 I0 _% E( Q3 c* P# K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 g" M) H6 _4 Q+ I1 c' a MoverProp* pProp = GetProp();
* f/ T. h! m; S. W6 }# I6 u) T if( pProp )+ S, W) Z) S I6 B+ c
{
' }- p9 I7 K, T if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, w3 Z! ?( W7 d4 [2 A {
6 h1 [) s- H- R+ A0 ^ AddChangeJob( nJob );/ ~4 f0 ]; n u1 J+ x8 J) X
}else{
! U, m- }* {; T n, l6 V return;
( V+ w! [1 U% p. q; } }8 [% h q# J/ A+ R) b
int nPoint = 0;
9 X) F1 o& V$ U6 O, f! F( c) b if( m_nJob == JOB_MERCENARY ) D$ S: G5 m2 L' Y5 H! D4 L0 X$ ~
nPoint += 40;# S) J0 ]% J7 F9 ]- Y* [( U" c, d
else if( m_nJob == JOB_ACROBAT ) J- s# q b/ Y
nPoint += 50;
5 T( V, }; Z1 ~7 [& b; w8 i else if( m_nJob == JOB_ASSIST )
5 o/ x9 Z0 |( W1 M Y7 b nPoint += 60;
) r" n. {$ J9 W6 J else if( m_nJob == JOB_MAGICIAN )
( P% A; [( E5 n) P; ~9 | nPoint += 90;
2 ]% h8 @% j6 j+ P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& \4 {$ y0 L i5 [/ M' W% O) F" C nPoint += 120;
8 [+ Y, l, a4 t; F+ J7 O8 e u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 D2 o7 r, Z4 k
nPoint += 150;
% @9 M: y! J L7 a4 x# w' a% @ else if( m_nJob == JOB_RINGMASTER )
/ y* V' u2 t( f9 k nPoint += 160;. F+ A* z2 h; Y9 W& Q. I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 Y5 p# X: T, X. f; u nPoint += 180;
" D$ i4 z. ]' p2 _* T ^* [- [0 ^ else if( m_nJob == JOB_ELEMENTOR )3 k$ D* D0 X& N/ K4 L) t7 W) d
nPoint += 390;" _2 l/ P* ]( |- q0 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. R* ~/ \2 V( G% j( Q' H' c# U, m nPoint += 120;
7 R9 u# X. z2 }) A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- G: \+ E; {4 A7 {( [7 r' E! A nPoint += 150;
* J% j/ I; y6 B: m$ T2 o else if( nJob == JOB_FLORIST_HERO )
$ }7 L$ M6 ~# t, n2 C% ?4 @7 T$ s nPoint += 160;
; b# b; e, g3 D4 g- P& K$ I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ X( R# I/ R9 l% J1 v! [) H nPoint += 180;# C+ e! A, f4 t |/ A6 _; A* @
else if( nJob == JOB_ELEMENTORLORD_HERO )
* A* |* ?5 l5 o. q7 b6 u, L: j5 J nPoint += 390;7 q# A# ^& ^: P8 w# j& N3 R
" N: Z* b) q& m! T9 Q# _- ` AddSkillPoint( nPoint );' S0 `' S; q% a. I
m_nLevel = nLevel;
! H" I, {! Q; W5 [6 J& k8 Q" _/ ?8 T$ x3 c) @/ [, h) l) A
SetJobLevel( nLevel, nJob );
: V6 y0 m( Q" ]: l5 h; [5 q1 v2 B m_nDeathLevel = nLevel;% c+ P: E4 O9 F& c- K2 y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# V; m. J2 t3 h+ U ^ if(IsMaster())
6 i5 n2 \6 F. R7 O) g) S% g {; G) I8 d/ J$ n* P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 b$ Y7 l0 ?, I. C) r$ a
if( nLevel > 59 && nLevel < 72 )" a- d& L$ T* z. V0 [
dwTmpSkLevel = 1;' S( x! e! y B+ m. X' W
else if( nLevel > 71 && nLevel < 84 )
9 \4 {# Y! `* K, C* w u dwTmpSkLevel = 2;0 j( S( u' o7 Y3 h3 a" B/ T* S
else if( nLevel > 83 && nLevel < 96 )9 L. ~, l% [( ]8 S0 L/ {
dwTmpSkLevel = 3;
. ?/ `* i K' s- k else if( nLevel > 95 && nLevel < 108 )
3 }" }; r R4 C dwTmpSkLevel = 4;
1 M+ V( @$ O' J" ~5 [ else if( nLevel > 107 && nLevel < 120 )
$ t' Q) v0 ~; K dwTmpSkLevel = 5;3 ]2 ]* h- r# p) X3 D! I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 J" r0 c! w( a3 e8 E3 F# W { 8 X$ K$ y* t1 x m- m
LPSKILL lpSkill = &(m_aJobSkill);$ k( H3 Z2 Q9 s6 m- ~" m; `5 q& l7 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& {# ^% ]9 t3 y T i% M: J6 o4 G' b {
! S0 J; Z5 M6 w+ w0 { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 z! S" X- _3 { if( pSkillProp == NULL )
$ u8 Z1 W. _# J- ?6 o5 g9 } continue;2 k) ?+ X4 p. j" E6 j% I6 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! r& ]. Y$ b8 F6 o* Q% w/ h u u& S
continue;
8 l- `) ]: A& _4 x, Z/ c lpSkill->dwLevel = dwTmpSkLevel;
( M* g/ K; n7 Y }: F1 Y8 h6 @$ ^. j7 e* \6 Z
} o5 {! x8 g1 A8 s' b& ?: ]% k% I
}
# E1 e* l8 Z4 [ else if(IsHero())
1 R |& I+ N: e, P9 k. ^ {. S( }; s, O5 W( K( |; S* ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( M; g8 H% `& E' v& D { $ F9 o6 y# v; ?2 W/ o H6 e8 e4 X
LPSKILL lpSkill = &(m_aJobSkill);
9 U5 f6 ~8 l3 z; W if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 C3 c( g) F, c1 G {
) e" G- O+ p( O% A6 r* ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 E3 ?0 X2 f- A' r1 V( y
if( pSkillProp == NULL )" Q( q; ?) S2 D/ w/ \4 k& e% w" P% q
continue;
* ?5 E: a# y5 V+ h: ~, c4 \# E2 g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 {) D6 n" W4 t C& \. }# Q2 A
continue;3 P4 [- h6 m# j3 s }, q9 h8 b6 S
lpSkill->dwLevel = 5;
- d6 q, L5 K3 N a$ I }
: H. }% Y) A; ?& q8 ]6 Z% V6 P) S }
7 u7 V7 J# I6 H- ]+ w: N }. X( \/ k! y' Q) B0 z" w2 g& G
else if(IsLegendHero())
4 n z6 ~* N! I, o- Y3 M; |! t {8 o5 T3 R3 J7 P4 M8 y+ f8 N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# I- c+ g5 T& a/ [- }( |* U9 s {
+ x5 h2 N7 Y6 W3 |+ \4 L0 G LPSKILL lpSkill = &(m_aJobSkill);
" w+ P P1 c* g+ ^( C if( lpSkill && lpSkill->dwSkill != NULL_ID )
' } G: v1 M6 w" Q {: e9 ^! c& m+ e1 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 P/ b' {8 v$ E5 t2 y5 `6 |
if( pSkillProp == NULL )3 E! V% k# v; C- E6 q
continue;- i" b/ j; @) l! L; J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 J# e! y0 R6 t5 V9 P continue;
1 ~. Z; w/ L' H lpSkill->dwLevel = 5;
; {1 ?9 Z/ M2 u1 @% @9 z }
; x+ I) U- ~, i }7 o1 c }6 }8 G/ L4 v" W) J
}
* v' Q% n4 @3 S7 p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ `1 e ~( e9 L1 E" M( W if( bGamma )
. s# ~2 W5 R. m# g( q! ~4 c& T {
8 m* @" Y% r* }9 @9 p3 }1 T m_nExp1 = 0;3 }" S; `9 n( k1 H% a
}' |/ h; ?$ Y% w& c0 l( U
. l! z: ], E, M0 E, t ( (CUser*)this )->AddSetChangeJob( nJob );
$ ?- B9 F% R$ F5 o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" x1 t, ]6 l4 L6 M, K; C3 L9 \" P5 n$ r
( E; p# B4 {0 b" [- Z, x: g9 [
; o$ l6 i: a R
#if __VER >= 11 // __SYS_PLAYER_DATA& {. b( t7 [# n/ F* o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- r3 N( S7 @6 e8 r) Y* P#else // __SYS_PLAYER_DATA
& S/ J5 f1 }9 D2 A6 z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 K J! o/ D" o# V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- C6 ~& t# Y! s5 X9 O, v+ X2 ^ if( m_idGuild != 0 )" O$ |. J8 e( H1 @' E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; d2 X/ F% s ~" L* U3 E1 _$ W#endif // __SYS_PLAYER_DATA% g. T0 A6 d/ ]/ @
SetHitPoint( GetMaxHitPoint() );) Z5 \0 b! g+ l8 ?, i4 U
SetManaPoint( GetMaxManaPoint() );
. n7 t6 W5 y a; k g; I+ ` SetFatiguePoint( GetMaxFatiguePoint() );% M9 @& p/ N. A. }! a- q
if( nJob >= 1 && nJob <= 4 )
# ~0 W0 S# \( N* f, P: c {
( V {, {% {' T! D m_nStr = m_nSta = m_nDex = m_nInt = 15;" Z/ F; v0 |% B$ D: y5 D
m_nRemainGP = 28;5 y6 _+ V7 r; G/ B: m/ r
}8 c/ Q* e; J* L$ ~; j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ j- b+ B0 m4 q* A {. u. w8 v) o! a2 I
m_nRemainGP = 118;
+ d4 T# E- X" c/ S( e- _& c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
z; T7 q& d# J+ e+ d2 e m_nStr = m_nSta = m_nDex = m_nInt = 15;
; j- \% D+ L8 y }
; F: w- R. l0 }/ X9 G) z) p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" o0 \, V/ q9 g. L/ N {
_+ k3 i' s. Z CItemElem itemelem;: b, y5 \+ L) y1 `, ]4 T
itemelem.m_nItemNum = 1;6 m3 m* z+ T( ?) k3 b9 D
itemelem.m_bCharged = TRUE;
; K& H1 r6 N9 v0 ]" B; L: d5 W BYTE nID;
. N4 T* m7 J* \& G% g" f1 Z& _, v* ]4 o4 G" X* s( B7 \( [
if( nJob == JOB_MENTALIST_HERO )
8 I4 B& q; ]$ `& g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) w/ C; [2 ?: b; x2 O
if( nJob == JOB_FORCEMASTER_HERO ): ]) T7 k. e. t2 Y* L$ m9 ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 b; V6 s4 {& R/ U( _0 q$ `2 f
" f6 ?9 C' }; u
( ( CUser*)this)->CreateItem( &itemelem, &nID );- T) s, q( N9 k+ j' Q/ _
}4 K; b1 B9 o& E3 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ }0 U* ?' C6 t( y+ p0 p7 P7 q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 A2 F: r2 }% g- Y: e
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 X& \1 h: O" C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# h- x1 |0 |- K
( (CUser*)this )->AddTaskBar();*/
. E, d! [# f% N1 o2 v( o t3 ^9 B: U' J1 x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 T A! o, k6 t9 @- o#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- v9 n* B1 x9 T/ N
((CUser*)this)->CheckHonorStat();
`: v s6 d( s2 v4 e" V ((CUser*)this)->AddHonorListAck();
% v+ p1 l! X$ l g_UserMng.AddHonorTitleChange( this, m_nHonor);
; q; _# H* u1 D+ }, ?! H' u#endif // __HONORABLE_TITLE // ′Tà?) R8 y. q! ~* o4 T2 {
}8 t# G0 d- V$ }
#endif // __WORLDSERVER/ E& X( f( ~$ w: X) Q
} , |* U0 {# ?; d/ w4 g" g0 N+ ~2 |
3 | h! n* D7 \3 ?6 E& P# ]
然后你进入functextcmd.cpp并添加以下
. z% o2 Z) i7 I) A3 z9 u0 P8 `9 c* x0 G) M2 r- w7 ~
代码:
( `& A+ X% t' {( Q1 CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' }. n: g7 ?) a5 G6 c8 G下面插入
' ?" N5 p7 a! v! }. j* aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # I% E+ V5 }. |; E% n
2 i6 [) t. {! z! g6 @然后你去
8 y* x; D. h2 y4 h) I: M8 z: ]8 _; ]1 M& w
代码:
8 l( T; Z- L: A1 t2 Z7 r4 g; R2 Z代码
9 B/ }4 D% U1 c. B" DBOOL TextCmd_ClearPropose( CScanner & s )6 G" G0 i! i d( r) q/ [
{
! B, i2 a' G( D5 z# ^( t' ^# f#ifdef __WORLDSERVER
' ]. o5 l s( v- t CUser* pUser = (CUser*)s.dwValue;
9 B/ K; q% \/ B) }# D; H g_dpDBClient.SendClearPropose();; Y) U# Q; F4 K p$ q
#endif // __WORLDSERVER
" u2 b% R5 k/ l! I7 q return TRUE;$ A i6 ?7 p F! v% b0 z$ B ^/ e6 I
}+ f. w2 X! k9 h8 N! v& J0 ^
下面插入9 v' N; o+ \; u$ J; r* V A
BOOL TextCmd_rebirth( CScanner& scanner )
8 r1 O, a Y4 I3 K0 K* J{, U& p3 W& c5 g! T: H$ t
#ifdef __WORLDSERVER. A# }1 Q9 h/ R8 u) j3 j3 ^5 T
CUser *pUser;
p# {/ L: o" upUser = (CUser*)scanner.dwValue;
7 [ D8 n: q- r* yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) T7 k- @: }7 y5 T+ s% n) {; L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* q* {( {" A( Zelse3 Y0 y0 Y& o' z5 s0 f8 h
pUser->AddText("你还未达到重生条件!");
6 o& g, w3 [0 s( T3 c#endif
# H+ j+ x& u6 A# E% M* c4 Zreturn TRUE;
) E7 b- G! ]: X8 ] o, k2 L+ x} ( g3 J1 a$ t2 S- I- r& L8 M! n
0 ]+ i8 c( N' n: y; J1 |: q/ e, s
3 s, S* h7 o- c; b+ ]
7 c% M' Z( e6 ^ |
|