|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 n; s5 O6 R6 Y" P7 m5 [- m
" h2 B6 }! F. K# U1 [# ?5 JMover.h
; x( z: b/ j Q! b; w5 k! F t9 s( x代码:! d" L' P( @6 ~; G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 Y2 f9 y: ?% p# G9 i/ q
/ d* Q4 x1 k5 I% |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * N. d* _2 Q9 b! @2 |2 ]% z9 s5 J
8 w# O6 L5 n; n/ d. V6 d$ q
然后你去mover.cpp添加
, ]: z, \% l0 D. C9 H3 I3 X0 l5 |. d$ k4 V, ~
代码:
6 E: K+ L) m) }1 \% F" Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# S! H* U8 b g' Y( `/ X{
. w7 B* k5 U4 \#ifdef __WORLDSERVER
: W1 p- H }; |5 Q5 S // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! X" R! L+ a% I b# T MoverProp* pProp = GetProp();. ~- C: s: w1 H r# D! M
if( pProp )% W5 e+ x b: r" q- W" Z
{ E. E! I$ H/ K: }2 e w! X3 ~7 o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" \3 u- j% R6 D {7 `9 F7 P' ]3 Y/ U" ^
AddChangeJob( nJob );9 r& w7 n: e& _2 o# E; s2 l! j
}else{2 z0 K. Z9 z! y$ Q) g @2 V
return;
% b2 Q6 O" g4 U9 r7 ]. x }* H( w( p% F' b
int nPoint = 0;4 r# y5 n8 R" s: t; h
if( m_nJob == JOB_MERCENARY )
9 ~( a; l* b g( N( x/ g nPoint += 40;
$ i4 u5 R2 s: ] else if( m_nJob == JOB_ACROBAT )
- h( Q) U- [' n! T6 ]8 h7 f* j nPoint += 50;
: Q: ]8 E8 Q: M; H+ z/ @& w else if( m_nJob == JOB_ASSIST )
. z5 O' B( B2 Z5 H9 [6 G nPoint += 60;) A3 f" k* u+ c/ p" W, }: [7 }
else if( m_nJob == JOB_MAGICIAN ) m" l, H4 h# H
nPoint += 90;3 p2 N3 W& c! l0 l. c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 g- t3 r- S- F+ i, d$ y1 d3 i4 w
nPoint += 120;5 Q2 Z2 ~, r$ S3 `6 n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ {1 B, e3 s g# c7 s
nPoint += 150;
4 N8 H4 _7 j' C4 _ else if( m_nJob == JOB_RINGMASTER ) x/ n, c- `& G
nPoint += 160;
3 N( A4 C! @) ?& P S% i& r8 R) A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) u& j j' M2 B( r0 F" P
nPoint += 180;( s/ h1 P. ^) C& g/ \8 U! m
else if( m_nJob == JOB_ELEMENTOR )0 G6 r3 R- z" |/ r
nPoint += 390;2 m: B8 y+ ~( n' U8 K' \! P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 H7 [6 r/ q* b4 \, J
nPoint += 120;3 N6 o7 g1 ]+ |* Q1 i* D7 M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* w) ?" H8 j& v, D1 ^- y r nPoint += 150;
" P+ O" |: q, |! {' B L7 D. F else if( nJob == JOB_FLORIST_HERO )0 e1 O9 r* v4 j3 A
nPoint += 160;7 T; \' u& B" `" d# M4 c6 u9 C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 N9 l4 G+ N( T* r1 b" v6 S4 H
nPoint += 180;8 l2 S2 v0 ?0 G
else if( nJob == JOB_ELEMENTORLORD_HERO ). x3 T" e$ a' ~! R# I6 T
nPoint += 390;
8 n2 H# I/ {8 j$ a0 X8 d4 L: b5 J# x$ S" f- Y# z
AddSkillPoint( nPoint );
% O( p4 d0 p# Q: [# E m_nLevel = nLevel;+ Q, f9 T f3 W# b; @. N- }# p3 F' O' H
, P8 {% }7 I9 `0 i- M
SetJobLevel( nLevel, nJob );% W" k+ ?4 m# B
m_nDeathLevel = nLevel;
( ?" b J) `& O#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# m! E& v5 }; T; C if(IsMaster())
" F0 s; z2 v1 k( d {8 m& a9 e* f& V" I( n, @/ }9 c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" \% b2 @2 L" i
if( nLevel > 59 && nLevel < 72 )
9 I. L& r+ I% y+ M dwTmpSkLevel = 1;' A: R- b2 Z1 O2 h5 ~$ d* q3 d
else if( nLevel > 71 && nLevel < 84 )" f& b; s, V9 S- t. ^6 u# O3 H' X
dwTmpSkLevel = 2;
. B: H# ?# R: c8 h3 @- S w else if( nLevel > 83 && nLevel < 96 ). _8 z' l- j) I- e9 F8 N
dwTmpSkLevel = 3;
0 S+ {/ h% \8 N1 E d' [. t9 @ else if( nLevel > 95 && nLevel < 108 )
" m5 d! P+ {9 i" { dwTmpSkLevel = 4;6 q8 [# j2 `% z, Q7 [3 R
else if( nLevel > 107 && nLevel < 120 )
; s4 B1 R7 m* @3 j dwTmpSkLevel = 5;
( _1 D0 F* y9 L! Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 O) T- ^; f5 d; Y { 4 G; M1 ]3 Z# l2 r2 r
LPSKILL lpSkill = &(m_aJobSkill);7 z+ C& F0 B3 o6 C$ l9 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ Y- l9 {( }3 Q7 w
{
8 X) n4 k5 l/ |( { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) X! D$ S. [2 v7 ^0 d O/ y
if( pSkillProp == NULL )
# n& x1 ^$ e7 w2 ~$ _ A8 N continue;
2 X' @9 f# r: [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 B& h/ F- a q# }" |( }' r( x
continue;! u+ x2 N# A0 |5 T" [) z
lpSkill->dwLevel = dwTmpSkLevel;
$ N- K0 j/ J @% ]$ v }
& N& @7 j1 k. M) V* ^( i }; l1 s( s* g* B1 r8 Y; d( H
}0 O; i3 I! ^0 z
else if(IsHero())
1 @/ X, U1 |: k {& f& J. h) }2 K: y2 w- I1 k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' c1 G; w2 R+ }/ k5 q {
9 L- t* {* x- b( o5 e* P LPSKILL lpSkill = &(m_aJobSkill);
2 e+ ]! G2 M) s4 P7 B/ b7 n& J3 D( P8 G if( lpSkill && lpSkill->dwSkill != NULL_ID )6 n' n- s N9 f& Q% y% E4 s0 K2 w
{- B, c* ^% m0 Z m& O% t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - J; h" e" _3 G; ~) w
if( pSkillProp == NULL )
3 v/ D. ^0 ~% q' F continue;/ }9 n& q3 v+ G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- T5 t' ^* ~; ]. a) d2 U* ~8 |
continue;; t! L$ v) P. j/ M# L: x" ~
lpSkill->dwLevel = 5;
5 K1 ^) a/ h# G( d }- _* Y5 O" m: [; e
}( E9 m. v+ X4 Q% g, O: a: \# r
}0 T& k1 b% R0 } D
else if(IsLegendHero())7 b$ v: a% K: v. K5 r. N
{8 T- C3 x, X( `# A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ C- _ b- B/ m8 i! Q: ~
{ * O6 o; E' W5 I" L; l; D
LPSKILL lpSkill = &(m_aJobSkill); E' a" M; V* V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 S3 P0 z' y' a+ x' @ {
- U7 A6 [+ R2 Q5 X8 a& c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , L2 k+ M; s4 m$ {2 t* Z' L2 d
if( pSkillProp == NULL )- Q5 b" V% T+ X% S# F
continue;
) W2 N9 \$ @5 w g6 { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) M) |! p, K! Z* G) ^ continue;
+ o7 s) G6 Y! F( u" A lpSkill->dwLevel = 5;1 _+ V& A; f- b R2 e7 v- N+ `6 s* h
}
0 Q/ x6 `8 t" A/ ^" P" I }" ^8 s2 d$ s7 [3 K! o0 J" p
}
! y7 V7 s/ K. s0 K A" t#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 C- q6 z8 s2 w, s* J% I
if( bGamma )2 n: ^0 n% J% G, ?
{
* A& n2 j3 m i0 w6 o m_nExp1 = 0;
/ {( e2 _, C$ o+ ` }
# E7 f9 m3 B1 w1 r' ?5 H8 I
1 h: B: E9 M2 h, q1 d% A ( (CUser*)this )->AddSetChangeJob( nJob );
; }/ X( y7 K5 ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! t4 t2 X7 s4 X- _4 I
5 K3 K' @7 s" a; G; R- y+ P4 j9 `. N2 X! b
#if __VER >= 11 // __SYS_PLAYER_DATA3 q" m0 }' Y6 R6 ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 h3 }2 v2 ~) y$ K& L#else // __SYS_PLAYER_DATA' x% l1 v% Y0 z1 w5 i8 q V5 ]& r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- L* S5 t' A0 J% |0 s8 l. [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ I; e) b5 k5 F* i/ v3 z" X
if( m_idGuild != 0 ); W9 a+ V# Z/ @. f, ?2 W! \
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ K9 h! H0 D- g- c
#endif // __SYS_PLAYER_DATA; g) @+ b- @/ H3 @& n8 B
SetHitPoint( GetMaxHitPoint() );/ j# l: s' d0 B1 c- E: y; _
SetManaPoint( GetMaxManaPoint() );
9 g0 A7 d0 F4 y+ R l' Z SetFatiguePoint( GetMaxFatiguePoint() );
, ]. ?% l) B% W& n# K if( nJob >= 1 && nJob <= 4 )
S t$ s0 r* E f9 R {
4 c. y* m1 m+ P5 h m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 ?8 C) U, v0 R' E m_nRemainGP = 28;
0 M9 K# ^! H6 N: D, w7 h& c }
s: y9 d: S$ g% l: |+ F7 U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; x- L( r* o6 u' \+ ^) q {
7 E2 ]9 T5 G( k m_nRemainGP = 118;
6 ^" A& J% c8 r4 e" H7 U //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 A3 @, q- l4 D/ Y/ Z$ A$ @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! d/ L. C2 ]( K, {3 { }
; c; W u- a) r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* e" h4 U2 P( ]2 J, S
{
% R7 ?/ U# v4 c2 L6 z. I CItemElem itemelem;9 \- s& L# \6 T# J% ?- b
itemelem.m_nItemNum = 1;
5 z4 G$ m: H) f$ G$ z- f itemelem.m_bCharged = TRUE;
& w0 A. F4 N2 Z" i! j BYTE nID;
* w6 W9 @% v6 J6 Z }+ Q
* E5 r8 B& g! P# |6 O if( nJob == JOB_MENTALIST_HERO )2 Q. P5 x* T# @1 e" J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) O8 j' Z' A2 |- s, | if( nJob == JOB_FORCEMASTER_HERO )2 n+ [% a- f& _* J! c D* ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" m3 @' N' W0 C! W) L: E
% l( m7 W5 M4 Y5 f& j* | ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ X4 Q& h5 h% C+ j$ L' I
}* g/ p* Q% ]/ Z. w$ n
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" A6 z0 x5 Q* W4 l$ ^3 p+ @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ y" L# n+ w4 T* E7 @/ F3 a$ Q+ ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 s9 _2 n" p& z& Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 F/ _* i4 m) Y* _ ( (CUser*)this )->AddTaskBar();*/
5 r; C j# b7 k+ K3 e7 w- m: X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); F9 s3 X8 ? l* L! T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ d$ }1 {7 Q$ `" y1 B e ((CUser*)this)->CheckHonorStat();
6 g! l7 Z8 n) {, z ((CUser*)this)->AddHonorListAck();
$ ]- D2 P% @1 { g_UserMng.AddHonorTitleChange( this, m_nHonor);
g6 V' e+ \7 x#endif // __HONORABLE_TITLE // ′Tà?3 z1 k9 ?; n" p( p. Q6 H
}/ L9 h3 t+ |$ ~2 M4 S2 {9 C
#endif // __WORLDSERVER
4 G2 K/ j2 G- n# x} & u0 j7 C$ B c' S; }
- `. X/ s# W% e' n6 p
然后你进入functextcmd.cpp并添加以下3 i8 o5 v) M7 T2 m
0 y& i } d0 H- @4 L代码:
6 x; B$ M# n# y8 X e5 M _ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 u, W5 I7 _# f( K
下面插入! K, F. f9 n7 l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ r( _' F0 S3 _, V3 [0 T) s9 F4 }* w; ~) o
然后你去: u! u* T; s6 s( A1 F
* g: p- Z8 |; ?代码:; N0 ]8 k# b. A& D
代码
2 C+ T; x3 r! T1 O, kBOOL TextCmd_ClearPropose( CScanner & s )
5 _4 B2 v' C. d4 I{
3 U, V7 r F! G#ifdef __WORLDSERVER
# J4 n, |/ D$ z3 U/ |1 z CUser* pUser = (CUser*)s.dwValue; Z. }: H: a7 f9 H9 F" P
g_dpDBClient.SendClearPropose();: B/ n l" N) I. i$ V& u
#endif // __WORLDSERVER
# x2 X- h! [" v+ f return TRUE;4 V) P8 q0 y9 s0 K6 S1 L
}6 y3 E7 m2 a! C, b
下面插入
, i& d6 d1 h3 b A% TBOOL TextCmd_rebirth( CScanner& scanner )
5 y/ R( V# {1 f; g{: N. ?2 p) i7 }0 h' J/ y- y
#ifdef __WORLDSERVER
' E5 x* Q# p$ I) O, xCUser *pUser;
- t8 r( k. C9 a) \pUser = (CUser*)scanner.dwValue;
, k% Z, [) i7 c% @if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) r5 i6 X0 v% Z3 x
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' M+ Y& N% m2 H! o* m) s7 E felse
) T7 f: w! P9 L3 Y8 g6 v* DpUser->AddText("你还未达到重生条件!");
) A) n! r: I4 c6 L+ W8 x#endif- E9 `, T2 A/ ] t1 l
return TRUE;' [9 e. x. N! y! w/ J- F/ e$ W: Y
} " m$ k) _. g f' A" R
$ h4 O6 D9 \$ Y! @- c1 A5 ^, n/ V I2 l- t9 X
6 q6 S f7 A% b$ L. _
# U$ {+ g' _0 h5 z! q; G
|
|