|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ a4 K, U' T5 \( I
4 E7 [; Q& H( C: D$ A1 gMover.h9 Y7 R* U/ j. R9 e
代码:( |0 J6 C" A1 s+ d9 U# Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 X3 X2 ?% |: ?; d6 H7 ?5 Q
9 J# @4 Z/ D$ j# l6 d# j- V下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 c$ i) k8 e4 G! ?
: O: k! v/ Z: r( ?2 e6 ^( k
然后你去mover.cpp添加
- {+ p( ]$ Y( o) j3 V; O& z. Q
8 A- w# J1 O0 J2 r# b4 {. ?2 J$ z代码:
! d1 M5 S M. a8 L+ A( \/ nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# F. d6 F+ D9 Y
{- U3 V2 [' O/ R4 _) Z) M
#ifdef __WORLDSERVER
7 m' H( i. K+ @+ X- R7 j { // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 U x9 i- [8 C$ b" I
MoverProp* pProp = GetProp();
7 z2 W/ w% l+ T: V$ j# q if( pProp )' B9 h" h; B$ `: f% U
{
3 G, {, f8 G( g2 c Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 ?* ?, W: f0 J1 q$ r
{
+ h: F7 I! ? G: V AddChangeJob( nJob );# T; K- D7 Q5 ?/ P. ?& o
}else{
. M' |8 }) a8 v6 f% T% ` return;
5 O M; P7 X- C/ L0 Y( ^$ ?: |7 [ }
* t! Z+ S; E# ?3 x! O int nPoint = 0;6 O9 w R; N# S; J
if( m_nJob == JOB_MERCENARY ). m+ N- @' Z4 ^! f# V: o* l
nPoint += 40;% K; e( f. k! J1 B7 c! r) |
else if( m_nJob == JOB_ACROBAT )
! } ?. _ e0 G9 Y) R [. } nPoint += 50;
0 \9 x1 \( |2 x+ Q3 ~# d" n else if( m_nJob == JOB_ASSIST )8 }. \- i) v9 X/ w
nPoint += 60;+ m; W$ {2 y' G6 Y" f8 D- y# h
else if( m_nJob == JOB_MAGICIAN )0 b: p1 A5 ?$ ]( v+ z p
nPoint += 90;5 a. [+ B, Y m( ^ h, y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ S8 l) a$ {' y! b. w5 W
nPoint += 120;
/ y% ]/ W/ z) r! [8 [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 Q& w. X) R, B! X nPoint += 150;$ D8 e3 [3 N9 x: p$ g1 K" _
else if( m_nJob == JOB_RINGMASTER )3 d+ B* H+ h3 g
nPoint += 160;
r0 x6 s7 F" n* _. n else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 l& n0 ^4 Z! k" n+ z) B/ X/ S nPoint += 180;. Q, g* S+ |, b( j- v" V1 o8 H
else if( m_nJob == JOB_ELEMENTOR )4 I0 V! @! o8 @ W3 }$ F; @# e
nPoint += 390;
$ S5 B8 Z* H' X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 R0 r9 @% X& r4 ^- _+ ? nPoint += 120;
$ K# ]) P- {' T& J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 i9 x4 E: s: ~: F nPoint += 150;
* d7 z; `; \, a4 c; \# h9 H else if( nJob == JOB_FLORIST_HERO )
: }% G; _. I' Z/ p0 F" A nPoint += 160;
2 I) i/ V8 P, t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 T2 g, w0 a& t
nPoint += 180;7 y: ]: G6 I6 {1 ~- x& ^, m
else if( nJob == JOB_ELEMENTORLORD_HERO )% ~4 O+ a& L( w' e5 S$ F" ?
nPoint += 390;
( R' O- \. Z# i+ g" \; z% q7 J, X( Y/ ?& r* d$ X8 P
AddSkillPoint( nPoint );% `6 a7 g9 S1 W/ _9 f5 ]! W: t
m_nLevel = nLevel;
" U6 t- ^( N" W3 @0 k; k4 K0 i `' J. U( o: _9 k
SetJobLevel( nLevel, nJob );# Q# o/ f$ F% M. k: L
m_nDeathLevel = nLevel;
& o) J- |/ M$ g$ r+ p/ l; y8 H2 |#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 P( }( r/ }7 P z) q6 ^6 N4 z if(IsMaster())2 A" `* E6 l+ E& S6 M* P. a2 i3 }
{
" u3 @7 @+ W; j! ] int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 B$ u9 c8 ^2 S( ~4 i
if( nLevel > 59 && nLevel < 72 )" n7 t' f3 q4 A( ]: _0 h# g9 e- {
dwTmpSkLevel = 1;
" s4 _- O; j0 E, {: Q else if( nLevel > 71 && nLevel < 84 )9 l: ]2 |5 ]0 |: y0 [
dwTmpSkLevel = 2;
A& z# z3 M- `5 T z- B" B$ w else if( nLevel > 83 && nLevel < 96 )
/ w! H; g% T! l4 y1 N; I+ t2 i dwTmpSkLevel = 3;% L- [# K4 P8 `) I
else if( nLevel > 95 && nLevel < 108 ) X2 U& x" A6 e( W
dwTmpSkLevel = 4;' B/ V6 R; h% K, ~; f9 D8 z
else if( nLevel > 107 && nLevel < 120 )
0 n! Q2 K. ^! H- M dwTmpSkLevel = 5;
8 }8 p2 y' `4 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; t" D4 W6 g- N+ k
{
; q, k$ }) B' d5 {. ]+ Z# C; Q$ P LPSKILL lpSkill = &(m_aJobSkill);( c( {1 ~' v( Z G* Q+ e
if( lpSkill && lpSkill->dwSkill != NULL_ID )( b( ~! [0 D+ J. o5 p% W
{8 _, v0 C2 _. H4 l2 L- B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ V4 U( I( ^: C. {4 d if( pSkillProp == NULL )+ e: O3 E X9 V8 T" H# H& |7 \' o
continue;. M2 v* x5 r0 t9 ]1 v1 N! k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ [) `3 h, K3 O2 A continue;! J; c2 W5 M& I A$ K2 q' j
lpSkill->dwLevel = dwTmpSkLevel;
' U1 Y) ~0 v" Z/ \7 b( j: n }: N& c% e+ X8 {+ p7 ^& X
}- D& {% U* {! O* v8 r0 H/ W6 z" k
}
6 C! i' V6 s Q, h1 E else if(IsHero())
/ |$ n6 N; v$ }, [( U B- R0 | {3 z( I4 O/ R) n( {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; U0 |' {/ p) { {
: a% B- H5 A$ F L LPSKILL lpSkill = &(m_aJobSkill);
% r% Y* u c1 t# [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 \1 o) N+ N @) v$ q {' k1 Q+ l8 _6 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - ^- n3 q* Z! J$ `4 H
if( pSkillProp == NULL )
1 L7 s A) ~* a5 Z4 I continue;" m' A# o4 t5 ?' ?- R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) Q+ l) a# f3 z" P continue;! L* {7 y7 |: Y! f K" x* S/ p
lpSkill->dwLevel = 5;: x' [/ c$ N4 {0 n
}3 \4 n+ z& u m$ |8 i5 t
}% ^2 o1 _& z, i e b. A( x
}4 h/ P# D4 P# s" l, s
else if(IsLegendHero())
5 S% j# |2 h' s) P5 N% F {
- o* o5 p9 } @6 P: M for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 `- [7 C. @* m% Z {
- l8 h- E2 d: K8 e LPSKILL lpSkill = &(m_aJobSkill);" G' _, |3 U' C' N& ]0 W' s7 I0 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 w, J$ N5 z) C3 Q1 I% c
{/ e) @3 l3 T7 ~, d: J$ t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 d1 k/ {& l1 { Y0 S& i
if( pSkillProp == NULL )
7 l5 D$ X/ J! j' w0 k" ] continue;% ?4 O5 z) F9 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ v1 V% L) V' q! A1 V8 ?4 ?9 r continue;% L4 P7 Q/ I4 [2 c$ H" E- O
lpSkill->dwLevel = 5;3 y) X& X% h0 @1 ]2 u0 E
}! l7 b% H* k* }, p, p/ `
}+ \7 C$ }4 l) r5 s" X
}
4 H' z( K: |1 B8 l( l& f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 @0 c4 T. D; W! L7 q* Q# c
if( bGamma ). N6 T7 B' F" z5 ~3 c) P0 i
{, o& Q7 _$ ?1 n$ d0 q/ V9 h
m_nExp1 = 0;
7 H3 w! j- w$ n. s }
, _" {" e2 x8 {( p# H$ i3 G% e' Q) e7 g9 s/ Z, K
( (CUser*)this )->AddSetChangeJob( nJob );
& ?/ B: x- B: u8 ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: J X4 c7 f' I- ^" L
! q; u* @% d$ Q6 L/ o, E8 D0 D- o; q m
#if __VER >= 11 // __SYS_PLAYER_DATA
. F% r+ U! R0 A8 X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 |. Q9 N! w- h) q. ?& S1 `# u
#else // __SYS_PLAYER_DATA# H$ d8 q5 P7 @4 q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" \" l( e, w7 }: w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; e, u) K" t | if( m_idGuild != 0 ) ~: [/ t' F: m0 {% F( i: R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) J* w9 E5 b. R% U
#endif // __SYS_PLAYER_DATA
$ z( u2 e, \5 {5 j; C# i5 q0 u- M/ G SetHitPoint( GetMaxHitPoint() );- E* ~( w0 E# D8 c! L& z
SetManaPoint( GetMaxManaPoint() );9 T3 n0 }" k- l' n2 j7 j8 T3 Z
SetFatiguePoint( GetMaxFatiguePoint() );
( L0 K4 B! H& d. H8 r" j if( nJob >= 1 && nJob <= 4 )( {; ^. C- |' N" z7 d( ? y
{
) |6 c, Z% `' P, p ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;3 C2 {, y" _! O
m_nRemainGP = 28;$ J! p" `- g# }+ a! b- A0 E& p3 Z
}+ B6 W. I. V! z7 ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 O, C+ L7 x$ D- s
{* _; Z4 d4 T4 s
m_nRemainGP = 118;
2 H, R9 T. g# p; K) @3 O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ D3 s" k% H$ [2 l+ M7 o m_nStr = m_nSta = m_nDex = m_nInt = 15;6 _+ S# \* w( B$ q' w4 j% S. C8 p
}8 ?3 k5 C/ F' Y; ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 ~$ ], K T1 O0 @5 z- j* T. q' W# |+ D
{
/ S9 h, a) l7 M5 J( I% {' W CItemElem itemelem;- w4 ^, {7 \- Y" e) S2 q
itemelem.m_nItemNum = 1;4 m a( G5 Y' m6 P1 H! `
itemelem.m_bCharged = TRUE;
2 }- `% w: ^6 M( z8 O: W BYTE nID;! k; K7 r a( \1 s: T5 _/ W
; W6 Y2 `1 Y) c3 X2 m
if( nJob == JOB_MENTALIST_HERO )
$ Z# U) w/ p1 n. ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" n. N5 L$ z9 `7 F: u2 y if( nJob == JOB_FORCEMASTER_HERO )) A' f& B( J- T- ]5 A3 r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. H; ~$ [% [* i1 ^) @- E3 D0 N) S7 l, _6 f8 R0 V+ @7 ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );: T: g, k( ^$ `& E6 ~0 g% K
}
: ~; s7 g3 ?3 K' e$ i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. q+ \8 N$ _+ @8 u! e# q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 d6 P( E+ Y* D( h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* u% f8 T3 s/ P6 V2 p1 Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); C* Y% \4 f3 K% P5 O
( (CUser*)this )->AddTaskBar();*/
6 A! ?; J- ~0 }( | o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. J. [: n. K" `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 C6 ?* h% m+ E3 L2 n$ T ((CUser*)this)->CheckHonorStat();
9 @6 ]$ j' O4 g/ R ((CUser*)this)->AddHonorListAck();/ u2 k2 m" L6 W/ M
g_UserMng.AddHonorTitleChange( this, m_nHonor);; \, E0 P6 t7 x: G( d- Y! X
#endif // __HONORABLE_TITLE // ′Tà?% D) R e% z2 q5 M9 [
}
" c D( q& e) z% C) U7 p+ d#endif // __WORLDSERVER6 }$ o: Y4 l; t: Z4 N* C
} & P6 t: Q+ B9 Q% b( \, B
- i) S1 @% y! G, D2 U* a9 r0 A
然后你进入functextcmd.cpp并添加以下7 c# {5 n& ]4 \* x
6 N! P- w( a: ]8 ?3 w0 D
代码:8 A4 c8 a5 o& N+ A# }7 W0 B1 T- D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; U7 o7 ^: E% D, z下面插入# a; I5 C: z$ h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) L# N8 T# z! o! B+ i
Z/ ]# Q- z6 W: D然后你去
( X- V0 O/ X7 {
. F, u0 W; y& y/ l& {: x8 o6 t代码:7 N. [4 V1 S; [
代码+ G% i4 P' ~/ l D8 k
BOOL TextCmd_ClearPropose( CScanner & s )$ g% J' l( X2 A
{6 ^( a, m" i0 R* A$ R
#ifdef __WORLDSERVER
4 m Q, M# Y7 K5 n CUser* pUser = (CUser*)s.dwValue;
b2 f3 }) w, g# F/ a9 i g_dpDBClient.SendClearPropose();
& `* y" C1 l) F$ t f#endif // __WORLDSERVER+ O3 i- Y: m) S0 K7 A1 M
return TRUE;
2 W) i, i# n) \6 E+ q2 D}; M( d* S+ {) I" s
下面插入' n& {! R4 H# P* p
BOOL TextCmd_rebirth( CScanner& scanner )3 y' c9 {1 J! v0 I+ a/ w
{
7 P4 F+ y, ?& e0 a r3 W& W#ifdef __WORLDSERVER3 A$ e% o. X2 n) u& c
CUser *pUser;# Y8 Q0 F; U5 o: Y2 b
pUser = (CUser*)scanner.dwValue;% r+ V& Q* ^' W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- }: c! K8 l- S" ^1 t* B
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) R" b: y% T% f* m8 Q( N) G8 A
else) @. D( h% @. M- {$ i: A! A
pUser->AddText("你还未达到重生条件!");* p6 B0 S/ `+ d3 M
#endif# k' ^/ g' X9 F5 a
return TRUE;
" I, a n& c7 T w( `& W+ b} % h2 ?9 H6 J$ m5 Q- i
0 @, R/ m. }( g+ g
# A: c$ h2 |2 i# s
! G* k3 @$ n: Y* P8 Y# g5 \6 F# R' C6 R/ J! q
|
|