|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& W/ q) u7 m4 x a
1 p8 v# N* [& D4 pMover.h# c3 `' H$ O* e. e
代码:
/ _& a6 S; p# I' ^) Q4 l4 ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; m0 V* r" K9 u. M
- X$ r4 I! C# w$ \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # Z [ k0 z/ ]: F
; y- @( l% ?7 g
然后你去mover.cpp添加( L' K! }; g2 c! _
x0 a: f' F9 Y, H/ @
代码:! B1 ?# e h4 M: z; V% {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 \" K6 ?/ E4 v5 S" ?0 K! H
{
% C$ T. s3 ]5 ?$ |* x#ifdef __WORLDSERVER
, E/ b# q I5 B- ?1 d4 f) a3 [$ G' ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 x7 j( d5 e& b6 C' L4 ^" w2 z
MoverProp* pProp = GetProp();
% t" p# q1 B. ~, \& E3 | if( pProp )
9 S7 o" u. j) w; P9 w' k. s {
* v7 M" \& @/ `' ^0 h4 L( l9 n L* x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 {, ~0 V K, C9 `6 F' K {
: }& O, w# {! h. P: a AddChangeJob( nJob );
- r3 k% \9 I: G' l! z# A& z }else{
4 }! h* w: k* w( Q4 n q return;
- |9 V( q0 Y, [& ^2 H2 V }; R1 D& o* O; i, o0 b
int nPoint = 0;" G* B$ A9 T/ D: Q0 I, ^- d
if( m_nJob == JOB_MERCENARY )# ?$ H8 k n3 I5 Y. L2 h
nPoint += 40;
: {2 C9 q" S Z# E9 w else if( m_nJob == JOB_ACROBAT )5 M4 o! @7 Q9 p" c% I& l3 U$ s* P% ?
nPoint += 50;
& r% F n5 a. V/ w4 m! B7 g; v- J else if( m_nJob == JOB_ASSIST )
$ }! S$ H. j% P$ e9 Z$ x; k nPoint += 60;
- M7 \9 G* n9 H6 g else if( m_nJob == JOB_MAGICIAN ). e+ N( [4 h! y. n8 R
nPoint += 90;
7 E1 t/ j2 x5 t# e$ x, w" V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) z! C$ y- O$ R7 z F4 a! L4 R+ u
nPoint += 120;
# {( C) W9 S7 o6 ?3 {+ J! _' F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 U7 o; f# ]: `; C
nPoint += 150;
1 @9 Q# ]6 B% d" V' z2 Y. k6 C else if( m_nJob == JOB_RINGMASTER )
1 _; ]2 X& P# z# x nPoint += 160;
3 O5 i1 o% T1 t. y6 `2 n. S else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* W/ r, w* |4 O& y7 F1 d- g
nPoint += 180;8 C8 L' J& |& W5 J
else if( m_nJob == JOB_ELEMENTOR )
- y4 u' a( M. K$ c2 E) v nPoint += 390;
$ ^: e9 a9 r' C else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 d3 b! z5 @$ u6 x6 C nPoint += 120;
' M, A @% s6 G2 B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' ~# t' A& x. M
nPoint += 150;* M+ ?1 y9 S p
else if( nJob == JOB_FLORIST_HERO )
3 V% v! a% d% U: z. Y' q; X1 m nPoint += 160;
5 z, m9 t' X! x1 s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ u& ]& i* a$ I# L
nPoint += 180;" d. c* d f* W' M2 [
else if( nJob == JOB_ELEMENTORLORD_HERO )
1 P c/ A+ n; @, X& Y; k nPoint += 390;7 p( R, G( q4 v* ^$ Q
" k- r) j7 w8 w: E6 i. S
AddSkillPoint( nPoint );( Z4 t. D8 |+ l5 L9 c# o& k* k& L
m_nLevel = nLevel;4 E; m1 |1 l3 ^& P) I8 g ]
# H7 S2 J( F* U
SetJobLevel( nLevel, nJob );
; W1 A& N3 b; b: g) M1 Z7 }1 _ m_nDeathLevel = nLevel;6 o. O. T: G! T2 {" I$ d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* a- ^" Q" q; z) J' Z h if(IsMaster())
' W+ j5 T, l. k6 ] {% w6 E0 U5 R, i. B/ t3 U
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 Q; N" H- v6 G8 R- D/ a if( nLevel > 59 && nLevel < 72 )
/ e9 u, f- {7 N9 A dwTmpSkLevel = 1;4 u. w N4 q" Y
else if( nLevel > 71 && nLevel < 84 )# O2 {) x6 V' s$ y8 x
dwTmpSkLevel = 2;& n* k# f' E* |
else if( nLevel > 83 && nLevel < 96 )
! e5 X! }# {; L dwTmpSkLevel = 3;7 b; B* k$ @- g7 e5 s6 r) W
else if( nLevel > 95 && nLevel < 108 )/ W8 P8 T# M6 r0 W4 {6 X
dwTmpSkLevel = 4;
7 v& ~2 f4 z; @% L7 X else if( nLevel > 107 && nLevel < 120 )8 u: y4 z0 `0 l! t9 s" x
dwTmpSkLevel = 5;
r1 J; ]8 S, U" w' }) a for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) }2 l, L5 ?2 D; H
{ - f0 d8 G: _, O' z5 P
LPSKILL lpSkill = &(m_aJobSkill);
) O: X3 g! V+ w if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 y6 c+ a) U' Y3 H {
5 S! q! @. p! o! M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; [+ q6 h) h, d5 l: [
if( pSkillProp == NULL )7 R9 d- K7 j+ N; p) F8 F
continue;- e' P, N2 \+ N3 y0 y3 B- O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; j( O& c1 ?. P8 e. _) J. R continue;
& y+ q+ J! P: n2 Q lpSkill->dwLevel = dwTmpSkLevel;9 _% D/ T4 P$ I1 O. |# E
}# c Z, x2 [, x' v2 K
}
# d' D2 A- a4 P3 K- W$ h( ~ }
1 n# f9 H! N% S& q: s- y else if(IsHero())7 _, T% `5 c, C
{" }) n0 T0 s- p4 q3 @# E, o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * {1 g/ v8 f! L% C2 r. r, T" B0 x
{ 0 J5 s8 @ c1 }$ G* l0 d- q
LPSKILL lpSkill = &(m_aJobSkill);) f4 n- L& w1 G" F2 k) W; g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 z# k% M; j8 F {) W8 D0 H S" H% J+ H8 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 b( A3 o" d' I0 b. f1 W. S if( pSkillProp == NULL )
& R; y: T3 l, N/ V continue;5 l, X' I8 i! ?5 n+ ~& s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 h9 h# I5 n- O6 V6 h( g continue;! i; R1 G% h9 O6 E' b" H
lpSkill->dwLevel = 5;
: _0 o8 [4 f6 v4 k8 b, J4 t }$ l1 B/ @+ [0 S+ R% e* A9 n7 q" g" m1 {
}0 c( ]* m+ J D, B& m
}- e+ j+ w& ^* O, J6 r# \) s. l* r& x
else if(IsLegendHero())$ I9 k& `4 m. Q2 R' Y2 O
{, W; m* q1 d# z! f& W! v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ {3 T# y/ A2 h' p
{ * [. i2 r# i/ I k( e+ N
LPSKILL lpSkill = &(m_aJobSkill);# j" t8 n+ A0 W: `$ d( F
if( lpSkill && lpSkill->dwSkill != NULL_ID ); x9 ^, T, U% O. c# e
{
L, r7 c4 B+ y* ^& O1 j$ ~7 a: u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); u1 r' y; t1 t# D& B
if( pSkillProp == NULL )+ @' G ]! i7 h, h2 b
continue;
& K2 V* F6 u4 X& n2 D. f1 @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 D/ L O8 ^' e( N% b continue;! q8 Y1 Z) V4 _: F: v! A
lpSkill->dwLevel = 5;2 w+ @3 F( R- o. ?
}
0 e! O0 i1 q) I" B. W q7 b }, F0 I& {) _8 |- I+ p
}
( H! z, z8 T7 D& C; I) K#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 P0 ?4 V2 N0 G% e r
if( bGamma )
" ]$ B1 x& i: f; Y {
6 W8 v' F. |7 {' U3 O. b G7 M m_nExp1 = 0;
( s+ r& ~7 e& u9 c0 u- d' {$ `2 _ }
! \$ G) t# d# a) b; R8 E8 F6 P6 Y- z7 L$ H# n" ]. r
( (CUser*)this )->AddSetChangeJob( nJob );2 A8 w& }3 O* J! R6 r$ v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 |# ?) Y- {/ G
# G; O5 p N' a, R: s
' }0 [8 R N. Z+ S$ P$ Z/ i#if __VER >= 11 // __SYS_PLAYER_DATA: ?. N( l6 z% n4 z" l+ {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 U* i% P, l/ P
#else // __SYS_PLAYER_DATA
- ^4 _6 K0 `9 {4 M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: C7 O! ~+ ]# o$ ^ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 J. z1 `; W7 Z0 w5 ?, u& Z if( m_idGuild != 0 )
$ I& y+ Q3 F' n2 b4 T7 x1 C, j5 ` g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. R0 H& k3 q' B
#endif // __SYS_PLAYER_DATA
. X% P& {* w- ]. E9 h, K SetHitPoint( GetMaxHitPoint() );
) Y$ T0 J# a+ T2 C+ s' Q# s3 z SetManaPoint( GetMaxManaPoint() );
' \; c9 j! t6 _( ? SetFatiguePoint( GetMaxFatiguePoint() );& A' F, t% E6 a0 K; c& L+ H
if( nJob >= 1 && nJob <= 4 ), d! \, Z# l& x. o% R9 |' C- X8 m
{
) e- W( g a0 g. b5 N) H" E m_nStr = m_nSta = m_nDex = m_nInt = 15;$ L: k ]4 C5 ?3 S5 y5 P5 E- ~
m_nRemainGP = 28;6 j, v/ z& Q" Q8 a/ b: Z2 J3 g
}
3 ?$ k: U }5 s# G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' p. J& d! Y. `% H {0 ]; y6 g( P* E1 c, n% z1 R/ B4 a
m_nRemainGP = 118;
, x& n+ P; P G4 \ \- S) h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) p+ {6 ~( [, U- L- D m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 I( K7 l3 M3 B! M. t }9 [7 C4 F) Z3 [) V/ G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): A+ M5 l+ Q% |
{
) b* V5 j9 W% X: O1 v CItemElem itemelem;
* Y6 A* i; Z2 P" |) o' D9 H2 e itemelem.m_nItemNum = 1; v0 j( {" T$ R# k7 |, {/ T3 S
itemelem.m_bCharged = TRUE;
$ Y" X4 d4 _" z" `1 y; B BYTE nID;- h2 S$ A- V; O* t
' L$ T3 c/ D5 K+ m. n1 D7 D
if( nJob == JOB_MENTALIST_HERO )
% R: {- L+ ?6 | itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( M) U. V) k5 K$ v, v if( nJob == JOB_FORCEMASTER_HERO )
6 w* c5 I. ]" R. Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 S1 z/ {' a- l" P( u( l: I8 L3 k9 D d" z. C6 `: o
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 ~$ R6 C) `/ g* G
}
: [( w1 R# Q7 z$ F+ H0 s5 f! n* a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 w t1 {+ r. }( z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ b" f9 Y' T2 I B ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' N. t( |) C9 G6 o& I" J8 U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 F0 a/ L- \. C& U' I
( (CUser*)this )->AddTaskBar();*/( |3 e$ b: R; g) ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 f+ O4 B2 G% D [/ {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. P6 _! \& r6 Q; m2 g1 \" t2 \
((CUser*)this)->CheckHonorStat();- ^6 W/ o- K+ |/ Y
((CUser*)this)->AddHonorListAck();
+ J5 x/ E2 v" Y# I/ p; B# n g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ b% H! Y! V7 p4 R1 P+ T#endif // __HONORABLE_TITLE // ′Tà?- h o8 d; H2 J
}
9 U, ~5 U. i+ D#endif // __WORLDSERVER
- e( L- D3 @7 c} ) m7 n0 T# P% Q1 @& H% H
4 G( m: Q' ]( N
然后你进入functextcmd.cpp并添加以下 w9 C' v# t, c0 E
' ^* e0 L5 s+ C5 c3 U. ^7 F代码:& t$ g0 m4 P) z6 y% {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ h& k0 b5 C5 J1 S% j9 I- j9 g下面插入) @3 k* k( B! o6 Y# n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . b2 V+ C N! Q, M. K8 G9 s3 Y
5 \* t- g9 I& ~ A; c5 C然后你去
5 m: p# }# i# X' C; _0 A
Y2 z7 [7 `) A" Z代码:
. O8 N. }1 w# T代码
F' o7 L# Y- D, q- p; ZBOOL TextCmd_ClearPropose( CScanner & s )
( K' X+ Y$ M/ t7 w# v3 r{0 B9 u0 {' s7 n+ {5 f/ T' ^$ t
#ifdef __WORLDSERVER" @0 U. \' |: X3 p0 s |' L
CUser* pUser = (CUser*)s.dwValue;
5 C5 g& ^9 t' |0 ~& ~ g_dpDBClient.SendClearPropose();2 {9 `9 Q9 {5 `1 T4 V" S
#endif // __WORLDSERVER }3 n' i7 s1 C( O9 y) k2 c
return TRUE;9 ?; m( S1 v* p% _. Z
}$ N: P" Y7 e M* r/ u$ b" }
下面插入
7 H- P5 K' j! I" a9 f' H8 QBOOL TextCmd_rebirth( CScanner& scanner )
$ Q% f! Z5 k! S4 f( E{: _2 X0 f, Y( P3 U* N
#ifdef __WORLDSERVER- |! } ^$ Q7 l( N8 p* n2 o
CUser *pUser;$ V1 Y) @$ \/ i9 z, ]5 m) j6 j0 G
pUser = (CUser*)scanner.dwValue;" H; r) P. ^. s# B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 S$ D, [2 F; O# V8 c/ N* J. e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 g3 w6 i5 }( W& N6 kelse
8 Q- A7 [% q; i) B! ?2 F2 FpUser->AddText("你还未达到重生条件!");* h, h5 g6 C4 d( ]9 }
#endif; w) w& p) `& ^
return TRUE;7 R0 A" ^; n4 O! s) k
}
+ m4 I Z- g" z& P7 A3 C* j( B5 k2 E
: I. K1 n) d& K: Q. Z- I4 C8 U
0 z- ]0 L3 b' o7 W0 X# {3 E% G6 _+ L6 J
|
|