|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ z1 }; l! x/ i5 Q6 m5 Z
' h7 B- f% U* Y1 N- K% U# I. mMover.h- P/ D$ s7 s2 Z o# i$ h) B: L8 W
代码:
- n2 b) M7 F) G找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& d# O) w: a7 _! u3 u6 T
g% L5 p7 I# b+ H/ k3 p- @+ f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 n: R% N6 B h5 S+ f l
R/ s! a, y; F$ \; h然后你去mover.cpp添加
! E# ]6 f% b3 \4 B- j5 F: B/ U: l; W
+ p- V6 _/ k( c+ a& q代码:% B# P5 l. e7 v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( C! p. U0 d3 f4 `8 M
{
- X" T. e" V0 O* H9 A4 u$ e#ifdef __WORLDSERVER5 q9 v0 y4 Q3 \( k# V+ I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 d, r \8 `' |4 E) q0 U
MoverProp* pProp = GetProp();' B8 ^% j' o9 i/ ^$ t3 y0 F! I* w
if( pProp )
/ \2 ^5 c' J3 l. s2 _ {
; u. q2 u$ N0 L5 N if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 T! @" P5 l [; a t8 x) ?1 n# G% m {
' b( V* D- j% ?# K9 N; } AddChangeJob( nJob );5 m9 _, W) o( Y5 _# J* \4 i4 Q7 Z
}else{, D. A0 R) t8 S! U
return;
% w$ I4 O, O, B! N" d8 i8 r }+ L$ ?3 M3 m" O1 J+ E
int nPoint = 0;* @2 k8 S/ {- s% ~
if( m_nJob == JOB_MERCENARY ) [/ L4 b+ N* r& Q. ` H
nPoint += 40;
* I8 P6 k$ g3 z. `, |' m# T( i else if( m_nJob == JOB_ACROBAT )
; b" o' g9 j; Z' b: P* o. F- W nPoint += 50;5 Y" K6 H* ?6 N$ J
else if( m_nJob == JOB_ASSIST )
) ]. P8 s4 C3 K, P8 O nPoint += 60;2 `; S. p, \5 L9 u
else if( m_nJob == JOB_MAGICIAN )* K/ J$ a+ t) Y
nPoint += 90;
2 D% F; R2 C/ I( z+ z# x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) i& K. b6 U( M5 S' r! p! u0 m% G$ [/ ~
nPoint += 120;5 c( a) g* U3 K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& e6 j) d* N% U( R$ f2 [' a
nPoint += 150;$ x. a0 D) x0 q* }* M7 t
else if( m_nJob == JOB_RINGMASTER )4 l y# W+ e+ e# b
nPoint += 160;
+ M( l/ v4 P e6 ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 j4 @1 m1 i0 b4 X3 d; D* S }
nPoint += 180;% N6 `5 g8 b, ?( I9 v
else if( m_nJob == JOB_ELEMENTOR )& L: L' n! U) E( I4 @
nPoint += 390;
' J4 ~7 q9 H3 o4 o3 [ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ V3 ~+ f$ p( q! z3 x nPoint += 120;9 ~+ T7 a. U3 ^2 i, M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: d" ?( { k8 l. R" e' T' ]" M nPoint += 150;3 m% M9 d/ V7 t' ^( t8 K" ]
else if( nJob == JOB_FLORIST_HERO ): O: B) o8 o5 \) B6 V" r
nPoint += 160;
* u \0 L8 B C$ ]: k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; }: {/ R% `. \ nPoint += 180;
5 P- n+ O7 v" G' J0 Q" X7 N else if( nJob == JOB_ELEMENTORLORD_HERO )
% h/ O7 I1 D; ^( G% e' P# R nPoint += 390;
2 M4 c3 x) P W5 s' Z3 v) |! U. ^# T
AddSkillPoint( nPoint );
! e2 A. U. Z$ s4 a: r8 N m_nLevel = nLevel;
6 ~( M9 r ?% J4 a+ L3 m9 K$ R; u) i( v6 M q+ J) p
SetJobLevel( nLevel, nJob );; ~7 U& B! d a$ \3 [1 N
m_nDeathLevel = nLevel;
% a5 e) e- M3 J( o& A- `$ M- V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 W" x; j! A q/ k5 f
if(IsMaster())
2 z, T, c9 L z {, L% E7 a5 a s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 i+ [ _- l3 `3 {3 S( ~& @ {/ U
if( nLevel > 59 && nLevel < 72 )1 p3 N; ~- L. O- j! K0 z
dwTmpSkLevel = 1;
% j9 G& C3 z$ X3 a3 k }$ x else if( nLevel > 71 && nLevel < 84 ) ~( T/ ~$ Y+ s b; j' k6 X
dwTmpSkLevel = 2;" p) d; r1 [$ i9 v1 ^4 j
else if( nLevel > 83 && nLevel < 96 )
# Z7 D f' s' W/ P! S: h. N dwTmpSkLevel = 3;0 v& n" q: ? Y j
else if( nLevel > 95 && nLevel < 108 )) A& b. Z/ f' M$ k/ l* K
dwTmpSkLevel = 4;; V1 [' K5 c9 q0 z$ a: {0 q
else if( nLevel > 107 && nLevel < 120 )5 C: J; }7 I& M$ F: t0 {* [
dwTmpSkLevel = 5;' |2 ~! a+ [2 v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 t6 L- e# g( I0 p( i) R
{
) B. h/ z/ ~- {0 h' s C LPSKILL lpSkill = &(m_aJobSkill);
$ e& M4 z# T+ H! ^7 z if( lpSkill && lpSkill->dwSkill != NULL_ID )8 G `6 e$ t* @% |& ]' `6 V
{: g4 K& {+ j! T8 E, y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - z" D1 G5 D' c* H8 A8 d1 u# P
if( pSkillProp == NULL )" d @. V' k* E" K: |2 X: L
continue;+ O z9 n* P. F8 t, j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
X! z3 G( N; O# Q& h" V) c- H continue;4 B8 z* Y/ n& F; I# `$ W8 X
lpSkill->dwLevel = dwTmpSkLevel;0 V3 }6 V+ B4 E+ a- Z8 G/ G. H
}
) a& ~9 l7 j: q0 {$ s4 \ }8 J" @# ?8 Y9 @7 y( V3 p/ z
}, E0 u0 T7 \) R4 L, E
else if(IsHero())! A9 ^" t% _+ L" w& b( Z" W) j& \
{
1 L% ?' s! |6 t5 T$ H for( int i = 0; i < MAX_SKILL_JOB; i++ )
' H, }4 F- B/ l) A0 @9 b {
3 h; C0 x$ w: k' Y LPSKILL lpSkill = &(m_aJobSkill);+ H* K$ I; Z5 c; U9 a5 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ U* G" b* P j
{& r6 K: ]( x* I d5 Y- y: e. J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ e+ `: O1 F/ C- [+ [* A8 J: J if( pSkillProp == NULL )
( H/ y* ]$ j( y( v! P continue;
- o7 Q- ~6 X U; M! s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- R1 V6 Y* N1 C/ U/ V. Z/ V continue;
/ k. y; e9 V. t! L' L u lpSkill->dwLevel = 5;
0 h( f9 o9 _% |- f6 V }
4 {8 g) {$ ?3 {4 }& x) c! a" x }
8 i: q! g0 t4 } t8 l. p8 z3 R, h }1 J8 h, M0 X( Z% q M9 C+ n
else if(IsLegendHero())( Z9 ~& V2 ]3 L: t$ I' c! n
{
( n: t4 y' c7 ]' h0 K8 C# S8 } for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 K* B B& }0 `/ B) p0 A6 }# K { 4 n2 }$ Q5 o$ n% T' _& J+ p, i
LPSKILL lpSkill = &(m_aJobSkill);
d# O" ?" M! ^$ x+ O if( lpSkill && lpSkill->dwSkill != NULL_ID )6 C! P# p [ a1 I: m
{/ q/ j5 R1 N ~/ e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% h/ t; U- C' E if( pSkillProp == NULL )- F" z! C% v$ E; T* ]% e# \$ u6 P
continue;
/ z& f% f) D$ ?: |! o( Y: t, \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ O$ U0 |, [8 T continue;2 w# g' ~: S2 S5 H, `
lpSkill->dwLevel = 5;
0 x& q1 n+ y6 w! k' _/ S' s# u c }' x( y8 |7 I) U! j
}
* m; c% p, d @ }: T, ~9 R. B+ P* j' D3 L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! E: m7 J- v1 }* ]: }# O* P if( bGamma )
8 L$ [) y: ^6 k) M( ` } {
3 y1 w `' ~8 E9 v m_nExp1 = 0; o! g8 k" ?9 p8 V
}# H$ @5 x2 U8 R" N) y8 E
* R5 @! B* m' J5 Q$ Z, C ( (CUser*)this )->AddSetChangeJob( nJob );
% H6 U' @6 Z* d8 X* q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 p0 ^+ Q( P8 d( m+ L# [7 X' {0 v7 G% R" U3 L4 t$ y/ e6 W5 v
3 d6 k$ ^% W( X4 b' F#if __VER >= 11 // __SYS_PLAYER_DATA+ ~* W- E7 ?6 ` i8 f" v. |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 ~6 H2 a- \4 E4 ~6 c- n3 @#else // __SYS_PLAYER_DATA" q7 `% ^. Z) P- v: j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 f9 j2 d% W" n- W7 ~3 {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); y# F; F5 P2 l! x- S: F3 c
if( m_idGuild != 0 )
- X& j5 E# g X; G g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: m4 j: V* O- i1 M" g#endif // __SYS_PLAYER_DATA
; {; C2 o; ~/ v SetHitPoint( GetMaxHitPoint() );
# @# L* ]# ? y$ h1 g SetManaPoint( GetMaxManaPoint() );: z6 I: Q# M# p9 m9 K
SetFatiguePoint( GetMaxFatiguePoint() );
8 Y1 ^7 o8 a5 @- O- ~9 b if( nJob >= 1 && nJob <= 4 )
1 A6 B* A; Z: a9 p {
; a8 T$ |4 ]5 R. I# J" g m_nStr = m_nSta = m_nDex = m_nInt = 15;( i% {% c' S( t- j
m_nRemainGP = 28;1 x# D$ ?5 S0 u& {* h
}
. H8 t2 z: @" V$ g if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, }+ o9 L3 V+ i3 E, p @ {
3 }' ^0 H8 \2 k5 G a m_nRemainGP = 118;
O, ~2 H9 i- E @/ Y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 U1 J: t1 R X% a+ c3 M
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 s! r: q/ p. b# K1 N }7 `1 B9 Y8 _3 E3 ^' J% Z9 t4 T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); f! \4 _( D2 b' [
{
3 H' s( n& H# l* L& Z0 _7 |& E1 S) i: i CItemElem itemelem;4 X. @+ ^3 o+ C2 H" t, F; h# x
itemelem.m_nItemNum = 1;
/ x* m) u' R: [7 h. Y itemelem.m_bCharged = TRUE;( p7 w" H1 S$ M- P
BYTE nID;3 N& K1 T' W: Q6 k
3 [* v, { Z# t6 y! G- ~+ [
if( nJob == JOB_MENTALIST_HERO ); Q2 p& a( D" G, |/ N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 g: l$ ^) N; n0 P
if( nJob == JOB_FORCEMASTER_HERO )* \6 M# t% q1 x% J
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ }* @6 ^& M! t- `% C, e5 t6 V4 O- W
8 i7 k& {. c5 ~ ( ( CUser*)this)->CreateItem( &itemelem, &nID );/ z+ l4 \' h! d' j
}. Q% ^" V7 d6 W! |0 ?3 q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& [2 F- m+ u0 c8 `) S, V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# t( A+ Q0 S& x# ]" S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 v! R5 k! F" f4 x# f0 M& Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) h7 I+ @8 U% ~0 X ( (CUser*)this )->AddTaskBar();*/
8 G& E4 T* X M- `8 a. X9 h ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( d% ^! \' }5 e6 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 h( H+ B1 ]( N9 l& C7 N) o: C/ y ((CUser*)this)->CheckHonorStat();5 ?% K8 {- S; f, t4 L& d
((CUser*)this)->AddHonorListAck();8 h8 Z V' U8 T
g_UserMng.AddHonorTitleChange( this, m_nHonor);4 G+ C% |2 J' H) `
#endif // __HONORABLE_TITLE // ′Tà?
0 W3 U+ m/ Z* ]4 h' u m } Y& v2 D' U& l4 a' T0 F, U
#endif // __WORLDSERVER6 q: z1 S( w" }3 |% H
}
% C4 i, \0 m. r& n# ~& e5 V- d* b) M5 C% U
然后你进入functextcmd.cpp并添加以下
& x( ^3 s+ l P8 `# l4 |& o( L0 J! E0 d* h7 a7 a& f6 W
代码:
% i$ \7 M; r% J% F+ E2 cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 Q+ t& J P2 Y/ @0 J. A
下面插入
8 p1 j9 n/ _! R7 e7 Y5 mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, m, {9 M7 O5 ^4 {5 ~: P! {2 _+ v+ L
! W# ^8 T) Q7 c5 [, _然后你去2 J1 x( r" e& ]
8 h" V8 D4 E. F2 E1 t代码:) y [* [. O9 C# {+ Y9 _
代码3 u9 Z+ W \9 |% V0 p# m
BOOL TextCmd_ClearPropose( CScanner & s )2 }! b Q3 F6 g% J
{
) w/ h. c+ u+ h$ G/ S#ifdef __WORLDSERVER
: N4 B! W6 W$ E5 u/ Y P3 [+ e6 j CUser* pUser = (CUser*)s.dwValue;
2 e1 a3 f+ i1 } g_dpDBClient.SendClearPropose();, u8 {- t& Y& E& a/ c
#endif // __WORLDSERVER
# p/ Z& Q6 m1 B; B return TRUE;, k9 T, b9 U7 c( \+ U
}
# C: Z; t2 w; N1 b( k) z, v下面插入9 U0 H. i1 k* M! c: [, M6 Z
BOOL TextCmd_rebirth( CScanner& scanner )- v0 A7 h0 B0 f
{
6 i" }2 C p" y/ ~0 S7 i( X#ifdef __WORLDSERVER+ t% h7 \# v9 S4 n# | }2 L G: e$ Y
CUser *pUser;
3 Y9 V) A0 x$ W$ W- j5 l) N" OpUser = (CUser*)scanner.dwValue;
+ v7 }' E+ H% r& o3 A% x2 Wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 b! R0 l$ h( y+ j' n
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ a* F. l4 {& |4 q& L5 z5 Velse
# C. t# d: i+ ^pUser->AddText("你还未达到重生条件!");7 ]* H" {! O# X
#endif- \! I, ^$ G# _5 ?! [3 N- [/ \
return TRUE;
* d7 O0 r+ K1 i$ a. y} ( C; V* X4 U( z* y
) f9 c0 r2 H' I: j& R0 u
1 B1 |! Q; _4 q1 ~; V$ H( r4 b8 h: O3 r8 ]
! P( D* P4 S+ t& C7 g: z |
|