|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 l N8 S1 s( E# f0 d- k. ~
m/ q, ^* g& w# z( m$ X2 UMover.h
0 {6 X8 @1 U! U" A2 O; J. F9 w代码:! @; ~( S% k! c; f1 p* ^) r t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 b) h; G" B9 T/ u
, e* h/ x9 U* K8 Z$ X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ d& q# t" _9 G; [
( e& m1 C8 I4 o
然后你去mover.cpp添加( a4 g4 b* [ p7 o
- Q8 y% J- r# m, C6 U, @1 U
代码:
1 r0 h* z. I" g0 |% b- H( X J6 {void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& A7 G. b% n0 j& s+ V8 [{; M9 R0 G0 _$ C* d' O6 {* P
#ifdef __WORLDSERVER
- W2 j8 [# N1 `( P; m9 b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 O4 f. j8 h4 h3 M6 x7 v5 Y MoverProp* pProp = GetProp();- w/ x2 c. S4 t5 J6 I0 \ C! L
if( pProp )* q6 z6 y4 b- B, A9 {% q! o* G. W
{
) k0 H5 F8 W0 c2 p) c if( nJob > 0 && nJob < MAX_LEGEND_HERO ) Q% I" t# x% K
{* s R4 Y( K5 L! K2 i
AddChangeJob( nJob );9 b3 O0 j U/ J( L' B# v" A
}else{
( k* g" h% a. J7 _ return;
! L. g( ^4 D6 t, U }
) y6 Y+ t `( z" \0 x int nPoint = 0;
5 t" y: |1 q9 ?; ~7 y7 K if( m_nJob == JOB_MERCENARY )
: ?, L, p) d! K/ @ nPoint += 40;
`4 S2 ~' l# B# x7 y3 y else if( m_nJob == JOB_ACROBAT )
4 W, A( r( a) e+ c* A nPoint += 50;
1 j- Z( B7 \3 G else if( m_nJob == JOB_ASSIST )
+ k0 T9 y* `$ ?! p# u1 v5 } nPoint += 60;
; e5 K2 ]3 e* |* p* Y0 B% v else if( m_nJob == JOB_MAGICIAN )4 r9 O+ ]: ]& J- z4 {
nPoint += 90;
+ Z0 A; `1 M! t+ p) s else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. r8 g: R8 _% V! `/ q) N nPoint += 120;
5 t& w4 |* x6 G; e: O3 G4 p* { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, C: e- u( `" @) i nPoint += 150;; a2 @. P& @; y$ b
else if( m_nJob == JOB_RINGMASTER )
0 T0 l) d* { c3 b! t: X( N nPoint += 160;8 u4 f" Z0 k: X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) S2 z" c4 q: _- { nPoint += 180; T0 R( t# X* l _2 I8 `. D
else if( m_nJob == JOB_ELEMENTOR )# d" w/ W* T8 g. h9 M' x: d, w d+ ~
nPoint += 390;
% v9 ^$ f6 ^7 b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& i: s* S6 G' y, w V nPoint += 120;, D) E9 L# B1 Z* E) ?' o
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# d2 H' q' Z3 x# _ nPoint += 150;
4 O" m" C$ Z( N1 [4 @1 h else if( nJob == JOB_FLORIST_HERO )
* ~7 T) T, _5 o nPoint += 160;& K3 ^4 l: r# {5 E' |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& n# h5 g+ h; I nPoint += 180;
k8 T- {0 O0 b6 U% }- o6 n* h else if( nJob == JOB_ELEMENTORLORD_HERO )( x3 d# ]" V1 r# O k. i
nPoint += 390;
0 w- ]3 O, k% K8 e% y
" A* a6 V- b- `# W+ k/ A" j* V* Z AddSkillPoint( nPoint );
4 @/ H; m" e5 j8 Q; d0 u1 y m_nLevel = nLevel;
, a m* p$ ~. m! K5 G8 c; \1 Z; D- m. p; M9 W; {
SetJobLevel( nLevel, nJob );. F" Q% y; ?* T4 r5 f# h5 T
m_nDeathLevel = nLevel;
9 Y* y! j9 D1 _, U; L" ^ v/ d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, s0 L9 ^! }4 V- e
if(IsMaster())
& O. |7 F! ?# ]4 [2 R {
8 { b$ h/ ~& E1 d! Q$ T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( i$ B/ e) C; z1 x$ s if( nLevel > 59 && nLevel < 72 ), i! T! C7 S, h& F' {# x
dwTmpSkLevel = 1;. g. B1 E4 p$ p2 J
else if( nLevel > 71 && nLevel < 84 )
7 L e8 R$ w8 m E. ? dwTmpSkLevel = 2;+ W) u8 ?% ?! S9 b, B
else if( nLevel > 83 && nLevel < 96 )
$ i( |9 ] S9 e+ `4 G: _ dwTmpSkLevel = 3;
+ ?" x, h0 E& K" ]2 e# n else if( nLevel > 95 && nLevel < 108 )% i% i ~- Q W* f& ^
dwTmpSkLevel = 4;" T) }7 ]5 K" w$ Y0 e9 L* F! G& W
else if( nLevel > 107 && nLevel < 120 )' y# X* | I# T8 e% c. }
dwTmpSkLevel = 5;: R& d k+ Y, e, _- u% ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- e/ P' d3 V" l" W/ V1 m/ f { - l) m( ?, H+ e; R4 R# J% X
LPSKILL lpSkill = &(m_aJobSkill);
4 h/ G, T( E) \! @" M if( lpSkill && lpSkill->dwSkill != NULL_ID )# ~2 j5 M$ J1 q# x
{( H) w! b' _) D( G3 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ w0 M6 w0 b d* r" u- y if( pSkillProp == NULL )) r# _; s. g9 S4 i9 m L
continue;
' i6 d" t$ A6 t" Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& M/ T* {, a; l7 C continue;2 }& t6 ~% R' J0 q! e
lpSkill->dwLevel = dwTmpSkLevel;
; B7 f2 T( O& X% r- Q2 w }
4 e' G% G0 r& Y# H H }
# }) ]5 R% L1 F }1 I( `; s9 o4 e- s
else if(IsHero()); ^" _# W; u+ R: y0 K2 T
{
* m( O! O8 O7 O6 r for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ \3 R' M% ^7 \2 U; m/ O
{ ( d" N) S6 s V! K1 \
LPSKILL lpSkill = &(m_aJobSkill);/ D$ a7 }4 {) m3 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )' Z* J* k# \, t5 H+ B6 y) ^ F
{% i; ~% Q6 L4 q4 q2 B5 B0 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , a5 H0 |' ]0 g0 i
if( pSkillProp == NULL )* d4 U& u a/ P8 z) E2 ?* Y
continue;
+ ]6 B8 \; N! C0 Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" h, s! s) V9 t9 p2 p$ A8 Q+ {. i8 j" w
continue;
6 E7 e; E# w A5 a! f6 F lpSkill->dwLevel = 5;
& s( B/ y- r# K% d }/ w( B1 J# u- r
}/ h' \9 A! F. T3 ~5 J' @
}) ]* P3 m! C) E( t" k
else if(IsLegendHero())$ z+ J/ S1 D4 P$ _) |! W
{
b* W3 e0 z/ u. k- L for( int i = 0; i < MAX_SKILL_JOB; i++ )
D' y) m, B$ ^/ H: F {
5 E/ X9 Q6 F6 o, O LPSKILL lpSkill = &(m_aJobSkill);
6 E# m- D) g$ b1 a; ?2 f if( lpSkill && lpSkill->dwSkill != NULL_ID )
' A- e- G0 w0 x% Y+ F. S5 _ {: D( Y" K; f' n0 [. q) _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% c& s* J5 `2 @& B6 T$ I9 D: h if( pSkillProp == NULL )5 U$ _% z2 z2 q$ p% E
continue;2 }. ]5 t( x7 ~1 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' h+ M( d6 Y) L* X8 z# ~; h
continue;) R" m: z' p: `. `. u
lpSkill->dwLevel = 5;
; z( B4 F/ `; B: N) S9 S }6 u1 m% q" D" V; ~- v0 t
}2 E: d [" \. J( |' ]8 R
}
. \9 d @8 N5 k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 X! Q4 w3 [) C z N$ | if( bGamma )$ o0 |; _1 C: J b; ^) p* r' z
{
I* \3 B0 B4 }% X6 `; ^ m_nExp1 = 0;
3 Z4 Z0 @( U9 H( F1 E9 F# S, F }3 r5 S' j I9 ^0 I2 z* D, E- A6 M$ x% H
2 T+ \9 w0 j" K5 i! @( t
( (CUser*)this )->AddSetChangeJob( nJob );
& q( ]( Y, {& W8 i, h. W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 N3 s o$ \* {: ~1 e
) c% H( B# t z5 t& _2 w0 N4 B+ X# |$ S! R% P) W: m9 y
#if __VER >= 11 // __SYS_PLAYER_DATA
7 O+ A- i f* i) G! o g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 R, l2 f3 V) R! S+ ]
#else // __SYS_PLAYER_DATA
5 `; ~- \4 t A( y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
n' a- w k3 q F/ D+ V" z' D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- G9 n$ R' c+ z; X if( m_idGuild != 0 )
; w; y2 t) p! f4 l$ E g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% S0 X1 E3 G3 C/ j% U. x/ g#endif // __SYS_PLAYER_DATA
: W* G. m2 ^& H9 h9 R SetHitPoint( GetMaxHitPoint() );
( P6 Y9 j$ @4 e SetManaPoint( GetMaxManaPoint() );# v8 \, r5 U% I: X% x* |
SetFatiguePoint( GetMaxFatiguePoint() ); ]! g& E- \3 N, c6 E$ q
if( nJob >= 1 && nJob <= 4 )
, c1 Y- c% q7 l* |* A {0 g- C& [. v' X+ f0 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ P- `" M7 D! a m_nRemainGP = 28;
0 f- M* t f! y( z1 P' C2 l }
( D I2 \# Y( U3 G" y" y# B$ s0 l6 R' ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 L/ G, V4 d1 v6 A
{. G/ E4 ~' D) ~
m_nRemainGP = 118;
" N2 @: U3 t; M' [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- l$ |. E( ^! Z! L- i m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 q8 C1 x: o; f. m; u4 z) M. Z3 } }5 ^, R9 \4 F' X' o$ K7 H8 W4 _" v1 S) d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# X# ]& B% ?8 P) h: j {
( E% l7 y# I! U) S CItemElem itemelem;
7 T a/ Z) Q0 u, q9 L5 K itemelem.m_nItemNum = 1;0 L( h+ E e+ F
itemelem.m_bCharged = TRUE;2 B& _ G- [- K1 c" |
BYTE nID;
1 B" g; e- M. d1 M4 L! _5 v! ?( y: i+ p9 C U1 N# M' _7 f9 ~8 s
if( nJob == JOB_MENTALIST_HERO )8 {# T8 y3 C4 J) X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 `1 M1 Q1 \* L) s; M, S
if( nJob == JOB_FORCEMASTER_HERO )- f' Y2 ^4 P; M. U6 q9 X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& J3 W6 H& [& l7 R; u$ B. C: \
% ~$ I+ s Y+ E$ ]& P ( ( CUser*)this)->CreateItem( &itemelem, &nID );! R7 i( V x0 d7 S# J
}4 o6 B4 ^6 C# a6 N; q; I
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% Z; q/ j2 r1 T! n/ |+ H ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ Z; S8 {, {* C, j" q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 I y* @; L' n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 N' Z5 ?) Q/ H6 g4 {+ x
( (CUser*)this )->AddTaskBar();*/
- _' h% Z+ L" o' C) d& Q1 { ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 K2 D. p. l% u6 q. N( _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( b3 o3 S( c/ w8 P. _' l R& c
((CUser*)this)->CheckHonorStat();( O9 B: m2 i& E: G7 b
((CUser*)this)->AddHonorListAck();7 B: q2 Y7 l+ ?) e8 g; f1 w
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% B0 } M) ^5 F% }& ^ l% H#endif // __HONORABLE_TITLE // ′Tà?
3 P! y" t& l2 X& F9 z8 a- D$ C }
' u% L% N- p) [, o* X9 e+ V#endif // __WORLDSERVER; V( V' T* P& E7 L3 P4 p$ L
}
( e# v% B% l8 p9 E$ @8 n
, r) g/ n/ I: C" _' T/ f" K然后你进入functextcmd.cpp并添加以下
0 _ t3 P( y6 ~/ Y4 R: T; {3 j; T1 g
代码:0 o/ ], _9 k) F3 o/ h: i1 A' H, B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# b# ^8 j+ s3 S, `下面插入2 f+ D5 W5 w7 d' I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' I6 f$ ^5 l. a0 i* Y( l' D; z4 K
然后你去
; o6 j/ `$ O# k4 ?0 h" u: }2 Y* c. B
代码:
+ Y& J8 Y4 @6 n3 r0 e# K代码
|2 A- ?$ q5 u% `. P. rBOOL TextCmd_ClearPropose( CScanner & s )1 A0 z, ^2 |1 J* n( L5 l0 n
{% F$ I V% N6 _
#ifdef __WORLDSERVER
/ p8 a: _0 @ ?2 `5 q% j CUser* pUser = (CUser*)s.dwValue;5 j& c6 N; y4 I4 c. j
g_dpDBClient.SendClearPropose();
) B$ }( H% w) q#endif // __WORLDSERVER) Z. k0 Z, ?, B$ f Z, {
return TRUE;$ q1 R1 W+ H! u6 P
}
F& j' z# A; g) w6 \. P, d/ x0 N下面插入
, _$ j$ I7 T) R& qBOOL TextCmd_rebirth( CScanner& scanner )
$ u: h4 N1 R% K# {5 l{" T+ V! h" x/ c$ l% ]
#ifdef __WORLDSERVER
& m' l ~0 a" yCUser *pUser;4 I% S+ T0 l1 z. T
pUser = (CUser*)scanner.dwValue;
! i: p; M" M9 Y! V$ w8 sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! B G' l& l. {! N! xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
]9 P3 C# I! i' `else
( W1 {) Z/ d( q1 p7 h' E5 XpUser->AddText("你还未达到重生条件!");5 a. u7 m; D6 j4 w/ ]
#endif
( _: d( q' [: K* s" X$ V% ?return TRUE;! n7 h9 R) s) `" s+ `
}
' E/ [6 J; h* H9 |/ G+ k' ]0 @. Y" a2 ]* y! W
2 i W: W4 j0 B$ B$ }' ~/ b7 ?
4 R, \: X" w1 h
3 j/ n3 x& n$ Q: N8 Y |
|