|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' l2 N* q/ ]# W
; K( P D1 K! W$ N! j0 ]& ?: CMover.h
( }+ u5 T$ `( s) k& U代码:
; ?% O9 x" z. H( N! W' G: {6 q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 y l! }& R' y X( {) @' l/ m6 y- `" K
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 r- Z' r0 y; P6 Z8 [/ h* F6 F$ U
然后你去mover.cpp添加
7 G; y8 Y9 L# Q0 F. j: h6 e: k7 Z7 _1 {: n {$ L6 H
代码:
6 [7 D/ H: l: L1 v4 k2 P" W+ Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" s! \5 ]9 O0 h+ ?' w{
% A5 g9 a0 l- V/ U/ d4 C#ifdef __WORLDSERVER
. ~$ E( {% B- w' w& ~, }2 a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ W! b2 I/ X" ]" B& @; A
MoverProp* pProp = GetProp();& ?+ m1 G: u9 P' U" s/ j
if( pProp )
( k2 b: _" ?0 N# l4 l, r {9 _' e$ p2 |- t; |* P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 z% `1 Y4 D3 U E i {
, H+ s9 Z7 L, l AddChangeJob( nJob );: O0 v6 G8 A$ A4 u! {- G
}else{
/ W+ m" i# M) @" d: ~- H return;' T9 V) m6 ^# w# h: ~7 W
}+ r: V6 i* s! {3 Y
int nPoint = 0;
. R" l. E0 l2 d if( m_nJob == JOB_MERCENARY )$ Y7 }) A2 @$ a# D4 A8 X. h
nPoint += 40;
: N" ]5 d, V$ p else if( m_nJob == JOB_ACROBAT )
7 U: H* @( P3 b1 }$ b- m nPoint += 50;
9 U6 N( x/ j$ U else if( m_nJob == JOB_ASSIST )* j7 h. ^( c. ]$ o) u1 C: n2 P
nPoint += 60;3 {0 i M1 Q) J3 k$ ]9 R
else if( m_nJob == JOB_MAGICIAN )
7 P4 k& w& g+ {4 x# U, Y0 R# J nPoint += 90; |9 X. P+ q- T) l6 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# |0 w U& ]2 _/ N5 C
nPoint += 120;
- R& y- H0 G+ [9 d O8 G }4 U else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ b6 u5 N( N; U" ?$ t9 _
nPoint += 150;+ F, l1 c. a8 f9 ]5 b$ X
else if( m_nJob == JOB_RINGMASTER )+ ?' ~+ n! w! H2 z
nPoint += 160;6 N" d- Q9 G0 x( l, Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) j1 l2 d3 c( D% `* V- K; H nPoint += 180;
& L* m; h L7 Q( ~8 \ else if( m_nJob == JOB_ELEMENTOR )
7 Z/ [' m9 t. x nPoint += 390;
' Q, E% Z; ^7 ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% r; r& a. g6 D3 l p5 J nPoint += 120;2 s- e1 |. p) m. U, j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); A% \: V' D. I9 F+ e: g2 h4 f" _
nPoint += 150;
$ @! N" A/ s4 e$ A7 F: C( t4 P else if( nJob == JOB_FLORIST_HERO )
% H% R& V8 ^( Y: i5 }2 W% I5 q nPoint += 160;6 B7 e/ o4 } K v f$ w% O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 N/ w# @+ n* [; X' y1 m: w ^3 j nPoint += 180;
( J% U) l' v1 z H2 m) ]8 l else if( nJob == JOB_ELEMENTORLORD_HERO )
" ^$ \+ G" }8 G; { nPoint += 390;5 k- E7 o [% z5 H' M3 y
1 G$ l8 U( N% b$ w4 r" b
AddSkillPoint( nPoint );
; L* w" k; y# u# x: o m_nLevel = nLevel;1 d7 Q4 c: G8 m3 w; X" x, w" b7 h
) A0 t/ X d! k) G: \, g- c
SetJobLevel( nLevel, nJob );" W5 K3 W" g4 u5 G/ r4 G
m_nDeathLevel = nLevel;
& N, {. u9 x7 Q5 v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 b5 F9 U7 [4 M2 m
if(IsMaster())% e+ @% J. h# a3 V4 l( q( ]
{- e* D: i0 Y$ a& m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) j5 V% K4 X: \& p! D& |# i5 h if( nLevel > 59 && nLevel < 72 )- A4 x. \. a/ U0 Y; p
dwTmpSkLevel = 1;
/ t; h' H5 n+ j6 z0 A5 r4 Y* z) P, L else if( nLevel > 71 && nLevel < 84 )% |. S+ V' u/ E7 [5 D ^# |* s' m
dwTmpSkLevel = 2;7 b9 o2 p$ r4 \% A- Q0 q3 C
else if( nLevel > 83 && nLevel < 96 )
: z" o/ c0 B- V9 h2 O7 Q& x2 W dwTmpSkLevel = 3;
5 {! V% o [4 m; A8 X" F( m3 F$ m else if( nLevel > 95 && nLevel < 108 )
6 u6 V# M, W0 @9 D ] dwTmpSkLevel = 4;
+ i& v, R9 N4 L" T; { z else if( nLevel > 107 && nLevel < 120 )
! Y3 t5 H" ^# L6 S$ n% [$ b dwTmpSkLevel = 5;
! E6 R. ^8 \ R; } for( int i = 0; i < MAX_SKILL_JOB; i++ )
. a, I3 A1 `' K; Q, [/ G {
4 z7 n! u, n- i% A+ N- U/ H LPSKILL lpSkill = &(m_aJobSkill);3 r. }1 V& _. }% y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 b" T! m; H* n1 ?2 }8 g# U {
7 \3 {8 n" W5 S/ N2 N% M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ^* f' A% g/ T if( pSkillProp == NULL )
1 ]& B5 V1 x0 Z' ^ continue;
K4 n: N4 ]1 Z6 [3 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' T1 v' Q; `, d+ l% j! {
continue;
V0 [( t, z7 p+ D$ I lpSkill->dwLevel = dwTmpSkLevel;
& M( i4 N* J$ u# r, {) Q: N }9 k$ \3 Z3 B8 |2 I: u4 C; Y4 ~
}
& K9 G+ e' o% `% @. N }& w: a6 v( G n! Y+ H& E+ G
else if(IsHero())
! O7 G" O" Q& q! }7 s ~8 ]5 L {
% q$ T5 [. }: C$ G" O for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 T3 D+ N) A; g
{
% @( x! h1 {: C4 s( e8 F LPSKILL lpSkill = &(m_aJobSkill);( C# i6 O! _* j4 |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 C) \- A; B4 V: u1 c {
4 T o$ W s6 ]* t/ s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; c! H6 N1 h+ b' K# W) ` if( pSkillProp == NULL )2 [2 a3 y- M4 X @; W
continue;
/ J, c% `& u. M! E6 {- P: u/ A if( pSkillProp->dwItemKind1 != JTYPE_MASTER). S6 `& M( v( Z' [$ Q b) Y
continue;/ G9 q8 B: D1 N" d4 E
lpSkill->dwLevel = 5;* p3 k6 k' b# |* p) K
}
! @" t% @/ ~7 o' z }+ e+ w% V0 y! R# n- ^& C
}# X4 {8 @: _3 u. v% Z5 r7 c$ E
else if(IsLegendHero())
) Z" J/ y% x. o* f {
' y U9 H. i4 ?5 t% N for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! d4 e' O4 r- b1 @5 j
{
5 O/ s1 ^7 C- O2 c LPSKILL lpSkill = &(m_aJobSkill);5 Z' i y+ X- M) F6 N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
T) N! n1 ~& N) I {% i* J: H/ z# _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 w& J- |( Z) a4 Y
if( pSkillProp == NULL )
1 W1 ~% J( N! d continue;: E" ?1 R1 V) o; j3 u: @& [0 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), n) M; |! `6 A
continue;2 _3 o' z; f2 a4 ]$ t/ n# o
lpSkill->dwLevel = 5;
X# g$ {! B* w& w( F }
; l1 U6 H! D( C) O. H6 T }% T8 N- T5 {8 ?4 U! y
}6 r2 d' X7 S9 W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
|) N0 m* J/ o a4 n( y) U if( bGamma ). G# C9 F2 E1 e6 J7 m$ Q/ Q5 |
{
8 r) u1 K6 T" c# a m_nExp1 = 0;
+ o4 Z _9 d' R* i) V }
9 z7 ]0 j2 g6 W; F
" D) \: U& U9 t ( (CUser*)this )->AddSetChangeJob( nJob );) P) O9 Z" ?3 l6 H* q; B+ Q
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ ~( @% ^3 V( N8 k& u: I* s2 a% O- P; P
1 ~: x# K }9 {
#if __VER >= 11 // __SYS_PLAYER_DATA6 v) P% [/ |% G9 V- ]. ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% A# M' {1 _4 m
#else // __SYS_PLAYER_DATA% D6 S9 Q/ O, _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; ]8 n; g- j S7 d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ _% | T3 A, G, w if( m_idGuild != 0 )- G h. p& a! p2 u# N* E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ T9 ?) k% @/ y( g- F; K" I6 T#endif // __SYS_PLAYER_DATA3 }' [ Z( D6 `7 e/ b, V
SetHitPoint( GetMaxHitPoint() );
1 k& e$ |- g/ I: A5 g3 D* q, ]$ |& S SetManaPoint( GetMaxManaPoint() );5 I: Y& g2 R8 m. h& v w
SetFatiguePoint( GetMaxFatiguePoint() );3 \. l3 U& V+ Y+ N
if( nJob >= 1 && nJob <= 4 )" ]/ f8 H$ \6 d1 l0 ?
{0 W6 }' b* X* V- f; @$ w# ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 V& E$ z- U {2 h6 B) ^1 H m_nRemainGP = 28;: K: Z0 M. f# b. w. h) s
}0 ?) q# [. Y8 C& }+ @) l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) D& U8 g( R Q- V0 i& y( [
{
; R* [# ?) E ^$ J7 k m_nRemainGP = 118;
. Z) m4 e( Z" F" H" e9 J; H- W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ c7 Z- s0 r: c- S& b m_nStr = m_nSta = m_nDex = m_nInt = 15;
* R7 |# ` U( M% P$ d) Q. O }: u' A, c& U1 h5 @9 x0 R: @8 D6 K7 L5 @4 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 y' A, B! q; c; Z$ j {% ~5 t) [, i- w/ S' a# P
CItemElem itemelem;- |. m% K0 t0 K: s F9 N
itemelem.m_nItemNum = 1;$ y* F# h/ ^) |- m
itemelem.m_bCharged = TRUE;+ t9 J% i0 l" T. Q9 [
BYTE nID;
4 h3 I) X& b" S* E& T# m& N3 W6 y5 E; o& }) w |/ w6 c) X# I
if( nJob == JOB_MENTALIST_HERO )
1 d8 H: D2 U8 E# F& ^2 o. R. A! ` itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, J% \3 k6 X- t% ^$ I
if( nJob == JOB_FORCEMASTER_HERO )0 L4 N) T M$ ]$ M& S% T: K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* v# [6 J2 n1 A' A1 @7 L
/ L" R# Y2 N. M* T# T& p3 D ( ( CUser*)this)->CreateItem( &itemelem, &nID );' X0 T$ E3 @! e) r4 F
}' R" Z& t) X& K$ h' J4 j
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- M* Q d+ A4 X/ p. b7 z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( H: `0 Z0 }! v4 ?" W
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( M: e5 x+ C, U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; k; K* R4 J* b R. e3 ~) j. K
( (CUser*)this )->AddTaskBar();*/
- o; u! \; i: t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! n1 c5 }1 j2 v) }" J' {+ U y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( a9 ]4 o$ x" M8 s4 v ((CUser*)this)->CheckHonorStat();% [' p8 o! _* G" S& ~: u* w6 l. w3 r
((CUser*)this)->AddHonorListAck();6 h7 k6 L) o: a, ~" f" F) F. |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! \& q7 `& F& |8 Z#endif // __HONORABLE_TITLE // ′Tà?- h9 o& |# z5 N1 k6 z/ w; s
}- ]! l5 ?1 u' `- n" L2 l X+ `
#endif // __WORLDSERVER
5 {9 d$ j4 H& d9 M}
% U: y8 p* N0 a; r! N+ j1 Y% ^- @1 O( U, }" _& e' q
然后你进入functextcmd.cpp并添加以下
2 Y3 x. h0 D! g$ [; i0 i8 P% d5 Z V, T# V6 N2 b R
代码:
6 S: \, t1 x* `: w+ [ Y% e/ SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 [* g, O" w2 G5 @. Y; y0 c下面插入& P9 r4 t$ I; V; k* g1 ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) f' I2 S1 q! C h# }$ c! U
6 I& r0 ^8 a8 e
然后你去/ C7 n4 x( m# ^; T/ v8 l* ]! _" d
! E3 X k0 O+ ]; f# ]! b
代码:
1 t! G r# n! H- T; a! P代码
4 E/ G% ]2 a, |( R- IBOOL TextCmd_ClearPropose( CScanner & s )& x+ o6 ~, m6 J# n
{
2 D9 Y7 I( R1 V; }8 k#ifdef __WORLDSERVER3 |) F6 S, d% N1 M" G$ n
CUser* pUser = (CUser*)s.dwValue;
_; s8 ?+ q; Z* J: p5 M J g_dpDBClient.SendClearPropose();
U$ J W* n( a- f#endif // __WORLDSERVER
9 m, l5 ]- |* O; g$ n return TRUE;# q- |, R6 g) e! C6 g, B9 @
}7 K$ D) E, ~$ Y, D* ]8 O9 R2 D5 A
下面插入
3 h+ ] u% v3 WBOOL TextCmd_rebirth( CScanner& scanner )5 M* y7 }3 [. a7 }( q- n E" e4 }
{
+ q: {# Q# y# @! o#ifdef __WORLDSERVER
. t, C0 z2 x. vCUser *pUser;
- L0 G3 R( ` x- U5 `pUser = (CUser*)scanner.dwValue;& U9 p, b! p' |. x3 |0 Q& y Y- F1 _- _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- X: b( D' h$ y" ZpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! [1 C! x; ]/ _else+ T2 @7 n8 Z( l( p& W5 I
pUser->AddText("你还未达到重生条件!");3 s" M. e. ^; G7 O- y2 b3 I, u
#endif4 V! @6 \' q& |* F
return TRUE;3 P% i! A: `3 e, Q' `2 q
}
8 A" X# a+ A3 w8 J; F, J5 f& u" k3 W }3 J5 p1 B8 V
6 ^7 ]+ ^' D) Y5 W
& c" `9 H4 V+ r3 u2 r$ G+ I, c9 _; H% z! D
|
|