|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
j: Q/ K: O( P% M
- J' g- {& P. i3 `, ]2 ^9 iMover.h! @2 R! J7 w, Z7 b6 _
代码:
0 U9 t3 S# o1 |, Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: D* H+ ^: _1 A& d5 @% R
# P2 l" u; Y7 e2 f1 q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( j- A* n }; s6 l7 j5 A, g
0 }. x8 W$ I+ T! V; Q
然后你去mover.cpp添加( h. O, `" o3 Y6 g9 w5 [
3 E, m3 b- I, G+ E. U
代码:( {4 M) o: b$ k7 V3 |, z2 B: X! _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! I* b" {- p. W* F# n; N2 K
{
8 L2 U) T9 M m# l" n6 r#ifdef __WORLDSERVER
( l' f+ x+ s/ v) P' c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& B& d$ E3 p0 A* l
MoverProp* pProp = GetProp();$ R) e: S( D9 W
if( pProp )% [% m# p: e+ L, q h W
{
+ @6 ^# o) ^ b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ T2 F/ D, B9 H6 ] {" o& U/ f, x" t1 E* ]/ c
AddChangeJob( nJob );6 I1 O3 {, N" M. B& ?8 v
}else{& h: }8 }- M+ |+ B, k4 J
return;
c% E) H: B5 g& h R1 a }- U: H' L# L7 T/ L( f1 O: M- D$ P
int nPoint = 0;3 R1 f& S8 m+ Y8 w' I! e
if( m_nJob == JOB_MERCENARY )! C/ H; {' l* X0 q9 z
nPoint += 40;: w9 b: s' {; T3 e6 c7 o- d/ y7 U
else if( m_nJob == JOB_ACROBAT )
: t6 k' M6 t0 h h6 ?: r nPoint += 50;1 R9 [; ?/ @/ D3 ^
else if( m_nJob == JOB_ASSIST )
# u% Q& F8 b$ `* J nPoint += 60;8 n& |# M% e- r+ p' a
else if( m_nJob == JOB_MAGICIAN )
- W8 |" A. H9 l nPoint += 90;
- d! J" ^7 Y3 g$ u2 L" j else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! |9 S1 U4 ?5 o; f: z nPoint += 120;
3 w4 e5 z; a7 R3 R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) F( b! L" n6 e, |
nPoint += 150;
: y' b* R6 U" ~; d( m. l, a: k4 C else if( m_nJob == JOB_RINGMASTER )3 @5 o v7 E$ j+ A# ~7 g
nPoint += 160;
( s! t$ J3 f( F5 H9 X2 C else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ @3 @' R& j; T9 N/ l- P nPoint += 180;) M/ c3 W6 J+ G6 z9 @
else if( m_nJob == JOB_ELEMENTOR )+ _# z, b) q+ v) x$ r
nPoint += 390;# z- c. b$ |& o+ ?) a* R% A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), ^( n3 q5 C7 k' x5 P
nPoint += 120;
1 |; ` m" s; x else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). Y# ]* \& m9 b% q5 u$ Y1 U
nPoint += 150;
9 O9 u# V4 r. o2 M4 M else if( nJob == JOB_FLORIST_HERO )
- X4 n( n; I* B( E nPoint += 160;
1 Z5 x3 r3 ]4 ]8 r8 n" I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- r4 s/ L! V, G' A6 x
nPoint += 180;
* q" k& [* \# E- k1 T4 Z else if( nJob == JOB_ELEMENTORLORD_HERO )8 z, w! ]6 ]6 L( ]+ g: D
nPoint += 390;, `* x* K) z( ^* h/ k
* V$ N0 N& S) V, `3 d% Y
AddSkillPoint( nPoint );
1 Y4 P; ?7 y5 i) u# p% e m_nLevel = nLevel;
) Q+ t5 P/ U! {* b, F$ Y% M! d) c$ \" |# R5 C4 X' D. o" c4 P
SetJobLevel( nLevel, nJob );& |% H$ A9 ~6 e7 }, V3 l
m_nDeathLevel = nLevel;- @: J" N! q8 A2 h9 I" L4 s# O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" M, [# ~ N7 x& r
if(IsMaster())
- P& X y# p. ^$ a" W8 j, ? {
/ a j3 k3 n. q1 W7 Q& b0 ] int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" v0 `8 Z& E5 e! a+ p
if( nLevel > 59 && nLevel < 72 )
* I' U- p$ b7 b dwTmpSkLevel = 1;
3 @) X# q5 T( m9 }0 C# S else if( nLevel > 71 && nLevel < 84 )
' r1 v2 X* ~% d: R8 p; R" q dwTmpSkLevel = 2;5 @2 z% {# v4 f/ c, X3 q$ q k; a/ [( o
else if( nLevel > 83 && nLevel < 96 ) m; z1 w$ A8 O) Z, n* O- X( Y
dwTmpSkLevel = 3;
4 @" l" }6 K* @& E( T else if( nLevel > 95 && nLevel < 108 )
) j4 S2 e: ]: y6 e3 p5 {4 O dwTmpSkLevel = 4;5 U1 W+ p$ [3 K; E9 u$ t( `* W
else if( nLevel > 107 && nLevel < 120 )& r* x$ d, A: {: a! M$ J' h
dwTmpSkLevel = 5;0 v" w. \) B t! j* {: `: V5 R3 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: m% t9 n; x3 J- v% D {
; p6 ? {+ U4 {- V7 r8 n$ N/ x LPSKILL lpSkill = &(m_aJobSkill);
& N5 Q7 b/ F6 Y3 ]/ |8 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 c: z2 Q" l% Q3 T1 y# |, |6 E {; W' A; h& a+ v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 L5 V% b" x# D8 z/ l7 m- {5 A( A if( pSkillProp == NULL )
9 j; x8 f) v. u% b6 `2 y" c" r continue;
1 b0 ]- p9 z( E6 x2 Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 ~& j1 y3 `. a) P# S2 j% w* Q
continue;; M$ ?1 ^$ F5 c6 p
lpSkill->dwLevel = dwTmpSkLevel;% i8 ^; P3 ~: P
}( l& g) n; ]& h# ^2 J0 U' t
}
7 x- k& A( r( f7 K }, x2 A4 r: H4 d5 q9 R
else if(IsHero()); B7 h0 z6 f) Y9 v0 G4 v( ^
{
3 c" ? F& Y7 N+ ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) * }( C: W+ G v7 s8 ]3 @
{ ; A7 M4 _: t' w T9 X* J7 B
LPSKILL lpSkill = &(m_aJobSkill);3 z! t: c/ d4 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 b' [6 p& b$ W8 u0 b+ U
{) ~- s# w2 d" T# ]4 t! w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + | ~4 J8 f& p0 P- o
if( pSkillProp == NULL )
0 b4 r, b" |; w$ A continue;
8 M9 k/ |; A; H, ~- c( Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& v* t! H& m; N. X% g6 e: f9 f2 c
continue;0 ^% N3 T" m5 b( L; ^, n: z( K
lpSkill->dwLevel = 5;
5 p( J) {- c, r: [ }
; R. s1 }. G; E. q% U: Y }5 i7 c0 |$ _1 u Z3 V
}
2 E8 ^. N% N( D" b% N: e else if(IsLegendHero())% R. W1 d) @/ H3 N' G4 C( L7 B
{ y7 ?- t6 u( V% \0 [: O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 t }! B) C/ r1 J/ ~/ H7 e7 B* i { 2 j! `+ t0 F$ f+ N# R/ r
LPSKILL lpSkill = &(m_aJobSkill);
- } S5 _- M/ ~2 S$ v if( lpSkill && lpSkill->dwSkill != NULL_ID )4 h6 y, D$ c) Q% D% A4 \
{6 h/ P6 |- z$ L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* Q- h+ j: F& U) U% I/ h E if( pSkillProp == NULL )- O, ?4 _ q" Y8 z( V" w" f: R
continue;& X% g) n: g8 ~ w6 T2 y; ]! [; n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), i1 T5 x; D! T
continue;8 F/ x; N) Z9 W e
lpSkill->dwLevel = 5;
! u! d& H) j. h& `0 w Q! U }
' d- M7 k4 p* F) S9 s4 i4 d' U }
. K9 ^6 {1 O" \8 Q }8 ~1 J5 D: ^4 `+ C! |2 @( h; Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- h" H% q, N8 }7 X
if( bGamma )1 h8 {& G; K! C2 b2 g) t& h
{
' I) [- ` _, v$ J' c \ m_nExp1 = 0;
+ k) Q! s0 S2 V, ^2 K0 O2 F3 v3 c( H }7 |: _1 ?0 E$ L# r
" X. k! @, s: L* ]% w ( (CUser*)this )->AddSetChangeJob( nJob );" {9 H# Y2 K8 H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); z; D- k1 n( F9 ]8 }6 g
+ n4 h; d& O0 }
; |5 y s. u) r! X( ~# d4 R: G6 C
#if __VER >= 11 // __SYS_PLAYER_DATA5 @* ]. \( T% p( j0 }# K) ?! |7 B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' z& s+ ?" K. P9 y# H" q+ Q#else // __SYS_PLAYER_DATA
% Y1 N4 ]' Q- H- X$ W* k k7 E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& `9 K# ^# x: c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 \% A; U3 l5 Z6 A7 ]# ~4 [ if( m_idGuild != 0 )
1 F# ?5 v0 n- a) q/ C6 x& D9 X, q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 J5 j# t" n- h
#endif // __SYS_PLAYER_DATA
1 D6 M( ^$ N0 o9 u5 Q( P9 b3 m SetHitPoint( GetMaxHitPoint() );/ n2 d4 z: {" q
SetManaPoint( GetMaxManaPoint() );
1 [% t+ h7 ?* H3 ]2 ^8 n SetFatiguePoint( GetMaxFatiguePoint() );; ]$ G; E1 D; p& p: W. s1 \
if( nJob >= 1 && nJob <= 4 )
) m* _% s/ R0 B2 J {
3 ]; Y- E1 [8 ?% N4 ~+ s m_nStr = m_nSta = m_nDex = m_nInt = 15;$ [2 k) ^3 s3 |. p9 e
m_nRemainGP = 28;
% A4 S* \7 l5 w2 Z }" A; B' q, t% A, S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 }* _% d) C6 a' ^- o D9 B9 E {
* E, ^6 }- b1 Z3 q m_nRemainGP = 118;; F# B( m) Q- H! W! u
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 s. u% `+ X: w$ A3 I# s1 T- @! _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 i# X$ n, Q# `# n8 |0 l6 t# h }4 q# N+ e7 k. j6 D) U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; @% |2 N0 x$ o7 w5 w c. ? {
) z0 w! x* j- i, F3 F- J* y CItemElem itemelem;
, v, v5 A2 O- Z; V. w itemelem.m_nItemNum = 1;
/ P3 y, C" [3 p itemelem.m_bCharged = TRUE;. v0 P3 U" C+ L% ~9 ]% D+ e B
BYTE nID;' D; {$ v- k/ }5 q( S; D9 E/ i0 B
E! m7 Q7 N2 f% u
if( nJob == JOB_MENTALIST_HERO )
0 x8 W$ S; V* Z( W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ o9 H. ]. N {. ]
if( nJob == JOB_FORCEMASTER_HERO )
4 d4 S+ }+ f* Z: e) _ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' _& j) @- A i% w, V+ h9 P+ c8 e- P% Y1 @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 x$ R+ i" a* b }
+ A" w& h' z: p5 l0 z3 I( Y: f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" I! V% `$ o; y. q. S* v' ~; ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ A' I' l! a7 A; t- C. g
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* W3 |5 T4 p! O1 O3 z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ Y" E, G+ J/ ~9 F, ~( z4 L ( (CUser*)this )->AddTaskBar();*/+ X9 n: Q8 }5 K) k x: @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 q3 R7 n& m+ p7 I8 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" E/ U! T5 C x6 z: C5 j: S
((CUser*)this)->CheckHonorStat();
. o" S3 q5 w; s; @ ((CUser*)this)->AddHonorListAck();( L) R9 `$ Y$ K3 \9 H$ [1 U+ `
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 X$ r7 R% ~; a F# }' h#endif // __HONORABLE_TITLE // ′Tà?- Y) Q/ p- d" P: n& l
}& ]' s$ m* y" a, V
#endif // __WORLDSERVER R8 [8 @$ O4 p! z! I
}
7 l$ e7 A8 {0 [4 T
$ Z$ Y5 G( \+ Z4 O% q3 S然后你进入functextcmd.cpp并添加以下. C9 d" c* @! F S/ q4 [1 K% D
$ B& _) X8 k3 h( h; q' U
代码:
. O' l( W, h) J+ iON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# ]" ~$ n4 |& _5 K# O
下面插入
! n; `; A8 b0 F! V. h- CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, Y2 ^+ A# ]# t; i5 F% r' P4 O, H" g8 y4 x& m& Y7 j
然后你去
; J8 B/ H4 q- M! [7 `7 w% M7 I' T
& |2 Y8 ]+ ? {1 l0 `% v代码:
7 z) W4 Q, b9 R7 _& I2 d& K代码1 C3 I9 u9 a7 l9 [2 S, X7 v9 \" r" o* `, t
BOOL TextCmd_ClearPropose( CScanner & s )
6 I7 G& T* M' i* b{* f& c' U8 h9 `1 w3 D# S e
#ifdef __WORLDSERVER
5 u4 B9 A* G( T1 x: q CUser* pUser = (CUser*)s.dwValue;
$ M4 |: i$ ?4 M* m( c2 Q g_dpDBClient.SendClearPropose(); ^* r& g, i: X, P
#endif // __WORLDSERVER8 E/ m; r# x, N+ j
return TRUE;
! u% G; `7 e% `/ d: O; a}
& y9 B, Z9 M+ `* X+ x0 a; h9 }( g下面插入
6 V. H! @4 \' j: j$ VBOOL TextCmd_rebirth( CScanner& scanner )* \+ o* l: }* ]$ \5 ]4 {
{% M' @1 i7 n0 l7 D( D4 C. g
#ifdef __WORLDSERVER
+ B" w( h/ I9 _' a+ ZCUser *pUser;
2 `/ F% _6 S* h( P" NpUser = (CUser*)scanner.dwValue;
1 u! V0 i7 A9 s/ `7 {# vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! t$ T) J' Z0 l% \$ M5 V9 \" K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 V& ~' h& Y# [& v. e$ a- E
else
* d4 T4 e, E' ]pUser->AddText("你还未达到重生条件!");* i0 @$ r- G! F$ E2 G6 `4 {$ t
#endif( t& \4 Y$ Y4 N r+ E5 K
return TRUE;2 v# v" \4 z1 \8 v
} , `# A% v( K- a; v' L9 }
$ I s) ^) ~% j' O5 @: P- y4 E! x, H
, q1 Q [1 F' N
$ Q. {; e* }/ u- h |
|