|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, ]/ r4 O" N: f7 ^
- z, ]/ o8 Z$ x% ]4 L. n3 eMover.h
& D! y1 [/ d' X( R3 e( d _6 h代码:6 S% r' I# h4 W) Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" q) r/ f2 Z+ G T8 h; L
3 B( {4 i# x O+ G& k- }7 k8 ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 [/ @3 W2 C/ M$ d% c
: e3 Y2 y8 M/ z: `6 S然后你去mover.cpp添加/ r4 m' m3 s5 C/ q. c" k( l
" F1 n0 }4 _5 U* I* G代码:
. z2 J( t3 s! E9 m% avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 E1 }2 F. U$ |{. Q( v Z0 [+ f1 i; r
#ifdef __WORLDSERVER- f+ d- g, x) ~' u# r4 L
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% ^) o6 K* j0 o+ Z8 w- w7 g7 p MoverProp* pProp = GetProp();
2 h/ E2 ]0 \1 z8 f; s if( pProp )
$ i4 J6 c. a5 L' W6 ` {
. {) U: e3 d' D) v3 u% C if( nJob > 0 && nJob < MAX_LEGEND_HERO ): ^% W! z: f9 B5 }
{% Z2 w! M3 [: j6 L( n
AddChangeJob( nJob );' |- T: @. Q1 J* ~/ l& O4 q
}else{( K4 d* q$ B* }/ p; v* s
return;2 z# x" Q( j9 e" f# q# L
}
' I# c6 a5 v% D7 @) O int nPoint = 0;
; n* O6 y0 P+ L; f- ?6 T if( m_nJob == JOB_MERCENARY )
6 b3 s8 E o" ~% K" z" O nPoint += 40;
2 @% A6 y- S! B' N3 Q% e5 X8 s else if( m_nJob == JOB_ACROBAT )
" H- |& L3 @% u5 `8 j nPoint += 50;
+ d( P$ q* @* g( b8 N- ^ else if( m_nJob == JOB_ASSIST )* [$ M9 N2 y- {: t* i5 d8 g( O9 z6 Y
nPoint += 60;
$ S; Z$ g) ^8 i3 ~, Q else if( m_nJob == JOB_MAGICIAN )
7 }6 x2 `. n6 b& l nPoint += 90;
K, c( ]# m5 q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 P2 b+ I0 d0 ]4 M$ K
nPoint += 120;
' `0 b+ H9 N( Z* L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" J/ _5 v! K4 G
nPoint += 150;
" Q/ ?! Z/ H6 U/ ?6 C1 \: W else if( m_nJob == JOB_RINGMASTER )
, Y; a. P6 Q3 i$ S4 S* o nPoint += 160;
9 l5 E: ]. P$ Z( M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 N. \ Q: O8 T- y. A nPoint += 180;( @& u3 e# d7 u! N' l/ |
else if( m_nJob == JOB_ELEMENTOR )
+ U; g, e$ T) _6 H- u nPoint += 390;
- |) |' j9 o; H D. b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 a" a( v3 m; g ]) [/ i
nPoint += 120;' v# i8 m) ]) M# O9 X# x, y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 l( f# \6 n& n6 a* Z nPoint += 150;
) B8 n) L: A- J else if( nJob == JOB_FLORIST_HERO )
% B. E2 Q) r. ~9 Y nPoint += 160;4 ^- m) D9 Q2 y* l" b& w, O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: m% B" R+ C0 G; Y nPoint += 180;: n) ?' Q3 k9 ]/ b: d2 E0 C& p6 ^
else if( nJob == JOB_ELEMENTORLORD_HERO )/ v4 x- m! u2 U6 m- I% i4 V
nPoint += 390;
" ?2 I- r, T# A. I: J9 x0 D. R# S) i. b6 D% i
AddSkillPoint( nPoint );
4 Y% i8 G% j! y- M1 ~- H m_nLevel = nLevel;% b" Q9 e3 o: Q( Y5 b
" J2 o, C5 c8 r) | SetJobLevel( nLevel, nJob );
* K% L+ B- g8 x( p0 T( k6 n: j m_nDeathLevel = nLevel;
9 k: W- W6 X# R( w) G) u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ Z; m1 Z* @& B/ _% b% t L2 b if(IsMaster())
! Q1 @1 E$ u1 [* h4 T6 M# g8 ~& ? {
- E; @8 e; J. N: @ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 ?1 Q' ~7 C5 u+ Z7 P
if( nLevel > 59 && nLevel < 72 )# r6 ~4 ~5 J1 C; B; T& Q: |0 R
dwTmpSkLevel = 1;
4 G. O6 F/ T% l% r5 @- [! b else if( nLevel > 71 && nLevel < 84 )- t% I2 E* p" k% Q. \3 q
dwTmpSkLevel = 2;5 y( @ Q Y8 u3 A: ?' ^
else if( nLevel > 83 && nLevel < 96 )
0 `( H. W) M3 @& `* C0 n dwTmpSkLevel = 3;! W/ q) {! m$ |% S2 m
else if( nLevel > 95 && nLevel < 108 )
2 m+ H9 s2 n# w5 Z2 J dwTmpSkLevel = 4;! Q& Y( @: J6 O, [
else if( nLevel > 107 && nLevel < 120 )
; j3 {" Q) j- a8 T* r dwTmpSkLevel = 5;
9 g, G% x- G: u for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 v, P; g& U: E4 \ K& _. R {
# b2 G: K: r- r! H( L4 R LPSKILL lpSkill = &(m_aJobSkill);
% R: e2 C+ ]% C9 Z- _7 P if( lpSkill && lpSkill->dwSkill != NULL_ID )4 J$ ^6 m1 z8 r# @
{% s9 q( ]! L& H/ a5 F( M' ~) f# Z4 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ }4 g, B6 z0 I7 a6 R if( pSkillProp == NULL )/ O3 P% y& a3 o7 l- x& V
continue;
8 h. |6 t+ z/ {; z* O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 O: `3 D' v3 z- \0 H
continue;
& K0 q$ R2 d/ I3 m, n- K$ g lpSkill->dwLevel = dwTmpSkLevel;
6 f% Q$ Q/ b2 O. e7 @ }
3 Q; v4 L. }$ c9 r& Q: C, Q- g }
2 O! z: {4 E0 W$ p! ^ ` }2 [9 L6 s0 j( O4 Q2 c; K
else if(IsHero())
# h: Q, w# }# R$ Q( a8 t) _% N {
# ~) |$ j9 u( Q9 z' a& ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ^" z9 b* X; Q0 B3 C$ D# N) a
{ 0 p1 H7 s' o1 l: @6 [6 n6 \
LPSKILL lpSkill = &(m_aJobSkill);- }# c. A% N- h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* J: F2 T- S* j$ o/ {5 f4 @ {
$ a7 m( [# B# H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ n9 W. ?4 E4 W( w if( pSkillProp == NULL )# L/ d7 c* e/ R( a0 W V, H
continue;9 B7 `& d+ n5 [1 z2 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 n8 r/ ^* m6 U! a" r: U. b8 i$ L
continue;, [% t2 _7 v3 @0 u/ A( R7 _+ Q4 V& f
lpSkill->dwLevel = 5;
" o: y! m9 e" G' @8 C, @+ O }9 d/ J1 ~; h6 x9 \
}: a5 s+ h, P' D& x9 C
}* W% e4 r& j$ w: _! f5 J1 k' o2 J
else if(IsLegendHero()). E- b' _2 S( N# c; R
{* e9 q: f, ]( Z; | S$ S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 c' R! R* V3 ?3 d* \6 e {
( [: v. P" r! n) G: J LPSKILL lpSkill = &(m_aJobSkill);6 V5 x7 ~. a4 M9 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ T% i1 M3 S# Y1 S( x7 H0 F" U
{
) ^5 X6 o3 V! m; m$ B' Q* O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ r* a( P+ q4 W if( pSkillProp == NULL )0 `' o" m( Z, |. A2 i9 b
continue;, _/ G$ H; i% m. i" s9 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 f7 U7 I: P$ B; \' J( y: U9 D
continue;
) |+ x: F- c/ [7 \* M- W lpSkill->dwLevel = 5;' x, H3 B/ a+ H, y
}# @# E* k0 [' ~* B& u
}4 N% e+ b3 W4 ^+ @' V
}- I$ m* ?+ M' E. Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 i0 |6 F/ X" i( g, w
if( bGamma )
. \0 }& s( q3 F9 a5 \- n: n% \ {
" d$ _ ]; |& \/ B; c m_nExp1 = 0;, Z* ~! V, [/ w; [ n0 P
}9 W+ l( N* K2 o4 s6 A/ W
( T' o% _1 ~' g8 Y
( (CUser*)this )->AddSetChangeJob( nJob );# j7 Q7 O7 m# g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, O, V( g- q) e7 w4 |
7 V1 d6 x) ^4 I! S t# P1 p F% n) ]9 L
#if __VER >= 11 // __SYS_PLAYER_DATA
. x% ^, F7 f7 Q/ u) j3 A3 z" ^1 f+ \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ u- Q4 [. P, k z$ d6 U5 L
#else // __SYS_PLAYER_DATA
; s# E% S$ H' U' n D g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& k% f1 D2 `1 C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ }. e @. `& ?" U
if( m_idGuild != 0 )+ @% b; W) Y0 _1 P Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 c0 L+ X+ n7 ?/ O: f0 S#endif // __SYS_PLAYER_DATA' {9 u1 a" Z' P# q
SetHitPoint( GetMaxHitPoint() );
' F8 Y- A, t; N6 z5 T& T. u3 ?4 O2 Z( [ SetManaPoint( GetMaxManaPoint() );
; t& [3 ]8 v4 m6 ? SetFatiguePoint( GetMaxFatiguePoint() );# j2 F5 \6 O# S( s, j6 m0 ^# P
if( nJob >= 1 && nJob <= 4 )# s; \ `9 d/ M; e( v
{
, L9 ]9 e0 a; ~5 x) q2 { m_nStr = m_nSta = m_nDex = m_nInt = 15;% k6 T3 }; I g; w( Q2 E1 {( `0 |
m_nRemainGP = 28;
( S' v, n; O1 {, O: Z }
6 F7 t# c6 z7 I* M( Q1 x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* v' K Q. M0 f9 |$ o' p% l7 R5 E, y
{
" K& F% D% Z0 n; F$ T/ F7 C2 b m_nRemainGP = 118;
* a5 m! Y: F. g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" X+ T. ^% i6 v3 I! H, k6 ?1 T m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ b4 ^7 [, q; g) i& @3 e }+ j2 J0 _& S. |" s7 ~2 w' j W, t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- i- G% E" @* K1 R
{
; ]* e) X0 w* r% J* b9 J: q: l0 i CItemElem itemelem;
$ |5 {3 z- o2 F% L* u- U7 ~ v% T itemelem.m_nItemNum = 1;2 o+ u% t! m( m: n7 A, e# K- b" @
itemelem.m_bCharged = TRUE;
9 H0 m' H5 \: a BYTE nID;$ X, j1 }9 o0 ?$ X
# M9 y+ d/ U; b# Z2 v. X, j
if( nJob == JOB_MENTALIST_HERO )/ s9 {# T/ j' u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, R+ {+ _5 R# h9 ?2 B: l: V
if( nJob == JOB_FORCEMASTER_HERO )7 N0 J- J6 D5 F; i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, z* |6 j9 @! d$ Y% v2 k% }! ?
% Z2 g: ^8 K/ A' j ( ( CUser*)this)->CreateItem( &itemelem, &nID );& J/ h6 Z1 A5 |+ X2 I
}
3 @5 G* g0 Q/ H8 _, [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" K: [$ N, u( X% n. e+ J3 |1 m c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ q$ @4 A2 Z7 U5 M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ w. d3 G5 y9 X- z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 V$ D$ U9 Z; N; ^# p
( (CUser*)this )->AddTaskBar();*/6 I# C4 a# ?) E8 r! k. f1 e) W
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& e4 l) v- x% C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 j* y5 |# i3 u0 q8 ]# O ((CUser*)this)->CheckHonorStat();
: y# e) L5 A1 @$ o. ] ((CUser*)this)->AddHonorListAck();
+ X2 b& _4 G n% O. M g_UserMng.AddHonorTitleChange( this, m_nHonor);! v3 }6 n) ^4 ?$ W A9 l
#endif // __HONORABLE_TITLE // ′Tà?
0 J8 Q0 W7 N$ [ G& [ }
: S. f) U' o! {$ m#endif // __WORLDSERVER
* p2 x( |0 s7 `1 I1 r2 k% l2 c}
: T# n8 Y0 v' A* I/ \# K. f% Y# r( l; q2 |: i8 h; \4 w3 E
然后你进入functextcmd.cpp并添加以下
+ b3 Q y! f7 O9 d% c* P E( I8 | A) |
代码:
# _8 v$ c0 v6 k2 dON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# D8 ~/ K* X" |3 j* C" z9 D& D' ~下面插入) F) v! e C! f5 B: o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) |# K: J- X" ~ K/ P2 X( h8 r; M) N. X9 G& l- N
然后你去& ~: {: o1 B5 \: }/ k6 ]2 K+ r% O# T
2 T5 M6 D0 m; W
代码:: p$ \% X0 `/ K* R0 ]4 G6 y3 S
代码
. W, x9 K( K' r2 u. IBOOL TextCmd_ClearPropose( CScanner & s )( A) N o* W, v0 }' N9 F
{
2 p$ p. Q l/ r; x8 M#ifdef __WORLDSERVER% E2 d; n; s& j) s* y3 c
CUser* pUser = (CUser*)s.dwValue;) a1 C4 `! Y. Z
g_dpDBClient.SendClearPropose();, b/ w$ c" J' H8 g# j
#endif // __WORLDSERVER. z4 M7 g0 C$ k/ A
return TRUE;. n3 `$ z t3 {0 \- b' l
}$ N8 g: g$ m# [3 ~( `
下面插入$ D! k" l+ m( r& E& g$ ]8 [3 c* k
BOOL TextCmd_rebirth( CScanner& scanner )
; ]+ k6 e8 e" W: ~{% h A$ w7 C! A6 O, a1 B
#ifdef __WORLDSERVER Q# Q' [2 ?6 _9 |8 Z8 B# M# y8 L
CUser *pUser;
! W$ j. m2 \# ?9 d* [# J. B/ i2 i) CpUser = (CUser*)scanner.dwValue;
3 i) \+ ~3 @! Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 a0 V) X1 r# H% Y2 `: opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, ?$ j2 C! e9 e! n
else% o) N/ e# O* D7 h
pUser->AddText("你还未达到重生条件!");
% F1 ]: ^. W$ i0 Z% Y1 J#endif
; w9 ]: B2 v. d! ]! L! u9 Zreturn TRUE;
# v, z: e4 |( F @- K}
* `) | Q% M, C( ?) d3 X- x% ]1 ^8 X7 |0 P& `" b% N6 r
" c4 X( }2 }4 b; J) J7 I: V+ r0 _) |9 n* S5 d2 E, u& I
& S4 d. R# \! X) C |
|