|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' X( Z q6 m; l2 P8 R4 u# x
9 M& g! H) D R5 c; W
Mover.h
: H! \7 l' y) @代码:
4 F- f: K' z& j" |# v0 i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% O7 y& M" N# ^- X, @
: @4 G- J0 j+ \4 q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 S7 i6 m6 G9 c% c4 z+ x
y1 }/ n# y5 A( K3 |; D. H- [
然后你去mover.cpp添加
3 e: N# @0 J% @9 o3 k; l" S* s
% Z6 G; ?3 p$ N1 c) @代码:
8 H7 H6 p2 Y* w4 ?# m) V2 _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): x0 Z: e4 t; E, m0 b
{
7 y1 L. y3 l3 Z3 {/ n, z6 ]. M#ifdef __WORLDSERVER
- \# s5 j1 f1 y1 H5 i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 ?( a6 r, p) h T: Q; p2 A0 q" o% S+ b. Q* | MoverProp* pProp = GetProp();
5 H3 F. [) T/ ^4 X* X if( pProp )
! h. R* i" r$ `/ G {5 L: b5 J4 D, Z; i8 A. R+ ^6 \+ `- ?% S( V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- |+ H7 l6 G1 v {3 }8 c o) i' a' \
AddChangeJob( nJob );
8 I1 L* X# e- @1 T1 _ }else{
0 U/ b8 H- J0 T- j2 o: p return;9 Q3 b4 L, w& N( H! b7 X
}
; D0 D8 N- E _0 f: M int nPoint = 0;8 c: p: ~/ g$ O. v) u% n& G
if( m_nJob == JOB_MERCENARY )
: c' B" v% R, f0 @1 S nPoint += 40;* f+ b7 _: d" e o
else if( m_nJob == JOB_ACROBAT ) {3 z* E7 e* s) z1 z' s+ B/ C6 J
nPoint += 50;
( M; W1 o: Z5 P' ^ else if( m_nJob == JOB_ASSIST )
( ]7 T, C' c# ?/ r- `8 R4 ^9 y nPoint += 60;/ u, `) C+ c& Q4 v' C
else if( m_nJob == JOB_MAGICIAN )) o% M" q0 h. m4 A+ \( m
nPoint += 90;
6 f) \6 D9 T+ F else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! R5 |) x& S( Q i9 D& l8 l2 H! [ nPoint += 120;
5 k* A) ]5 C- n6 b: w else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 \9 [6 H, p# Y% V Q- Q nPoint += 150;1 v/ _, Q/ L0 |
else if( m_nJob == JOB_RINGMASTER )
8 e* Q% S; M: ~ nPoint += 160; @3 x# n# W+ ^# P
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. e/ X6 T4 Q; Z Q" x9 H5 h8 P: d nPoint += 180;
4 r+ r2 X4 \' I+ C2 B0 E. D else if( m_nJob == JOB_ELEMENTOR )( j/ a9 d, d7 L/ i/ H, Q1 P
nPoint += 390;
& P# S/ ^7 r! Z' M% K# ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* a, t! \4 I& t& u' O nPoint += 120;4 [0 o0 \- D+ }! e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 M/ [8 K+ L4 v4 K; w+ K/ o5 b+ D
nPoint += 150;
, @3 F! v2 y7 ^3 @8 I) k6 u else if( nJob == JOB_FLORIST_HERO )
+ Y r0 L' l# a& K nPoint += 160;+ ?% ~3 r8 C8 t( \! w: ?( ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). g9 h W) q+ @. r% D
nPoint += 180;
: V# _3 W J4 }6 E: f else if( nJob == JOB_ELEMENTORLORD_HERO )
- z% L# G9 g6 i$ L4 W/ X nPoint += 390;3 Q. |- D0 r5 \6 V
: R _" s; M8 Z: W: B9 l3 S' G! o AddSkillPoint( nPoint );
( n1 `% }$ a) y m_nLevel = nLevel;- v9 X$ c3 r, ^
! h: F6 j1 r7 w1 J+ T: a
SetJobLevel( nLevel, nJob ); B! U0 Y! I# N+ v. `( X' z
m_nDeathLevel = nLevel;+ J; T! Z* y$ h8 E
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- ]- D7 O9 `2 P$ d: |; \6 n
if(IsMaster())& t b4 b6 }$ r0 P* J8 |
{
; H$ a. k# ]" e$ `7 K: S: X1 Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 T- O# A) b5 z6 c5 |0 G! i
if( nLevel > 59 && nLevel < 72 )
: [% L+ p7 q+ m& R dwTmpSkLevel = 1;* R: j2 s. E, d, Q
else if( nLevel > 71 && nLevel < 84 )
% |+ Q& d5 ]4 b1 R, Q dwTmpSkLevel = 2;- ^! M# p9 ~; n" v
else if( nLevel > 83 && nLevel < 96 )
. J' ~, m6 k: w2 f$ j7 | dwTmpSkLevel = 3;
8 s0 z! [6 j/ N3 F7 ], s6 Z1 Q) K else if( nLevel > 95 && nLevel < 108 )
9 I3 a9 [, c& I& L0 u dwTmpSkLevel = 4;
! G! F0 `: A. a else if( nLevel > 107 && nLevel < 120 )
$ c5 ~! G7 i9 o8 s2 ^ dwTmpSkLevel = 5;
% ?) O% H8 e+ r8 [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) l+ }9 J: Y' w b4 J
{
* ?2 m; c* B& s! E LPSKILL lpSkill = &(m_aJobSkill);
! d$ D b/ f" G if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 u( g: B; S* [- C {
/ w0 s# r' {2 ~. }+ F6 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . T4 M/ a7 ]) Y4 j
if( pSkillProp == NULL )
3 q& p7 q- s! Y0 w% M continue;
) L3 o4 D; O0 D+ G, ]" o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" ]! [3 r( ^/ a3 d8 p0 o. F continue;
& ~5 \/ B; H$ T lpSkill->dwLevel = dwTmpSkLevel;
0 O' J0 b' e( c- Q: r7 Z }
* S; o# K4 Y1 ]. p" C4 T }
! A- ?. |0 n/ I }
: D. Y, x7 n* y( V0 \& { else if(IsHero())' i- R9 W$ V& X4 q) i/ k
{( l' |* T. r: d& \7 ]" ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; L' P1 o; h2 z4 W+ F g {
9 F( v X+ i8 s2 M* h+ N LPSKILL lpSkill = &(m_aJobSkill); u4 L# T5 y' o- j$ w1 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 Z. @- L' o4 @2 Z ?1 b6 w; S) J6 } {4 G0 o+ b( h$ d* B4 m7 z3 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & h- r2 N; B* @, s F6 c
if( pSkillProp == NULL )
; z9 W1 a' S; U9 {6 I4 A+ ? continue;/ ?' w- C7 X' P$ o. _ C m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% l% J1 V% o9 I& q continue; ]3 \+ K! j1 ~2 p5 r
lpSkill->dwLevel = 5;
- y8 @4 a- M7 e6 [8 o! u1 E) v- J. s }
5 i8 h: V! j1 O# [0 [ }1 u2 k! C+ o$ }7 K
}2 W( C1 J( `9 C$ y% w _
else if(IsLegendHero())9 [& J5 {0 e2 H" O0 n6 k
{
9 S/ S& I1 K2 _) ^, H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( t& G9 Y1 C/ G! v ~, v' O: V
{
4 u; b* I4 R# W+ ~% u LPSKILL lpSkill = &(m_aJobSkill);) W+ ^2 R* Y9 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 w% l$ U5 g& t/ N {2 Y" k' G4 T0 T' w. L0 I* s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 t' o- T8 X. t* W: i2 Q
if( pSkillProp == NULL )1 o& ?' c3 J# i. J8 T
continue;
6 d) M0 Q- |3 Y& Q3 F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 n3 u/ {% N4 N7 { `8 j
continue;3 }3 g1 O% b5 q4 t& u7 z
lpSkill->dwLevel = 5;
( m! I! f7 r- X8 E }1 C' u% S1 p3 P$ n5 O
}
: i9 f2 K. o E/ R: k$ y6 @ }+ `3 T+ ^: S; ^+ O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 Q8 b2 ~& v) ^1 _2 @. z1 u
if( bGamma )( g6 g4 o3 a3 G+ a0 C
{& T8 n1 S& A# q
m_nExp1 = 0;
" ?$ c- w7 O# t/ V' k+ I }
. q- Y. \! s: v9 W" ~1 U
6 D/ }( k* h1 T7 g ( (CUser*)this )->AddSetChangeJob( nJob );# F6 P# K0 C5 g9 V/ ~* P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 q2 l$ w; ~; A J
! }& N) V9 h+ X5 t# Y/ T3 o
g5 y* T5 ?6 g. ]: y#if __VER >= 11 // __SYS_PLAYER_DATA0 d7 m' s, P9 @, F; p. w# e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 Q8 H6 K, o, Z: ^( y0 X#else // __SYS_PLAYER_DATA9 G! p8 Z% ~4 W4 ^6 b
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 M4 y y% X. X0 Q7 B, W1 @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ K( I5 L3 W% d: _' q8 Y- v if( m_idGuild != 0 )+ h; T8 s- X. Y- [
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) s5 q# x0 {0 ^! Y" Z#endif // __SYS_PLAYER_DATA+ |* L0 ]) |5 j0 e& K1 e( C9 h7 p
SetHitPoint( GetMaxHitPoint() );; U! M+ u( B9 i6 |: @
SetManaPoint( GetMaxManaPoint() );
- N( L- s, U0 N9 K& a3 P SetFatiguePoint( GetMaxFatiguePoint() );
6 C/ \" J* z" [7 @1 a1 k$ L$ G$ p if( nJob >= 1 && nJob <= 4 )
3 W" [( I6 c" x% x' h) E; | {% T9 E6 D P$ X/ A) U3 E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 Z; l- m% a0 j6 h) c- K# { m_nRemainGP = 28;1 L# Y3 i; {9 _
}
' I" U3 w I' K2 w# ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 F1 U& |2 u/ o# o
{
% Q/ B% N% k- \ P m_nRemainGP = 118;
0 w# |( {' e. a3 Q3 k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. h" C4 \% g _' ] m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 H& n9 f; I0 ?0 | }
2 z L% Z) Q. K: l4 A2 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 Z# @" P$ L5 c4 U$ `7 h% j
{* M1 b; W, `2 i+ s# j$ R6 ]6 @
CItemElem itemelem;: R3 ~" t7 Q$ Q, O# @8 l
itemelem.m_nItemNum = 1;
0 @& N3 I+ ~3 m itemelem.m_bCharged = TRUE;
* {( Q3 |0 C1 O+ n6 t& N5 h* p$ P BYTE nID;
$ a+ _. i O& Y
% F2 I; l* Q" {5 `. X4 _$ b if( nJob == JOB_MENTALIST_HERO )
P) c0 B9 |0 n+ f G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 T9 O5 K4 O/ a* E if( nJob == JOB_FORCEMASTER_HERO )' _9 ?- y. K6 o s! o1 B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# v; Q6 K6 \2 q( l+ V8 O5 C$ @+ i8 B7 j1 Q9 A. Z7 ^9 n
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% J5 Y3 I8 ]* B9 [ ~1 R% q% a( ^: U }% }7 G2 D% f" @; Q+ Z- k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ ^# p5 N' T, o d9 J# w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 H! i2 d' A1 u& y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 @: S. Z7 X1 b1 Z5 W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ K [1 k% c+ I0 P ( (CUser*)this )->AddTaskBar();*/
9 p1 h/ y; d7 b8 ]% l ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" `3 N* r+ m7 L2 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; |* d. V" O( R% Z& t* i
((CUser*)this)->CheckHonorStat();- }' |7 N" B2 i. `
((CUser*)this)->AddHonorListAck();
/ L+ O1 U: { N; s8 P% r) T g_UserMng.AddHonorTitleChange( this, m_nHonor);
& g3 l' Z% R& [3 N- w# G, Q#endif // __HONORABLE_TITLE // ′Tà?
: \. i+ _* F1 i3 z5 j }+ E O4 J/ C; ? r3 b) n# g
#endif // __WORLDSERVER
1 C- Y8 G- A! a0 G6 f9 {/ H" k}
: Z2 A$ E2 @) ^ H) ~6 E$ a9 J- q& c# F3 h+ n' L Z8 K
然后你进入functextcmd.cpp并添加以下
7 @7 a5 |2 m' ~& Y
0 b& R& u; I. @/ p$ c代码:
& q7 H* B) C$ ?- DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 J. b# {8 K7 c* n) o下面插入7 h3 j% X, P. K* m9 G) s6 z# \ P5 I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# b/ n6 q- n9 n: `' t8 U( G6 A
6 N2 J* R% z2 V+ r" d2 I然后你去
( w0 H/ J0 d* T9 c- ~! U
- {9 }& @0 S+ w! P代码:
+ l( `6 v7 t7 |7 E# j% M代码
1 i5 ?# |& M) B- J6 r) iBOOL TextCmd_ClearPropose( CScanner & s )& p( {+ `- }* v& s$ {# J
{
( ^) `- E* T. v4 G8 G#ifdef __WORLDSERVER, l* Z) \5 A+ b6 i4 a& i: v0 Z
CUser* pUser = (CUser*)s.dwValue;
- n v+ W; t: ]4 L, y g_dpDBClient.SendClearPropose();
0 E9 o J) \+ U" v% O- m#endif // __WORLDSERVER
! n, g9 L, }$ u/ J+ H6 ^/ }/ L return TRUE;/ }9 A& I' n" b: q! @. R
}: e' B5 `, _% }5 y
下面插入6 T* p) z( O4 ]' n9 z$ g6 k" m
BOOL TextCmd_rebirth( CScanner& scanner )
& k4 q9 P5 v$ A( c% ]' V9 i{6 t! g4 |: M- R0 n/ a& M" }
#ifdef __WORLDSERVER
$ X# h! a" [/ a x5 sCUser *pUser;
( b- Q% E- S, q% T6 ~pUser = (CUser*)scanner.dwValue;
: h, x. O4 `# [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 }: p& N0 u2 T) D! }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; U- N" v" N% c J- }$ |/ [else
1 ?4 e1 Q/ k1 B* x% ]1 apUser->AddText("你还未达到重生条件!");
, v: J; X0 j' E, e#endif' X; `4 c$ V% b7 d( j' S2 h
return TRUE;" O5 c% g/ k; c1 x2 c5 G2 C
} ) k; W! Z* A9 [3 k+ q
' R9 h; P8 i+ D
7 b/ J% Z& M$ p% o! F6 f! {! l* h- Y' k' b1 V) g7 K+ Y& x
) c: a- G1 Z: r/ o* f* C |
|