|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 q; D! N6 x! l( K: ]' S
# [# M" w6 Z4 x% `( \! z& E' H7 s
Mover.h9 a" i3 H" n. e3 v# W0 W: E# @
代码:& N$ q1 k J& ` E, w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ \; u! A1 V e
7 h# H r8 e3 E' }8 t, x3 I- O0 u下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! e5 e0 F2 n2 Q# V: ~3 v
. x( m& _5 @8 `. s$ H% ^5 E然后你去mover.cpp添加7 B' m; K. y) V/ g) F+ s
. A/ K3 [& P# U3 L$ |& ~7 E代码:5 ?8 t; ~4 M1 l; K% ?# ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 u9 f" y- h8 V4 s, O
{
' t. E( }& ], D#ifdef __WORLDSERVER
6 o4 Y$ ?' S1 O# E; x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( \7 @- r5 x6 `# }. V0 P; T
MoverProp* pProp = GetProp();
6 f- i/ n# u' c% C; `1 s if( pProp )
& j; v" s. T1 E1 H0 C$ i {& t% \3 Z6 E7 }/ C5 p, I
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: m) S% _' E' [ {, }& }+ Z7 v8 P h) q
AddChangeJob( nJob );
4 Q. u1 o3 Z( f; c& h }else{
6 C* J7 P, n) P) T) ` return;+ z; I- ]1 W ?9 L, j
}
! W8 R! H- b2 b int nPoint = 0;
( Q) d" H; n5 v6 f+ t if( m_nJob == JOB_MERCENARY )
+ `. c3 v# y/ X3 m3 H* q; T nPoint += 40;
! |( R0 T" Y# v9 R C else if( m_nJob == JOB_ACROBAT )
5 E& B& y' @6 x0 D nPoint += 50;
( t, G9 R" @+ F* C6 G+ Y else if( m_nJob == JOB_ASSIST )! J; v% `7 N; S+ u! G
nPoint += 60;
/ k: n! G$ i3 ]5 Y else if( m_nJob == JOB_MAGICIAN )
# Y' a6 `; j/ l# U nPoint += 90;; j; R8 }4 s& }5 J9 h- m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 v$ V2 F" g+ P. p/ F. ]6 H nPoint += 120;
/ O) c& S7 M* p4 _7 }2 Q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 T5 z8 E3 i: B) F nPoint += 150;
0 F# I4 `! J5 r7 i' `7 Q7 k8 j else if( m_nJob == JOB_RINGMASTER )
. v) H9 p* D/ f nPoint += 160;
" ?% W6 z6 a$ }; S Z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 n+ Q; `+ i2 T$ {3 W+ k- t% P8 V
nPoint += 180;( d' F3 r3 b, M/ {, P. {
else if( m_nJob == JOB_ELEMENTOR )7 g( |0 g0 d0 b! S2 y
nPoint += 390;
- k! z n+ L( R- _% J# x else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ t- `- S/ O+ g2 H nPoint += 120;
+ T) G+ V. s2 H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! n- k7 c6 ?( v) ?$ t/ W% h nPoint += 150;
/ E; R0 ?! D; k+ ^0 m else if( nJob == JOB_FLORIST_HERO )
; ?! e+ ]$ X- h* F \3 }6 y$ B nPoint += 160;* u. U _+ c9 |: }; T) T
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 [) y; Z! R* y1 i' P nPoint += 180;$ Q) W2 B7 ?9 K! z! Y2 a
else if( nJob == JOB_ELEMENTORLORD_HERO )
* F" ?; Y- y( c) D nPoint += 390;
1 q, N1 @9 J+ i- T* m0 z( F
) J5 |9 X( F; n! v4 d& W2 S AddSkillPoint( nPoint );- S- L V3 ^# u$ q9 i7 m
m_nLevel = nLevel;; v% F- m% g7 J% g6 r7 |% @
' r3 o9 c& i- V5 G/ G SetJobLevel( nLevel, nJob );5 [0 R( z6 |: r) a3 L X# D
m_nDeathLevel = nLevel;
6 x/ K# C7 N( T8 P5 N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* R/ |% p1 p# L7 p: c/ i0 v if(IsMaster())3 |: l5 |/ e* z+ B
{
( |3 d0 p8 n( ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. \4 [9 D, H1 T7 F. ~/ h" p
if( nLevel > 59 && nLevel < 72 )
1 a6 j+ w) K7 v! y+ |" ^* G dwTmpSkLevel = 1;
# T% [6 i; t9 T9 N7 ? else if( nLevel > 71 && nLevel < 84 )' e9 W; G; Q" ~# F
dwTmpSkLevel = 2;$ S' F. u7 J0 j& J" j; p t+ G+ }
else if( nLevel > 83 && nLevel < 96 )& l/ l/ y8 [4 I' x
dwTmpSkLevel = 3;4 I6 t9 C P- D' {) X
else if( nLevel > 95 && nLevel < 108 )5 o2 u/ j3 K- t! j8 ~
dwTmpSkLevel = 4;
& a$ g+ {1 a5 w; {( t9 _' z/ Z else if( nLevel > 107 && nLevel < 120 )
) ]3 }! {0 R+ y0 y6 d( q! U dwTmpSkLevel = 5;" ~8 H# x/ U1 q6 R- N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 a! C. V( \% c
{
# B' O$ }" _2 S* a) \ LPSKILL lpSkill = &(m_aJobSkill);: P+ ~8 G1 ]) A, d/ ^! H( q5 f; @" X0 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 J' w2 C8 L" J4 N" D" o, Y {, _6 s n/ _% H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % B7 b7 ]1 `& _% e( L
if( pSkillProp == NULL )/ N; F9 K# B9 u& P* J4 A# S! V/ Z
continue;7 F8 O; w+ g7 K: E! m; Z7 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), [; p# u9 H2 T0 X- g4 D2 O/ }
continue;5 c$ \/ C8 A- ~6 ~! S
lpSkill->dwLevel = dwTmpSkLevel;0 g d1 E) h. x
}* s1 ]3 t+ m% ^, K' g! R( l/ L5 J7 S$ E
}
/ x3 H6 I( {5 j- S; @ o }
- A. z& _, a: a7 U else if(IsHero())$ L8 o7 S4 _' u# ~! I
{* r. ~: D. h0 z) z: f/ i* S! i6 i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; E% e: f: S( W( k. u
{ - r% d/ T6 v/ e9 u; ~
LPSKILL lpSkill = &(m_aJobSkill);
0 A$ @9 ~4 e, F4 Y+ s! J if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 O0 t" }* ]. S# f0 z# @: X {
: W& }6 P! ~! I6 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . `4 }2 a; y& @: @2 \* I: b9 m
if( pSkillProp == NULL )
1 j* V3 P" L' r" `0 X" t* P continue;
+ `% S1 R4 `! L( [0 U. E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ @5 M: K, v7 j4 P continue;2 Z/ i7 P) B6 t/ K; X
lpSkill->dwLevel = 5;& `' C* Q( `( @, h7 N
}% l r6 U1 {/ m! Z& T6 i1 F: P
}
4 U+ `2 Z- E3 s8 Q* R }- W; t+ [- w, K9 Y
else if(IsLegendHero())
3 M% L C& w& |1 {! U b {
% v1 e) H9 k; w for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 T- M: |& g3 J9 l, i$ |
{
% j# ?' {: T3 @5 r2 l, y* t: A LPSKILL lpSkill = &(m_aJobSkill);
7 a: ~- J* N$ k+ z5 q6 D. z9 R if( lpSkill && lpSkill->dwSkill != NULL_ID )
. c- ]1 s) F$ m0 H {% w( N. x8 I& P( g; q2 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: d% V* H. W, Q# ^: ?' s; @( Y1 o9 N if( pSkillProp == NULL )+ `, }% A$ t4 n% ^, ?( Q1 u
continue;
3 E7 d7 `+ |/ ]$ g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( A- I( D' s. Y3 a7 j continue;, ^( R6 Z4 Z+ i% @# r* P2 p
lpSkill->dwLevel = 5;
6 n! @( e: w$ @# q1 n$ f! T5 ` }
) L A0 L# q9 c$ y8 b o( K: _) x0 k }
3 \# W0 v7 t" a* \/ I6 m4 X7 ` }
, f# |, E7 ]6 L9 x ^% {4 _$ n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# G# X8 L) j$ ?" y0 V& I if( bGamma )
: ~& w" D7 \9 g8 q& E: O {
( m/ X4 ^! v9 \* O m_nExp1 = 0;) o. w6 g0 T2 y$ L) z8 _$ E
}' e8 w# e, y1 J! X g& J7 K
0 |7 I7 ?; H5 x& j+ _( V B$ T
( (CUser*)this )->AddSetChangeJob( nJob );# ^! [/ y9 m ~* n9 ?# x
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 a3 E6 G- l6 g1 v; B7 e6 t/ w! g, `" J' F& Z) p0 n# c
& u5 ~- C% A" H0 l
#if __VER >= 11 // __SYS_PLAYER_DATA) o$ T0 L- H+ L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* f% a- u: L7 e
#else // __SYS_PLAYER_DATA
" {6 L* n# y' O( [; B- g4 I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 c( }% m8 H, j. f+ W3 L9 | g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' H9 w+ r# u. `) Y; J if( m_idGuild != 0 )6 u' O9 H; L( s2 p/ r0 S2 o# ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' R& b5 N" T4 i$ } t5 _ B7 e
#endif // __SYS_PLAYER_DATA
+ @- z5 b0 q3 M; t* ?: ^( f SetHitPoint( GetMaxHitPoint() );
; [/ v2 z- P. t SetManaPoint( GetMaxManaPoint() );
6 S3 ~) O4 s" L3 o2 w/ Q+ E/ L SetFatiguePoint( GetMaxFatiguePoint() );
2 O c3 T3 W. c8 y$ v if( nJob >= 1 && nJob <= 4 )* {) N# T/ E$ M! p
{3 t% [$ L; C( y5 C5 u, E. r7 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
j4 c4 e3 D! `$ | m_nRemainGP = 28;
: ]2 c/ f% }' B2 u0 I( n }6 K4 K- w% \/ b( R B. x# a7 B) R: |
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 Y6 I* F3 r( n9 [( o5 |6 c- ?
{& y: n# D" {! H: |( B
m_nRemainGP = 118;6 |* y2 i0 h" X% n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 }+ R7 f5 U: f9 x( f3 }1 V9 { m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ c# E- X5 E: V }) e. b: P+ l9 U' Z& k6 G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 }# q, y% u D6 b7 q& I
{. v5 g* @+ j4 a2 z
CItemElem itemelem;9 k* ^/ T: `: d; c2 M6 w
itemelem.m_nItemNum = 1;
& I/ h3 y, q, G1 a5 v% e! T6 _ itemelem.m_bCharged = TRUE;
3 B" G* I* b/ o6 C BYTE nID;! h- ]& e6 I& ~, }
" E8 R7 }. q2 n8 B J0 a/ h
if( nJob == JOB_MENTALIST_HERO )( z: O ~' K6 Z8 k* ]' U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" o4 I+ ^: K! O5 X# Q: s# z& z if( nJob == JOB_FORCEMASTER_HERO )7 R- s+ P6 |7 P$ B% V. O3 x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% k( ^0 }: K- x" y2 ?0 u$ f |- j4 a6 P5 r% ~+ {
( ( CUser*)this)->CreateItem( &itemelem, &nID );; g) x* z& N; N$ z A, H3 e+ G
}; g) J2 M8 A! U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( `. L8 T$ ~2 h G# M3 `7 h- L" B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); w0 ]2 B" l U& g+ z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, _1 \+ q1 I" e) ?1 R% ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 n0 @% T# s- ^7 i" [3 g% A9 O ( (CUser*)this )->AddTaskBar();*/
# \# a4 g- t; q( ^0 X9 A& E) Y/ V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* f. A5 \0 v9 d. X# X* ?3 S8 N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 n2 U, Q. |1 f) y5 [9 W
((CUser*)this)->CheckHonorStat();( C3 u" `3 u4 o
((CUser*)this)->AddHonorListAck();
8 T' y8 H7 i9 h* n9 q g_UserMng.AddHonorTitleChange( this, m_nHonor);3 d2 t* G1 G# q+ Z. {0 B
#endif // __HONORABLE_TITLE // ′Tà?
6 \0 I! w- N# M# m) o }5 G; @9 T A# i0 I. m# W
#endif // __WORLDSERVER
2 P; M; s& \7 r8 o+ V( _2 ?( \} / A, i* r" F3 G0 J
, P: A; s9 Y2 T% h7 L0 n. D
然后你进入functextcmd.cpp并添加以下1 Z* Z" ]( v3 d: E4 E% L- M! A
8 N" |! e# V' a代码:6 B8 @. k2 V* U& b) n8 j: b4 F4 \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& a. I5 |5 m0 y! u
下面插入9 M: o/ M9 f" ~% L( Y6 K6 h; Q# ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; _5 K9 h. e- k" k0 c! }, F* J
5 H& S! V6 w' Z2 Y8 }; F- P4 g
然后你去
% |& a Q7 {* Z( { l1 E: `, v* S) k# f6 Y: W
代码:
/ E$ ?9 P! l. E% k3 n' _代码
: X: S0 w( i+ U/ H; N& S: s9 `2 DBOOL TextCmd_ClearPropose( CScanner & s )) n! o$ P& k' j( @6 S
{8 S B0 b2 s; H) k; y8 G
#ifdef __WORLDSERVER
7 r, n, |, o' Z8 c4 u" C CUser* pUser = (CUser*)s.dwValue;
9 J+ ]; R# H8 E" J g_dpDBClient.SendClearPropose();
0 f* n, V! Q+ k#endif // __WORLDSERVER
# d: X5 I% \0 U0 R! \! a. I return TRUE;- i9 N9 |6 |& V k) }0 j/ i$ `
}
9 h. v) P0 O! T( h' P0 |. C: M3 q" y下面插入
" N6 D0 z, I. l( nBOOL TextCmd_rebirth( CScanner& scanner )
+ R; ~: C6 _& H" V0 Y) J# j6 |{
% U6 b/ j6 `. E3 H: U3 _#ifdef __WORLDSERVER
$ h2 U& {) T6 ]/ V& a, E! \. gCUser *pUser;
) }; U! [2 `% ]8 C/ npUser = (CUser*)scanner.dwValue;0 k% h R8 U- Q8 z D
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 T. _/ |' O5 {7 [! D# R M8 UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ B( O' G6 I8 P- {% R$ S
else
8 h. z5 o9 y: c( CpUser->AddText("你还未达到重生条件!");% {: f. b0 D! \7 ?; `- T( O6 h
#endif
4 K v4 f5 H2 _$ `- Greturn TRUE;, O$ P9 e4 I4 H: B7 K
} / W [1 V |$ M* p3 m
# f$ r# ]) r0 I& I5 v& @, q* L7 o
- m0 H2 J, |6 z
1 {" h) h! [" D
3 y5 x1 s V0 V7 y H$ S2 I/ `% l |
|