|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" i7 \7 C1 W/ ]6 R7 ^: B4 l/ L( y- a5 B
Mover.h& B# ~9 R. J+ h1 i1 B, c
代码:) a0 w& z x( E3 s. {3 y. F1 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 B! j |1 q% j8 `6 |+ y
& \! c( A. x# E2 p% e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 H/ u/ @. X6 m# N, x" K
, H0 U2 C& w: p* F然后你去mover.cpp添加
, E" V9 R% z% Y f5 N# K# R
& W; K) b6 a+ B: K, Y代码:
/ G7 T+ ^. k Q2 u9 L# x1 Hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" V, Q) q! w$ m; |$ L4 p
{
5 F+ `) N" ~* |5 ~( ]6 K. _#ifdef __WORLDSERVER
. r' A$ A& l. b3 @4 f* W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó I. d q, \3 f1 V# q3 K/ g+ B
MoverProp* pProp = GetProp();7 u3 o$ o( r( }8 S
if( pProp )7 B# h4 w! _/ Y3 _1 s, \
{
8 _0 W! ?% m5 G; Y, } if( nJob > 0 && nJob < MAX_LEGEND_HERO )
^$ V8 O. [, h+ ^9 H$ t( S {
, a/ S- l9 |3 z r9 j* O) G AddChangeJob( nJob );8 p: C# u' J, Y& ~
}else{
! d' R9 @1 ?0 ^ return;
3 x! A- E5 p4 j4 M$ y7 Z( I- ?4 { }
, b8 P9 `1 w# v5 L( |1 n! p int nPoint = 0;
X! E1 [ X4 l. v! a. l if( m_nJob == JOB_MERCENARY ); y: }% A5 V/ _( {/ O* _) r
nPoint += 40;
6 N, Q$ T9 f4 }) j$ l else if( m_nJob == JOB_ACROBAT )
. @6 ^5 T+ L9 G3 c- L nPoint += 50;
# a# D' x9 K" C9 i3 K# K/ a3 Y else if( m_nJob == JOB_ASSIST )
0 S+ ^. k% S7 X4 a! z) W% `" Q nPoint += 60;
9 i8 p! ?7 [+ O2 a( l0 T! H else if( m_nJob == JOB_MAGICIAN )/ y5 v, M, a3 W
nPoint += 90;
\+ [( ], W7 R# v7 z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 a P& V, L) H7 h( G nPoint += 120;# G7 J {( K3 t/ Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 x7 X' |7 D/ U" {5 h" m
nPoint += 150;, E" J" Z+ y [/ |7 {" K0 B3 D7 J+ Y$ r
else if( m_nJob == JOB_RINGMASTER )
& b* J$ O5 ~( G nPoint += 160;
# }1 o$ u4 m- Z b+ F else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) a' N9 d( @% a2 h0 u nPoint += 180;/ M0 P* }# _% O' C O
else if( m_nJob == JOB_ELEMENTOR )% l9 c6 y; m: j
nPoint += 390;
) [9 r! h' F6 |* ~* O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( K" L k: i. H | nPoint += 120;- G* @4 s) }* h2 _" e& u* F
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" b6 e# X6 w, i w. D7 M$ a nPoint += 150;8 W/ P8 q! Y* W3 ]+ T3 R
else if( nJob == JOB_FLORIST_HERO )% t% R7 ~: @( g
nPoint += 160;4 _+ d ~0 ?! ^# J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 D% M5 X a& @* u- d* L& K! X nPoint += 180;
5 C1 Z U7 E! q( N5 e P3 \: Y# ~ else if( nJob == JOB_ELEMENTORLORD_HERO )7 S* T; t) O; \
nPoint += 390;
2 d& m+ o' S) h* s- I& \: G! ?. I: C* d: n1 Z6 x3 j
AddSkillPoint( nPoint );/ y0 F& Z; y# h, c1 u
m_nLevel = nLevel;
3 ]& `: Z( h7 m, Z: Z' D5 Z2 q
9 X) O- U# i- h, G# B SetJobLevel( nLevel, nJob );, { h+ `3 N) r/ i2 V9 v
m_nDeathLevel = nLevel;; Q" b2 t" I C3 V( y" ]% b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 Q- f$ H, n) J- B L if(IsMaster())
; I/ `: Y7 O6 D0 R+ v5 w2 Z {
/ s. a& f6 c; D; W; Q( e, H int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 g+ ~% z8 r' ~% @1 y0 U* h if( nLevel > 59 && nLevel < 72 )( G/ e: ~7 i+ ^& o
dwTmpSkLevel = 1;/ f; \0 I2 B3 r" ^6 o
else if( nLevel > 71 && nLevel < 84 )
, l5 ^7 E! E$ O0 G dwTmpSkLevel = 2;7 \# Q- F2 J- o& p3 Q( h
else if( nLevel > 83 && nLevel < 96 )( |5 c6 I) S" y0 \: ~& y
dwTmpSkLevel = 3;/ M8 Q* k# t) e! L* r1 A5 |
else if( nLevel > 95 && nLevel < 108 )
! f8 V, E* n. w; X+ B dwTmpSkLevel = 4;
; E8 Z& ^! c2 ?# G% B5 ^& w else if( nLevel > 107 && nLevel < 120 )4 m6 k( R9 d6 y4 |6 p; T6 {. v
dwTmpSkLevel = 5;: E5 G) [' p$ y! L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 X8 z% T" c1 u+ P) L' L { ' {; _. B) l& G& a+ d
LPSKILL lpSkill = &(m_aJobSkill);
- s. x( d) n1 [: V& o R if( lpSkill && lpSkill->dwSkill != NULL_ID ) W5 d. {9 y: v1 G3 B p
{
3 s9 X k( k" B* D1 }: w# w8 m0 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; Z. J0 n e, B if( pSkillProp == NULL )+ p1 @& Q) t2 ` i' Z+ R
continue;7 h6 S8 y# c) V: {3 _3 ]/ ^- f9 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) A. K/ F8 X$ l$ ]8 ^ continue;
D, Q9 n. ]* ]7 d/ K6 l" O lpSkill->dwLevel = dwTmpSkLevel;
6 A/ w. ^% j P4 I _ R }
1 K: {/ y8 H+ b0 T d( A }
$ m% ? x, |! Y6 p9 `9 c4 b3 m1 | e* D }9 P/ R( n+ M+ p3 a" [" f$ _
else if(IsHero())
, B \; o o; e" b$ @( ^! Y {* v! k9 \5 ?' D4 C+ \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 @- T X- @1 Z3 x ^0 z { # Z- g1 n: \# s2 r
LPSKILL lpSkill = &(m_aJobSkill);! r O2 z& E7 U) J- e6 J7 c6 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ u# L8 t! W- S( ]1 b {
( V. |/ e$ a/ p) C3 \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' C$ F$ J* \) @ if( pSkillProp == NULL )
! g6 B7 g/ ~+ ^# P+ X1 K continue;" d. A5 V( E( [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) D9 a' W0 C- x! g
continue;5 v* |4 a8 T/ u1 K6 F; \
lpSkill->dwLevel = 5;
- T7 O% I2 Q- P: P- S9 V" V }7 M6 g1 e5 U8 i, a4 r8 ?2 p* b
}' `5 h3 R3 p' i6 v% H" V a
}
; g2 p+ @, N9 | else if(IsLegendHero())
- A+ S0 b& ^8 ]7 H1 F {2 G# c \9 ?& r7 a0 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 I! ?, k1 y, Z1 [
{ ' F6 u2 i2 D1 \; J
LPSKILL lpSkill = &(m_aJobSkill);2 T9 ]! A* R& v% r
if( lpSkill && lpSkill->dwSkill != NULL_ID )! C9 X6 I& K% w* a7 B+ S
{
' g( i5 e1 [) X4 R! ^7 N1 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 @) b0 n$ {* z: ]' F* x( C) I
if( pSkillProp == NULL )
5 t4 H, i- x x continue;
/ h$ ^6 `. L8 ], ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" n# ~ [; G2 {1 n
continue;
/ A, m- J, c6 h |* E) S% m9 w lpSkill->dwLevel = 5;
4 v1 s3 C7 f% T& F2 U }
# y# p8 D) ]0 w4 I2 u0 }5 Q# L }; O. C9 q9 s6 A
}
' m! E& u& I/ I: L, z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& W5 M' b' A5 |7 G% | if( bGamma )# H- p9 ~6 b5 _7 J7 P; V; \# F
{
1 |: [& T" ~2 w2 b& s* p m_nExp1 = 0;- d4 X& L! c v- q" x/ e9 {
}
( }3 ~) [9 P! H0 g$ ~8 h. m! _, a: G, m6 I7 R
( (CUser*)this )->AddSetChangeJob( nJob );
9 i# K9 c* Q. `' W# w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; i, B5 S& H3 x0 _1 I# e, b
, c3 S8 ~( E: Q h5 w5 x7 F R; A* Q- N, I( N
#if __VER >= 11 // __SYS_PLAYER_DATA) d9 E9 k" n2 Q& v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" |" I( Q' H! z( F; e4 h7 R' \#else // __SYS_PLAYER_DATA
2 ]% S( k6 d* E/ p- ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, E- r0 A( C$ J, G+ m6 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 @' c9 X6 `- q/ V6 o
if( m_idGuild != 0 )
+ ^. y, [: `2 [ E$ O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& c; a$ r' b8 x: ]: _#endif // __SYS_PLAYER_DATA. Q0 d: |9 V* R( i
SetHitPoint( GetMaxHitPoint() );" v. \& M, J N' \
SetManaPoint( GetMaxManaPoint() );8 F- u0 p% ?& b$ X$ f# W
SetFatiguePoint( GetMaxFatiguePoint() );
+ {% K: }: x! F5 L3 V if( nJob >= 1 && nJob <= 4 )
8 `& u4 m& y6 ]! T0 p9 T( G {
8 l& i+ V& l+ t2 ~7 `+ u* W$ J m_nStr = m_nSta = m_nDex = m_nInt = 15;8 l! D! H# L7 \; a& s! v8 H
m_nRemainGP = 28;
: K2 X+ P; O1 k( Y1 @* a }
1 L- b2 q9 r: D4 E0 p0 Z, O. C5 F5 ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ X% z1 O3 G8 v$ P' H# ~ {
/ q( `. u O$ I& o6 ?3 [1 K. W m_nRemainGP = 118;
# u8 P; Z1 x" ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* h8 l& u2 N; ~2 f- K9 {4 ?, f m_nStr = m_nSta = m_nDex = m_nInt = 15;
C% @& g+ w6 E- c }1 E% p7 T) ]& H# t7 {% d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: [, `' n6 ?2 U2 g5 r {
' _9 e5 |; \- C, U9 q; c' {6 u CItemElem itemelem;% e6 [& \0 r# s
itemelem.m_nItemNum = 1;
! U1 N7 ~9 k" `+ Q& L2 G itemelem.m_bCharged = TRUE;1 B0 y5 W' o8 T9 C
BYTE nID;
- e$ b& N$ q# a' U; k$ O2 |* W! v/ v; \) H7 h" ~
if( nJob == JOB_MENTALIST_HERO )
. f& O$ r1 u, l1 L+ w0 W% M itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- @7 Z" z8 R7 ]8 C0 g. p6 } if( nJob == JOB_FORCEMASTER_HERO )1 ~' k" Z& s8 S2 k7 w8 ~% s" _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. d& d9 y+ x4 S0 j2 U1 O! L4 a; U3 j
/ e* o7 y- [! r; H- r8 [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );, k' m& F! S3 P: y
}
! l z- n% D" O( O4 ~9 I; b% [: l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) j4 e1 t: |7 ]6 m$ ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* d) |) J' r& q- s6 w P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# m/ q1 O& z+ X2 ]; p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) Y. T. t' S- c$ @# J
( (CUser*)this )->AddTaskBar();*/& R3 x: v8 O' o9 v$ G) Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. J: N$ W+ Z' z' D6 H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& [5 s% I w9 p ((CUser*)this)->CheckHonorStat();' Q( J, z* [+ c& J
((CUser*)this)->AddHonorListAck();$ D4 k& R# p" m5 z) B0 C6 I5 h$ ^' L
g_UserMng.AddHonorTitleChange( this, m_nHonor);! m7 h0 b, a& v
#endif // __HONORABLE_TITLE // ′Tà?
8 f9 P/ v C7 t }3 m |3 [8 T4 J" u! L: I8 _
#endif // __WORLDSERVER
6 R( Z# y8 K$ X6 I} " Y' f& P7 Z& T- `. @, D$ {
/ n8 p Z0 Z- i然后你进入functextcmd.cpp并添加以下
- [, M. I1 ^( }( ], x: C# j
/ }1 p: O( ?1 j ^, G! M% g代码:
7 w) a% B9 k" b! oON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 i5 q) W8 R- q+ k! p v$ \0 r3 v
下面插入
0 K2 g, [2 l+ g% \- k# x, Z4 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 ? C* C' g, X3 z; [. C& }5 U2 J1 ~! X6 m( N1 P9 O* ?$ N7 k
然后你去
! P( T- f* r- a* X& X3 V m% j/ `0 I' o
代码:
3 a! P! Z/ u9 B- A6 R% |$ O代码0 \* d/ w0 p; Z( o" G
BOOL TextCmd_ClearPropose( CScanner & s )' \6 f5 a% y7 Z+ g8 R* M' M8 N
{
: c& p) C: {- o( q' A$ c: L#ifdef __WORLDSERVER
, Q/ f5 v. O! o% s2 O) D4 D" v CUser* pUser = (CUser*)s.dwValue;. Q, L! K; H& R( g( C/ S
g_dpDBClient.SendClearPropose();
# l* Y4 z! z9 `) q9 W& h" B#endif // __WORLDSERVER4 k) o0 I/ ]2 v/ O
return TRUE;
5 E$ y1 o @/ T- N+ \}
" Z8 D. @ W$ c9 t* }: U下面插入
$ ]6 L3 \' X+ XBOOL TextCmd_rebirth( CScanner& scanner )2 S9 [9 r$ z; F/ O$ e/ l
{7 d$ z+ `. y* _8 Z) o& Z0 C
#ifdef __WORLDSERVER
, T4 k: n: E# [" wCUser *pUser;
! L$ C9 I0 ?+ S1 z3 wpUser = (CUser*)scanner.dwValue;; P+ x& _' _- j7 U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# U, L1 Q8 f* e4 O& l1 t$ x
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 d' O0 `1 K2 W/ Celse
: r e& z6 e: R" l, T5 l+ r0 ^pUser->AddText("你还未达到重生条件!");
1 y: [! O$ Y9 z' u6 z% Q" s#endif
" R! A7 r! Y$ o. q& yreturn TRUE;
" R }$ L" K0 v' C& }/ W8 v9 g}
5 Y: ^8 S: O& }
9 c5 w3 g+ y& D; }9 @7 {- y4 [0 u; N8 y, T
+ T( t) U, j2 w0 V G
) N. ~+ F' a3 h8 n7 e; u7 w |
|