|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 h' w3 y5 N9 O
% D3 {0 }! M) o' E: D8 @Mover.h
! D% ^3 T# c* x% k7 {/ {7 O代码:
7 ^* ~# F2 S( v9 ^1 T: `找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& i! A" m; }2 d7 O, P5 F
# J" {9 a' O* S; Q9 b3 d) X+ k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, C9 R1 n, r- q4 E# g
) z( a+ [5 j& f, H+ K* @然后你去mover.cpp添加
7 T# \. e* r8 @9 H! [0 h5 `! k0 u: d2 w. ~( q. ]9 N& c
代码:. p, r, i# k5 L$ O: O! h) }& U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" ? I- V8 D& ~9 v- P) A. L+ X{* r* [* Q6 l% Q5 W- u4 {% l! d/ e
#ifdef __WORLDSERVER% H S' `4 Z9 E; n# e" A1 T: W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- c# x- I! k, ~2 u/ x6 n3 ]9 E0 k
MoverProp* pProp = GetProp();. o# ^6 C) b( v$ X- {9 t' u0 G
if( pProp )
& {3 z, g; p T5 R; n4 i( J {1 I4 f5 p+ c* ~* R+ k5 Q" s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 S S( @; q' \% Z
{
0 M c8 @9 U. a0 `3 q6 ~$ V AddChangeJob( nJob );
5 y/ A& L: J3 K# i! m }else{
% g( Z" o! `- d1 [# P return;
5 H% e$ z4 j" N L* A }
0 O: S z% c) s, u4 G8 J! { int nPoint = 0;- h. p2 D' @3 C: c. B
if( m_nJob == JOB_MERCENARY )
, n3 n" C6 O! F \. R1 G) ? nPoint += 40;
9 z7 e7 W$ O# C* f, l) J G else if( m_nJob == JOB_ACROBAT )
2 v- ?( E! j# j& r) h nPoint += 50;
) n2 K! v: J* V" F) h' E4 o& ` else if( m_nJob == JOB_ASSIST )5 H {( P5 ?% ]
nPoint += 60;
2 B9 i7 R1 _- b else if( m_nJob == JOB_MAGICIAN )
) s: H" I( V; o& L8 ] nPoint += 90; M' G# w# P, A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# B7 l6 M0 o- ?. j" b! M- M nPoint += 120;$ y! p7 A- s3 u. [; Q2 k$ ^, T4 L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 \, q T, u; O4 e7 S nPoint += 150;% A" }8 r: h. t$ D4 V7 c6 k* j1 x+ h
else if( m_nJob == JOB_RINGMASTER )
3 H5 W1 n6 e F" J+ d& v& a nPoint += 160;5 C K; ]7 z- o& [" V. ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- m0 i( i/ `9 s$ `) b
nPoint += 180;$ w2 z" a7 p$ w& N# K* P% F! e7 x! M4 _
else if( m_nJob == JOB_ELEMENTOR )
/ b o y" I) A$ \* i' L/ L nPoint += 390;
; T' i0 K3 F! D' w4 j9 T* ]9 b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" ~4 v% w, K: m/ @- N- I
nPoint += 120;
6 I: _$ ^, K/ N' @* A- z9 B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
r( Y- O' ^0 a4 k* G) z nPoint += 150;
! X) g/ s( G& W! M7 c else if( nJob == JOB_FLORIST_HERO )
; p" t( f% j7 b& h% d: X5 o nPoint += 160;
" ^& I$ w" C7 I0 ]; F1 ] else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
o* ~8 b5 @/ Y* u nPoint += 180;" S+ K. H7 Y/ C2 ~9 G
else if( nJob == JOB_ELEMENTORLORD_HERO )
# Q: n# V4 v) H f. E- X* D nPoint += 390;
6 i3 i& F* P: J' U6 J
* ?$ A2 d# y+ a* K8 y AddSkillPoint( nPoint );
& t1 q: m; R& S- r# [$ a: q$ m# S m_nLevel = nLevel;/ U$ b4 s9 |2 n& h& C# |0 L
+ P2 h2 {0 r! k* R2 V; X4 J z$ e
SetJobLevel( nLevel, nJob );7 b/ N7 d# X$ @& D1 j/ z
m_nDeathLevel = nLevel;
. G0 S' ~+ K# W! q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 W0 I! W `5 _1 G) N' {2 z
if(IsMaster())
6 a. u o$ ^4 M {! N D% N6 M: \3 I: @' @: j9 Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 f+ @. I; _1 ^2 u( G7 j, @& j
if( nLevel > 59 && nLevel < 72 ) N/ E4 a! v9 e+ h
dwTmpSkLevel = 1;6 p ]& J% T6 K# B2 n
else if( nLevel > 71 && nLevel < 84 )
' i% d' n7 F* u0 y dwTmpSkLevel = 2;
" g0 y. O! s1 N else if( nLevel > 83 && nLevel < 96 )
- O8 T9 m2 k1 N/ N1 x+ S: A dwTmpSkLevel = 3;
. I& E4 L/ R* b# ? else if( nLevel > 95 && nLevel < 108 )3 O& x* E: v& s
dwTmpSkLevel = 4;
: H' v* K0 E& T9 ?; `: b- B3 r else if( nLevel > 107 && nLevel < 120 )+ h& U g# o4 f4 I) c8 _
dwTmpSkLevel = 5;, ^' e5 D7 b P F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ n( m. x3 L) ]' B {
$ K" @9 _& s% N/ k LPSKILL lpSkill = &(m_aJobSkill);. P8 a; h' Z: u; W* k8 n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: Z {: p! }& y7 e2 K {
O+ U. ?- ~5 `! U" V; D2 q8 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 U* _9 b1 Y" R/ W3 w if( pSkillProp == NULL )
: d: L' I1 V$ m8 R2 m continue;, W) ~4 {, h0 G3 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 [2 X9 C4 }# X p continue;) a8 a/ ]3 E4 L1 e; i1 j+ P( A7 q
lpSkill->dwLevel = dwTmpSkLevel;
5 m) ?0 d; |& F$ p. D/ p; I- {$ Q }1 W, Z0 p$ M* E6 q+ }. w
}
- R8 a$ O0 K: X4 h; u" o) N }
8 F2 O/ d+ x8 Y: B: @ else if(IsHero())! Z& b4 c* w+ T1 a( {" f
{& S9 k3 H7 T- l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) M: X+ @+ m G0 M( j1 D
{ " X8 I! m4 u) B* o6 Y
LPSKILL lpSkill = &(m_aJobSkill);7 i' j6 j4 N2 e, R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: q) w3 s2 L$ N" x9 D) s% Q$ S% J {. u5 ]0 @/ V. T8 L3 B- d! _7 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 }& u9 \8 o5 s( s3 C% |9 r if( pSkillProp == NULL )
! l! p% D, q- O: t continue;
( s% }- Z8 J8 r) S# M, W6 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 R: P: H; B) r0 ~" J
continue;) f V9 i7 M8 ?) e
lpSkill->dwLevel = 5;
1 A+ D1 r: J/ k7 @# j/ h }9 r/ r+ e& C, v" w& M! E: u3 g
}5 @1 Z: d1 r7 O7 x' N, V
}
' v1 e8 B' n% u' r, j7 t* X else if(IsLegendHero())
9 |% x8 i, q0 F* F {
. J1 P+ O5 u6 `5 _" J4 C for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 V$ X& P; L6 @, {5 O* S {
( j! r t r2 c; j X8 W LPSKILL lpSkill = &(m_aJobSkill);
% ^2 t9 }) i. R9 _' l- P! ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
. |7 F D; ~$ J1 G3 \8 I. F {9 y8 |0 t* m1 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # g9 ^ M8 ~/ ~
if( pSkillProp == NULL )2 m9 O5 f! I5 n5 A9 l( i
continue;! C3 v# W: k! k/ r4 q; |& c: s6 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); m' |% Q( j0 g0 f, H1 i
continue;; g6 C" A* ?" m5 y" U1 k M
lpSkill->dwLevel = 5;! L# e4 } |; n2 }( B
}
0 B$ R a* K' W }, d4 |- l/ x* s* [' K5 |/ I
}( M w5 k$ `/ t4 T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 W" B) M% L" v7 z7 K* | if( bGamma )( a) q8 Y4 h+ f6 }' z8 f
{) G8 v% S8 a% F# g6 H- _
m_nExp1 = 0;
5 Z. J2 X1 D z2 `1 o4 i }
, ^, n* {- i( w! F/ J) I7 ^8 q$ }' n# }/ P+ h0 c0 j1 C
( (CUser*)this )->AddSetChangeJob( nJob );$ g1 ~' }* V) V$ R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& C4 P% Y. O) {' r0 P) F
6 Q7 f3 v- [2 N' x! A& u$ P j$ N' ~. m
#if __VER >= 11 // __SYS_PLAYER_DATA
' a4 V7 A% \: b: s W: a" O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# G& X6 Q( h4 ]% W, V- z/ b0 D9 }#else // __SYS_PLAYER_DATA
0 N* n/ N" ]# u1 c g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 G! F. ^$ F+ ^# E1 a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 O" t: ~( D7 n5 t7 K. G4 F9 ]/ ~$ i
if( m_idGuild != 0 ); g5 {2 Q% ^/ Q) _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) j* m8 P+ w1 m5 O$ a8 t9 M- d/ W4 I3 x
#endif // __SYS_PLAYER_DATA
2 T+ ]( p4 ^9 Q! b2 m SetHitPoint( GetMaxHitPoint() );
' I1 }4 T1 l% @. g- O8 E SetManaPoint( GetMaxManaPoint() );& h" t0 g j9 Q3 f; j0 M+ z
SetFatiguePoint( GetMaxFatiguePoint() );
& q' u: p9 H; x5 } if( nJob >= 1 && nJob <= 4 )
# `8 _/ h5 m9 }4 e3 k# v. y {
) V. Y' ?5 w5 y/ S; q2 b% ^8 y m_nStr = m_nSta = m_nDex = m_nInt = 15;& d- I0 ^ M) d0 g, ]" y. s
m_nRemainGP = 28;
/ |3 r+ A, \" e _( j }
7 G9 ]8 Y* k( ~! m( h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) J9 b- G% W( | {
0 j# }% y9 a- M m_nRemainGP = 118;
& E* ^, B: e9 J- z% \# x! Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; B4 k- j' A& f* u
m_nStr = m_nSta = m_nDex = m_nInt = 15;; ~- F% i. o6 _3 |
}
0 ]# x8 Y; K p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. W' O0 `6 _/ C" ^ {/ X1 P4 e* Y$ k+ D
CItemElem itemelem;
7 F- Q, R3 e: S' ~$ U- M itemelem.m_nItemNum = 1;
# \% E/ x" K/ D6 w- M& W: t4 e' c itemelem.m_bCharged = TRUE;
* I/ G+ W3 h# {+ y6 r9 E BYTE nID;* e* ~- I0 [& |3 D# P' A
4 F" ~. h, \' L9 ?/ p6 K# F" o% ]: @
if( nJob == JOB_MENTALIST_HERO )
! Y+ u' m, V$ u% Q% P8 J3 z- \4 B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' T# y( U1 n/ b6 {
if( nJob == JOB_FORCEMASTER_HERO )
4 l! x" v, A! ]- m! _5 D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 m& D% m( K/ X9 W) J! ]9 \4 O# F1 l
( ( CUser*)this)->CreateItem( &itemelem, &nID );. R; A# C1 K- x- ]8 k
}" k: i; W# {1 X D* {9 G8 A0 F5 c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 X+ t0 W7 R! X+ Z0 w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 t; P! `5 w! ? X+ A1 F! J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" E6 M& c7 G% G: T /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. i* `* d3 v! H. R
( (CUser*)this )->AddTaskBar();*/
7 w5 X [7 z, l7 W( V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
n8 V* x, N3 C- u. Q; U1 b" J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
T7 { U8 }" X; J5 T ((CUser*)this)->CheckHonorStat();, j) P/ ?: x$ P
((CUser*)this)->AddHonorListAck();
' V* D2 }/ m! S" s# m% D' F g_UserMng.AddHonorTitleChange( this, m_nHonor);) D+ r/ N& [- P& u6 L: X
#endif // __HONORABLE_TITLE // ′Tà?% K2 j: ^8 {* P9 O
}( F! Q5 g* @, p7 ~+ S- K: v3 f- Q3 F
#endif // __WORLDSERVER) c) n) g! ]2 z' U% y
} / x& _4 R% ?+ }( x8 ?
4 a! P/ X! g4 s- |! R! s然后你进入functextcmd.cpp并添加以下
& W% {# G5 F# j9 D- J9 R! k( x" G# w+ a, c( Z
代码:4 O4 Z. Z6 o7 y1 l" F" y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# r7 K* F) x" L D1 ?8 Z下面插入$ ^: v G9 L1 E" v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) ~ u: ]5 X' h/ p7 E) Y" O0 H" ]' z/ s* Z. V; [/ U" _/ g& W. J8 D' W
然后你去
: W8 I( F5 i5 S2 ~$ r+ Q6 P! l [( k& ^
代码:
2 b' ]" F- g4 \$ C代码" o2 K: S) s; h- o& l
BOOL TextCmd_ClearPropose( CScanner & s )
O/ l; b! p# K{
, _7 s4 s8 j8 m0 E/ u+ Y ]0 L#ifdef __WORLDSERVER
7 ^$ w7 Z+ x+ P. t CUser* pUser = (CUser*)s.dwValue;
- t2 {) w# }! E g_dpDBClient.SendClearPropose();; Q! I5 s/ j% E: ~( h/ }: o8 V- `
#endif // __WORLDSERVER
# l! R' `$ P1 r3 y: x return TRUE;
P5 m( p; e4 Z- g$ X2 W1 C5 A}
& z6 p2 _/ u2 [下面插入
! ], X& h6 a g2 V5 X! J( u2 Y% T2 |BOOL TextCmd_rebirth( CScanner& scanner )
+ I) h6 P& J8 Q$ b, U; R# Z- i! ^6 U{- l. w' i- ^% o* [" q2 X
#ifdef __WORLDSERVER+ J5 o% Y. A0 w8 c% _" t, y
CUser *pUser;
3 ]( H5 | o) T% s% N9 w* DpUser = (CUser*)scanner.dwValue;
- |6 U% L6 }' d0 Z2 r* qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" I h: @" v5 I; a# C* }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: t" i5 m' p" }) Jelse
4 k& U q \" {8 F; F" P* e: [/ v6 _pUser->AddText("你还未达到重生条件!");: B0 Q s: @7 E
#endif. k0 E, V) }& i3 j8 K- x4 Z
return TRUE;
7 r4 _ R* p5 p3 u6 c# H, P} " K6 R) K6 ^2 {' t) x6 Y
# ~( e' F) Y! h" i; w; m# m k2 Y4 ?+ A. O0 Y
s) R; u" x6 R" j) x1 c
/ x- C% c8 d* {$ e |
|