|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel _' ~# ~0 K6 U. Y* D" M5 J0 W; }
* I( _& r# \8 Q- X% CMover.h
+ p9 X/ X2 u+ }4 b) n代码:* e) @, ^9 B/ e8 x3 B# y5 e+ |$ }
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, ` {5 O3 L9 D0 r
+ ^ ~3 `( X4 D- w0 i, ?/ u8 F下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - H2 W3 E+ P; r4 Q1 D' G- m: y% _
; K' i1 h. n* {" d- u$ V然后你去mover.cpp添加
+ W7 g0 L( f U/ E( Y4 y/ ~3 a3 a3 ]& \9 l
代码:
$ t, C" }6 ]/ w3 v' D$ d+ ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 z3 b- e8 f1 L4 m+ E0 d0 w{+ l0 G6 {" N; D8 c9 [& r7 d
#ifdef __WORLDSERVER& y) Y9 Q; a# Y! T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" u& {9 U( d! {. k
MoverProp* pProp = GetProp();0 [& m: v/ y g" `/ T$ r
if( pProp )9 I5 S/ M l% v+ @; R9 \
{
6 a, Z. c( a# F if( nJob > 0 && nJob < MAX_LEGEND_HERO )" f+ G/ l% N( L+ f% ~; [
{" R0 J3 S/ F6 W% ?
AddChangeJob( nJob );3 |' X* M8 J4 J4 k8 L
}else{
/ Q* i5 ?- m- r$ D' F- O return;* f' [8 Z& A# d7 d! ^ X! t8 q( _
}, [3 B/ H% D* k( o8 d( r8 w. {
int nPoint = 0;
. X! } K: z# F: i9 k+ D if( m_nJob == JOB_MERCENARY )
6 J8 H8 M0 L3 a* J& Y nPoint += 40;
/ ^" C' g& e2 Z4 M0 N9 n else if( m_nJob == JOB_ACROBAT )& k8 Q: P1 ~2 j" t& t
nPoint += 50;) D/ y8 B* j6 @0 b) P! P
else if( m_nJob == JOB_ASSIST )
* }0 N* L% a% T7 J4 y" w nPoint += 60;4 w& s6 d8 Z+ i% a; g) D& W9 y7 X
else if( m_nJob == JOB_MAGICIAN )- Z) D4 D0 l8 i' v
nPoint += 90;1 e, B% i+ @% |4 i$ v( J5 F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 d1 v, i; [6 t1 J4 S2 N nPoint += 120;7 R+ a4 B* G+ v) P- e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& r2 O/ u; z2 k. s9 A9 W1 u nPoint += 150;5 q! n6 j9 H4 I) q$ G& u8 Y$ p
else if( m_nJob == JOB_RINGMASTER )& D9 j1 }$ M8 a3 n8 @- X4 B
nPoint += 160;
$ g; B3 S' J$ l5 Y8 F: R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, e0 n# y( ^8 G$ p nPoint += 180;
2 \* a3 R% |1 z& G else if( m_nJob == JOB_ELEMENTOR )
6 U/ t* }# N% ^8 P/ X# \ nPoint += 390;
; z' S. Z0 z A! K+ F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): H# {. W L0 Z$ O7 l! F! i- L
nPoint += 120;4 x5 \: @# s( C" B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 j, R8 ?. c2 I; k( n% { nPoint += 150;
" F. S; |2 `9 ]1 P4 T4 C5 h else if( nJob == JOB_FLORIST_HERO )
+ a- W9 v! Y8 a/ P* k/ E nPoint += 160;
# h, {! ^8 \4 z; G: v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 o9 w& A2 L0 ` nPoint += 180;( o* @4 A; [* N" E7 ?" l
else if( nJob == JOB_ELEMENTORLORD_HERO ), C) i. N* g* X
nPoint += 390;
# l4 A- \4 z8 }$ z5 z3 R6 }" C) f! u5 P' \: ?
AddSkillPoint( nPoint );* _% u4 w: t+ f$ `
m_nLevel = nLevel;
# @& [- z1 p/ I/ X0 u; M+ _6 P7 D( }
SetJobLevel( nLevel, nJob );
; r5 m @! ?) ~* N$ [- |$ _ m_nDeathLevel = nLevel;& u& a5 {6 i" N3 F x4 V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
x) ^, ^7 }% T- g: Z0 B- j+ p if(IsMaster())
8 M; c2 |: P7 A; G% Z2 y: `) u {: u; F, J* a4 e- p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 {2 p4 N. H. s8 I; y5 _8 p7 Y
if( nLevel > 59 && nLevel < 72 )
- O, o8 ]4 ]% e; R. c7 e) S dwTmpSkLevel = 1;1 H" ^' o6 m+ K* o3 M* C
else if( nLevel > 71 && nLevel < 84 )+ k j, X, ^* x' W/ i3 e/ I; ~
dwTmpSkLevel = 2;
0 c$ }$ d4 O- J- S1 B. U1 w else if( nLevel > 83 && nLevel < 96 ). E8 C$ I6 _# z1 X
dwTmpSkLevel = 3;
+ F3 b I* R g; D2 N6 K else if( nLevel > 95 && nLevel < 108 )
1 c- j" U0 n9 S& ]7 D dwTmpSkLevel = 4;
$ x7 N5 z+ H+ e9 j0 [) r else if( nLevel > 107 && nLevel < 120 )' I" E/ C1 h7 }- a& f2 `; r- X
dwTmpSkLevel = 5;( S! z. H% O/ j/ f& Q; X0 E( r+ f; ~# q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. Q, l' e# ?/ K- d( r {
5 X6 J* G4 J" |1 P+ x LPSKILL lpSkill = &(m_aJobSkill);: G) h8 ~1 R6 ^( {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) x' N7 h# Q* k {
& f) ]9 i, x( Q d s7 [) ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 b4 v8 n1 T0 d& z if( pSkillProp == NULL )% c- i8 e# g5 X! x
continue;1 u5 c. I& D! g0 W; C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 o7 C$ {* H- [% { continue;
! w6 \( w+ n% r0 Y, q+ o lpSkill->dwLevel = dwTmpSkLevel;
" F. r/ ]' b8 T$ B, ` }( O' ^) P8 I' T: u/ p
}
( |# y0 R+ w6 F1 I$ U }
! R6 K1 F3 P3 q2 U else if(IsHero())) o* u5 j, q# A7 ? Q C) |/ Z
{: [3 z# \" L5 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% H4 ~( j! i* P6 O" b9 ?% Y" I- K {
& F0 k! x# v! J% B, |2 } LPSKILL lpSkill = &(m_aJobSkill);
! ?6 s! { c# U0 y: H- I& Y- M if( lpSkill && lpSkill->dwSkill != NULL_ID )
& p8 A Q/ l1 m4 B. t8 ~4 D) g {
5 Y+ Q2 ~( T4 A( Z4 x% Y+ Y8 o# D& | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . W4 w! I( c4 l# J# J# Z
if( pSkillProp == NULL )
; W4 \7 d5 ]5 z# _, E# p4 _ continue;
4 E) K1 A+ ~, V' P: w4 R- w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! P) j( Q9 s! L, o continue;$ g; L: \, j5 c) Q3 i
lpSkill->dwLevel = 5;
4 R! e$ x7 Z7 q6 a- g' w }
" \1 q0 [" L/ T; h" d }
+ |/ F+ l# Y3 u8 q } Q, r }0 k2 U/ M2 ~& T
else if(IsLegendHero())
$ \0 S7 W' z# o" k8 C2 n {
" q. ~! o& d3 k- g( h$ | for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; F5 a$ k% S0 c6 R; l. Q; p( y
{ $ @2 i+ `9 ^7 L; g: P# n5 W5 ^5 \0 x; f
LPSKILL lpSkill = &(m_aJobSkill); `* x2 O2 b- Q9 F a# Q/ n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' `, l; u" H; p3 Y, g# l* J/ k {8 C2 h* a/ |* G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 Q2 B! A) i: m% K6 ?; ~
if( pSkillProp == NULL )
% v; A/ n3 }, K% o! ` continue;
. u: B, @4 Q: O; a% d3 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER) K8 Y* t7 ?+ K
continue;
" ^5 ~0 ]/ X" @ lpSkill->dwLevel = 5;1 v4 m* i; r+ f E% E# [
}
7 ~% g. E* r/ X- o: E) A }
4 X* f3 C! s( L+ ? }
: n& a1 u. C; M! y3 Y% d$ ?2 T1 s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ K5 Z; b4 P, ~& |/ J6 ^ if( bGamma )
: h0 ?6 R. j% |& M" j5 [$ ] {$ w' R0 v3 q* d" ]
m_nExp1 = 0;
# d' }# H! H3 L& c* N1 E }
d9 P/ U2 m% c" n: f4 d
/ [0 u8 X3 |9 d) X/ S; m7 H7 o _ ( (CUser*)this )->AddSetChangeJob( nJob );; v" m2 s) A- t( |" J4 n) _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* ]1 F; }: Q' N. D m W1 W
- P% x, Y$ C! P2 V0 n$ q6 Z; H8 X+ v7 U2 x$ `
#if __VER >= 11 // __SYS_PLAYER_DATA* a( B1 }- D. X% x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 V, e7 L$ m, M* O J$ P: v
#else // __SYS_PLAYER_DATA+ R1 N& k) r& F `9 N: ?; h6 Y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 e- V3 V% G3 ]: D1 ~& `/ |& S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) j2 ~( S4 L; \8 h( ] if( m_idGuild != 0 )
0 K) [ X$ b( e1 y8 P' ^, a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 s- \2 X2 O9 o6 R) E) A" g2 a7 W#endif // __SYS_PLAYER_DATA
* Q d! v+ [; D& H- E SetHitPoint( GetMaxHitPoint() );
9 B! t+ x5 ?9 r. n: i$ \ j SetManaPoint( GetMaxManaPoint() );
+ u- ]* f/ i5 h( N* x' T SetFatiguePoint( GetMaxFatiguePoint() );
2 E5 ]/ \* Y; Z) B( c0 Y if( nJob >= 1 && nJob <= 4 )
1 ?2 e8 n' A5 S: E# H {9 }! y4 F. t ?7 f- Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;, K' ?2 h4 e7 c
m_nRemainGP = 28;
4 z: @* Z2 p$ l. N( N }* u5 Y }0 P z$ Q" J: W! {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 Z: _5 p. E& I+ D1 z9 O0 F
{7 y" [( }7 N. }, h# w. K1 m
m_nRemainGP = 118;
" b3 Y- H+ u* r: b/ t3 g7 D! Z+ f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 V& d T# Q2 e% l- o, @ m_nStr = m_nSta = m_nDex = m_nInt = 15;4 E3 X, i+ f6 k* j0 J) C/ l
}
0 Y% V( a: n8 }. ]1 m( i) t0 i' L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. g, N4 a0 o9 U8 Y/ L* V {
/ a/ b1 {% \; A) m9 t* f0 D/ ` CItemElem itemelem;6 G7 D C% A( F# I7 P
itemelem.m_nItemNum = 1;
( _3 M$ p; C* M, W8 e5 X itemelem.m_bCharged = TRUE;4 A a" H1 p7 @
BYTE nID;
! K' [3 B# a. P& n% ]& s( ]) U5 s
+ A- [3 E _4 M8 h. A, [$ L6 ` if( nJob == JOB_MENTALIST_HERO )) X- e) Q9 Z; g' ]# h! x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' N) V" W! O4 l, B/ `, b
if( nJob == JOB_FORCEMASTER_HERO )
$ {+ N. c6 g% ]4 N, C itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) t a" v8 u0 g* s9 t8 R" w: Q2 R
5 s* R- Z& Y0 I# a ( ( CUser*)this)->CreateItem( &itemelem, &nID );, r7 j% U0 X: k/ b2 T2 w
}
* t- Y2 ?! v$ T- C$ D6 e8 _% { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ D0 { \1 c3 ]2 w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 o- Q( L5 M( q# D1 P: D8 K: A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); G7 Z( r6 E- u& V, e. n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* X$ o k) G5 q ( (CUser*)this )->AddTaskBar();*/# `( R! E7 D9 E6 n# k6 Q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 S* Y" `4 L9 s, s" O, U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 x: d; g1 b( w# k9 y
((CUser*)this)->CheckHonorStat();
3 L7 x5 t/ U- N# w ((CUser*)this)->AddHonorListAck();
$ m5 {5 \. X/ ^5 x* ]# \7 n g_UserMng.AddHonorTitleChange( this, m_nHonor);
) F5 c+ u' I: J#endif // __HONORABLE_TITLE // ′Tà?. k& Q& S5 `3 H6 | }% y7 h( l) H- O
}6 U1 @$ x" }" Q) C y
#endif // __WORLDSERVER5 r( v- Z% a4 B" R
} # H' G0 ^) ?* f
3 ~6 g( a8 @; K4 E4 ` i
然后你进入functextcmd.cpp并添加以下% J1 B" T& p8 P# u: ?' J
6 z* m1 }/ b- _2 J0 W0 A
代码:
' s O. N) K6 L3 t( JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). {; t- a- n! F1 G
下面插入" Y* T, U! n0 w! ]' b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 V h) B2 ]- W7 O/ ]
/ q: X8 I6 }* {/ U然后你去& p7 x/ q( x" |, R( ^/ _
4 y. h. O8 ]% j2 p( ~# u0 T* O代码:0 X9 P' g; B& L: ]7 r) l
代码
0 Y1 l3 R+ j# N0 i$ C ?: R" EBOOL TextCmd_ClearPropose( CScanner & s )
& U3 p% h1 w+ C, A" @7 f5 p; p{
_, u; ~9 r2 B#ifdef __WORLDSERVER9 P) X' p3 c: Y6 O. w) e: l6 T
CUser* pUser = (CUser*)s.dwValue;
6 R' y' o8 e& p% K g_dpDBClient.SendClearPropose();2 K4 p0 f' }' {" ^
#endif // __WORLDSERVER
) J" P2 S8 M& b return TRUE;
' K: B' C% u" y2 ^8 R+ P}& V5 f( O5 u. J- v9 |
下面插入+ B: f* J$ b0 L- T& c- t
BOOL TextCmd_rebirth( CScanner& scanner )
! M( |6 U/ N* D7 Y{
5 P4 C. y+ N6 p+ A( x$ e) n#ifdef __WORLDSERVER% H+ J. |. C; P2 U( t
CUser *pUser;. C( V, i: M4 [, {9 E1 A; w. F
pUser = (CUser*)scanner.dwValue;$ F1 ?- Q: p) s4 @ H0 m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 h% T- E) ~5 o% Z# ?5 W% C3 g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 i5 C# o6 [. `6 C- c4 e0 d( @, eelse+ N; J. ]3 _$ Y0 F
pUser->AddText("你还未达到重生条件!");
$ G! o' p8 f$ |: w- l3 f3 W$ g#endif
( M3 P& J, l. Ureturn TRUE;8 S. Q0 }. w8 E0 E, l- }. u
}
) S4 U0 @ T7 r! a, p4 d" Y, u$ L* q7 ]* k5 u* a
# ~* O8 J j& z% e
/ c0 E9 u* ^" _ E
$ Z' `& i1 H/ ? |
|