|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 `( f C( ]% s6 k Y* ~
4 F9 I u" @9 y/ I. c$ a; r% @% zMover.h* q- k6 R' |4 G
代码:* M- H1 e; R' P3 C8 `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- Y1 E) R5 j S. c. X
7 L* n7 q% Z& C4 t1 m, F7 a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. S: @% J% r: T# a' Q/ ^* ?3 I- Z7 q4 { E3 ~% n% l* a- |1 M
然后你去mover.cpp添加
5 E( f4 B4 g7 B; G. o/ F4 l
3 K" P/ H; C( _5 a' c- [: R N代码:" ~2 M# V# A7 V8 f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% @8 C7 k w( k" ^0 }) H
{
# |3 Y- Q3 P$ d. [9 X2 ]' e#ifdef __WORLDSERVER% K, ]* O* ` o1 \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ `% m! A# V) {* T% ?, w; \
MoverProp* pProp = GetProp();
( k* J* J) F- p2 { if( pProp )$ i( ?3 s' r; ^. j m
{2 k9 O& n, |0 R! j# U3 j6 g3 P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 |9 |; x ]/ v7 Q4 u, X* F {7 i' L! R7 j; d& q: N1 G
AddChangeJob( nJob );
7 s$ X" b# I/ g( ~% ]; l }else{/ Y/ @% U9 h9 y1 V
return;
' r/ X- B& O2 ?8 ]/ n0 u4 n7 S# g }
$ r7 d& O: K7 S9 @4 [( b2 J2 c int nPoint = 0;
; @, P8 j0 D' y/ x: j1 T if( m_nJob == JOB_MERCENARY )
7 K( i2 M- U# Y" w' v8 x3 k" c nPoint += 40;
$ Z2 A( T/ i0 W, \ else if( m_nJob == JOB_ACROBAT )8 U( ]- f) B. x6 m! T& V- R
nPoint += 50;
) g; C9 R9 |" s+ `8 a else if( m_nJob == JOB_ASSIST )
7 K S1 u: A9 U+ ?3 V' F nPoint += 60;5 t, q2 a0 ?6 {/ S1 K6 ?7 C, K
else if( m_nJob == JOB_MAGICIAN )5 O2 R7 [- M8 r( L' f6 f; P. }
nPoint += 90;! L' n6 [0 V4 d" M8 p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 C" t2 k, k i- @* P0 C nPoint += 120;4 a/ U/ _4 H# v- T% a- w# g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 r0 e/ V% X6 V
nPoint += 150;
4 s0 B0 }9 }% f& w" I1 s else if( m_nJob == JOB_RINGMASTER )
9 K' w: q) ?% n" J0 J1 R nPoint += 160;/ r- f7 L) {1 v' X1 f1 z& q5 M% U. f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- O: F4 b" I" \$ \8 i" P
nPoint += 180;7 Z& G$ i( x V$ k: B3 `
else if( m_nJob == JOB_ELEMENTOR )6 g& a: A" y( `
nPoint += 390;
; t4 b! k% m+ v$ ^! Q5 q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- w$ j0 }! a& G; x* r
nPoint += 120;; B5 e. T/ f$ ~1 y: t) L. @* ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% S( U# g L, P# F* [" m( k# Y nPoint += 150;$ `. g# ?# d* A3 F' c7 r* I- o0 ?
else if( nJob == JOB_FLORIST_HERO )4 U" U0 E2 |/ \5 T
nPoint += 160;0 @; z$ c# C' r7 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" G, |- i; _2 ^* X! @' X* O0 ~ nPoint += 180;
& G$ P9 }( B1 L' \. U) K( b else if( nJob == JOB_ELEMENTORLORD_HERO )0 I& ]* e3 z7 N/ K
nPoint += 390;
3 b- C) q' J- g+ q& _- c: V4 i9 _, E5 L. z
AddSkillPoint( nPoint );
% r# Q# K& ]( j' ~7 \2 Y; Z+ e m_nLevel = nLevel;
V' z9 ~* s, y" P; C3 F- L; s, I. w8 R3 F& R
SetJobLevel( nLevel, nJob );
3 w+ v7 b, s; V; a$ E6 G2 H, V$ g m_nDeathLevel = nLevel;: y `& z4 m$ O c9 i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( ~& F9 a1 G8 ]& F) t: A% r! u if(IsMaster())
# P" U0 r/ h/ ^* R! x$ A {
/ l# Y3 v4 l3 t' y) g) d4 p int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 x8 X0 s$ A5 T \: q if( nLevel > 59 && nLevel < 72 )
: m/ W7 S# l2 _8 S5 i dwTmpSkLevel = 1;
6 H: E' t0 p* L2 p0 R) d! d else if( nLevel > 71 && nLevel < 84 )* `* Z2 C7 V, }! [. K; v
dwTmpSkLevel = 2;
0 q2 ^/ w5 v6 m8 R: m5 ~ else if( nLevel > 83 && nLevel < 96 )# G# D4 i5 s) m/ s/ ]5 b% ]
dwTmpSkLevel = 3;8 t v6 ~' j1 u
else if( nLevel > 95 && nLevel < 108 )- Y3 v# X G) @# d7 V1 }2 i2 ]
dwTmpSkLevel = 4;- B- w" t: j( N: X( G6 y7 ?
else if( nLevel > 107 && nLevel < 120 )
7 m& _6 J" x. t! a dwTmpSkLevel = 5;5 L5 }9 ?% E: ]1 K5 B" E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - z. |( p0 |/ s" e0 L+ f- a
{ ' ~: c% Z4 g+ K2 z# |
LPSKILL lpSkill = &(m_aJobSkill);! H8 C+ z1 [" o
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 v% V9 A. P2 r% u1 u1 z
{# G! v" U _$ C& X$ f7 K G- ?% f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) P; N% E1 E, ~
if( pSkillProp == NULL )
: P3 E. e0 c2 R* S# R! l4 z, \ continue;; `5 X) q+ ^+ w, }8 T7 `4 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& X1 S9 ^ t% a# y0 w continue;/ t8 p& Q& U- {4 I* o1 X* \5 R
lpSkill->dwLevel = dwTmpSkLevel;
6 l# k$ V! v1 c' [ }
* R: z3 ]; b& @) m" F }
3 p3 V* C$ b) G' h. V; F q }
5 B- H) \2 b7 \9 X else if(IsHero())
' G) E3 n( |' y1 x% W) ` {+ T! f% X/ i% \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. D+ A8 e* x/ ]7 X4 ? {
0 \+ ?5 Y7 b$ c2 n LPSKILL lpSkill = &(m_aJobSkill);
5 a" b; y7 p2 K9 H6 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
. l ?$ J( A/ j+ g {
2 {$ |( X$ w, g) m1 l, x$ u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' h! K, ?) u" G# m6 u" k. B6 x4 F
if( pSkillProp == NULL )
, ]* j: d9 ^6 |- D continue;
( A% \; b9 y5 i1 b3 }; {4 p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& i, B( H9 ~* \ M+ y4 @
continue;
) A9 v: _4 g4 i( u: W7 @ lpSkill->dwLevel = 5;% X; t, U$ N9 N7 T$ I
}$ y8 n1 c0 d j- P
}- s7 B9 O3 G, H; o' s1 m
}
! n; N% Q$ M: G l6 E else if(IsLegendHero())/ O+ L# s* w3 Z. m
{& {0 v5 [' ~% V% t% P" b8 i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 M2 P0 m6 |, S. _( q0 w
{ : e7 w4 q1 M. j% {# x
LPSKILL lpSkill = &(m_aJobSkill);
* o5 |9 p X/ I% w" p7 k0 n if( lpSkill && lpSkill->dwSkill != NULL_ID )9 B' x; H7 \2 ~, ^: t v& d/ s2 P
{
( N/ l8 f) s! B+ f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! H2 V/ O9 Y! S3 b
if( pSkillProp == NULL )1 g \" n+ g% ?7 o _& [
continue;' g* B& r- K% L3 n* d% U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 k; T' B1 g- e continue;
+ R7 e V1 M1 v lpSkill->dwLevel = 5;
& {9 ^% k; N; t: V }4 d/ l; {# v; @7 q3 P2 B" ?, w- F, I
}) I8 x, R/ U8 r- w
}# u+ y/ a4 [' m( ]$ p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 G+ A0 v$ }6 a# m. c. u, H if( bGamma )3 @, ^' v2 u- M" l* @
{2 T3 o& ~0 m+ @6 R }9 F$ y% o0 m
m_nExp1 = 0;: h; c+ d. G$ {7 @' Q
}
5 ], i: a3 N$ T9 }) d; c
3 _' Z% ?5 ^" N# X9 p ( (CUser*)this )->AddSetChangeJob( nJob );$ @9 M5 Z3 ?) h. j6 t- a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 i2 }0 n0 X, i k9 t4 t# k7 o3 P, B5 x5 H
2 p: Z9 o4 J& E! g$ k
#if __VER >= 11 // __SYS_PLAYER_DATA
- ~+ J j' w4 U2 k! ~& C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& [5 z9 }2 b/ Y+ r4 R1 s+ @#else // __SYS_PLAYER_DATA
& c* ^: i- ?, U% D1 g9 e6 T4 L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 i& R/ }' ]* h
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 X' ~! t- g5 G! H$ i if( m_idGuild != 0 )! x7 ~1 ]. u8 j) d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 a7 {$ L4 P$ f3 Z
#endif // __SYS_PLAYER_DATA
P! D: s) p+ t" h% W3 x SetHitPoint( GetMaxHitPoint() );) y3 f7 i9 t4 Y$ G5 g3 d0 b' r- ?
SetManaPoint( GetMaxManaPoint() );
. |: j% K: y( P0 t$ W, G- r SetFatiguePoint( GetMaxFatiguePoint() );; b# H+ Q: ?8 ]) w4 e& ~* s0 R- G
if( nJob >= 1 && nJob <= 4 )" Z7 \3 V0 a( U$ n& }1 d7 t
{
, J! k5 g4 `5 v$ _" U m_nStr = m_nSta = m_nDex = m_nInt = 15;
; c5 }6 i8 L" d8 T/ [& z0 | m_nRemainGP = 28;: g6 k1 ^. H1 w+ K. j
}8 ?3 D% Q# N' X0 z6 s3 ?7 Z% h; M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ z. d7 k E- j e. s+ j {/ A( f4 ]" Y6 R6 w" a
m_nRemainGP = 118;4 E- Z- v! M8 U0 y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 |4 k( `5 A; C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 ?3 i$ J+ P+ x9 l" B1 t' Y }
2 V8 h$ O) W4 u# Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), r9 ]8 K. H; o+ Y5 O' P
{
' G Z i" Y) n! U5 q; Q CItemElem itemelem;
3 S5 R2 [0 H) K, I( } itemelem.m_nItemNum = 1;
) r0 k0 ^" F* a+ b0 ?2 p+ N T itemelem.m_bCharged = TRUE;( D+ [% G9 X) [# j6 X+ A; G3 {
BYTE nID;
2 a4 J! W$ H; o" N; \% N
0 }& C$ c! [# w l9 ^) [& X if( nJob == JOB_MENTALIST_HERO )' f$ o- u6 d6 P9 J4 f- r$ q7 c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 k. `0 A8 V# `1 u
if( nJob == JOB_FORCEMASTER_HERO )
. @# O/ ]! R/ ?' Q: u E, ?8 | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* N+ m$ q# y! ~4 e$ M% f$ z, R* x# R8 E" Q. x
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" F. J; R9 o/ w8 _ h; I }- o( F+ C; `/ p6 h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" ?* c1 W1 C+ Z" E1 l* B! U W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; M3 T( l! a% @; q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 L; B, o8 Z) H! c; c
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( k0 M. d/ D& ~+ \, f8 o" Z, G9 H
( (CUser*)this )->AddTaskBar();*/
$ N: {8 l$ h& j. G5 r9 a) m4 r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! d1 k1 {$ j7 i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% y7 G. }& ?7 z
((CUser*)this)->CheckHonorStat();
0 {. ]/ d7 z6 R& b ((CUser*)this)->AddHonorListAck();
" T m0 u; c; X g_UserMng.AddHonorTitleChange( this, m_nHonor);% Y8 p8 o2 \6 q
#endif // __HONORABLE_TITLE // ′Tà?% p* u; \: S. q- \
}
/ s% m Q# S; K+ f. w( Z#endif // __WORLDSERVER
k: g/ ^% V: _/ E5 ^8 @2 x} 0 D' V- o9 G9 U/ s# m9 g, Q0 \
' A8 ^+ `: n* n- \/ }; i% ]% t
然后你进入functextcmd.cpp并添加以下% u; \* Z! N: A
$ K% g8 P y$ S! U0 w& @代码:
7 u d* {- I" G0 B0 OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ K0 }+ g) ~4 ^$ W7 o- H
下面插入
. N1 e1 H, ` j/ y+ d' pON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ }6 n9 W9 ]8 n- P+ S# [: |9 Z5 j
* Y* |. q# l" [3 D& W$ C然后你去! P& r! R& Q# F* Y
) `' b$ M# ]0 ~) u6 s9 X- g' ~3 ?代码:2 T4 z- q- \! @
代码; D; W4 K- U, ^) x. ~8 I
BOOL TextCmd_ClearPropose( CScanner & s )
! l2 r( Y3 d4 X k8 [{
9 ^0 Z. P c4 s/ F# D( s#ifdef __WORLDSERVER
0 o* B$ n2 j0 z* o CUser* pUser = (CUser*)s.dwValue;5 q* Q: Z+ E4 q r, ]2 M
g_dpDBClient.SendClearPropose();
7 U+ u# ]1 O5 R#endif // __WORLDSERVER
" |. D& T' W2 X- w- V) b% D( U6 m return TRUE;+ P3 e& ^% M+ }# u2 X5 Y t# y
}
E+ B; q2 e5 n2 v. d, g* B- p下面插入. r+ C/ C, g- u |# S& J# S
BOOL TextCmd_rebirth( CScanner& scanner )
3 T0 t6 d1 \/ o9 o{& I. H; q2 W" {4 w# [; \6 m% o2 K# I
#ifdef __WORLDSERVER' y6 M) ?( p; [9 T
CUser *pUser;6 L; a! f2 ^: y& e: n; m* O
pUser = (CUser*)scanner.dwValue;
% ^$ ^0 M5 u% D X, |8 q6 hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 T U8 t8 u, f' D6 |5 C% z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& C. o. i& T3 S" m! Pelse
8 N1 n% ]+ ]6 ^2 R6 \9 Y3 spUser->AddText("你还未达到重生条件!");; t0 j# H, S* v; }
#endif' ]4 t- ]% N2 S6 v
return TRUE;" Q; S3 u# v) x* e* y
} 8 V: W5 }" z( {& k3 q7 A) K
6 v3 _6 l+ l' n
2 h2 j7 N e. c1 N
, ~/ ~5 {+ Z! a- I1 y6 m$ r/ b; s {! N# T+ y
|
|