|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. G% ~! M7 @' a% N0 J6 L1 a" m! L- \9 I0 P* F5 c
Mover.h4 h; v) ?. @' q6 T( J0 k3 K# _
代码:
5 c4 Q( f: q1 H$ b8 [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 `5 g8 B# U! I, T) }% B. z
* t/ j+ j1 t9 U; B8 u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; A2 n' J: o$ ~7 |; k5 V& N3 |+ b: F1 d) |
然后你去mover.cpp添加# D+ J4 Q& p1 V* D& {
% \. X6 e* C* W
代码:# y- d0 ]0 O8 o* k: b% x2 Z( R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 @1 }& U' V# x, W, ~! {! c, X{, B- x9 H2 o) D
#ifdef __WORLDSERVER
' d( b: w2 I ^. j. _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% X, y/ g3 a; }# L: B# P" R MoverProp* pProp = GetProp();
. r$ i" R. Y; c* ~ if( pProp )8 G3 h; m% z- M# ^
{
; p c l5 F) y& Y$ @3 ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- X- M8 x" o- k5 e {
; v! v5 H+ u0 T+ O4 H( |8 q AddChangeJob( nJob );
2 C0 y u% w" [0 k }else{
1 J& E% |2 l4 _ j2 X return;) U/ F" `; b3 Z A. ^$ Z9 p6 q- O
}
# I7 g4 H+ Q: D/ G( q& {& _ int nPoint = 0;
# V7 O2 W% e* p! N9 y if( m_nJob == JOB_MERCENARY )
, L8 j J6 g% h; r0 T nPoint += 40;4 ]0 b+ A5 j3 |4 F# r
else if( m_nJob == JOB_ACROBAT ): { ?4 F/ L* i
nPoint += 50;
4 R! \9 X+ c4 M6 e$ Z else if( m_nJob == JOB_ASSIST )# _7 n' h0 `* E2 f) |
nPoint += 60;
4 M9 A7 c% h# W) q) a* F* R else if( m_nJob == JOB_MAGICIAN )
8 b4 m3 j. `6 ]6 T. s( X- g1 B) p* Y nPoint += 90;
) D x# _/ B; q, L else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: v$ z" B$ a) f; ^0 D3 U. L nPoint += 120;
$ Q# O* d$ | B& @ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 F% |9 `: [* n; n9 ^
nPoint += 150;
* d$ |: ]: |. C$ j2 i& | else if( m_nJob == JOB_RINGMASTER )9 W; [8 Y+ u7 `. B+ q R0 Y8 I
nPoint += 160;5 y) _* E2 `4 }) G
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 R q0 v% e/ ]8 o
nPoint += 180;0 a: J! ?# o: g) `! Q
else if( m_nJob == JOB_ELEMENTOR )
+ r# [9 o- D# g$ m+ V2 x% c& m nPoint += 390;
- U1 L1 d. C8 ^0 B2 N; ?6 ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* u- G% Y" F+ V0 u
nPoint += 120;5 l6 I( w0 L" _ C7 b
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ B" \( j, z6 O* F# i$ W
nPoint += 150;. a6 k/ }( l# j6 g/ q6 t' {
else if( nJob == JOB_FLORIST_HERO )
& }" D) l) e$ o+ d nPoint += 160;9 ^, F1 B$ z P( I( b8 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 T5 F6 A; n$ x$ T4 q4 j. s3 s, E nPoint += 180;
6 l) z9 v6 j7 ^$ y( G# `5 E9 P else if( nJob == JOB_ELEMENTORLORD_HERO )
, D/ a" ~( ^) ?0 S0 b) g4 o: h nPoint += 390;
, c/ R9 g1 C E, G
7 A# B: {' m1 C# X0 |1 g AddSkillPoint( nPoint );
' M' I" Y4 `) Y m_nLevel = nLevel;
: y; q0 F3 D. ]% I; ^! g& a5 N5 O
# T- E9 x' u, Z& p SetJobLevel( nLevel, nJob );, q, ?+ }( K2 I
m_nDeathLevel = nLevel;7 S" f( b. ]" C# x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 p% E; `, _. H5 K$ H/ @( g
if(IsMaster())
8 D- _. F8 k4 x! K I0 z {
. {) M1 D- Z2 o$ G% [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ }& s' t3 ?% \: y e9 }1 R; d
if( nLevel > 59 && nLevel < 72 )9 `0 Y3 J0 W" ?+ k# ]2 W
dwTmpSkLevel = 1;. g, _9 W% F% K. X6 {1 O
else if( nLevel > 71 && nLevel < 84 )
7 Z8 e* w' a# J* Y8 v, m) s5 P, A dwTmpSkLevel = 2;
! b% |1 [& c. O& U( J) {) ~$ a9 h else if( nLevel > 83 && nLevel < 96 ): S. w" Q0 q- P: x+ t0 c
dwTmpSkLevel = 3;
1 n2 m4 c( ~' k+ ^ k f- a7 {0 j else if( nLevel > 95 && nLevel < 108 ); n& ?; @- p0 B* M* V1 H# u6 m: J
dwTmpSkLevel = 4;! S- ]0 Z" L1 ^& O- ~9 C7 J0 `5 X
else if( nLevel > 107 && nLevel < 120 )
7 f. O3 L; ?% ` dwTmpSkLevel = 5;6 ~7 Z/ P' M t- u1 \* E# r0 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% [& w z4 O/ U' a0 |- F { & s0 Z- H, D+ Z1 D/ t- \1 k
LPSKILL lpSkill = &(m_aJobSkill);
& h9 ]: c# e, l% h if( lpSkill && lpSkill->dwSkill != NULL_ID )
, e$ w' B; K6 g; I) O {1 @6 [5 }; g+ Z: V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# r" U5 k9 O/ g. H if( pSkillProp == NULL )
5 w: |. s: ^$ x0 k continue;7 E- Y+ d! V1 ^' B/ r. ]" E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 p# Z- ]% S1 r- C! d7 `: U
continue;
" ^& q4 I4 n0 d: L3 |1 z lpSkill->dwLevel = dwTmpSkLevel;5 [" t9 \" L9 u
}
- N1 A) [, g0 \% I+ w4 A2 s( |/ z5 s }* t x; B) X' q1 l+ {7 T; F
}
' m5 e4 A6 @; o2 ? else if(IsHero())
3 _( r4 g0 `, o; Y6 D {
# p: n5 t( C l for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 E6 Z* }. i+ }) @, u" z { J5 h: n! n1 L' y; u4 m% s( {( z
LPSKILL lpSkill = &(m_aJobSkill);
! f0 \7 F3 E# b# y! h' }# i if( lpSkill && lpSkill->dwSkill != NULL_ID )
) F4 e& ]) l4 c& s. i {
0 S2 P, b% i" E5 q3 b- o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! A+ }( _7 ` S+ k9 z% l. I8 @' X
if( pSkillProp == NULL )
% T/ w. C+ m" H3 K4 z' g continue;0 u# q& o+ N/ a/ N k# S- E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: i# M) W S) I, F) n( i continue;2 x, M9 Y [0 H( j
lpSkill->dwLevel = 5;
3 r' }5 z( o; E6 k' p# b }. m9 ^, m) k& j% b. o+ w
}
( | q! e# h* o1 C, v) m/ J } s f% h+ X; L h
else if(IsLegendHero())
# R* l2 L, A8 C1 S& d" C' D/ h$ `4 m e {" I! r0 t' Y. q: I Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - u2 p. o8 J& ?+ c. X4 b; U
{
- T( y4 O3 O& b1 u/ j- _' F3 r LPSKILL lpSkill = &(m_aJobSkill); ~. O& c+ W6 ?, O8 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ W$ C [) N; h/ [7 ? {
6 h( F' x2 ~% g5 K5 j" n4 R3 E' r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. H7 e) O; e9 ^9 t7 t9 B if( pSkillProp == NULL )
; R( E8 c5 d+ G5 N( A continue;( B7 x1 S, f& c/ O4 {2 u# `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: E$ n) l$ U6 b8 ? continue;; s. \# E/ K+ y" A
lpSkill->dwLevel = 5;/ ~7 v! y, Q7 v( S' y, o7 z
}% j- h1 p( Y+ O; z# O. s
}& @( v& }# h- h9 |7 j$ h# z# d
}$ Y" |" C9 V1 }5 b1 `* k6 {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* ?/ B0 Q! ~/ u& Q5 }) h; r# i
if( bGamma )
, Q/ b0 `) A e {4 X7 F- D0 Q( Y& h
m_nExp1 = 0;
/ _: y& P; v7 l" G1 H5 ` }
- @. Z$ v% [% z( f, q2 s8 v5 ^/ ?; J% }0 E
( (CUser*)this )->AddSetChangeJob( nJob );
7 D6 W. k0 u) P; O' S- K5 W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ |# U- Z3 ~$ C9 V+ q
* P1 m' t' n+ g' O2 e2 T2 J0 A1 B" i9 I/ V! j
#if __VER >= 11 // __SYS_PLAYER_DATA! k' u+ Y2 v' B! d5 h2 v; U
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- v8 h- k0 F4 n' D% w#else // __SYS_PLAYER_DATA
: h8 \' U! V6 F$ o% C7 w g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- D7 }, C r& a' |7 B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 G1 T1 x# T1 K3 Q
if( m_idGuild != 0 )# Y: Z! m" V: ?5 q) E) O- d& a7 _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- j8 |1 ~, `+ A1 S
#endif // __SYS_PLAYER_DATA& ^& K" s* C3 {
SetHitPoint( GetMaxHitPoint() );3 u+ {3 S* W! p0 U, [) {- x
SetManaPoint( GetMaxManaPoint() );7 H$ h, {7 X5 D O
SetFatiguePoint( GetMaxFatiguePoint() );
5 \5 z& R4 L$ m/ a' {: Z; l if( nJob >= 1 && nJob <= 4 )# F9 v7 j% K" C' j% \* N) g9 N% F
{4 s1 ^5 o3 b/ A, F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 r! A% c& K7 p2 q m_nRemainGP = 28;
' R+ A. ^) O: y' ^ }
0 o. P1 n% V; V& P if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ A3 K3 v& B: l2 h2 d& _" H {, h/ _: D. N. @. F
m_nRemainGP = 118;; Y3 r& K* s) \9 s0 x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ U* p' g5 v4 S$ l2 K9 s m_nStr = m_nSta = m_nDex = m_nInt = 15;; }, c( h1 C( L
}. I4 N& o& e( n* q9 J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' r0 o% ?6 R3 Q {% C% g, ]8 T( [3 K
CItemElem itemelem;
% s) O* a9 g0 }8 H& }6 r4 p itemelem.m_nItemNum = 1;
! ?3 `# }* D) u. l: y& h6 T itemelem.m_bCharged = TRUE; J$ U# S8 ~( M; z8 H9 [0 h
BYTE nID;
! n. w( \, i7 j5 r; a+ \( ]9 v0 n7 @
" A4 m2 J! b$ }+ s8 [ V8 L if( nJob == JOB_MENTALIST_HERO )
% q6 X; q( ^. z3 D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" V- l- Y4 k0 ?" S' O5 V6 \
if( nJob == JOB_FORCEMASTER_HERO )& Y% P6 ]; D, d+ b
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# l E7 M5 z6 S: S' @+ u
B" S% u- C$ e ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* z) _1 ^* n Q- F }0 D+ Y5 F) C% ]% ]0 s0 Z% O* E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 w0 S1 `4 Y( Z7 f) S. V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. ]3 q2 h7 l; y( }3 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" Z# p4 X, Y' Q* |+ {2 Y! i: f, a /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, g: j: R+ G3 s! U) I1 }8 n# h3 n ( (CUser*)this )->AddTaskBar();*/2 L% z9 w7 n( V+ ^! _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 ]- |9 C% x* q( `) v" N+ ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? r9 S$ H! o8 K) o1 `! k
((CUser*)this)->CheckHonorStat();
- x& ]/ ]7 I2 @( p) m1 P: K ((CUser*)this)->AddHonorListAck();
# @. w) ~% i) E9 u: b' a g_UserMng.AddHonorTitleChange( this, m_nHonor);
; y. l0 S, H/ x. @" n#endif // __HONORABLE_TITLE // ′Tà?
" ^" {, `$ d! t* x }9 _) f% k% F! v6 k/ | x
#endif // __WORLDSERVER" `) O* K$ c) b8 ~( C
}
$ o; M% \4 }7 k6 W
/ @' ]/ W R8 G7 ?) F! Y然后你进入functextcmd.cpp并添加以下6 e7 M1 J* Z* s+ D
' O- M4 D# k7 m4 l
代码:
# p6 B) W- B! K) J& q2 o( xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 R# k9 O5 _- H1 U) ~下面插入0 [' V0 c4 R- q$ T3 f9 B) M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( y. V. l8 L$ }# Q, T
# s; Z3 ^" ?9 q2 P3 }, q然后你去" f- T4 v$ z9 g1 M& [
" u6 B! N8 K5 c$ `! H# @
代码:+ ^; K9 X9 y: M% J
代码! u3 v* m- `4 |' b5 u
BOOL TextCmd_ClearPropose( CScanner & s )
! |6 s; W) Z0 Q5 g( t{3 ^" H: |1 J$ l# e
#ifdef __WORLDSERVER
Y0 H$ b5 r. M( H CUser* pUser = (CUser*)s.dwValue;8 z( R- ?+ p7 p0 o7 P! C
g_dpDBClient.SendClearPropose();
2 `) K# S6 [$ h0 N#endif // __WORLDSERVER, p6 S1 o2 p* |# J1 B7 G
return TRUE;
' s' p4 r% b& d/ L}
1 d* J+ @( h% U3 @* @9 I+ K, n下面插入& ]4 M6 q* x) m& l1 ]! Z1 H8 ^& S" s( S
BOOL TextCmd_rebirth( CScanner& scanner )
0 I G& Q' ^9 Z{
y/ S& W) i M' @9 T! {#ifdef __WORLDSERVER
' }- |1 |9 Y3 L* G- t+ v% F5 sCUser *pUser;
( h$ y( u- }3 |% OpUser = (CUser*)scanner.dwValue;9 H% K- q4 y8 u& @, Z' o0 N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 C) U& k" b% C) M8 A8 w( [2 a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 c; l3 n; m+ P, [) ]- E
else+ L0 ~0 {$ F ^5 G+ a
pUser->AddText("你还未达到重生条件!");& F# A) b1 |2 K8 r
#endif
+ r0 h9 D7 L% U5 t1 @+ g- R$ H$ [return TRUE;( U3 ?2 {+ W/ K0 ?
} - l! t2 E2 L) b( k" Z% ?2 |
$ l, D D) b& L( p, e8 q1 B# J& A1 K+ K( C
" g6 `! x& A$ x
5 s. T! S- P# |6 M4 f5 v, X. x r |
|