|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" U, D4 T! ?" b1 S0 c. X1 {6 ]% d
4 t3 c2 {5 s% E, h: E7 x2 KMover.h0 i$ h( K' m7 B' W
代码:! O7 Z. Q+ S2 E q2 w5 W J7 ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- I7 X6 y6 y6 n
4 Q, s# R1 b7 h0 _- [7 O, y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! U4 e* m* b+ i4 k* J3 v! a4 w* ? w2 F) z
然后你去mover.cpp添加1 r) M& Q+ I5 w1 ~& e: C
5 L4 B: N4 m0 }; Y! {代码:
) ?* W: l% |7 f. y+ m) F4 }( }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! v3 |3 N0 a2 q4 f' N8 L
{
& l7 K8 e, C5 y#ifdef __WORLDSERVER- \) {; u o( i* S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% w5 \, t4 a/ ?. K1 c
MoverProp* pProp = GetProp();
+ d; z5 C8 g# K. ^7 B if( pProp )
- C( `4 b9 j2 R$ L7 P9 c {9 o! c u) Z! [, F5 P: ^6 `
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- x& k$ Z$ m; ?( V
{
6 H+ A, b* ]% b; k AddChangeJob( nJob );
- a7 J. a8 _3 X. K8 f }else{
% M- v1 B8 x4 l return;; i0 ^0 s8 s+ F6 v( p
}
4 G' N: y" H o( v int nPoint = 0;* S9 p; i9 c" [; h: j+ l
if( m_nJob == JOB_MERCENARY )) s% A+ F0 E, @/ w
nPoint += 40;! T( w3 u6 t+ o/ |# |, W, l- r
else if( m_nJob == JOB_ACROBAT )
8 ]! ^( Q7 j/ K4 f5 _( v nPoint += 50;
: @+ k* M$ |$ d$ M9 A& K2 _6 T else if( m_nJob == JOB_ASSIST )
, J8 o- \, ^% H% N; r" D nPoint += 60;2 j. G+ j1 p0 h M
else if( m_nJob == JOB_MAGICIAN )
1 C+ T9 e, [ s) P8 j$ p nPoint += 90;0 w3 a( b- Q' ~) H9 i& @/ O7 t7 c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( q. J6 k: F' M nPoint += 120;
# E+ {9 f' _4 k* u6 B' M' I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 L5 P+ w+ D" S! ~% ]- | nPoint += 150;
( w: T' N+ ?; I. F v5 d4 H: Y else if( m_nJob == JOB_RINGMASTER ): `& R5 l! l0 M$ T
nPoint += 160;
* d- S; H: D/ P ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 U; x% s4 B" p, D# v' N4 @ nPoint += 180;7 e# U4 g. }: n2 D9 w
else if( m_nJob == JOB_ELEMENTOR )- P7 b7 V& j* G+ L% x' N, d1 n
nPoint += 390;
# S+ T- v9 ]; f* F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 G5 ?5 {7 j/ j- J" O nPoint += 120;
) f: x7 ~; Y+ L, |# ~ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* O9 j1 w: J! y" {) B2 g
nPoint += 150;$ ?( W6 h$ b/ R1 b1 z
else if( nJob == JOB_FLORIST_HERO )
k/ N7 {* H1 x, P8 C1 U nPoint += 160;& E7 T' a$ f: g- M/ Q+ X' w* n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ K% J& Y% C% _
nPoint += 180;
- [9 C4 c5 B# N8 f) J3 @9 W else if( nJob == JOB_ELEMENTORLORD_HERO ); h% K' p+ w a
nPoint += 390;
4 b& m, e1 J9 I) ], p9 m! d+ L( ~9 {
AddSkillPoint( nPoint );1 H- p |& `* p3 |. C% q/ G& r
m_nLevel = nLevel;
9 W g& E, A" _ u
6 \5 p$ s* K. ? @' X6 k: | SetJobLevel( nLevel, nJob );
5 _* d1 T @: l* u) V7 S. { S m_nDeathLevel = nLevel;
' R1 j. T; S+ i1 `6 `, T" r#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ s7 B; N1 G8 ?( @- i! f! O8 P0 S1 e if(IsMaster())) Q4 i, O9 k* t3 n
{
' G# K0 N2 {; f, O int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ _+ ^' ~# q$ u9 v( ]4 N. O* \4 v; ?
if( nLevel > 59 && nLevel < 72 )
2 \/ C E) ^2 j0 |5 }' @! T6 |# t dwTmpSkLevel = 1;; g' K( f! j" I. q& L7 y1 M" `! m
else if( nLevel > 71 && nLevel < 84 )* l! a8 n/ V" y+ V# E
dwTmpSkLevel = 2;
* J! U* R# V& W' _/ T3 v# M else if( nLevel > 83 && nLevel < 96 )
C9 a8 i3 o" d dwTmpSkLevel = 3;: \ a3 ?; m: m$ T, C
else if( nLevel > 95 && nLevel < 108 )) l# x. p8 o) d( S& ^! B4 N
dwTmpSkLevel = 4;8 w& m" x/ [- P' e
else if( nLevel > 107 && nLevel < 120 )3 o4 ]: [: P, q; b
dwTmpSkLevel = 5;! K# K' f; n* A) r# l6 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 C8 y8 o- {5 B; | D { 2 i( X; K0 a8 K1 \
LPSKILL lpSkill = &(m_aJobSkill);2 d2 U9 p8 s# ~- ]+ @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 p$ I5 ~6 u6 J L3 ]; t {
2 {9 G8 d+ @; z3 { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 Q) W3 D# R. y8 m8 J$ s+ ]. Y) T6 j
if( pSkillProp == NULL )
: n" ~9 ~& N5 l9 s4 l, C continue;8 C* u3 n4 u" k! A( e! S3 z8 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 k5 T6 }2 M, I$ T
continue;+ O9 D& X8 P7 H3 L. f, \
lpSkill->dwLevel = dwTmpSkLevel;
0 y8 s* t6 V# G1 Q2 \0 ^, { }
" w/ f6 c {# F; m. K }6 a3 O8 p/ ^6 b' X: ?7 z' e2 k9 T: D
}7 z2 y6 ` Q& Q$ x5 x" q7 @0 d+ r" q
else if(IsHero())& j& A7 T7 r6 l( W/ v
{
" P5 i. W. \6 z for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 }; b: f9 F/ h0 K) t/ I) | { @5 y8 O: n* N! @% k; a* n6 r
LPSKILL lpSkill = &(m_aJobSkill);; G( }6 l- z6 U7 C! N7 x$ T1 D; s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 P( k3 q( |1 ?3 G2 K' m3 B+ m' @ {' X: s; V+ \$ i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ l, g$ s3 ~& K. y: z% r if( pSkillProp == NULL )+ ^2 I7 d6 S' P4 o1 S" `$ g7 g
continue;
, ^, B1 B( v0 \: J) t! ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# f) }; g' |( k% n
continue;1 S! U! q- u4 Z2 Q
lpSkill->dwLevel = 5;8 Z/ T! r% C4 ?* u
}$ e( w! @2 |+ |3 `/ e
}
% ^7 h. L4 S; ~% z, n+ N" L1 @ }
) Z0 i V/ F' t1 T* o) o else if(IsLegendHero())
C: @; V' _1 b% d4 \ Z9 W {4 G" Q9 L7 U8 _+ e* m! d6 R, r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 U5 w$ B! o# l; M. }, ?1 ]% I {
1 e- u" s) m4 b2 l4 W LPSKILL lpSkill = &(m_aJobSkill);' ?- ]+ q* f, ]% P& j3 C7 n2 N
if( lpSkill && lpSkill->dwSkill != NULL_ID )% @8 j" x4 V$ H8 Q0 J, @7 M
{
& t) j+ r/ j. w) `6 }/ N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - ~0 ~; L* ?+ z, r/ Y2 q' Y4 d: g
if( pSkillProp == NULL )
2 x c/ j; r1 \" S! ] continue;
- G( A- n4 H0 ]- T4 J- ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 g: G7 o6 y: E0 j [
continue;8 [! F4 b3 i; {% S
lpSkill->dwLevel = 5;0 N! s5 _$ N2 Y0 i# q) h3 U
}; q4 U1 l- n' Z. u( ^* r8 _/ G
}
$ Z. X$ S" o* o: |5 l- O$ ~ }; Y- _& L2 w, E9 I7 R) u4 M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 T- D. @3 Y/ {2 y4 r+ B/ | if( bGamma )
1 e( X8 {; D" M) g8 K9 F! `5 Y {6 N% a1 [2 X" W* u1 J2 c
m_nExp1 = 0;2 x, z% E0 |* I3 Y) k) A% _/ a
}5 r j7 Y$ c7 W; V9 P
9 {+ t& }4 e& k" y3 U( t. m ( (CUser*)this )->AddSetChangeJob( nJob );
E( F- ~# o, a7 h2 | g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* @( A0 s4 \5 p8 P* ^* z) ]! {
4 Q' y+ P/ c& [# u2 C6 Z* J) h0 v8 x2 O4 O; ]8 X
#if __VER >= 11 // __SYS_PLAYER_DATA) ?7 c& X/ [4 ]3 n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( e' w, Q$ N1 Z! U" X7 o" l. Z
#else // __SYS_PLAYER_DATA
- H8 I1 `6 A/ D* S' n& A5 l! F/ w g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) n8 X2 y# v7 C4 I- b2 s$ m6 p g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& W# s. K; V1 p; Y5 O if( m_idGuild != 0 )
0 b# K& L" q8 L! V1 h) x6 Y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& q' q% a! G& a1 N/ B. x
#endif // __SYS_PLAYER_DATA
2 o# N3 O& H v SetHitPoint( GetMaxHitPoint() );7 \5 r+ B6 x# g( g8 W: v) K
SetManaPoint( GetMaxManaPoint() );
8 t3 M, \& @+ j8 h+ u+ h% { SetFatiguePoint( GetMaxFatiguePoint() );
; F7 n n0 o7 y if( nJob >= 1 && nJob <= 4 )- z: h! r9 D, ?# L
{" D/ e) W" W5 M% I0 S
m_nStr = m_nSta = m_nDex = m_nInt = 15;* P% D, T$ T X( `0 s! X3 _
m_nRemainGP = 28;6 M C& d* A0 A2 ~" V) |; p
}
0 O/ c [3 |" v/ v ~2 S# s Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 H* z# `$ T, e- F0 D$ e) ?
{5 R# O+ R. @0 n$ H% ^
m_nRemainGP = 118;
$ ?5 v! [" k# X% |% e6 [. C9 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, x, t, B/ }3 G6 |6 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* k+ z* j7 R% K8 G2 Z! g }4 V" ]8 i9 i) d- b' |* x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 x/ Z4 O# I. L5 X: Y; P2 O8 D7 z
{
) t @' B4 ^! @+ b3 E, S" r CItemElem itemelem;
; H! K G; A6 k( K$ e$ ? itemelem.m_nItemNum = 1;( R) F* B0 y. C% L4 W$ D5 o" R0 ^
itemelem.m_bCharged = TRUE;
6 T) m& W3 H( A BYTE nID;
8 O4 j- h( K% Q1 a7 A6 ~2 f2 L& i, e0 L; n U
if( nJob == JOB_MENTALIST_HERO )
: y6 e3 x i' }9 \3 e itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: [! a- V! q, X/ f/ ?2 V F if( nJob == JOB_FORCEMASTER_HERO )0 H( m: L: j: X _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 i3 i$ f6 u' U' Y, d% Z
4 H* `, F6 K- c& g" V- o# W ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, a m+ j% J" a- u5 a8 f* N }
6 E! G: [5 Z3 s$ h- a; y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 Q( i! U& a( V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. }' h* _3 I' ]$ D0 d9 J1 ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: T* u) j- @$ ]. K8 B
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ N5 v# Y" v. I5 W ( (CUser*)this )->AddTaskBar();*/
: B& s6 W+ q6 z: I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 k* d. v. Y2 K3 c* @- s8 r$ J3 j! C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 i" V3 j# }4 ` M ((CUser*)this)->CheckHonorStat();
5 j% E3 o* H$ C C# t( ? ((CUser*)this)->AddHonorListAck();
) j5 H" Q5 _# L% `- m% V, r g_UserMng.AddHonorTitleChange( this, m_nHonor); z' \* P4 j) B! F, q
#endif // __HONORABLE_TITLE // ′Tà?
7 _8 b- c3 G& J. N$ r# d( Z L) e }
7 l' S3 f u( a; L- F/ ]#endif // __WORLDSERVER8 g5 b Q7 {& P; q+ T' \. K* }7 a
} ; S" \0 K* L) y! ]
- }* j3 f$ y* C) i" u( l然后你进入functextcmd.cpp并添加以下9 V- R& k; S7 p; C) [6 K
3 n) Y! j' o5 h# h8 D代码:2 K2 A0 O8 X4 T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- r. {( ]) G: ^0 b; W* a) l: e
下面插入
; y' v9 _9 Q( b P/ jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " n. G, B; H7 J" \
0 y# K K2 W4 _6 |1 q4 l
然后你去
: d7 D9 ?) d L. f% }9 {. G' ]- ~: ~# G1 A+ o) C/ X, b* z! H- `: O
代码:
, {! Y/ V6 I- e$ y0 L- v代码
6 p( i4 h1 V% f+ D6 r2 G% WBOOL TextCmd_ClearPropose( CScanner & s )
& `* q# g6 J' {. {+ z% u3 n{' e) ~% ]3 `1 G+ T2 _
#ifdef __WORLDSERVER
, ^8 y" b! A7 ~0 Y CUser* pUser = (CUser*)s.dwValue;
) d9 q( R6 d+ b2 O9 L g_dpDBClient.SendClearPropose();
5 V# R, j6 m7 [#endif // __WORLDSERVER
% g. }9 O$ W& P& V return TRUE;! W5 B: Q' r: Y( j
}8 E5 v1 A: O7 [% \8 [
下面插入- v1 ^4 X5 s2 `; h- c' u+ R: j% N
BOOL TextCmd_rebirth( CScanner& scanner ): n# H1 N' t1 `0 ]/ p, i
{
^- q5 l/ C& P#ifdef __WORLDSERVER1 W: E/ B* a3 B, V9 \' N
CUser *pUser;
- ~( ^: a6 ]% m1 ~9 R; lpUser = (CUser*)scanner.dwValue;8 R& {, i- H; S+ ?1 V
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! n: y t, j+ ^7 g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 @9 E- d# `6 K$ P, Uelse6 s" h5 ^: H; q' t
pUser->AddText("你还未达到重生条件!");
3 ]( }& y8 }0 O4 K3 J#endif
5 ~" j' d5 b3 Ireturn TRUE;" h/ w" Q' x1 n
} F4 T# Z0 }; I4 n( f5 K
, a* w7 U/ B1 ?& G: p
% M+ r, F W" Q7 S' r9 _' f5 Y- `8 [7 O% v" e b
8 t5 T# E5 b: s. R; V/ h/ L9 z6 I
|
|