|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ J, T! X! C! ]+ q2 f- K! f- s m1 u' v" x" A0 }+ i
Mover.h
2 h& S& s4 _' j代码:0 b/ r5 F) @: o8 \$ e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 ~# p9 d( G" q0 R6 v c( Q) a
5 Y: G: Q+ H) z( z! O: g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& S: m" j5 U, w: h6 W4 K+ j* d" ~# v
( R. v1 H5 R N0 q o0 X然后你去mover.cpp添加4 m% W6 C. h: T! ^6 ?3 I5 z
/ z- f) ~5 Y, [* ^8 O7 z代码:
5 ?# h( ^, d4 U6 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 X6 l' Q, b- t* o{
. p& d, c9 M* @#ifdef __WORLDSERVER( g" e5 R; ~' v: B3 x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 ^" `, N6 U8 M2 u% U
MoverProp* pProp = GetProp();
* G% D" o* [# e0 ~9 u if( pProp )
1 N! W' O) z4 I4 r5 _ {( Y3 Y' F5 H$ c$ R8 h7 u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 X0 ^( c8 d2 j! C: d/ `; X% v/ `3 |
{9 m4 Z4 m" g/ K3 @% M- N
AddChangeJob( nJob );
' ]+ o& @+ n4 k' f$ S5 u& B8 @ }else{
6 T- H& T/ r: y/ d# \ return;% o% O; t) s" Z0 g) r9 m3 m/ e2 k* {
}" G r$ k+ t( H4 P6 f/ r
int nPoint = 0;7 d5 c. W1 Z3 K7 o
if( m_nJob == JOB_MERCENARY ), w; N; Q; G) v& A3 |, @: @
nPoint += 40;# Y/ I0 z$ S3 Y% i# f9 R
else if( m_nJob == JOB_ACROBAT )5 P, z, D6 {: n$ {
nPoint += 50;
6 p$ r/ o. l7 |% F+ i e2 h else if( m_nJob == JOB_ASSIST )
D' p! F. c! }% j0 | nPoint += 60;: Y$ p6 d4 O w9 t5 t
else if( m_nJob == JOB_MAGICIAN )
* B( y4 m& H$ W7 p( s9 f nPoint += 90;* x/ | T" v0 `5 m3 E
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 O# E% m5 C z- s+ n* N
nPoint += 120;( _" k, b1 i9 A+ e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 B6 B; g3 `4 B1 a; } w
nPoint += 150;* [& a) [9 R# q {
else if( m_nJob == JOB_RINGMASTER )4 n ^( n% T2 M8 D9 B+ s
nPoint += 160;
1 R. R% l: C6 [ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# I# R; V' U* `6 S# ?% P7 v
nPoint += 180;
$ L* L, q" d$ [4 h6 o' y else if( m_nJob == JOB_ELEMENTOR )
) T, ~/ @) C6 c+ [& A nPoint += 390;- W- w8 x! A9 f1 ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 Z# [& C9 \ M1 w nPoint += 120;! w1 u! }7 _" a% @7 U
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) j0 l, E5 w& u+ ] T/ _+ o nPoint += 150;& x, [; ~5 d4 e0 [- v
else if( nJob == JOB_FLORIST_HERO )# I' l+ K. m" c8 S+ |
nPoint += 160;! K; B) P4 q8 k8 c: z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! y! }$ C2 \' e nPoint += 180;9 u% `* g/ }7 e3 k% S- `/ v' K
else if( nJob == JOB_ELEMENTORLORD_HERO ). f# Z0 ~* F/ s
nPoint += 390;# U8 w3 K( p. f1 K6 @
5 m7 v6 t8 Q a% S' M n) c- Z! U
AddSkillPoint( nPoint );
0 H8 f4 `! w7 Y* a m_nLevel = nLevel;; x; G, ^1 k) q/ l/ G/ M
% ?, n! a) [& Y# ^% |% G SetJobLevel( nLevel, nJob );
" o! S( q2 v/ o e% H2 N/ b m_nDeathLevel = nLevel;
$ i' V1 C L" V# S/ g3 n2 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 o- S( L7 C2 O" `1 g: G d if(IsMaster())
! N5 G9 }# p P; G9 l* k6 a' ` {2 P) k% Q" i2 r
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; J# r ?( ~6 m* g: A if( nLevel > 59 && nLevel < 72 )
! x6 E3 M* K, [7 h! z- B dwTmpSkLevel = 1;6 m$ D4 G7 ~: T# u- U5 b3 g
else if( nLevel > 71 && nLevel < 84 )
$ c& r5 z, b1 _) ^# G8 ? dwTmpSkLevel = 2;% T2 R$ F2 V' j% b. e2 y) H
else if( nLevel > 83 && nLevel < 96 )
# N/ K& O, S' r6 E0 F C dwTmpSkLevel = 3;
: z5 g: H& P9 E" |: n else if( nLevel > 95 && nLevel < 108 ). d+ y) j7 w( V; ~
dwTmpSkLevel = 4;( ]7 Y1 n$ `1 a' P# P
else if( nLevel > 107 && nLevel < 120 ) S! o! Z& `- [8 T6 i
dwTmpSkLevel = 5;
) g5 ]" f9 c# P& n for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ R% I, U1 K+ {/ e {
* Y/ ^+ z& \! F8 |; Y | LPSKILL lpSkill = &(m_aJobSkill);' P; X% ~$ Y9 Q4 G0 b$ K" r
if( lpSkill && lpSkill->dwSkill != NULL_ID )" U n4 w, q# N: a; d2 N
{. ]1 I6 g p6 I& i& a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 |3 n- ?# l. l; |
if( pSkillProp == NULL )
+ [1 n7 Z. q$ ^" j b2 ~ continue;7 ^4 W- D, x h" v) P3 V/ D' n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' |% }0 @1 M9 ~& F, m& v continue; m. n6 I6 [3 f$ U
lpSkill->dwLevel = dwTmpSkLevel;
2 f. r0 ]5 p5 h) ?- Y0 L7 [0 I }& C/ D7 R2 T" ]2 `2 A
}
9 X8 r* b! Z8 A }2 U3 w; x# b! u: `. `( _
else if(IsHero())
4 s+ g) J' v. t {
; [- ^# r# p# Z. B5 |* O for( int i = 0; i < MAX_SKILL_JOB; i++ )
' K1 B- q3 G* m1 r% h4 E {
' z/ u) h% e R! z! G LPSKILL lpSkill = &(m_aJobSkill);) {; A% P' [7 v3 m- E
if( lpSkill && lpSkill->dwSkill != NULL_ID ) J8 t% \' T {
{
5 R$ R: K) |; a' l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) `2 q% @( c% J. c9 g0 h
if( pSkillProp == NULL )
( R) `0 P2 Z7 S+ H continue;" i$ K* K3 x- J8 I; U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- f/ ~ ~8 F$ |* H* J7 d/ z
continue;* y) U v4 D* ^3 `' z
lpSkill->dwLevel = 5;7 d/ O6 |0 B8 s9 `/ k1 [' m# ^
}
3 B" F3 Q7 k2 q2 ~ }
' b5 q: @; V, ~# s3 R4 k }1 `5 P/ ^: B# S
else if(IsLegendHero())3 y8 Q; N2 \9 x# J1 o! k
{
$ l- @0 Z3 B# X) i6 E( a for( int i = 0; i < MAX_SKILL_JOB; i++ )
% g8 _+ M5 V9 m. L' n4 e, R { 2 g P+ G, j8 |& F* n& D( ^
LPSKILL lpSkill = &(m_aJobSkill);! E8 p# I n! m+ x; M _' \
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ H. }; U2 U8 a6 U( a$ c& z
{1 v# U. t# V2 K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! Y4 q1 }& l; K if( pSkillProp == NULL )5 w! R' H+ D4 B
continue;
. p n- x+ z& L; V+ w1 I$ [0 U# | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 ]4 D3 Q* p; o, A s8 K0 g; Y
continue;5 U, g8 C) U9 q! i5 k
lpSkill->dwLevel = 5;
1 E' N6 d% k4 c Z. \) u" @7 t }
% E$ d8 b9 ^# M3 m7 l" V0 f }( y( \/ M8 S% l
}
( B) {1 U$ L/ F6 A- E#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. y5 o. ~& z$ H G% Z
if( bGamma )
- p( Y$ S! a* L* M# A {
" C) y) k2 g0 z! o+ ?/ ^ m_nExp1 = 0;$ m: S/ |, \! }6 G' I( i
}+ W7 c' k3 O5 y4 x0 B
0 ^6 N; O2 w y) m' j; Q0 A9 C! x
( (CUser*)this )->AddSetChangeJob( nJob );
2 s M1 d4 E- r: y5 ?$ M% ~5 I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% a! a# x/ S: _- M$ }; c
8 h: K7 h" ?3 C; Z9 ~) G9 t( d, n, i# Z# B& V* z; a* U: W* o
#if __VER >= 11 // __SYS_PLAYER_DATA
T6 e1 X7 o9 K' K* } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; H! V9 f. l% d1 |" U) t#else // __SYS_PLAYER_DATA
2 ?9 p$ Q6 x [; P* X g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% S7 a3 h& m w: ~: _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ c4 @( K5 ]% W) `
if( m_idGuild != 0 )
4 O5 |; \$ f6 W1 @# f5 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! g( e1 |& j# p$ k. r. _' ^#endif // __SYS_PLAYER_DATA' w v0 ~' n9 N+ y7 o: A
SetHitPoint( GetMaxHitPoint() );. t" e7 w; Q( _* T. y
SetManaPoint( GetMaxManaPoint() );
/ S, x) a) u, @; B( D$ v% N SetFatiguePoint( GetMaxFatiguePoint() );
! y' D$ q; j4 i O" z' [6 V if( nJob >= 1 && nJob <= 4 )! d5 h$ {% Q7 ~
{
C ~& j' [) O5 F3 t# k* z0 B' U) ` m_nStr = m_nSta = m_nDex = m_nInt = 15;' |; M, v) |: B& Q* ]
m_nRemainGP = 28;2 f4 r& A N; B* E# Z1 Y1 i
}
0 o" t( @% g6 Y8 s s- `, ]) { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 ~) \ t Z7 n: B {) v+ i3 X3 i; {# W- Z. e) z& r, \
m_nRemainGP = 118;
1 m$ h2 B, }( G4 r6 e0 j T //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 j0 z( T' }, G/ s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; e4 m4 P D# O$ j: w }3 P/ Q) [& @$ W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) h* t6 M5 m/ @& z: X6 m9 T
{& E& W( ~& I' E6 r
CItemElem itemelem;
4 u, `* M2 C% B itemelem.m_nItemNum = 1;, @- Z% K( }7 z m
itemelem.m_bCharged = TRUE;
. J# S# K; j! B9 t7 @8 j BYTE nID;6 o- i8 h4 o4 `# G" ~+ o
. Q5 [4 t7 e3 N* ?! O# o8 X if( nJob == JOB_MENTALIST_HERO )
9 B, Y# c4 i8 J; ]. x7 o* ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, W' ^% T8 Q$ v+ x if( nJob == JOB_FORCEMASTER_HERO )
! N& l+ U# S9 z" ?) Q. a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& x0 M$ p4 N% J5 @! t, R# H! t" `; I$ V+ |
( ( CUser*)this)->CreateItem( &itemelem, &nID );( [" T5 T+ q. ]! T( n
}
! X$ x$ o' }' |" z/ r g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); g. [, T% X0 r9 C/ w0 J1 a- T0 u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' u8 R& d% o/ |9 J/ @4 F6 Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) ]' ]9 C+ s, n! y, ?+ U( k9 O6 Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 k3 K6 }- x, s' O% b/ i' z D" a ( (CUser*)this )->AddTaskBar();*/
8 n8 q6 [! \( w8 Q$ @; c; J9 E f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 F9 Y1 w+ }1 H! w. k5 e6 O( F#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) ^2 p) \: v. `/ v ((CUser*)this)->CheckHonorStat();
" R) g3 r, m. i ((CUser*)this)->AddHonorListAck();0 j( L% b2 r) f
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 B0 x7 S J+ [0 P
#endif // __HONORABLE_TITLE // ′Tà?
% X: W" X/ c; K! v+ W* O }
3 W$ B' D) ?+ X; p9 ` e#endif // __WORLDSERVER
- p9 o7 Y5 g, F9 }}
. _0 u J: B( B/ F8 a: s
- G; s, d8 |$ F: a- E, a然后你进入functextcmd.cpp并添加以下
, j$ I) c' r' Z3 s. s5 m" d4 |
* d) r8 U9 G5 {7 W: }' o代码:
# Z% t, H4 |, z1 V4 PON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 t( t( A# i5 J; K+ X9 N i' Q下面插入& ^/ p1 }" H" N$ Y7 w
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ v) f+ X; A: y( m7 e! m! b
8 R3 H9 T% R. l3 x然后你去7 q0 H4 Q& Z) c9 w) l( j( U& X1 L
4 z. j6 t. H4 j+ u4 o- X
代码:
. e' }, ^* [ f* L g4 [代码
- ]: t) i* q) Z# U, I5 |BOOL TextCmd_ClearPropose( CScanner & s ) S, G9 O2 `' l: }* M
{
0 Q# u0 D; {, D( X- O& A; y0 k7 v#ifdef __WORLDSERVER2 y$ X8 T& A% E5 l0 l" ^- Y0 \# {
CUser* pUser = (CUser*)s.dwValue; b$ @# L! ?) [$ D
g_dpDBClient.SendClearPropose();
/ B o! s7 Y; D& B+ ~#endif // __WORLDSERVER) q4 A5 e7 i: Q4 Q1 r
return TRUE;$ v5 P5 N% @ b& `: p- e" j0 \1 H
}
* Y4 _$ L" a4 T下面插入$ n8 c, v5 ?* _, t% e) Y( h. p5 L
BOOL TextCmd_rebirth( CScanner& scanner )5 y' s/ ?% P- c3 ~8 _6 X
{5 b0 O- \* ]2 \, s4 g8 c, w/ P2 x
#ifdef __WORLDSERVER" f* l$ B, _4 P Z
CUser *pUser;
+ Y3 R$ \( ^8 e- a: apUser = (CUser*)scanner.dwValue;7 K r0 @+ _; j7 l$ S+ Q b" [& [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% Z/ @1 s) E+ L; e4 |( N- @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ k! V9 H. j$ w& [* ^( E4 ?
else; g$ W! V& R+ g: q
pUser->AddText("你还未达到重生条件!");
, A& V# {; N' {# G6 t5 `#endif# c$ P# z- ~" Z& L* ^
return TRUE;
4 O, G/ h2 }" a4 u}
8 l, @/ D! l3 \7 O
7 n( x6 @5 D- y: ? j* D; v+ S0 X) K# I- u- X
/ |8 s* o, \5 ?9 ~& P8 z4 |
! _7 N1 a1 U& b/ z" {1 _
|
|