|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ N# R2 p1 [" I; S1 ?- K# F
4 E' `& I1 \# R$ Z* V
Mover.h- j0 Q1 f0 B) u+ }% |! p# V, A
代码:) X6 K& v. o* g7 y4 Y& } m1 m" _6 E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( `) K, }5 O) A X& A! z% @- R3 z0 R1 h$ I, q. x. D! j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # W0 M7 G4 | M7 g9 B0 Y& G
( b8 N" w- E9 j! R7 o4 Y( U( T
然后你去mover.cpp添加) a1 l- t t! u
# H- A& ^; a5 _; `+ m% b
代码:
% J8 M0 U- }* _ G8 k) U! Tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), f2 f6 t/ q4 [" [0 l0 Y$ p2 q
{
0 N2 R, _3 j3 _8 x( M#ifdef __WORLDSERVER7 _) f! y4 c# r$ @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, @+ S0 G; m o0 r3 y' u) { MoverProp* pProp = GetProp();
# @+ k5 f- |) b- I% M: c H if( pProp )
/ u0 t- ]$ \9 Z1 ]; m+ s {$ H. j9 _/ ^, I1 G4 ?" w
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( @% Z; Q! h$ l7 g' K; C ]; g {, u& M# a( u- `4 w$ R" A
AddChangeJob( nJob );/ B+ u( g0 c$ C8 k2 t+ k3 N
}else{2 S' J: p7 t$ V5 C$ @5 V
return;9 [7 _/ f7 |, b5 @1 U j% c
}2 j. f6 T' W& v. P w2 K
int nPoint = 0;% R1 R, T, _) a6 l& V, @- f/ D9 V
if( m_nJob == JOB_MERCENARY )
" v$ p0 I9 o8 u4 v% A! p nPoint += 40;/ s( ]& U- `3 x6 k
else if( m_nJob == JOB_ACROBAT )
8 n8 v0 ]5 e T! z7 T- G nPoint += 50;& [# K, v! m4 ?3 @) g! Z/ l" u- _' U
else if( m_nJob == JOB_ASSIST )
( k7 }! n5 w. ]8 z8 C4 M nPoint += 60;- f- V P4 N4 ?3 O
else if( m_nJob == JOB_MAGICIAN )
8 a4 q1 r8 v0 W: m7 m" @ o2 J6 d nPoint += 90;
- Q2 I7 l3 d. ` \( s else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; e. Q9 P0 Y# }+ v8 [3 q5 C5 a nPoint += 120;
; {4 c: Z( B a2 e2 I: o else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! l/ ~& `+ G' v
nPoint += 150;
3 T; K- a- i1 Z/ Q7 D else if( m_nJob == JOB_RINGMASTER )
$ ?6 p; R0 [( a( U W4 Z nPoint += 160;
! U4 I8 ~- I9 M D# x8 D# b1 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 q7 t- h; J) p$ A& D% S nPoint += 180;* Q" h/ x9 j& A$ i! J( a8 i) D
else if( m_nJob == JOB_ELEMENTOR )
5 j) ]: X% Q1 B0 Y/ H( w nPoint += 390;4 \' j7 e: Z6 E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 V2 @ {1 y( j5 P; F0 C6 C7 H
nPoint += 120;
; \3 Y$ ~8 O) n) E- J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) n, g9 z6 |8 M6 t& @0 ~ nPoint += 150;* I; P g( U# d. |
else if( nJob == JOB_FLORIST_HERO )
: ^/ L# C* A: @9 e2 \# U: d nPoint += 160;
; q' ~5 |* x& [. _( S4 l0 B2 T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" n) x! H2 L0 S2 U
nPoint += 180;
/ I4 u [- a& I5 P7 w n$ Y else if( nJob == JOB_ELEMENTORLORD_HERO )
: A7 k* a7 @' W9 [/ K0 B, p nPoint += 390;
5 T k/ J/ h5 Q7 ^ B8 d( P" J: c) K( b4 }# @) D5 m
AddSkillPoint( nPoint );
% B" x# J5 n/ \, ?) n* I m_nLevel = nLevel;+ K2 w! D7 c' ^0 M
3 ~" o2 \& A# S) m5 W3 R0 w* c SetJobLevel( nLevel, nJob );
, Q R1 P/ ?/ N7 _& `, y ^8 U m_nDeathLevel = nLevel;+ Z$ {. z& p Y. C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, ^. d8 d& D5 H# c2 `* n
if(IsMaster())% P9 L2 t* R% @; k+ R" h
{" X+ E9 c& X6 G$ p# ?: ^# y* A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ v* P$ V* y- J4 X. I
if( nLevel > 59 && nLevel < 72 )( k/ Y) B, T2 {1 |
dwTmpSkLevel = 1;
, j* R8 q# |; t% \0 ?+ Z5 ] else if( nLevel > 71 && nLevel < 84 )
5 A( `9 k/ J9 X* `. c6 z w dwTmpSkLevel = 2; g' V/ }/ T5 o [$ s8 y" B' J
else if( nLevel > 83 && nLevel < 96 )
7 p( n1 M) B) S! U- y3 }6 N2 B dwTmpSkLevel = 3;4 u; E7 l1 ?2 f8 h% e- f% r
else if( nLevel > 95 && nLevel < 108 )
0 N: O* w; V& L! B4 x8 D* U dwTmpSkLevel = 4;
8 u" A: t$ G' M+ h else if( nLevel > 107 && nLevel < 120 )
" Y( ]9 T+ M3 M% ?. K; K" S$ `. K- v dwTmpSkLevel = 5;
. }( q* \8 M+ G6 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
( V) _) y4 x' R$ u6 N' u {
2 }( X" A. V' ?7 D$ {; O, ?/ g, C1 w LPSKILL lpSkill = &(m_aJobSkill);. u# `# U- s% F
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 u2 H& |. Q: {- w3 O
{
5 S. e; k; D" w& N3 _1 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 ?4 ^7 v; [' d( w
if( pSkillProp == NULL )6 E! u3 e a0 W
continue;& O" B! `: p2 q7 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); a/ x F1 K8 |- d1 o z# M
continue;
) e6 m2 x. G* J8 U' v2 P0 N lpSkill->dwLevel = dwTmpSkLevel;/ @) f8 M# X2 ?; t, \6 E4 d' P
}: W! }8 m* R! Q) V% F, Q
}
: Y4 k, E5 h0 ` r }' |, X& X" X( W4 \1 N* [4 e
else if(IsHero())
) G; z6 `$ p2 m {
7 o2 v* h- E! j" v- n; P/ b4 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
) I- e2 @5 r, p9 N { 5 k! f! ?: v& x3 h4 G
LPSKILL lpSkill = &(m_aJobSkill);
" N; }7 g/ j0 p5 ]1 a* [1 x5 o+ g if( lpSkill && lpSkill->dwSkill != NULL_ID )
" [8 O4 m3 D# |, | {- u, G+ M, B" N& c9 D5 t. }* a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 h% H0 e9 p7 E2 L if( pSkillProp == NULL )% I; `0 s" e+ E0 _- t
continue;
; }$ O1 L- A$ {0 n. V3 s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) ^% b8 k$ H: L# @+ w, ^ continue;
, N5 X, ]! Y2 W lpSkill->dwLevel = 5;, Y& x9 |/ q8 S
}% q% Y4 [ b8 Z. v
}/ R5 T( s/ _" x' \
}) d+ b' C3 [* F# y
else if(IsLegendHero())4 t( e" ~# v1 r$ v3 \
{
$ g: j# `3 A6 f2 h6 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
- S1 V8 G" ^( f$ P { 3 R0 M: W8 k6 Q( ?/ m" @
LPSKILL lpSkill = &(m_aJobSkill);( C6 \ f; I7 Y5 q6 S7 K8 J X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" n; o" d# h' `6 J- o- A& C( A {
! @1 F9 C- A* }% d' P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - y8 E. X% V& l9 r+ M* T
if( pSkillProp == NULL )
: E" P/ v: v% k3 e continue;
! L5 s$ R6 r$ G2 W) N2 s( p! | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& f, k2 l2 @' b( h, P' t continue;9 L6 e8 v5 o3 Q( p* L% W' O! F* p
lpSkill->dwLevel = 5;7 }- U3 _# |+ L: w
}2 i* H- w6 r9 e! |& \! g z& \
}
9 H: r- Y9 A( n }
' d# [7 {9 L- U; F#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 K1 A+ ]# f& E# v" N, } if( bGamma )4 P( i& O2 u' y
{) E+ z$ N1 C- ~, D0 l5 y
m_nExp1 = 0;
5 d0 H+ X; ^' b7 K' L3 _ }
! r0 J( E5 ]: n4 N
; i6 J! B6 l, e. F6 k8 ~ ( (CUser*)this )->AddSetChangeJob( nJob );
$ P4 N- s0 e7 g. G( ^- G- q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, ?- p4 v+ i; c" ^7 A( f
5 m6 W; |* P6 |$ C9 j9 z7 ` Z
w8 B5 J& F0 }' L+ P- |2 j#if __VER >= 11 // __SYS_PLAYER_DATA
, X( p& w e9 `9 t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- O+ m e6 m' y& q0 k
#else // __SYS_PLAYER_DATA
e7 D5 z6 K. `) f+ t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 p6 q# v, [0 E" S4 ?4 o g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) N& | u% U# {9 M) Q* G
if( m_idGuild != 0 )
3 i0 A. ^# `: H; P0 O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( S! A b/ |/ X! V4 ^; {; {
#endif // __SYS_PLAYER_DATA/ ]" D0 j$ H: g) F K- A* \: A0 M
SetHitPoint( GetMaxHitPoint() );
% `0 R% P: x' B z SetManaPoint( GetMaxManaPoint() );+ C1 d. b$ d5 R' X! ]% {* a4 a
SetFatiguePoint( GetMaxFatiguePoint() );
% P6 i! Z6 K a9 ?8 ^4 J if( nJob >= 1 && nJob <= 4 )
9 O0 E. L% Z' v( ?8 k6 C% B4 l7 S {
5 O3 [' l% j/ N# M( r p* V m_nStr = m_nSta = m_nDex = m_nInt = 15; \7 K$ ~8 a0 ]) ?! J
m_nRemainGP = 28;
- g$ p( p K9 Q( s }
+ f" g, S: P& D! v if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 G/ }" G& d) X* C: [6 [( F) j {3 L, g9 ]: J* Q0 k
m_nRemainGP = 118;
T5 a/ r2 @3 N- }* { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! ?8 b ?9 f; U# m, o$ d: B/ I m_nStr = m_nSta = m_nDex = m_nInt = 15;+ l: _) x$ Q, l, X
}0 K! M$ b4 V ^' s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 l* r- Q( R0 E+ B0 w
{. g3 [9 w3 S6 J$ D/ d3 J5 H$ P; k0 s
CItemElem itemelem;
! S! R6 S- o/ l: _1 z itemelem.m_nItemNum = 1;
% }' j8 |4 B( |) V" }/ a! d itemelem.m_bCharged = TRUE;6 C& f( _! D1 @ U
BYTE nID;7 ^* G" p4 v/ z
$ |- u. P! Q! b& D7 t3 Q8 [
if( nJob == JOB_MENTALIST_HERO )
; h O$ g& b4 B7 h4 [ o# X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* Y; g1 M0 k- S7 b if( nJob == JOB_FORCEMASTER_HERO )
# g4 x9 c1 c) a2 p! n9 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 Q, ?& z+ ^1 q" j/ r z3 s3 C; J
; E/ x! H+ F, P1 S ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- s, \# n5 T; T9 ] }- C& [' N- l5 G$ g) T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 n6 t7 ?' ~5 R1 C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 t; Q- o& @$ r W/ Q4 u2 o' G- U R z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: e/ I" E6 z9 @" w, L
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 J) r% K* t' H# B) Q2 q6 _
( (CUser*)this )->AddTaskBar();*/
3 q8 M( e& X6 S2 i3 a. Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); ?' @ x& D2 m: m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 n2 ^: {% D, [& E
((CUser*)this)->CheckHonorStat();4 h9 h. W! h1 d
((CUser*)this)->AddHonorListAck();
6 o5 R+ g. i+ h* I# v0 v g_UserMng.AddHonorTitleChange( this, m_nHonor);
* m3 v3 L, O% y7 g#endif // __HONORABLE_TITLE // ′Tà?
( Z2 v0 |* g5 }- |! S }
7 v5 ?3 z2 o/ [" t/ h1 @#endif // __WORLDSERVER0 X; X" @+ R* D& S$ p8 a
}
9 K7 b& I) X8 ]' A" ^- G
w9 t5 J/ u' D8 p/ U( \然后你进入functextcmd.cpp并添加以下
5 V+ x2 {& r; O
" o) f( c* C9 K8 ]; \5 B4 F! Y代码:( X! x0 Q: F6 {- k% t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ y' n. l3 B% `( F$ O& g7 e" t
下面插入
6 i1 {6 }. P' Z9 [9 tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! J M) w0 c, e w7 y7 ]
% Y) m& _% Q) K6 t h
然后你去2 a7 ?+ l) @( B [) L! n; ^
; x+ d3 B& H% h* T/ U
代码:( @$ ], l' p4 r. y7 ?( _
代码5 S+ _, F% ]& w( B8 a* \
BOOL TextCmd_ClearPropose( CScanner & s )7 Z2 P8 G) [0 s8 S1 [
{
- U! {6 H3 @ @+ @5 L2 ^#ifdef __WORLDSERVER
2 _4 F" \, y3 \& t, X+ E CUser* pUser = (CUser*)s.dwValue;
# t+ J6 M" X, k1 j g_dpDBClient.SendClearPropose();8 ?2 W2 Q# ?1 l& l. @4 D/ V
#endif // __WORLDSERVER9 K$ ~/ W1 [& v4 s) j% I6 o
return TRUE;
/ H1 F `5 D! J* |7 W3 O3 s1 [}
2 s2 L- d0 D2 B6 @+ f# a下面插入0 W; m3 C2 ]5 C; X8 o
BOOL TextCmd_rebirth( CScanner& scanner )5 Z- l) `6 a8 n. I, t1 E# B: n
{
, ]2 F7 Z* R/ j# i#ifdef __WORLDSERVER U8 o/ E+ n5 |8 M0 h
CUser *pUser;
+ _7 U1 I/ Z7 T+ d2 {( I1 u7 y4 JpUser = (CUser*)scanner.dwValue;
# {6 j& D: e' d! ]9 B* Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( v* Q8 { v4 x# q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' R0 F; S- [' Q. y4 E: ?
else
. T* T2 V( f5 l5 l/ _# m) `pUser->AddText("你还未达到重生条件!");
' w% K# S& ^3 \#endif) h2 `) G0 O1 }; W( Y( n- z
return TRUE;
1 E/ d9 O4 c. C$ t}
9 y5 Y2 o/ r6 d: c+ M- u! `' X( F# l) K. J. }8 |( M7 ^
2 O: ~0 J* G6 J5 E4 L2 g& T# A
* W" M% t7 P5 \$ s( s% q/ h( T# Q3 L6 j+ s5 H h* }; P
|
|