|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ C) `( R5 f# A- w0 M. T6 k
+ O7 ]6 c# D( i' lMover.h
4 ?7 ^9 G/ y" B3 @代码:
8 {8 o; A7 B2 [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* J7 I! ~$ [% X4 ^0 O* Y
5 F- S3 X2 O6 o, I2 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - n3 I! Q6 x U/ `( |" @
# @% N; ]) Y- |( S" N( e然后你去mover.cpp添加# k( w, N: S# P& o
. L& G, b6 D. S4 S. `
代码:
2 o) z, N+ [' ` k; f( u9 \! v# Wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' S; l' W6 \ A' K# J+ Y4 D
{
; ]% {) _$ L& U$ w* `; b* P# w( `1 o7 P#ifdef __WORLDSERVER
8 H" Q8 M" q# `) k0 N' i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# z" `9 J" O) f4 k x" Y MoverProp* pProp = GetProp();
5 W5 X1 ~1 L, h9 r if( pProp )( b1 Q8 X9 R$ R, l
{: V& w0 u$ ]) X; f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! H+ j; T# ]2 |4 |% A$ p {+ D9 ~. q3 {; v9 z/ N6 x$ K+ D
AddChangeJob( nJob ); g: k) k) i3 w; Q
}else{
4 M: Z. ~3 w/ M! ^3 c return;. |3 o0 |' g0 w1 S. T* K" {5 ~
}+ B! b P9 v6 S- `: C/ j
int nPoint = 0;( ^; ~2 ?) v- U7 r6 w1 J" \& e
if( m_nJob == JOB_MERCENARY )
1 k O; i7 g7 G) G2 m& K, o nPoint += 40;9 _$ o: i/ N3 _8 p6 n! m: }
else if( m_nJob == JOB_ACROBAT )
7 \# b- G( R2 \/ H nPoint += 50;- E& N, F2 M4 v2 ?: e2 n6 S- R9 f
else if( m_nJob == JOB_ASSIST ): P& \6 h i4 G' E, M6 M5 |$ X
nPoint += 60;
' q/ ?4 \8 ]; p0 t3 a* c$ b; T& A else if( m_nJob == JOB_MAGICIAN )
! O7 M& I, [" E& x4 `& T nPoint += 90;1 o* H3 e4 p( a& u" N" }6 Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; Q, Z' @6 D+ w) ^7 u nPoint += 120;4 P; Y3 n) R L7 T* g3 r7 O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 g4 d$ Q- U# ^) I" c
nPoint += 150;6 Q2 _% K% o) e& {. G% \
else if( m_nJob == JOB_RINGMASTER )
: J5 S% F* e9 m- { nPoint += 160;
( f% }& i8 q: j% t7 B else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ r' w2 T, q) D
nPoint += 180;1 i" G0 w$ {2 \# K
else if( m_nJob == JOB_ELEMENTOR )
; u/ |& V. {3 v3 `8 l; S. } nPoint += 390;: ]6 @; c% n$ U+ F% C
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! L! ?" j/ n$ Q+ v/ o1 q& j( P4 [ nPoint += 120;
- r* H) |) m+ g. L" S; j7 p L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): ^3 W/ r/ m5 c- I8 l) N' B
nPoint += 150;
* g5 P( X7 P1 c7 b0 B; s$ j; Z else if( nJob == JOB_FLORIST_HERO )' x6 w$ N+ @" W. q9 l) o0 C
nPoint += 160;
8 q( v8 [& R/ m7 K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! }4 R. G; b+ L! O1 s( e" g3 ] nPoint += 180;( r0 ?- y8 Y3 O) G% L
else if( nJob == JOB_ELEMENTORLORD_HERO )4 j) p3 q3 f- v) M9 ^- g
nPoint += 390;
" J8 W0 i+ K* z- d6 S7 q6 I
- I5 w! G) ~9 T7 K) P f AddSkillPoint( nPoint );
. a$ A' y: X( _# n# [- d m_nLevel = nLevel;: n. n7 R* E, t3 [
; t/ F- R3 z; |* w3 I
SetJobLevel( nLevel, nJob );
! B: a% R _6 Y m_nDeathLevel = nLevel;
* a& [0 ?6 c' d/ N2 F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' b6 S6 Y+ H& u; S8 ` `; n( _ if(IsMaster())
) V: [- W/ y @& @" [1 S {
5 _" [6 M$ h4 v# V' l0 a int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 j& U- s! _& j if( nLevel > 59 && nLevel < 72 ); J# d+ v$ W0 C1 v0 U- k7 z
dwTmpSkLevel = 1;
8 e- t3 G! A# w' F4 K8 @ else if( nLevel > 71 && nLevel < 84 )
8 i' b% C v2 b. H9 h( a dwTmpSkLevel = 2;
Y4 M1 E- E. X3 u else if( nLevel > 83 && nLevel < 96 )/ Q/ C' _: i; ?6 T
dwTmpSkLevel = 3;
6 E% d4 a% \3 O m else if( nLevel > 95 && nLevel < 108 )
; C0 z. T& {0 N dwTmpSkLevel = 4;
, F. m& o+ j; w+ G! _8 T1 S else if( nLevel > 107 && nLevel < 120 )/ \3 I, P8 k7 h3 Y7 {- B* w: S
dwTmpSkLevel = 5;
8 y' e. y; Z( N. |& Y8 x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 T+ @# U4 ]- ^* s' P y% M) ^
{ ( }, Z7 n l& j6 ^, u
LPSKILL lpSkill = &(m_aJobSkill);
& n& g4 O' m! z3 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )+ j/ _8 I) d, S
{+ P2 ^' u2 k5 x1 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 ^' J8 c! t) o, w' Y! [ if( pSkillProp == NULL )* J. i' W' j8 t) s3 y
continue;! g) r, J0 o* r" |( D/ N0 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% e) o" L4 Q+ s continue;
}. Q# E$ f! f8 a# |4 X d lpSkill->dwLevel = dwTmpSkLevel;# X" u/ n& D$ a2 `: ?0 b
}
7 G4 g$ d9 s3 v+ r+ n }
0 U% f$ z x. H4 T }: Z4 i. g0 G5 y! ~5 s5 T4 M* T
else if(IsHero())
1 W. y6 Z! o+ ^- i5 t% o' ] {
0 f9 b% N# Z& ^1 \' |4 ?6 e for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 C/ k4 E2 l, P, G2 h, E
{
+ a) d8 h0 \- ^ LPSKILL lpSkill = &(m_aJobSkill);
, a& P, R1 t$ h6 C& Y h if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ o) r2 S# t) L$ `6 u9 ]. b {
+ P# }. N% D4 E' u- d! v: h- Y& [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 R; y8 E# y3 I v3 m. G" n& k
if( pSkillProp == NULL )
. Z$ T. r J$ F9 |( c- t continue;$ g- b6 A6 s) f5 s% d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 [7 Y6 ~% g2 T continue;: n1 ^" X- c6 }
lpSkill->dwLevel = 5;* C- Z: d: Z! G, e, t* h {2 N
}
3 l0 G) G5 o! s9 W% Q8 B }$ W8 ~5 h3 H U, R# H" l8 L) c5 I
}' u! _6 B# @* m$ }/ E! x3 V' S
else if(IsLegendHero())
6 w# h* ^: J6 K {+ z x2 Y: K0 J5 H; k7 D/ v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 q: J* |* u2 A: T/ Q { ' R" r5 z+ r- ]9 } c n
LPSKILL lpSkill = &(m_aJobSkill); h5 j7 g: C" U3 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( A' e6 t& J$ c {
# ^/ \, B% ^6 J- x$ P+ G: Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 d. r4 |4 E/ A8 u( Y if( pSkillProp == NULL )0 H* C0 p/ [) K f r
continue;- X$ Z2 C6 A: }7 ~ X" }8 U' J7 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* N/ {' v# W2 f
continue;
5 ~4 s8 z0 [- N8 L lpSkill->dwLevel = 5;
4 S9 m- K4 \4 X2 i }
; V( t- z( O% m9 _ }
3 E9 z6 _/ Q* T* \, s8 F }6 o/ F0 C& f3 ^( q- l2 D; Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( Q8 Y. d/ r- M" s1 { if( bGamma )
5 q& {/ M2 S1 g- o {
! j/ o" h8 l7 \( u6 o m_nExp1 = 0;4 o+ h, A% A4 e4 A/ Q8 q8 T( i
}
6 B6 F( f) A c" g, t6 ^( ]
1 |/ t- Y2 ]& w9 E3 C ( (CUser*)this )->AddSetChangeJob( nJob );, S" J$ i3 y2 O" B: f0 s) |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! M! A, z R0 C4 X4 F
& h( \" s( J9 W6 t- x- l
5 V1 L$ w8 Y# c7 ?- `#if __VER >= 11 // __SYS_PLAYER_DATA2 G: R& k. o, M) J$ G
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, t3 ?$ a: w, y3 ]! ?) g& h9 \#else // __SYS_PLAYER_DATA) @+ ]3 X9 A. E' p, L: J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
M+ ]6 Y7 A/ a# k2 e; Y- _) q g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); o( D( p6 W7 `8 @* R' |
if( m_idGuild != 0 )
3 |+ E8 t: X: y; h& ^5 ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ z3 W/ d, ~. @$ s9 ^: J/ ~4 g# Y
#endif // __SYS_PLAYER_DATA0 D* r: H- J) K6 U7 j* R
SetHitPoint( GetMaxHitPoint() );
8 T- T$ [9 R9 y+ h- L SetManaPoint( GetMaxManaPoint() );0 F# {$ v5 g& I+ r% Q
SetFatiguePoint( GetMaxFatiguePoint() );
y- a. g8 h7 R0 w) w if( nJob >= 1 && nJob <= 4 )+ n, @* \, ]) k- t
{
& {/ }/ \ \/ u; H3 r2 ^5 y m_nStr = m_nSta = m_nDex = m_nInt = 15;3 i% M7 ^- A2 U" y
m_nRemainGP = 28;
! F7 V! d# _& S& p }0 ^; w4 V( H: c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ Y0 W! ]' h `3 N( Y% ? {
3 y4 {/ r, X6 m V( h+ L8 G x6 b m_nRemainGP = 118;9 C) Y3 P. {7 I$ g7 E1 S
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 G5 w, l3 I! R j1 ^6 ]! D
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 h8 @ L- t; {! U
}
6 E4 [! f; Y% a |9 [6 G7 ]' M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 G7 w) L$ t \2 T) l& r
{
" {3 e1 |7 A5 r CItemElem itemelem;
$ p0 L9 F# M: m1 ~% O' E7 v: I+ h itemelem.m_nItemNum = 1;, A h- S( Q5 h& f' |8 ^2 x
itemelem.m_bCharged = TRUE;
" v7 V" A8 T& ?& f BYTE nID;7 o: ~& D) `0 i7 t9 c
, X8 \5 [3 e; [6 Q) H
if( nJob == JOB_MENTALIST_HERO )! m; q: E: L% b% C7 M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ y' k2 D% H0 X r if( nJob == JOB_FORCEMASTER_HERO )9 ?/ j$ S& E9 B- D
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 v! V" Q* ]% g, I1 f& V' c
$ V9 a- ?3 f- Y2 W+ p3 w1 I ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% D' G; W" V7 l/ h6 I2 { }4 _3 ? X& u1 S* B) M! {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( f7 x; a+ x: T4 {+ M8 [7 g$ h6 Z4 d% f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 _. ~9 K! I9 o* z D* q# ~- b8 m# h1 P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* m- G8 i; s- A, z2 h# N4 o" E /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: X! N9 o% D: j
( (CUser*)this )->AddTaskBar();*/
4 j% ^9 p- r( L. ?1 L3 k: C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 G8 Z0 v& n0 |6 A- ~6 J! G#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' a% j7 i1 Q N7 P( O. J3 t ((CUser*)this)->CheckHonorStat();1 t5 I m, [! r6 }6 ?# J0 j, j
((CUser*)this)->AddHonorListAck();& \/ z8 C# L+ K
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ F/ x; O; D1 c+ s. v. [% p/ a#endif // __HONORABLE_TITLE // ′Tà?- l3 d: t1 X# ?7 f* q
}
& q5 v7 z, L7 |#endif // __WORLDSERVER& L+ `+ l5 W& q2 i9 d$ H+ i7 w
}
6 S: w/ j. p6 K j1 p: C3 e- A8 f: b1 V& |, j
然后你进入functextcmd.cpp并添加以下0 Z/ _$ u! g R* v
) |9 d. t \/ V6 e代码:
: V( `6 {- P W( K9 c1 H3 XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% d/ v' [& p) @( M+ f, d
下面插入
9 X& G8 ]) Z7 O- g; [$ DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- v. F: ^0 t+ w2 e( ]9 t
. R- c2 Z8 S4 @7 o! x然后你去
5 L5 E% b# g( A d: M
/ \0 _ }2 K# ^/ |, ]6 |# M# e( t代码:8 x- j) C' ^6 W( W2 O8 C. m
代码
* ]+ B% N$ @, w% u: i+ O" bBOOL TextCmd_ClearPropose( CScanner & s )
6 Q; \+ L @$ }$ o4 _& d0 y- s6 o! z{
- S; u) n$ I1 v9 O s#ifdef __WORLDSERVER7 T# u0 o4 G& N
CUser* pUser = (CUser*)s.dwValue;
1 n0 P) K1 Q3 A, c0 D$ E- `# W' o' {% N g_dpDBClient.SendClearPropose();3 f. `$ V0 s( P+ @( S6 ~$ d/ D
#endif // __WORLDSERVER
2 O+ [* Z9 |" e4 A. \ return TRUE;
4 {6 O8 e9 z0 n; {}6 H+ N$ v+ d, \9 w; x# l
下面插入. }7 I, e3 U, D
BOOL TextCmd_rebirth( CScanner& scanner )
' `+ x2 o7 e7 ]6 B{2 H' N6 I' l$ { J
#ifdef __WORLDSERVER
# z. d; ], E$ i) ?# _CUser *pUser;# }$ B4 \% ?2 S, d
pUser = (CUser*)scanner.dwValue;
, w7 o+ S8 V) Z3 iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), ~0 N2 v r/ `0 r e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* \; M; D1 b* \# h' E# v) uelse# [/ C' U% S: k
pUser->AddText("你还未达到重生条件!");
; {+ ^% Z% \% [- C0 n+ c4 D5 ~+ }( ^#endif
* n; ?( s1 k. D; {- _return TRUE;
n% y! [5 u. j q' u: u} : m2 Q! J5 h3 _5 k! l. f4 y
9 L+ A* }3 ]* c$ @; D6 M4 o. V: {
! ^6 S8 Q* |( j( U
9 T8 b' |7 a. j7 l. U3 @' d
* A r- c; O1 o& k |
|