|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 b% Q' E7 I* g( h/ S0 [% X7 ?; v
8 U. y/ S! T: r! ]# K$ {1 v) ?
Mover.h
$ [. f. v8 J+ ?0 l+ Q6 k. U* w/ G3 |% V代码:
( n) A. i( K$ N; {5 T/ f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' m, R9 h3 l& ?1 l/ b d
; D3 s. @. ]8 }5 Z! i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % J. q; g( d" n) q; B& H: _. v. o
8 ]0 }7 U/ l* T4 @
然后你去mover.cpp添加8 f4 \; i# n/ m$ R
2 l" E4 y& Z+ c( a* D
代码:
6 R# U* ~ K/ Z, c4 a0 Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 R3 ^% z+ t0 B3 o9 X/ \{
% Y2 V. K- J- Q3 g5 {4 |#ifdef __WORLDSERVER
: G9 Y& b0 K; B; u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' H% H9 f9 y( X MoverProp* pProp = GetProp();' b. }; `9 X7 u0 T5 Z
if( pProp )
$ y- n" C6 B" V6 O o% p' A {1 o; I/ D: h8 U, {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! I j7 M, _' g) r- H5 E {
& ]5 `/ s" q, k% b2 Y4 }$ \ AddChangeJob( nJob );
8 c; L: f8 V% g E. L4 Z }else{: ^' r X/ R/ _0 D
return;4 f- R/ ]# s! ]/ n
}
: p! L# U5 j3 q9 _& Z" U! T e# M int nPoint = 0;- [) s% ^- t2 k1 O0 o
if( m_nJob == JOB_MERCENARY )
8 i& n# N7 O% M5 G1 K) X nPoint += 40;& \8 @% Q* u; M" F$ {" F* Z r
else if( m_nJob == JOB_ACROBAT )* n4 Q w7 ]* o; b1 j
nPoint += 50;
$ F1 I! }- o) P else if( m_nJob == JOB_ASSIST )
) x) e/ H9 t8 i5 `5 f/ H9 X nPoint += 60;
7 _. |( i( R9 N* C% J% g else if( m_nJob == JOB_MAGICIAN )9 D8 K9 O# a% C7 z- e% T5 S
nPoint += 90;: C6 _! x" C9 Q3 [+ S( x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% V+ k8 _4 F2 g# J8 {6 f nPoint += 120;
4 c# V& a; |& e. J" V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 y) m4 ^2 l% T2 j nPoint += 150;
( Z3 a' }5 l) w0 }9 M7 h) H else if( m_nJob == JOB_RINGMASTER )9 S$ c) G7 X8 Y: B2 j6 b
nPoint += 160;
# q' l; g' B. i5 p: g$ c5 v5 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& f: \+ n5 _7 |5 O6 ^! R8 K# w
nPoint += 180;, V7 _" b) m" |* |6 {
else if( m_nJob == JOB_ELEMENTOR )4 v4 m d. {( A3 p% e+ J
nPoint += 390;
# R0 z* M# t; D7 v( C* U else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) U7 X q) v0 b n; w nPoint += 120;/ [' ^' @% r+ W* L4 ^2 `2 R6 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) X8 y9 f* A8 _/ D4 Q nPoint += 150;
$ ]" k7 r4 q! }6 h; s9 x& {2 L9 t# l( H else if( nJob == JOB_FLORIST_HERO )
- [* `' T/ R/ m! D; c nPoint += 160;
9 \, E( t) K1 t9 K6 W G0 J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" B' c1 j" }) c+ f6 H
nPoint += 180;8 L, \9 t! j- L0 C, a
else if( nJob == JOB_ELEMENTORLORD_HERO )
! l# v" H# N. w7 h1 c nPoint += 390;: I$ K$ o9 R7 I5 H
# Z1 S3 h6 v% J! \. t- n
AddSkillPoint( nPoint );
4 j$ ^# W6 p$ z& } m_nLevel = nLevel;
7 \3 t6 R7 H& O; d! H# K
% W+ q* \! W6 p: b* q SetJobLevel( nLevel, nJob );
9 l4 a7 o; H8 V4 S# R m_nDeathLevel = nLevel;* ]4 Q* L$ B+ R, r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 S9 U9 X# ^! n+ |% p; s; m1 a
if(IsMaster())
7 U& v/ N7 ^1 U0 N. z- U2 }& X$ g {9 G" z: T; \ Z9 |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 A0 O, }7 k5 k: z" }* [ if( nLevel > 59 && nLevel < 72 )
6 I1 L& z' ^4 ]! y) o) K" c dwTmpSkLevel = 1;' E; H: A- ^3 j0 i6 Z! t7 y
else if( nLevel > 71 && nLevel < 84 ), V% k E' [( a( N: S) w7 n; S
dwTmpSkLevel = 2;
* C" Y3 [- Y+ p; C! J else if( nLevel > 83 && nLevel < 96 ); |* I& E0 o- \$ i
dwTmpSkLevel = 3;9 |' j" [& c5 ?
else if( nLevel > 95 && nLevel < 108 ). |! q2 t m. H, {" d
dwTmpSkLevel = 4;! T$ s& S) v- S& _9 @' _' O% }
else if( nLevel > 107 && nLevel < 120 )
* h; o7 H+ s, s dwTmpSkLevel = 5;% p3 k/ t4 I9 D& v4 W0 f1 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) F/ A/ K& m# F7 d1 A- f {
1 q% ^9 w; b. K% ? LPSKILL lpSkill = &(m_aJobSkill); z/ u2 j. i1 H( X; p2 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' g) a, b, i. w" Y9 M {
3 [2 Y+ Z0 v4 j' t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , V9 {. v! f- E8 R& e9 H
if( pSkillProp == NULL ): h# k4 m9 U7 t* a; R; M0 J7 U
continue;; C2 e$ H% K6 t4 F3 U* Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ l2 Z, X: ]/ e) ~ A9 Z B
continue;
7 j& o/ Y+ g4 D) o8 C lpSkill->dwLevel = dwTmpSkLevel;
' U1 ]& _1 j& o* ] }
/ L) t$ P, b- ?# |2 s0 U }* H+ ^$ |8 U6 c3 Y5 O3 ?0 ~
}8 ]( @8 E1 u5 T" h7 g2 m
else if(IsHero())
3 }8 ~/ r/ m( ~$ b# C! K {
0 J5 v" }- C+ j% @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
: q7 B( N+ k+ U: V" ~ { ; N, w C* c- M
LPSKILL lpSkill = &(m_aJobSkill);
5 k2 p! d6 B" \/ _2 N if( lpSkill && lpSkill->dwSkill != NULL_ID )# ]5 v- S, H: E j3 G* T
{
% ^" c. n( j" o7 T( I: T! n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 K2 F' [+ J( \% G `7 C6 e if( pSkillProp == NULL )2 s7 Z+ t' _* l, R s' j% _
continue;$ I. g0 L i7 g4 P; O5 s) x/ N9 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 `8 J# O+ p% y+ i* P% J continue;7 _. `( a7 b3 S4 m
lpSkill->dwLevel = 5;' s) P8 c/ [" d5 |. f8 _" V
}
. a7 I. ]- k1 X4 P" s' T* R0 n }: ^) P5 v' `% A* H* v- h
}4 k( `9 Q6 c8 j0 I; N& o
else if(IsLegendHero())! O5 y( U5 r8 V/ l; a0 F E
{! q( Q C$ V9 k! b% V* r- i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' t( c& M+ @" P* l& G8 r2 x {
& ^" O! O! s( a8 p$ {! v4 q, P: } LPSKILL lpSkill = &(m_aJobSkill);
9 }5 d+ Q. l1 |: `2 y# I if( lpSkill && lpSkill->dwSkill != NULL_ID )6 G$ u) n/ s) M9 M* }5 }( ]
{2 ?. z$ j3 K2 v1 I$ {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# X0 I( e' ~: J0 g+ t& I if( pSkillProp == NULL )# V: ?! I9 W0 O
continue;
$ e8 x2 y$ n' q$ t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" `+ H' L) g, c; h* q1 i continue;
) l9 _( Q1 S7 E8 n lpSkill->dwLevel = 5;" a, ~/ f7 Y/ ~7 x- w
}
2 i( s" V3 L8 z q }
" Z1 @' h$ i: T6 f k/ K }
+ Q* i( o- X1 H+ N7 O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: y' \, B7 ?3 X% F) S
if( bGamma )5 o5 J: l) |0 u: R* U7 m
{
9 ^5 l: o, Q1 X3 U m_nExp1 = 0;& _! q8 p: O) L `4 n& G+ K6 O
}9 T( X5 {3 u6 D! f) r6 l
; B, w& i& V, ]; v: D
( (CUser*)this )->AddSetChangeJob( nJob );
8 r# E! q. j3 `+ ]. F/ _" X g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 x$ j4 v1 `. U9 } b
* A. h* u0 `0 h
& d' @1 W( y& l* m
#if __VER >= 11 // __SYS_PLAYER_DATA" L Q: p' @1 ?# E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ x1 [& k2 p3 A1 y# ~) t! ^* X
#else // __SYS_PLAYER_DATA( u: l; ]1 {* u% y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 ^* z7 n) V- |+ g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& C2 Y- O5 Q/ U0 a& g' b( L if( m_idGuild != 0 )
; F4 l3 |+ P4 m( L6 C# C3 a, w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& c. M) ]% A) s#endif // __SYS_PLAYER_DATA( L$ @# _! E7 T/ N
SetHitPoint( GetMaxHitPoint() );4 ~, B8 _6 p7 R& l1 D0 D
SetManaPoint( GetMaxManaPoint() );1 x7 C$ \( [; c' ]6 u5 {
SetFatiguePoint( GetMaxFatiguePoint() );
) f' G, l7 s* [- j if( nJob >= 1 && nJob <= 4 ) C, B0 b: P; @0 ^0 A
{+ o; K" i' n5 `5 m0 ]; I
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 p5 U0 H/ v7 c
m_nRemainGP = 28;( A; {. t# [! q( M- h8 j5 ^/ E
}
) P$ w. e W0 X: n6 t `/ G# e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 Y* s' S q' b. c! {% y
{
! @; \$ f" n8 o E. {" ]# N$ o& \ m_nRemainGP = 118;
" {$ [- J9 F* l0 u8 W* \ g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) S9 A5 ]. F) B! w2 z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ I4 A, g" \( f# Z }' |3 |/ a: U: B: B. M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ P+ `" `5 X! i0 R |$ H {# X5 i" V, }# N$ z9 b$ P
CItemElem itemelem;, ^: B. t4 H1 q" J) _5 K; P* H
itemelem.m_nItemNum = 1;; C" U; O3 j6 D; X7 @, x& f
itemelem.m_bCharged = TRUE;
9 v0 Y( x( l1 M. Y BYTE nID;* I9 x/ s g+ N. y6 {
3 }: D) a$ n3 f' u) T) `. ^
if( nJob == JOB_MENTALIST_HERO )3 z2 o# w' Q. c$ b" r: d$ E* W, R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" c/ k* g6 N7 I/ y: s5 z: d
if( nJob == JOB_FORCEMASTER_HERO )$ D8 A1 A: X5 L5 ~0 m6 O+ H
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. @/ E3 F3 @9 H0 \; \" e( l) h( a% c
n0 D* f5 i! b- @# i9 J, a( } ( ( CUser*)this)->CreateItem( &itemelem, &nID );/ X0 z$ f* b5 d: L$ D K! ?
}
2 V/ G( m/ n, u1 J" N# Z& g6 f/ a( i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& _- Q3 v) X5 W0 F0 z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 f& Z) ^7 ]! C) z G5 [( f5 b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: v: V( O8 J6 b' P. {9 W9 n* g3 v8 X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. E) ?+ {2 C/ ^0 K8 L ( (CUser*)this )->AddTaskBar();*/1 Y1 `2 c% o2 T5 n. d
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* M4 q5 P! E3 D; k0 `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 Y8 K; M6 d$ G* Z+ Z
((CUser*)this)->CheckHonorStat();
0 x3 P% x' d5 Y1 p7 o, O ((CUser*)this)->AddHonorListAck();
: E& G* @- B# w/ n/ Q0 U [ g_UserMng.AddHonorTitleChange( this, m_nHonor);6 _/ R/ w, p% \* ~ ]
#endif // __HONORABLE_TITLE // ′Tà?, m3 O' }( U7 n7 a! F( {
}/ x0 q: U3 z6 _- G
#endif // __WORLDSERVER
6 u2 W7 `. d# t8 [}
! m, {: `: s* S+ ]( B0 R
# z9 W0 X) E! z/ z) N2 _2 V9 z然后你进入functextcmd.cpp并添加以下3 i% h- A/ }" H- y
( h/ N4 Y3 @( m/ l% g/ {+ y" |代码:
/ Q4 ` s" c% Z3 ^' [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" U% P8 S, @6 Y8 s! Z" K下面插入: g& G6 }( V0 R; h2 c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , Q/ T' s9 M% O6 j
8 X4 i2 }5 [- w" |) C2 p8 ?" `然后你去( c; f3 C6 C# n
+ }9 Y- d# X) J" q8 v代码:. |2 q b5 f: K! A
代码
/ H4 O2 a6 E! v9 s* G( P5 ZBOOL TextCmd_ClearPropose( CScanner & s )
% l3 E, Q$ s" ~7 `% l{
# r! z" j+ J& o4 U8 ~#ifdef __WORLDSERVER
/ n" ]: f5 c# d' W6 O& v CUser* pUser = (CUser*)s.dwValue;
( U; d: J5 R4 \' h g_dpDBClient.SendClearPropose();
6 e2 L/ f9 x8 f( c$ Y# I#endif // __WORLDSERVER0 U) ~2 }5 q! j6 w ~" w3 o% k
return TRUE;- ]( B9 ?0 o. U. P. L$ e) o- [
}
9 @$ V9 y, \' U. i& G0 j( z下面插入+ @; m5 {3 b" a3 J# T
BOOL TextCmd_rebirth( CScanner& scanner )* q6 L* H7 @; L* J! L: v, a$ }3 W
{
* W4 u( x1 O3 O! n/ _: e7 l#ifdef __WORLDSERVER# k( f6 W( c: m
CUser *pUser;
+ A. P; v% C3 R# O4 WpUser = (CUser*)scanner.dwValue;5 ]' f5 l5 D+ ^& | f9 i: x
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: e N/ l: N# @. T g/ `pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 f" } m6 B3 N! K, |) i" A
else
+ X8 p7 y# Y) z+ |% {6 a: C+ PpUser->AddText("你还未达到重生条件!");4 u: c3 Y# N: z/ C9 U9 g! l! |
#endif
' e) V! V. f& j! z, m* l( qreturn TRUE;
3 p" S* S7 P% W9 J" t% @0 p} ; f: m- R% i" X; f- F* k- ?
: `$ K, T: d; w1 M1 \7 l; Y @; p A/ t+ N7 [' z
+ R+ l' ^7 q: k+ X1 _8 L' f
& l/ ^- _1 i8 ^7 A1 L/ I' e
|
|