|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& I3 ]7 o* M1 p
" p5 u" V9 Z- d; \
Mover.h0 V R' M, B9 @6 C+ I2 n
代码:0 m4 O3 }2 \+ @. o. y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* H0 @" {4 ]% r) G6 P( S# @
u W3 n7 d1 c9 t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! @& S) t2 U0 d8 n+ g- g% S+ w0 i& h/ W# _# A* a" \$ X7 ]
然后你去mover.cpp添加
, x6 B% e3 U& l4 z* ` T; T4 x- z* P7 M" G6 l) w
代码:
* ?% L# V- x' n7 y5 D' ]( N+ jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): D9 h) _2 ?7 u( B! U! J, L0 o
{2 H" o( f( E6 ?/ Y. m) S
#ifdef __WORLDSERVER+ K/ d+ v# F7 d5 S& s# \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 I2 j6 g! N3 d! q; r4 z MoverProp* pProp = GetProp();
" U, G& V8 G5 ?7 H! J4 F5 z if( pProp )
z/ A. z h; q$ q3 z% s {
# a, [: z8 |8 Z. B if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 @/ |* G. B3 F c# U {
8 M3 X1 J# h+ n* k AddChangeJob( nJob );' e/ M7 ^0 f8 N# H% Y! w
}else{* l$ Q2 V* a3 \7 k4 _ Z& O& k3 Y6 }
return;4 v" [- q8 @6 z' ? d' v
}5 |1 t0 Q6 Q1 T* d' P
int nPoint = 0;
# a; v2 x+ X2 d D8 D if( m_nJob == JOB_MERCENARY )+ x2 H+ g# E- l4 s
nPoint += 40;( t9 t/ s$ Q1 Z0 Y9 j% B4 Z
else if( m_nJob == JOB_ACROBAT )
. t) T& e3 m* _% e nPoint += 50;
' U* r+ _7 u4 a/ r6 k5 _ else if( m_nJob == JOB_ASSIST )
( J2 \0 }" ~5 } ]) E nPoint += 60;" R" X; S8 G% B. y% P
else if( m_nJob == JOB_MAGICIAN )
: Q0 B+ d; g% ]' H' e, n- S nPoint += 90;, G' Q0 q: v- ~) w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" X0 J) P. ` e" I ~ nPoint += 120;
- Y& ^# _/ h4 c. Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 a6 P1 j* L8 Q1 z% {9 X) @ nPoint += 150;
! I& ^- z- g! i X- x: k# T' W% F8 h else if( m_nJob == JOB_RINGMASTER )
/ p- v8 \. e$ [! t6 b) d: E nPoint += 160;
, _$ n0 J: J$ ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; o4 Z3 U; T" ?( l nPoint += 180;6 l+ t% p H1 }6 R J
else if( m_nJob == JOB_ELEMENTOR )% Z" ]% s/ ]1 y( P+ ]/ {: Z: b: L
nPoint += 390;) P3 e* [7 u8 T/ [; C& Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' ]% ]% c Z4 k$ t3 ~; ^" T8 \
nPoint += 120;) O8 E+ O i* I& A; t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 w& d( s {+ z% l
nPoint += 150;
& ^* V' a4 ]4 E1 D' @/ e else if( nJob == JOB_FLORIST_HERO )3 U: g* @+ {3 h3 Y. j' e6 H
nPoint += 160;0 H. ^" w- N( v1 n! I. c1 ^3 v$ n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 `# t# C m: A# u+ T& X* I nPoint += 180;
$ N% @( |4 @0 Z) o0 s else if( nJob == JOB_ELEMENTORLORD_HERO ), w; v4 [; o" M( H) b q5 `
nPoint += 390; d# u0 ]; H- x: F) z6 h: C6 G" `
5 q4 {% J0 h" B7 l
AddSkillPoint( nPoint );
/ v' Z1 C! _$ \# E" C% g m_nLevel = nLevel;
6 H/ O4 S: I3 L8 n9 u# f, h8 V# U0 v: ^ L4 }
SetJobLevel( nLevel, nJob );0 I3 R6 Q* W9 b
m_nDeathLevel = nLevel;& w, D3 y* |5 c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 Y4 Z I6 I- U* T if(IsMaster())& q1 I4 Y# I! |
{# g" _) q1 t8 T! o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% R9 @5 [) \% c if( nLevel > 59 && nLevel < 72 )
+ y s& @8 O5 b$ M7 A dwTmpSkLevel = 1; x. |: ~% S/ ~% |* S0 o5 G
else if( nLevel > 71 && nLevel < 84 )% y/ T+ B$ g b0 N1 h, }( T. B: |, q. b
dwTmpSkLevel = 2;/ t, u3 u! V$ b+ w3 p( `
else if( nLevel > 83 && nLevel < 96 )
9 P+ V& u8 ]3 _+ F$ ^" Z dwTmpSkLevel = 3;5 V q2 |! R! ^5 y
else if( nLevel > 95 && nLevel < 108 )
# b+ Y5 J' B2 {; P) L dwTmpSkLevel = 4;
4 R, [# p* `) {: q0 r& A else if( nLevel > 107 && nLevel < 120 )
: X% G* t5 c- X dwTmpSkLevel = 5;+ G/ k2 Z) g- p. X3 [6 |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' j7 Q. _& }: R( ` {
: M) C; _9 e. S! Y7 c& a3 L5 @4 J LPSKILL lpSkill = &(m_aJobSkill);2 b: x5 D- n: E; w2 l/ D8 O7 [, c
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 t9 U+ E9 \* g# I1 _
{* e k+ k/ Q5 r) N: {$ ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # [; H! {! j: s; f+ ^, q4 T8 _
if( pSkillProp == NULL )8 H* l! l( g! k$ z6 h5 T9 B) }
continue;
7 ]3 r2 z% x% B4 {9 y/ B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 |! e. H& m; I( Q- t% `5 m1 L. B' m continue;- v5 C/ [& }% H3 Z8 f6 Y7 c! l
lpSkill->dwLevel = dwTmpSkLevel;& P+ d' s A) N
}4 Q) q- x$ e% m) e! k
}- }+ g' o# w- y
}" P0 C2 g$ p: h/ }3 ~6 s, f
else if(IsHero()): V: L" X( }0 G/ q+ R8 W
{3 |" Y9 S4 t; F) n6 A5 b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 ^" x! o! k( r5 i {
: N/ n9 l- i! k* x0 S/ e/ \ LPSKILL lpSkill = &(m_aJobSkill);
8 B' d- M) X) K( ^! Y if( lpSkill && lpSkill->dwSkill != NULL_ID )& s9 _5 d* W# l; j/ e
{
w, Z$ H `& c; O2 w( v: d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % l( D5 Q7 V$ V
if( pSkillProp == NULL )
! o/ v8 ~" ~% ]' I Y! E* I1 J continue;
: m; p4 h" X; T* M$ D) Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER). ~) r5 g, K1 \+ D6 y
continue;2 K- n/ N1 w2 ~
lpSkill->dwLevel = 5;
+ C0 b' X5 t* X7 W2 P }
1 H% Z2 D. ~/ A }8 B+ O2 f+ h2 C3 Y) k3 z: p
}
- l+ L* ]$ a/ ?8 e; E u6 ] else if(IsLegendHero())
! {/ d9 A. I& Y+ A& G- n6 w- E {
1 I% I! Q) V0 j5 `4 k+ S% O! e for( int i = 0; i < MAX_SKILL_JOB; i++ )
! t4 t* M9 D7 f2 W, m% ^ { 1 ` S: k) D% v+ m% g0 h9 u
LPSKILL lpSkill = &(m_aJobSkill);
1 G) w4 ]) Z/ f0 e% S$ r" a if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ R3 e* a h0 r- M4 ]9 r {) K' X3 ? V& ]: M+ ]0 y& ~* ]9 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 f" I6 \! o8 j# P+ b
if( pSkillProp == NULL )
, [- [ j$ i! A continue;& k. C, @- L7 J' {, l! d5 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 V, d2 f1 q! n continue;# z+ i. Y0 K2 i; y0 \' s% ?
lpSkill->dwLevel = 5;
# t" R; D) F# T }8 s S. i5 C( d0 s% I
}
f4 K$ e7 d h! f }& d* y- V$ ^% d. n; X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' y# B3 o- P1 V0 W7 N2 ]
if( bGamma )
1 A/ y1 [0 C. [: u: D5 v( e% ^ {
% ?- [8 f# }/ D' `% H, v& A6 c! V& m m_nExp1 = 0;
5 x' o" l i/ T/ b4 c0 j# B* d }
7 ^% Z+ U7 t5 ]6 b5 i% C l6 W! W0 f2 h. q% c: W: r& L8 N
( (CUser*)this )->AddSetChangeJob( nJob );$ z4 z' n4 b( k: k0 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 B- A, ?4 d' W7 U% m0 \
+ A5 n1 m' I2 o/ \5 f6 ]( D2 X* Z/ d* O5 {+ K
#if __VER >= 11 // __SYS_PLAYER_DATA* Z- b7 z( O& z" n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- m6 N" f: f/ H: o
#else // __SYS_PLAYER_DATA
: h) W' S' i! \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! O: \; Y+ T5 Y: W8 \4 l' B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" K) d% t+ W+ i! @% K! G9 D- G$ N
if( m_idGuild != 0 )# m. ~, t, y* _+ j- R/ W6 o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# c0 Y t, ]9 u0 h% m#endif // __SYS_PLAYER_DATA
" W% ]) Y$ G$ M$ B# ^. e SetHitPoint( GetMaxHitPoint() );
; g" w/ L E, ]& b SetManaPoint( GetMaxManaPoint() );( U7 c% P, ?. Y9 @% F) Y/ j, e
SetFatiguePoint( GetMaxFatiguePoint() );
: A/ X+ o, F" B8 r( P if( nJob >= 1 && nJob <= 4 )
1 S/ Z* E% i8 I7 ~0 Y {
% V4 \* A, h$ r/ I# V5 c m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ X5 n1 \0 q+ ?2 Z; }" d m_nRemainGP = 28;
9 x% g5 z/ H7 s0 | }3 [! v# y3 Q% F5 i h& Y4 q* E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 y* ` k; ~0 U- z& Z2 b% p {
# O% S# A. G) Z! A m_nRemainGP = 118;
% T3 }( Y) w2 D9 k% t* t //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 ^% O3 n* U2 U' X2 m( m& q
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 r# k9 \4 l# W8 b1 w
}
! v$ e, ]! \! Q1 v9 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 S" C( a$ L$ g2 P
{( G/ Z( l: Q/ Z) Y
CItemElem itemelem;
# O H; ?8 r! e+ W9 Q" e/ X2 e itemelem.m_nItemNum = 1;5 g; `' e) d' V7 ?8 | d7 H1 v* k
itemelem.m_bCharged = TRUE;8 {; a/ ^ c) a& \, a
BYTE nID;3 s8 G4 g# b0 T2 O% x, X: f) P$ U
( E4 U1 U8 P$ u2 v( S4 K
if( nJob == JOB_MENTALIST_HERO )
$ M" J; d, J2 S3 W- ~. q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& g: Z6 a) ?# W2 f# z" l if( nJob == JOB_FORCEMASTER_HERO )/ b% L, y* i. i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" F* |" F1 x4 A0 B+ W; {% Q* w
9 N9 r0 Z0 `9 C) P
( ( CUser*)this)->CreateItem( &itemelem, &nID ); ]; ~& x( g. }3 W
}! C# g* ?3 U* \8 N: l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 D+ p. V O& S9 @5 E
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' k* C" t9 @1 J |: a% R2 ^- _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) S9 ? h5 G3 V( S$ ]6 D7 v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 l8 B9 y, E, P ( (CUser*)this )->AddTaskBar();*/
8 ?# x2 s; u: c( n/ D ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* M' ]: r2 ^: {, Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 S, y# W& k2 H, K7 I ((CUser*)this)->CheckHonorStat();. s) Z, j. u" E4 E) v) L% r2 N
((CUser*)this)->AddHonorListAck();. S1 \7 n& z6 [2 z2 P# u! v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& `. \% @; r% ?$ Y q#endif // __HONORABLE_TITLE // ′Tà?
$ Z8 b, v' r; C5 y( A }
7 L$ t1 x& r8 b4 B#endif // __WORLDSERVER
( E7 ?$ \9 b& W- u+ m" E$ S% I* F}
' q7 n2 Y G; X- @% E0 j, ?( r+ H& s8 I5 z W8 Z7 S2 l
然后你进入functextcmd.cpp并添加以下
0 F/ D0 Z0 C5 O8 P# j2 I( d' q2 z5 l
代码:) m, m0 u P `, f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ _; O5 `9 @6 C" M: M4 ]) n3 ^/ b* V下面插入
2 ]5 E6 S% _2 I/ RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + I6 `: F* b7 A3 q
$ m+ y E+ S2 V; L然后你去
2 I6 a, z" m. v6 e- Q# K- F& B! F8 c& J1 }- R- h; e
代码:* [: @ b) Q& ^" \& O
代码. K) I7 n( r1 t# V' \1 C$ c5 T
BOOL TextCmd_ClearPropose( CScanner & s )
2 M4 c( r% h( A/ H6 n- [, a$ N. p{
7 ?% S4 a: e! a0 b& R#ifdef __WORLDSERVER2 O* M9 ?5 ^: D& l4 T% U
CUser* pUser = (CUser*)s.dwValue;
1 Z& L! q6 p2 t! [2 X3 S g_dpDBClient.SendClearPropose();! e) p) x2 ^- X9 k5 K
#endif // __WORLDSERVER3 m8 B b- e3 G( W' |+ J0 M
return TRUE;$ G5 ^9 w- `/ ]7 n: }* Z
}
- ~- t0 c. }. g9 P0 E. J* w2 ?下面插入( |3 M7 r a+ ]' M1 `" }
BOOL TextCmd_rebirth( CScanner& scanner )
1 K1 ?+ u- F5 l7 j{
0 K0 a8 H5 d# k. h' F: w0 C- r: r#ifdef __WORLDSERVER+ W+ \( V9 u! [8 x
CUser *pUser;
: s8 y8 d0 P# H. A) M3 D1 t% jpUser = (CUser*)scanner.dwValue;
( O# u$ s; j! L% d( v- P7 ^9 q' rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ a" d0 F6 t$ F' R+ f8 E. dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 `. O; P& s% Z0 u( lelse( {+ e/ m2 Y3 ^# m
pUser->AddText("你还未达到重生条件!");- a, G+ r% B( y2 d
#endif
~) t' }/ B$ Y6 I, K' l+ B9 kreturn TRUE;* M! T3 ]6 g4 M) c6 p
}
3 |7 @' a) G }' x7 h9 |2 h9 V& t4 ]; e
$ K, r/ [, v5 I' @( s3 Z& {9 V$ t/ x9 I3 v
% c$ J4 d2 l7 ^
|
|