|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- M. e; S" _, A8 O" y/ E
$ m* f' h1 J: ~Mover.h
# q/ V* l+ J# ]7 u% K' E& h代码:4 z; y% r( r$ i$ G) M
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- M" {: D) r" u$ X( K; B! E8 l" e8 C9 w( {9 x8 v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 L' I: N+ A: ~5 a* c4 ^+ Z
4 p( h% L# e' o$ r3 \( W2 H+ ~0 x然后你去mover.cpp添加; O; R* t; V2 @
' ~$ J# a3 i8 l' `7 [9 r5 G
代码:
" \5 j$ h: r! g8 Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); ], F" X) f5 K1 J
{
o- E' s) z j% ]# R* E#ifdef __WORLDSERVER
- z& ~2 f$ W/ H, [2 s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' t/ _* N8 _9 _9 ^
MoverProp* pProp = GetProp();- ?- t8 ~7 [. d
if( pProp )
4 ^) @ b# R9 R/ b$ ~+ p' U" b {8 h2 x: G/ |1 E# @& ^* S! B
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), w7 z# S1 N3 {
{
/ K, d* o" } X$ ] AddChangeJob( nJob );
& |8 ]5 @7 C! G8 _7 _( [ }else{
; C \3 y, }" a return;
7 i$ o7 W' u J( U! E, [$ P }& \& x' e4 [5 W* _; v& ~
int nPoint = 0;8 R9 W3 h4 M8 s+ K
if( m_nJob == JOB_MERCENARY )/ e( E; x/ l! k* T' t1 t
nPoint += 40;
c, Q' R4 m: E5 i2 |1 W else if( m_nJob == JOB_ACROBAT )
6 r0 Z6 [& g9 ~6 W2 p! C9 U$ L nPoint += 50;
2 w0 }5 j) Y% k, ^ else if( m_nJob == JOB_ASSIST )
! V4 p+ S. F# C3 j nPoint += 60;
: ~# H$ x" D# ^( Z9 Q else if( m_nJob == JOB_MAGICIAN )
1 z& j/ r# R, v# \' \0 r nPoint += 90;2 b0 O* l ]; d( I# K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 T5 w' Z# z( p5 F Z nPoint += 120;2 I1 Q+ l2 f4 R0 r
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! @: D8 {$ ] g" {5 g; z4 l
nPoint += 150;
6 l0 z/ F: z6 D( O* L else if( m_nJob == JOB_RINGMASTER )3 H4 `2 E% U$ n! {2 x2 t. J
nPoint += 160;7 }: e/ o q% G
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 v4 Y) |9 }4 Z# U, ^& }, c0 V nPoint += 180;. r0 F7 x9 b) g1 b% t# P
else if( m_nJob == JOB_ELEMENTOR )
6 s5 W6 e& V' i7 C5 Q nPoint += 390;
) m" W& ^! G; U# y7 | else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 p+ l/ J4 G5 V. P+ E
nPoint += 120;% }. U' ?3 o% d( q0 C' s& S4 g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# C7 j. v& M" i) i4 q, [ nPoint += 150;) _( z; d. o _; u5 i3 Z7 k6 B- |
else if( nJob == JOB_FLORIST_HERO )) A9 l6 c. |+ w5 W! r0 L
nPoint += 160;
/ J; @/ R; L& L+ P else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 q A/ S7 V, }' F9 Y4 d6 e9 A6 T( X nPoint += 180;" n3 l! R5 s3 m3 {
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 ?6 T# S/ n# K$ Z4 { g3 E nPoint += 390;
. h, X! }! s9 S6 ]- o' z, c
* _: h0 y9 l7 G0 g7 Y( Z) e' q AddSkillPoint( nPoint );9 A( F' F0 v! X& _' {, A+ [" W
m_nLevel = nLevel;
' ^7 i, q% M4 c
# i. w! }" T) b( }3 C3 y) n SetJobLevel( nLevel, nJob );# ?8 T$ S, q+ s
m_nDeathLevel = nLevel;
% ^6 S& X! G) n! m' F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 W: x& R n) I5 _! O/ Z
if(IsMaster())0 q7 a6 ]" i6 o( [. ?; {
{
* ]0 P! p3 V( _! O Y int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 E% U: v; c7 }
if( nLevel > 59 && nLevel < 72 )! T) o" U: W2 G- L
dwTmpSkLevel = 1;4 K, L# n6 S+ D; |: A4 {& u2 h0 w
else if( nLevel > 71 && nLevel < 84 )
; f. b3 {! r- Y; t dwTmpSkLevel = 2;3 Y4 M- S7 J2 k, q/ q& F
else if( nLevel > 83 && nLevel < 96 )- b) {/ G, e, _/ r+ _6 K
dwTmpSkLevel = 3;
$ c# p& v$ Y4 w! E9 }+ c; X& Q else if( nLevel > 95 && nLevel < 108 )+ C5 I' g0 b; b
dwTmpSkLevel = 4;
8 p. l2 G# {$ S) d else if( nLevel > 107 && nLevel < 120 )6 j& P$ B- l9 c! d" ?2 H
dwTmpSkLevel = 5;0 M$ R5 }. g5 n/ i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & [2 k( u W4 u4 P; d x
{
' q7 l, Q0 w# o+ n- e LPSKILL lpSkill = &(m_aJobSkill);
" S5 H7 D$ s' l" j; Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 x9 r: s- L" H m1 m {
; b' y1 A8 k9 d& s4 H4 g8 u2 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 Z; e- }; L( [: @) D! F, \
if( pSkillProp == NULL )
, f R; Q* n" j" O continue;2 f' k* F3 i& W& S9 }9 Y# M8 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ T3 z* O! w% D, d2 S continue;
4 {# r% E, w, { C lpSkill->dwLevel = dwTmpSkLevel;. x* }% v: V! ?6 `' X2 |6 q/ g
}
0 G' f% g4 K" y }" r3 D) s3 f v! H# F- F2 @; i
}4 C9 B1 o! ~4 _' |* C
else if(IsHero())
" w9 d" Z( z: g u# ] {/ e7 W" T {( r$ |" q* D- W8 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # B- g6 V; X W
{ v7 t. u9 _, H, K1 v
LPSKILL lpSkill = &(m_aJobSkill);
- c& v/ J" P% }& U if( lpSkill && lpSkill->dwSkill != NULL_ID ), h2 O6 j; r5 \5 r& z. r
{/ j0 y& O' q- w- Z2 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ b: q" P; ~& b7 N
if( pSkillProp == NULL )
8 c5 O6 {% _2 L. f" v7 h8 f continue;
`! G( z9 U$ }6 c2 J& h8 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ S; Y$ M5 Z0 i# Q4 d
continue;/ b1 k2 Z! f W; G+ R
lpSkill->dwLevel = 5;" w2 X9 W4 A% F( X, t, _ U& G
}0 T$ z2 h/ V1 p' L" \+ l
}
9 k* ]* Z: y. c. s4 c0 i }0 C2 L$ t7 o( z S8 U0 [
else if(IsLegendHero())' z! B# C2 O: s2 ?5 p
{$ {% g( x \6 h7 q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 H, \6 s8 K `1 o2 Y
{
5 T! n; |% X' L( ~6 Q2 _- p! ^9 _ LPSKILL lpSkill = &(m_aJobSkill);9 i% |% U$ n' N( V2 S8 k; P6 ]3 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 q1 m% u4 R( T5 D, K% ^9 ^
{. s6 d% r4 `( B6 @- f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : R% i) Q: i. b' W
if( pSkillProp == NULL )
) Z6 F* L H- }/ g continue;9 j) v: `0 W; i$ q) T! y/ L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): C, }: g/ W' f G Q6 I
continue;
+ l; n4 T3 P% c lpSkill->dwLevel = 5;, o9 v. E& P" H/ d
}8 d' P* U6 g; n& c2 S
}' J }9 V4 ^: r& e0 S
}7 D/ t9 {) g, p6 _6 }
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 H" h/ [. y0 h9 ]) M' t5 N, C& N if( bGamma )
+ \7 i$ P u' V- g! l4 q e {; ^8 G+ h. \3 q
m_nExp1 = 0;8 j2 U0 {2 e6 \4 W) E p
}% {* O& y% I& T0 ], w
8 e3 F. C$ F ~1 V, B5 m
( (CUser*)this )->AddSetChangeJob( nJob );9 T& e: Z( f4 B- g2 V3 s) w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) T' U2 h1 i8 a
W. x! t, R w7 c/ d- e/ y
) J: A8 P- J. Q8 u- k#if __VER >= 11 // __SYS_PLAYER_DATA
5 H6 V" A* |6 O! J$ _2 H% J! u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' X# k) ~; h1 L2 J0 ~#else // __SYS_PLAYER_DATA
% z y) G2 S! ]3 Y- R! O2 P3 P3 w g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 q, _2 x$ E2 Q* Q& }+ K$ d9 a4 }$ n O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; j- y. v3 O* k5 ]
if( m_idGuild != 0 )
1 Y6 s1 V% r" m& R) j6 q3 h- w: n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: b4 {% ?* f- J: A& p" t
#endif // __SYS_PLAYER_DATA
+ U. R# p9 @1 Z& f* ]2 q! ` SetHitPoint( GetMaxHitPoint() );
9 \: }' v H% S, [6 _ SetManaPoint( GetMaxManaPoint() );6 T S( g- ~* Y6 [" z) h! b7 _
SetFatiguePoint( GetMaxFatiguePoint() );* }% ?% |+ E, O0 S" {2 V
if( nJob >= 1 && nJob <= 4 ), \; w6 O1 ^, X% z/ C' ~( e
{
" s9 o" D6 S" S( R m_nStr = m_nSta = m_nDex = m_nInt = 15;
" U2 G0 a9 ` v6 I4 F" ` m_nRemainGP = 28;
# z# M2 X9 ] A& g' g0 V }
. b3 x8 e1 Y; `5 `/ \5 \" M7 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- H5 ^ W+ N5 @) E
{
$ N( O8 E) o# P$ I* Q+ \4 U m_nRemainGP = 118;+ s Y! V) S% C1 P4 ~5 }2 L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. D7 v; B- z9 q b; f% _/ t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
c9 d0 z3 \2 V }4 O9 r6 K$ e" \8 [* S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& ?# ]! o% k8 O5 A: p: y1 A% P. k
{
' d5 J2 D1 ~* n0 a+ _ CItemElem itemelem;
" B: W# r2 y, \! i5 ] itemelem.m_nItemNum = 1;
6 o* d6 X, [0 j$ A itemelem.m_bCharged = TRUE;
# ?& N1 t3 y* D2 u$ C BYTE nID;
& F# R3 K0 _9 d0 c1 s3 w. J# F
) `% I; n2 ~( T$ w" w* F) c8 { if( nJob == JOB_MENTALIST_HERO ): Z: x* B# g( q9 T- w$ F4 e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% L3 j8 f4 {! G) h: _; @+ D if( nJob == JOB_FORCEMASTER_HERO )! Z0 {7 H Y" f! y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; [. x5 v3 c. S4 g
w. n' W! l5 V ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 x0 f6 j1 v7 y+ ]: v! ?& q( c
}0 L8 L! u2 L+ y) r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 j0 X$ C! a8 h3 V3 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' D8 R, g1 ~5 X0 Q( H: \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; H% o+ I8 U: \3 f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. w u% l7 |7 D. Z ( (CUser*)this )->AddTaskBar();*/. E5 w$ F" i5 ?3 q$ |9 Y$ \1 i/ D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ j: p5 I( b( Y/ D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ H3 r! E" d. |: Q ((CUser*)this)->CheckHonorStat();& `4 n- h7 t0 W2 Z* g: p' ]& Y2 e
((CUser*)this)->AddHonorListAck();
2 ~4 P* \ P# F* o% K" S' R g_UserMng.AddHonorTitleChange( this, m_nHonor);3 L* g; y* L- e; a
#endif // __HONORABLE_TITLE // ′Tà?
5 i. R+ P4 Q. j }& D2 e- p! Z# r) L
#endif // __WORLDSERVER
% e1 X* p- `% i} ( V0 D% o+ P- Z6 ]! Q; A# n
* Q% x0 k) P3 @* {. S" ^6 j: t- B y7 M
然后你进入functextcmd.cpp并添加以下; W9 `" W! o" Q; W5 X
& d5 F1 T' }6 @+ z# j S5 T
代码:
+ ?9 v6 K, s/ X& M( OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ ]& J p7 w! D下面插入
+ z( P% h4 j' _/ R- @7 b% yON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 l, H) P# u2 N" D5 ^! G8 x. i. h* {; R$ E& z
然后你去
3 t7 s( b! V8 i. l1 V" `% a5 e1 l9 d4 T: s
代码:; U6 |$ O& O& ]) f5 s0 a5 |/ c
代码
; E' ?8 T) z( G$ @7 ?4 dBOOL TextCmd_ClearPropose( CScanner & s )
( N& S3 ]: K6 h: J) g. p/ I* ]{
) F3 t4 s: K2 u, L6 p- t8 c. T#ifdef __WORLDSERVER5 x" K B B8 j" B Z3 n
CUser* pUser = (CUser*)s.dwValue;
0 W( \3 {/ U0 |2 k8 N7 D* a9 T: W g_dpDBClient.SendClearPropose();
: w3 L E# x8 N" z! \$ P9 v' Z#endif // __WORLDSERVER
1 G9 |2 W% j, w3 v4 I9 j return TRUE;
3 S7 I3 ~7 A* G i- ]1 s: M}
7 o7 a/ f ]0 E) P7 ]) E1 W o下面插入
6 t% ^/ i2 S/ c8 o! IBOOL TextCmd_rebirth( CScanner& scanner )/ K; n8 h7 Y( P. i4 l% G
{
! c. F9 U& _/ ]4 ~' I6 F#ifdef __WORLDSERVER% r& F, e8 A7 Z
CUser *pUser;
1 e. l0 A; ~! z" lpUser = (CUser*)scanner.dwValue;
+ w! D& T$ K8 Y- x- k( Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 p7 [ c* r. m1 j# x+ a, t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 m- E3 C3 e# F8 B0 j7 m# p4 Yelse
9 a2 F" {3 y% `7 h8 RpUser->AddText("你还未达到重生条件!");/ L5 s" E; w( }4 m
#endif
$ g7 @& Q, c( H4 ?# jreturn TRUE; t3 Y' X& q/ ?7 `4 s" r. t n
} 5 b3 b% W2 [- c
" U3 p( x a. `, L$ H/ m
7 [; T& K8 k/ w5 R8 l: F9 O
7 q2 B/ N; U' h
/ |, f' G" a6 G1 U/ ]1 o+ | |
|