|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ z# n4 I& b% E. b- I- w) w
4 H6 r3 [$ X+ s, ]- m$ `
Mover.h
$ N. a& z7 `% v) _1 U4 B代码:$ @4 [# i7 @' c5 \2 V. K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 X# b2 R" I0 B+ x) l
0 E" z" e0 C7 Z7 q" h! L8 S下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 Y/ o7 @8 R6 w# O2 d
% E; v% }2 F3 h) v C然后你去mover.cpp添加# p' \6 Y9 J; O
+ ^% R& G- i+ \0 n* P代码:
3 S: B2 ]6 b6 }3 ]7 G1 D7 q0 W# mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 ^! [( q2 E# Z3 q. ?! C' ~# F: @{
- C+ R5 p4 B0 y h$ F1 u#ifdef __WORLDSERVER2 S: k5 K6 k% ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- d& L9 v' \& j- s$ c MoverProp* pProp = GetProp();
# q1 _3 a: l) F; n, H+ C2 k8 n2 ` if( pProp )! B$ E# |, U" \/ b: B) @
{0 [6 `7 @$ K9 ^# r- s% C! ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
G" o- J% w L; O" m' v) o {
- {" `9 E: R2 s! r8 r. o AddChangeJob( nJob );* } L h- G$ w: G/ _: v) N
}else{
' Y& t* P& u! _0 a return;
4 k+ x1 r: s% {' K/ ^ }- W, {7 b( G( M* g) N' R
int nPoint = 0;
7 E7 Z- O: \. {! d9 B) J+ \2 f if( m_nJob == JOB_MERCENARY )
7 M4 ~. y0 E. t+ U/ r nPoint += 40;
% G6 ^4 c5 ~; E" k else if( m_nJob == JOB_ACROBAT )5 d! N0 z; K7 T! r/ }5 G1 }1 p
nPoint += 50;! `0 ]2 Z" h9 R* c; E. h5 ]
else if( m_nJob == JOB_ASSIST )3 P( W! s6 u' x
nPoint += 60;/ f$ L; n. J$ S. e
else if( m_nJob == JOB_MAGICIAN ): R! c+ ?7 d8 H7 _/ k$ O' g# \
nPoint += 90; c0 g# }) h6 _6 i- ?9 K+ r M" I' g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 R6 H" F5 S1 Z( {& A7 S# B nPoint += 120;+ W; n; D2 \7 S7 r
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; f, m- [: a: V% ?( Y# P. \ nPoint += 150;$ L, J8 \' Z' w/ S) C
else if( m_nJob == JOB_RINGMASTER )
* G# m( _8 E. S: q \ nPoint += 160;
0 `' t% F3 W, B else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) V T- {% U- s E' v: X
nPoint += 180;9 _! P! x# k/ Y. H" h
else if( m_nJob == JOB_ELEMENTOR )
$ N. n3 ^6 v; N, }$ f( m; L nPoint += 390;
9 K' s; F9 z$ C! ~: Q0 v/ ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 [. e7 d7 Y% K/ Z& ?
nPoint += 120;; X0 s2 q/ ]2 c; D) i0 {, Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" B- w3 I! d/ \) W" O, K! T8 Q nPoint += 150;
# d7 u2 p1 u( {; i else if( nJob == JOB_FLORIST_HERO )% L, ] }* b `: k2 x" \( ^
nPoint += 160;3 s. }% B. {. l4 s
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' L7 Y0 I9 ], | }/ x# ^7 K' B
nPoint += 180;" O/ T& \' Y8 N5 F6 C6 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
. E; [0 e: J- `! d& {$ m0 R. K) r' ^* [3 S nPoint += 390;
. A# K$ ]) ?& t1 g7 N0 Q+ k
* ~( k. A/ q, L$ U i! k7 R* |7 P AddSkillPoint( nPoint );
7 L1 h j* g9 A3 g$ S/ @1 q5 H m_nLevel = nLevel;4 s5 k' F- U& {0 y& f
" T& S. Y. q( ^. L: f% A SetJobLevel( nLevel, nJob );
% x0 l4 k/ n8 \. z! v m_nDeathLevel = nLevel;
; ?' q! c% m4 {0 \% H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 ^$ z. G5 ^8 z) |' x: M8 ?& f
if(IsMaster()): r7 ?$ M( r) c7 ^) |/ l
{
2 l) [8 ~8 } i2 }, D int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. m$ s9 x/ `4 M if( nLevel > 59 && nLevel < 72 )* L7 K- N- ^# ], r" M' S/ U
dwTmpSkLevel = 1;
, y" `$ Z9 J+ f1 e else if( nLevel > 71 && nLevel < 84 )
2 c5 h7 l% T) \6 N# k dwTmpSkLevel = 2;9 d# t. S" M2 T- O* `2 v# n
else if( nLevel > 83 && nLevel < 96 )& n3 T i# r$ f. u2 D! A
dwTmpSkLevel = 3;8 W% {, I3 o$ L3 s+ W E2 m
else if( nLevel > 95 && nLevel < 108 )/ ~/ l. k h y8 s% r
dwTmpSkLevel = 4;
! T! ]! O T g3 x/ X else if( nLevel > 107 && nLevel < 120 ). a; E8 b' A J2 E2 ~ v
dwTmpSkLevel = 5;
. j$ n; z# L6 Z% N7 @# ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
; V6 D) x3 h" X" p5 M2 N { # q' k5 _9 _) n/ [ R1 r
LPSKILL lpSkill = &(m_aJobSkill);% K$ @, T* S6 }$ _$ K% @2 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )' Y! D) k9 x" U- D: M
{# [. [5 O# G, y8 m$ Q' v7 e' P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 w( P8 d' q$ M! Z6 y8 P
if( pSkillProp == NULL )6 u7 i" v! t( v: p8 a" k' x
continue;
8 G' v, h- r( s8 S! }( M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* L- t8 }( i6 `! }5 V; v9 ]
continue;
: _( X G7 F0 g5 }/ [7 v; n lpSkill->dwLevel = dwTmpSkLevel;" D3 ^ _" N# D% X
}
' |7 [" W' S# X' R5 V+ m6 p }" J8 u0 @) H- X$ m
}# P( t9 t% I3 g2 g
else if(IsHero())0 s/ v. T9 M8 W1 c" b! u" }
{
0 _9 ~1 @4 D: L, `7 t: h0 N for( int i = 0; i < MAX_SKILL_JOB; i++ )
# u8 {% t. C$ O) p( V) j! s {
& O/ H m6 m# B' x8 o LPSKILL lpSkill = &(m_aJobSkill);+ y+ _9 Z/ G6 V, Q C
if( lpSkill && lpSkill->dwSkill != NULL_ID )- ^! r: d7 h! h. |0 c$ w
{2 M- D g5 b. Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 i, |. P, N. [) w8 ~
if( pSkillProp == NULL )/ Z. u* k! j- u4 ]8 J }$ \
continue;4 F* t1 T! k F5 r4 t* z% R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): k6 V, b) @1 g [3 z5 b u3 \
continue;
/ }' q" ?' {% f4 s' ?' }9 e7 J" C lpSkill->dwLevel = 5;0 k3 m0 F! H& v# l
}
7 P8 B. l) Z9 W8 s/ f }% |' B: U! U4 v
}
0 K1 @, P2 C; J5 q ]6 S1 G8 Q6 ] else if(IsLegendHero())
) X: S$ X: i" _: X7 A6 S/ p1 K3 i' J" F {. ?% n! s; Y# e" W0 {; U" M! e5 a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) _9 f2 [) V) _ s
{
$ y7 j% ?' E p5 o, @ LPSKILL lpSkill = &(m_aJobSkill);( [. {) ?5 V5 e, G/ L+ g: E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. h7 ~3 P9 o2 r) `6 d. F {
! Y: M! G5 i2 e( w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( K5 ]3 z g# [5 w# h% h; a8 } if( pSkillProp == NULL )
& e, r( C& V) Q continue;
9 e, s% g1 [" T9 F4 }$ n& A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 s" J- g$ l K3 S/ T
continue;( R8 H/ j) R* Q" |) V/ C! X0 n
lpSkill->dwLevel = 5;" d- H$ _( e- M1 {- E( w/ e- I
}
, j7 C1 l: P/ L1 o: y- V! Z }
8 p z* l5 i2 G' w. U }
3 \! M% V7 V+ x# W# c) P2 D* J#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, P$ g- D% [ F" ^( c: U
if( bGamma )6 J* s6 s |+ @$ u! |
{& {0 `& q- M: r) q: y" t
m_nExp1 = 0;
% ^ L7 U: [0 m/ ` }( [ h3 [% }6 l- V6 x% k( v- e/ k9 L
5 S3 d3 s1 ], h, t" d6 ]
( (CUser*)this )->AddSetChangeJob( nJob );/ M& d6 h2 O9 Z2 S8 K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" m4 z' V" D+ ^- _
& _: z9 i& I, [: s o0 q: w+ Z, M$ e" w6 s* H8 R- R+ v
#if __VER >= 11 // __SYS_PLAYER_DATA7 T5 l' ~2 Y( W% c- L9 H- b$ ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; U2 @( _+ ]+ [#else // __SYS_PLAYER_DATA
1 N# P% e9 d: J1 i- Q" J3 e- { g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: l0 a R: T& x, F. J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 O$ @5 u9 h& ^7 |3 @6 P
if( m_idGuild != 0 )7 Z( G s) T7 Q' R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. c4 V3 z6 h+ b) ], }% Y#endif // __SYS_PLAYER_DATA" q& Y9 r, G- A: S. G i: I. j. l
SetHitPoint( GetMaxHitPoint() );1 M; a$ r3 e. a0 o
SetManaPoint( GetMaxManaPoint() );7 K+ S: R! [4 P! i3 [" n! \$ H: e
SetFatiguePoint( GetMaxFatiguePoint() );/ ]0 k Y; I" b& M5 c/ y/ ^* }! F
if( nJob >= 1 && nJob <= 4 )
. Q! H K0 a. X) Q6 q4 i {) V3 Z D) s; N& X' V, i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; C2 E* s2 r/ R# s m_nRemainGP = 28;; c' i: l* V! a) ]- `
}
6 B. s4 v t+ g, `7 U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 m: E8 {3 ?8 n: m
{" n- `$ [2 J! ]8 N/ |/ q- W
m_nRemainGP = 118;+ _! x' S, D9 q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ C: V" m2 n" t m_nStr = m_nSta = m_nDex = m_nInt = 15;. |) l* {& M6 u1 _5 s& M9 G
}
: e% c. @# m F0 P7 o if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 ]+ X' {8 w' h4 t# ~/ k
{
+ W; D4 N- y( ^: z CItemElem itemelem;
! |& h6 p6 L* m9 ?' n itemelem.m_nItemNum = 1;6 r, J$ K. X( o" X% l& v* G
itemelem.m_bCharged = TRUE;. H! J( P4 I; L
BYTE nID;" Q* t6 `0 k2 _- z3 ]3 q+ W
8 a. s/ n0 ? z M! H
if( nJob == JOB_MENTALIST_HERO )
6 i' a3 X5 {/ U) q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 l' ^. u- N3 e if( nJob == JOB_FORCEMASTER_HERO )9 ~2 E# [: D) |- B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' B. h t( L% T" n' J* C
: G L' w& d* C8 I4 {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 n' Q9 i3 ~7 }. e( t& k4 y+ D }
- {+ m- j' P: V/ N g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' a7 U7 T2 X+ y) U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: O$ m" d$ f1 j4 m' s6 I; G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 [9 O2 V: t. k# z( v+ d. Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 J. o( W, h. l& e, Q
( (CUser*)this )->AddTaskBar();*/9 d( n' L5 [( C. j2 g) I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 d+ N0 x5 B: s; ]$ S* E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
}' M" C2 X0 {, h) z; F ((CUser*)this)->CheckHonorStat();7 o6 _5 q" r0 a( a/ }
((CUser*)this)->AddHonorListAck();" X4 {) @4 ~) }! |1 j
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 t: A t- Z8 J* W: _- M" Q
#endif // __HONORABLE_TITLE // ′Tà?
# A: s# X. M2 G9 G) k }
: I; G2 {- ?! D6 x! A3 g. O#endif // __WORLDSERVER
% b; [2 I( ]1 a) k0 R}
9 k/ @% K7 R3 {7 Q- s, c2 M) r0 l2 U1 w. Q% K
然后你进入functextcmd.cpp并添加以下
. o$ z" }: m! y* a# S1 M- J! t9 Q& \& V8 s5 v
代码:1 A7 e. f( x G9 h! u" J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# t6 b9 p' b& H8 ]3 e
下面插入# s. i2 C7 ~8 [% G, {2 ~4 Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) f2 ?% m" h7 O; S& S8 @4 Z
9 X% v+ M% s; Z4 n1 i
然后你去6 a. ^) `# l2 T' }
) @ \: y+ X. A; K3 I0 @代码:/ U I6 J5 j: i# Z; {/ D
代码+ C, X, B1 U/ ~! o
BOOL TextCmd_ClearPropose( CScanner & s )
( H8 J: S M' F% x{
2 z: N, }0 S% }1 S% r/ {, q1 _3 k6 T#ifdef __WORLDSERVER
1 X( Q$ g4 k& O( C CUser* pUser = (CUser*)s.dwValue;5 e2 _; K- N, `$ g2 D& q
g_dpDBClient.SendClearPropose();
# B& K- N. j+ L& d, }5 O7 x- X5 Z#endif // __WORLDSERVER
2 u. `7 A8 }! m2 z+ @# v return TRUE;
0 `2 R# F4 h. E0 s: ~7 ^9 U}$ k+ ]# r* [' h4 |5 a; G ^
下面插入( X0 b c5 T3 G( G
BOOL TextCmd_rebirth( CScanner& scanner )
9 v1 n1 i7 _! ]+ d+ T{
- y) t, r& m+ I9 q" d#ifdef __WORLDSERVER
, J! N1 K2 E6 jCUser *pUser;
# L% _6 ^) y( ~pUser = (CUser*)scanner.dwValue;- y, d3 b$ P- J$ _8 Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) d2 L5 Y- g& d7 R$ g+ I7 ~) n
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' [8 h2 I4 t! [4 k
else
6 \3 w+ M9 A! f1 d8 A HpUser->AddText("你还未达到重生条件!");
# Z0 t" N, t! ]% F4 K# [% Y, J#endif
* a# X& g! \, O& ]% m2 a& |* O. zreturn TRUE;: T/ ^" m1 Y6 A5 M1 E' z
} 1 _2 p! o; @% V7 H( [, U! L. Q
. d. i5 i* j+ b6 {" R2 ]9 o5 T. y W& H M' u7 P
% E% `0 Y& Z5 \
$ [0 h4 m& m1 V* a( m; w |
|