|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- ]& [) |! D2 c4 N, \0 i2 F+ s
( i7 [/ ?7 Z6 _% W( D
Mover.h+ d5 l) r% X9 k5 ]/ B! s2 P" K
代码:5 c; h4 l! _: C, o7 n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! J' ]+ W+ {- ~$ p0 E4 D
; N8 x2 c2 \; }4 p, T2 Y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . |4 W+ w8 S9 f" Y! h5 j" N
0 o/ E% Q6 y2 z4 |
然后你去mover.cpp添加5 [* q* M) p0 O, g
7 q' Y) x+ C! ]* j' C代码:
$ Y3 G5 e8 B% z0 `7 W0 P& ~5 cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' N1 }/ W, M, ~
{4 T% s( d6 A0 K5 \5 {$ r: z* ]
#ifdef __WORLDSERVER
5 z3 w7 a; `* d( b$ m6 [ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ j/ Z8 ^" C: d5 u& D: q+ Y4 G7 C8 a2 @
MoverProp* pProp = GetProp();
. S- i K; q- V9 e/ i8 O$ | if( pProp )1 v2 _8 i$ ^6 T( a
{) X3 ]1 f3 l5 Y f. v; ^# S
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! }5 c! F, d' m/ n1 {9 y
{: ?9 f8 o, {) ~( M8 x2 D* h
AddChangeJob( nJob );
- {# x0 w1 O9 R8 }0 \* i0 d }else{
, f; {' ~. j8 h2 Y return;" u( P( o: u. O/ @" |
}, B0 O. i2 ~* u5 n9 R4 a N
int nPoint = 0;3 v. T8 P0 H0 j9 D( N) D0 |+ m* F1 X, v
if( m_nJob == JOB_MERCENARY )
( o, \8 ^; Q- m- b& J nPoint += 40;
8 [6 d6 ?/ j. s7 { else if( m_nJob == JOB_ACROBAT )3 I7 L6 q# h2 x, a3 O' d
nPoint += 50;4 O' p. ], ]" m8 R$ \" t( q" `
else if( m_nJob == JOB_ASSIST )
- j6 O: f( l1 [- X2 z; I nPoint += 60;
1 P" T+ D* [/ ^% e. y3 S else if( m_nJob == JOB_MAGICIAN )
3 U, k! E' L; g2 `8 I# T! H nPoint += 90;
' r, N: ]& _! a7 g! N6 B2 n$ L* ] else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 L8 a9 T" x5 ?+ K9 f nPoint += 120;
4 q% t. S+ s. i* Z/ n+ A7 T4 `0 C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): D- s6 Q8 ]0 X$ Y3 v. r/ n! Q4 J
nPoint += 150;
$ p$ I3 \, R5 B2 A1 a; ? else if( m_nJob == JOB_RINGMASTER )4 ]3 X5 D5 f) k. {/ k( F
nPoint += 160;1 F2 R/ @5 G, E& e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 g' J) X2 n2 B
nPoint += 180;
1 `" D1 O% h# q) j+ m else if( m_nJob == JOB_ELEMENTOR )7 j. ?2 l0 p7 e+ x \0 I
nPoint += 390;
6 {4 u" U, \& _' u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 f$ \) _3 r) L7 i6 _/ ]( |
nPoint += 120;0 t5 y5 W* h O/ m- M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' R& l6 i3 r9 X
nPoint += 150;& O J1 N- s0 u3 |! c+ Z
else if( nJob == JOB_FLORIST_HERO )7 A. L$ @4 `( |, A; L+ ~( H( F X2 e
nPoint += 160;6 K+ C. b4 }6 }. P- A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) P8 x1 F4 I( S
nPoint += 180;$ A* B# B' _/ P! n6 P
else if( nJob == JOB_ELEMENTORLORD_HERO )4 a# e& W2 H" Q( `/ P8 H
nPoint += 390;
. D0 E3 ^% ]3 A) a- g$ w1 O0 h& t, R8 L; R, Q2 u
AddSkillPoint( nPoint );4 }" u1 ]: V& t
m_nLevel = nLevel;
0 ]7 l5 I. n2 J1 ]) ^6 @# P% _+ @! J
SetJobLevel( nLevel, nJob );
' a' A2 @/ W! k1 D: y m_nDeathLevel = nLevel;% E) `) k! D& V5 t4 y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) T- W0 d" I3 o7 m/ [
if(IsMaster())
3 q: |. a1 L7 H9 W {
9 U4 {* h2 T( s& Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 T6 @1 l& J1 d } if( nLevel > 59 && nLevel < 72 ) O2 P" p4 c$ u
dwTmpSkLevel = 1;
1 N5 n$ S u- o" ]+ M' A, T else if( nLevel > 71 && nLevel < 84 ); U! g! g# _, P9 P% K9 N* Z/ C
dwTmpSkLevel = 2;1 j' `9 G2 H. Y' Q- w
else if( nLevel > 83 && nLevel < 96 )+ |' j, C+ U, F7 x5 S z- V
dwTmpSkLevel = 3;0 K1 d; Z, C5 j8 L
else if( nLevel > 95 && nLevel < 108 ) z Y/ n8 q8 m x( ] d
dwTmpSkLevel = 4;
! {& J9 m& n% O else if( nLevel > 107 && nLevel < 120 )% w: u, b6 H* R
dwTmpSkLevel = 5;$ J$ Z( c8 y7 w' Y( k6 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" d* F+ z, w, y2 p3 s! D# ^ {
g6 ~+ p9 J% n8 _( T9 f: | LPSKILL lpSkill = &(m_aJobSkill);
4 d( s3 Z c+ t if( lpSkill && lpSkill->dwSkill != NULL_ID )5 N% j, X# r5 w2 w' {( x0 Q* ^
{" R8 v k6 H4 u: U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; ^0 e9 q( q9 e+ S) @ if( pSkillProp == NULL )
) u" J7 K% {- K continue;
+ `) q& c$ X3 B/ B* V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" S* G6 |; \( E continue;
" U* [0 {# E9 P n lpSkill->dwLevel = dwTmpSkLevel;0 j2 I1 M# m. q8 h9 ]0 A$ P
}' t+ g3 W$ Q0 y$ U+ O! t
}
+ n a" @4 s0 Z3 l" k }" [+ }; I! q3 y+ t" g" k
else if(IsHero())( K3 N. A: R# S. d0 [) ?6 H4 `$ W
{
5 J9 W# E- R# |7 Z: k for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ B: y* P+ a( ] ]% _8 C {
5 f4 C& H9 a3 Z1 B/ e4 U# w LPSKILL lpSkill = &(m_aJobSkill);
& q! t) I( d- G( z if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 s `$ p* {3 E2 a3 c& {2 S7 @6 q {
. {- W$ Z- J) W+ e8 q- `: @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 o, E, ?( j. R7 Y* F0 ^6 }# ?+ }
if( pSkillProp == NULL )" s0 }8 V8 n9 A& W$ K
continue;
; s9 Z3 I4 ?6 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 p# o3 I. m# w" l, w continue;) A( `# u- {: {% R8 S/ n
lpSkill->dwLevel = 5;, V1 V0 p$ `/ l
}! m3 v7 }( Q# `& E4 i/ d" [
}
. q1 Y, N N9 g% H. n# d }# I/ A$ y5 g% ?' u
else if(IsLegendHero())8 ~0 j! B Z) x- m( m {( e& W9 ]
{
5 w8 i/ B8 b' j2 v" X t for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 p1 p6 P9 s& U& M i1 r {
( A& |5 A2 C$ f- P; I LPSKILL lpSkill = &(m_aJobSkill);& i* ^/ U& \+ W5 |0 w/ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, q! c: D$ i) I {+ D+ B, |( L) P( V: n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& o/ s# b. {* P; S, Y if( pSkillProp == NULL )
: u3 U3 g- D; K- L. ` continue;" u9 y4 c% k. S) ?% f- V% J& m2 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ R8 e# H* @0 d
continue;$ B6 K1 S! @ L% S& A y9 g
lpSkill->dwLevel = 5;- L2 u+ d) ] _& `9 q# @
}5 C( l+ M2 ]( W1 a }3 d$ A
}
* ]- @* c( }9 X5 M5 x }
+ \9 p- k+ a) | `/ A* t" g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' e) {; W+ u$ Q( z, y3 }6 _
if( bGamma )
9 V! h& J6 ]$ \' W f {# J4 G% `0 a4 T3 ^
m_nExp1 = 0;( Y/ f* c2 z9 t5 U& Y K/ k
}/ P* A; a# @8 K0 F1 g
* R5 a- Q. g; K& r& T6 K9 H) C
( (CUser*)this )->AddSetChangeJob( nJob );- c& Y# O: J/ F& }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 \* A- G6 n7 Q/ X( g" w9 [0 ]7 \' ]+ P7 z
v4 K; j- D0 D. f S0 x7 y( `2 t" O
#if __VER >= 11 // __SYS_PLAYER_DATA
" J1 \+ Z" @7 V" u$ M) V/ W& L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 m6 p/ P" v: d) `; i
#else // __SYS_PLAYER_DATA$ c x7 r. F# `: W9 A( j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 R3 U5 g4 F b. n2 ]& I9 P
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& b2 u( }* P7 @
if( m_idGuild != 0 )
% ]" u' M6 K% B- N6 D: c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 ~$ U7 J3 M1 B6 Z+ d0 }6 }9 l#endif // __SYS_PLAYER_DATA" e- v+ L5 ^6 g( J
SetHitPoint( GetMaxHitPoint() );
. E9 r. ] r9 U( a a1 r SetManaPoint( GetMaxManaPoint() );+ q3 @- A+ q4 z% G/ k$ G1 U7 m/ y2 x
SetFatiguePoint( GetMaxFatiguePoint() );. u* p$ L* M( H: J8 K6 A) N
if( nJob >= 1 && nJob <= 4 )( c" K7 s6 L4 w" b
{
4 g. B2 D7 w' Z" L, ^8 F m_nStr = m_nSta = m_nDex = m_nInt = 15;8 {- D+ D0 K: O8 `4 Y1 L7 ]
m_nRemainGP = 28;
3 {! h& h! W+ \ }
- b% Z7 L9 v6 ^9 J% C6 l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) c4 g& \# l0 ?6 N: _ {; _9 B- D0 L+ A2 {
m_nRemainGP = 118;$ q+ ~9 t2 ^ U/ @% J) Q" n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 M/ c4 t! V0 ~ j: r m_nStr = m_nSta = m_nDex = m_nInt = 15;
' r& r" m: b2 l }
! T3 T- j$ r. g5 p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ o# t% o1 t: e6 |/ \ {
# w @! {) B) i8 } CItemElem itemelem;
@& l) Z; ]; Y! n! s" J itemelem.m_nItemNum = 1;
( | j# t& ~' o3 E5 o- f1 Z* x itemelem.m_bCharged = TRUE;, L$ d5 ~ C& d) Q/ ^- u2 [+ m
BYTE nID;; x$ a/ t3 \; E8 C8 K8 A T4 ]. g
8 P* X" `: a1 b9 ~! W) v
if( nJob == JOB_MENTALIST_HERO )
4 K' e" D( z- v/ E! k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( Z) \3 Z' K. I& K+ q if( nJob == JOB_FORCEMASTER_HERO )$ i: p" V4 [( A% w, l5 g" C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 K; C- {$ x' a3 v* E, K7 n
6 M' z- c" @% ]" ?9 D- U ( ( CUser*)this)->CreateItem( &itemelem, &nID ); V$ R7 A4 J) S5 I+ n
}3 F: p7 T" M, v4 ~' E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 z+ r/ O4 S/ {$ n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 k ~$ e& j* I4 b2 S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& X( M4 J+ V" K+ t! P C5 C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); Y7 ]% J; ?; j, n, F
( (CUser*)this )->AddTaskBar();*/) R2 m' x2 c9 `: Q+ [3 r1 E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 }* h- T/ G* F8 s. J
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 N$ i, Z* i" c9 O, j+ v ((CUser*)this)->CheckHonorStat();
M* _$ ?; c: X m$ V6 \1 Z% i ((CUser*)this)->AddHonorListAck();
* ~# D/ h' R4 K8 H. U2 A g_UserMng.AddHonorTitleChange( this, m_nHonor);3 |' [- E! ^: j5 S# ]5 u
#endif // __HONORABLE_TITLE // ′Tà?
6 a" H1 @# D7 i }0 ]2 j/ Z3 v/ D; Q$ m$ h& @. v6 l0 W
#endif // __WORLDSERVER
. b( C$ L/ T, j+ y5 K4 Z}
' R; A( k$ N5 Y% R0 l$ s
2 x: J q: ?' i( ?9 l然后你进入functextcmd.cpp并添加以下 A4 K9 P' L2 g3 x+ b8 G
. q3 \* y* H2 U代码:
; D/ q) |3 @+ }/ YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ ~% s7 k3 T1 O) h: X$ c
下面插入
. h d' J, d! V# {5 ^1 O" BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* U6 M8 q' {5 E$ v
; S: E1 Y8 c- X. Y然后你去4 T8 S( k) T+ y' U2 m0 T! R' C I
8 Q2 G' G% j5 `' t7 o* g$ p+ U% o代码:9 d$ y+ Q' m6 x7 A& s+ M( y
代码( R$ Y! N' }% \
BOOL TextCmd_ClearPropose( CScanner & s )* H! l. O! b6 ~* k: A9 v- k9 p8 I
{/ U$ l% w) g; h, {! C1 G
#ifdef __WORLDSERVER
1 A0 I: l# D. `. H$ S0 E CUser* pUser = (CUser*)s.dwValue;9 u* M+ w0 }* _" `7 r( n
g_dpDBClient.SendClearPropose();
. p6 E- p# ]8 l f. M7 B#endif // __WORLDSERVER5 z- h* s; i, D4 h7 f
return TRUE;% t! w' H) y; c( y* a- S
}
7 G; @ V' W# d. O下面插入3 S* C! V$ Z. y& U
BOOL TextCmd_rebirth( CScanner& scanner )- W% ^2 A/ I: {* [
{3 \ {3 H9 _+ f9 Q4 P; X
#ifdef __WORLDSERVER6 c% L0 D9 \- _- P9 Y! Q
CUser *pUser;' |9 @( g4 {- ~- G9 V8 H; t. X
pUser = (CUser*)scanner.dwValue;8 x8 \* S5 z% n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 U9 q. d; r2 e* W. v PpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, T2 V/ j, S6 z5 _else) _7 {; ^; b. b# |
pUser->AddText("你还未达到重生条件!");
5 \+ _9 l- I: @% e0 h#endif0 M2 K& R# b9 X. j, ?+ Q1 w
return TRUE;/ X. z$ e/ _4 b8 N, i) A
} % O- _6 K5 I$ C- R: s
& T/ s5 _. L) G8 `5 @( T1 j4 J/ ^1 r) A; u' k' ~& ?1 l2 m' A8 N8 G" \
, K& p, d- w& c$ C3 \' o0 ?# _! X: Y
7 k! k0 O7 g4 L( x) d0 ~' ] |
|