|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 w4 @( ^: T& H3 p# l( v5 q/ p; O1 ]- Q2 T/ e
Mover.h
6 Z) L" ~4 `! ^/ w4 `, V代码:, O. v& ~8 ~9 Q. |) A+ l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 C# q- u5 L0 K" r, ~* @" {6 O
: r% q! \4 C+ f7 O下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % h' A$ z/ v6 i
& ~2 ^) k8 W ?' F- f% R然后你去mover.cpp添加1 t# i4 B# ^0 s' W# g
6 |% e- [5 k- }6 U2 ]
代码:7 _1 h2 G0 r+ V% v p( E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; h9 [8 M) M+ x) B5 |& a; ~3 C{
" t: P7 ~* s# `; t3 R8 C L#ifdef __WORLDSERVER. X& r( M2 i- y9 M: q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 f& \' x% W6 d9 A3 J5 K5 t& G MoverProp* pProp = GetProp();
2 N+ Q3 ]' U/ `# X8 h if( pProp ); ?3 ]) A9 B% I. o9 j/ ?9 R
{5 L( o: j! `+ ]' x9 V! B; L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! i H( m0 M3 \; T6 R+ d {% ?$ X, c% e0 d
AddChangeJob( nJob );2 E; n/ \0 T& v, E, D
}else{. f5 s; i5 x& F3 Z. n5 i
return;
! B" s% N0 Y! R! E$ d. A }0 m4 b0 r, p1 g3 [4 L
int nPoint = 0;
! ^& k1 A1 ^# O+ y8 ?& g# c: B if( m_nJob == JOB_MERCENARY )
6 V; Y8 [ U, |! b$ D) L' H nPoint += 40;
- Q2 `3 g1 S, R" H else if( m_nJob == JOB_ACROBAT )
( |" S& P% p, ?; c( ^ nPoint += 50;
1 C# r$ s, l8 n% o8 X: w) O else if( m_nJob == JOB_ASSIST ), Z! g+ x* l; c! K( d1 E- r
nPoint += 60;
! b! I2 u5 Y, h) m0 b else if( m_nJob == JOB_MAGICIAN )
& P$ E* x! o+ z {: S3 f& I* } nPoint += 90;
+ A$ V0 K7 Y* X% Y/ x% e% S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- Y0 [: _9 ?9 {, z. U
nPoint += 120;
$ ^5 @% v Q8 Y5 u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) U, @$ F9 e* Y$ |
nPoint += 150;2 ^ B/ | }/ l
else if( m_nJob == JOB_RINGMASTER )
, k; q. v4 P* Q, h2 D B nPoint += 160; v5 Q& V, W" L7 R6 A/ {4 K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 [& s# e! ^5 J1 \# ?) z nPoint += 180;, Q2 S7 h2 \9 }
else if( m_nJob == JOB_ELEMENTOR )7 E' H+ T2 g* n8 r; _
nPoint += 390;
8 V. J% Q! `$ m else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 l" J; R: u, P nPoint += 120;
( ^8 N( Z% ?7 e else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ Y0 K# M% E2 X" v: o
nPoint += 150;2 Z1 m8 K; f$ w+ ?. _
else if( nJob == JOB_FLORIST_HERO )
, [2 G; f4 l' ?" c9 }' \ nPoint += 160;
' U2 U7 i3 D+ g- V" `+ |. T+ `# U else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 j$ e) k0 V, b( z3 c4 V$ G$ h
nPoint += 180;
) j) u$ d8 _' {5 k& O( \+ q else if( nJob == JOB_ELEMENTORLORD_HERO )
) Z7 D7 X6 U. a2 P' W! S$ ^3 p nPoint += 390;
" k( m0 p3 N$ ` R7 ~# n2 c y% h/ I$ |
AddSkillPoint( nPoint );* n3 ]& Y8 S" p
m_nLevel = nLevel;. D. U/ }: X, c8 S3 o
2 T# O; i$ a9 b2 S/ f' W( [" i+ F SetJobLevel( nLevel, nJob );
8 l1 o' A5 i) n m_nDeathLevel = nLevel;
/ m P- U3 f& C6 l0 d% j+ {#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 v s# q% ~# y- D* q
if(IsMaster()); z( W$ k5 {0 |+ K. @& M# _0 W! \7 o# a
{
1 B+ k2 p1 I1 U- I* T" \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, {/ b4 R2 S* Y' @* W6 Y# J; R. j, @8 E+ \
if( nLevel > 59 && nLevel < 72 )4 i, o+ y ^. w$ Z+ a
dwTmpSkLevel = 1;7 l b" X" R3 _% W) e
else if( nLevel > 71 && nLevel < 84 )
5 F& I3 M9 k* H: |& u( w dwTmpSkLevel = 2;
- }! v. g! B% g5 ]: J else if( nLevel > 83 && nLevel < 96 )
, I$ Y5 J# ~! e; U dwTmpSkLevel = 3;8 Z* [; K! N q5 q7 [; o% U" _
else if( nLevel > 95 && nLevel < 108 )
7 y# p% @. ~( ~# \* l+ I4 X dwTmpSkLevel = 4;7 c y# v. O! z$ ^. V+ t; B! P, U
else if( nLevel > 107 && nLevel < 120 )
4 M4 t' ?! ^! f7 `+ C dwTmpSkLevel = 5;& N& ], Z* q- X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 v8 f+ G; \- }; W& w0 G
{
}( T, C) B4 @ F LPSKILL lpSkill = &(m_aJobSkill);
" W8 o" W/ @9 o5 m6 Q7 i if( lpSkill && lpSkill->dwSkill != NULL_ID )# T7 v9 Z1 y5 A& S
{$ \$ V0 g; \( x Y. c) L, z( E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, d# M x$ l. y1 q9 Z+ Y+ m+ Q7 } if( pSkillProp == NULL ); ^( Z$ C% s j! M7 ^
continue;: v+ C2 y. l% L; H& p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: {+ x, F6 \3 \+ v* C continue;
* x! ?' [0 _- Z7 F/ w lpSkill->dwLevel = dwTmpSkLevel;8 [( X! t" x! N) ~% |
}
; A7 A( Q+ V2 d }
7 G) t. _' k' z% s5 g0 `# T) R z }
/ ]: _2 l2 U8 [5 s. \ else if(IsHero())
0 K3 d) P) Z9 ]" U# m {
8 k/ d: e \! ]8 `" E" g4 F for( int i = 0; i < MAX_SKILL_JOB; i++ )
. |/ y" L: [4 N# P+ u$ ] { ) i. w* ~. W. M
LPSKILL lpSkill = &(m_aJobSkill);
& ?* h( G; X9 f* S/ x if( lpSkill && lpSkill->dwSkill != NULL_ID )+ k( o6 a7 ^( D' o
{
9 p& a2 m, n5 h6 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ E1 C, K$ S, v: K- P! `7 H( S if( pSkillProp == NULL ); ]3 p% A2 m7 z. C
continue;3 f+ P8 N. @: Z+ b- n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) V, H- ^& U+ U4 Q2 R# q4 z8 M
continue;! Q( A' e, {. W8 S1 b
lpSkill->dwLevel = 5;
# [2 l$ J" P4 _0 `+ M8 B }
, P. f+ R2 n7 y& n: T- m* x! V }
+ ~$ l" E2 O" c8 t7 c }
7 u( a& {3 Q8 d! L3 V/ E8 s else if(IsLegendHero())
; z; b: z( W- }/ Z4 K( d {
6 V# y1 l, @7 r, ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ F+ \, {% @7 J3 j" [ {
& b0 H# ^2 D5 r6 d/ | LPSKILL lpSkill = &(m_aJobSkill);
2 Y7 E( n, b P. i, _# ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 D j+ Q) B8 l, {$ F {" i+ s; Y$ H" U) s0 _0 ] ?5 _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 o- ?% G; w) G. n if( pSkillProp == NULL ): }; _. t! Y! p3 r! ]! m; Y6 Y# ~4 S$ e1 W
continue;
, ?8 ~. G" o. ]' S" p+ q! t2 o1 h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 b/ c9 X9 v3 P' ^ continue;1 C: E+ F* _) w* _7 ?9 K
lpSkill->dwLevel = 5;. v: g. @: R% L7 f5 A8 `1 N$ o
}. w6 P" p5 j- B! \6 d! G+ ^
}
( }: u z& g6 m, C" a7 I" \ }
8 F- j: f& u3 |9 _% x$ C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% |8 n+ T; Q% D/ i if( bGamma )% s! Z+ a! R+ I4 F2 I
{" I G0 D$ X3 B0 w3 H& [
m_nExp1 = 0;3 y v/ o' l* w
}
; Z. x+ d: Q* V" ]0 k d+ M C8 [. F% }$ P. D
( (CUser*)this )->AddSetChangeJob( nJob ); |4 u. N" v. A# t5 i% z1 {' R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* r4 I7 Z" h0 z, d$ [( q9 W2 p
( y; M* r, O# [; J: M" a5 a' k5 w' X/ `/ n
#if __VER >= 11 // __SYS_PLAYER_DATA
' E0 O% p% B+ l3 v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 P0 s# _% r0 W. i* ^
#else // __SYS_PLAYER_DATA( A C5 w5 c6 A& _" v& e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 A+ R( a& E1 R# }1 c! y- C. |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ Q u' U: q q/ P5 } if( m_idGuild != 0 )
% K2 v! x# {7 U* c4 v' ~7 @+ T g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 W2 s& S Y N' {; C& h9 u#endif // __SYS_PLAYER_DATA
! `- a8 Y" j, m0 H! o; R5 S' X, c SetHitPoint( GetMaxHitPoint() );/ E% n" D* w/ Q4 R* }4 D
SetManaPoint( GetMaxManaPoint() );
- c9 X, H, [' M6 g# V( @. _ SetFatiguePoint( GetMaxFatiguePoint() );
s: S! i/ y7 w8 [2 j. _4 E if( nJob >= 1 && nJob <= 4 )9 J3 M- R6 ?( {3 a/ [/ t/ m
{
. W3 b& S# h8 ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 E$ R2 L8 D7 ^' |# [, f, ? m_nRemainGP = 28;
5 W/ P# N& s. ~* N }
0 L# c2 ~- Z/ t7 [3 v3 d1 q+ D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 S5 C) e0 Z; H. r/ z
{
# H) \$ W, Y, V m_nRemainGP = 118;* w; X( j/ X6 e1 G8 A( {- l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 @8 D: W. v! O8 p m_nStr = m_nSta = m_nDex = m_nInt = 15;
k' I+ K, r8 H }; V4 r; L) I' |3 ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 T4 v$ |- o* [& r3 p) K
{
, c! ` p, l" m CItemElem itemelem;; r# H- B$ B- w
itemelem.m_nItemNum = 1;
; V2 [7 X8 z$ J, U itemelem.m_bCharged = TRUE;5 \0 n$ Q1 f+ n! F" F( C* m
BYTE nID;
1 }6 e, A8 }8 d9 q% A# r; s; A' J+ b0 A. s' q' `
if( nJob == JOB_MENTALIST_HERO )
! z9 {# @0 Q! D# ]* w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 f b2 }- U: ~3 ?6 s9 z if( nJob == JOB_FORCEMASTER_HERO )
+ n2 ~* ?) Z! ]8 a0 G) u4 ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 @9 Q; I# h1 U8 M- @+ }9 W" n9 F
b& `$ o3 T; W& L9 [, r& i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 ^# P5 _" b" n$ Q* w$ t }1 i( |: w) w$ q1 m% _8 O$ I9 J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! y6 r' t {3 U6 c! [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 R# @& F* Z' _* D6 |5 }6 u ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# b) K6 _% ?' k Z, {9 ^2 j /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ p/ F: ?+ t% O* M( Z& i
( (CUser*)this )->AddTaskBar();*/+ A; [2 v6 A: z9 [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 y0 h! Z/ d* @; A) }3 H
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ B( [2 M; ]+ I# E& _) q* w: ~ ((CUser*)this)->CheckHonorStat();" n2 F& v5 m, a& L8 C/ S7 C d
((CUser*)this)->AddHonorListAck();8 h; `/ Y S/ A. K2 Q/ f' a/ Q" C2 H8 V
g_UserMng.AddHonorTitleChange( this, m_nHonor);' u. g: K9 p+ Y, a$ e
#endif // __HONORABLE_TITLE // ′Tà?
0 ~- ~& K) @/ J1 P: B: L$ o, B0 a! K }
: \: ^8 l3 ~1 V" P/ p7 S#endif // __WORLDSERVER
5 Q& b5 k" A: @( G- x}
0 }: r" I d% _, H( s( V) X; A8 Y9 y# ]
然后你进入functextcmd.cpp并添加以下# i3 y: l2 u) j ~, A: n2 Z; S
) ?, u) i& z, V: Y& r, \
代码:
( S1 p& X' C' _# S4 ]- `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! x k& T1 Q; @下面插入
$ \; w. x9 s' e8 |7 G! s3 aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % P. U ~7 _% T8 m2 c. o1 s8 k
( ]2 H" x: D8 Q) W8 l然后你去. {8 i6 q7 N6 V1 {, x, Z
{3 v% |9 E4 S2 M) E. m- c) p代码:
1 b2 `7 N* l' s9 e5 h代码! z' s+ ?! c, Z2 }4 m8 V! z4 A3 S F
BOOL TextCmd_ClearPropose( CScanner & s )
# b' \; k6 \- e{
) E8 U' c. h; \* H# \' Y# a& ^#ifdef __WORLDSERVER: Y# [" n* Q$ E6 Y# L S
CUser* pUser = (CUser*)s.dwValue;- L+ c D1 R7 |6 Q) q! D
g_dpDBClient.SendClearPropose();
: K, {( D6 w o1 i#endif // __WORLDSERVER; u$ w7 a, b/ w& r6 f4 H* Q2 S
return TRUE;
: g" W1 Y( W' T3 r- B}
& }" ~2 V1 g! w6 c$ M/ |下面插入0 Y* l$ B% r5 E* j; q! I2 E
BOOL TextCmd_rebirth( CScanner& scanner )
" r' f9 U( s+ }{" J. F l) E& w0 {' `" d4 ]
#ifdef __WORLDSERVER
) @+ M0 {3 Z) F" TCUser *pUser;6 M; { k- \# ]% z+ V8 S
pUser = (CUser*)scanner.dwValue;7 p5 b' t& P7 d9 c
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 s# Z) E/ T" C) w) v _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ c3 ]8 Q6 X1 q. ^else5 j. V5 {$ J8 X" ~4 Y+ E. [
pUser->AddText("你还未达到重生条件!");1 N) T3 j! r( [/ O7 Q2 B" A
#endif
' {+ Q. T6 W0 ~- q c; m6 Freturn TRUE;; ]: K- M, [' e: E; `
}
" s$ K. s5 Q: ]0 \) q, R4 P+ l0 t+ k# \! r: W! F
- H8 j; G" R& y; M. d! q1 m
/ f2 }0 X% a3 b$ D" N( r0 [% o7 p) R- r# l
|
|