|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' s+ t: j; W' W: W& Y
9 U* r) P* g, A ~" J/ QMover.h
* p2 Z9 @" d; R1 d; R4 a代码:
- m: o& C& k3 H. v- Q/ N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* W& i! i/ V! t
: E5 Z2 q; C$ |8 t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: B/ z, s# D" K1 C/ A6 s, b' w8 N
然后你去mover.cpp添加
; K& v, s4 ~; q) D. O4 _- j) t) [2 d8 o* L; l' c+ Q
代码:
, z* s9 ?/ z2 t0 R0 c' Y4 W$ Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% q, m$ D+ H5 C6 D! x. M# k* q F
{
8 a& b& [# M e3 b; P: ?. o; U#ifdef __WORLDSERVER7 a5 a# n* U: ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) i3 X8 D6 ~& ?
MoverProp* pProp = GetProp();% Q% O: J6 A% H
if( pProp )
! `! ^, n0 v( {8 z {$ {2 u) x( u7 ?' E; R) Q N& F) w, k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, ?" p) a B% U3 x# M {
+ B; ?; ?$ a! ?1 Q. e AddChangeJob( nJob );
! Z% x" N* R0 V: n n! O }else{% h# z: R- k( f
return;
' Q, }! L" Z$ Z/ T! D+ k) K) t }* n. p: t" t1 s
int nPoint = 0;
# J6 R2 k3 ^& v- ]9 \ if( m_nJob == JOB_MERCENARY )
5 K+ V2 u+ Q( Y4 t nPoint += 40;1 |1 `2 M/ `* I, ` w! V x
else if( m_nJob == JOB_ACROBAT )2 d1 G/ \* M0 {2 y8 A
nPoint += 50;
9 ?. [5 x9 d+ l3 _& @. s else if( m_nJob == JOB_ASSIST )
4 N4 \, i" X0 {! y- X" ]$ ] nPoint += 60;
0 b2 o& {0 E/ _& W! i( u& v else if( m_nJob == JOB_MAGICIAN )5 s, D: D3 D2 R$ a2 T' t2 j3 ~
nPoint += 90;
- ~* ?8 J- W0 s, o. O/ i' X else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 M: H: P& P# [( K! R; W' |
nPoint += 120;; H4 M+ o9 b2 R( x& t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" {, E% U6 F0 y) c1 F. y3 q( z
nPoint += 150;
; p+ j% g( V9 Q+ Q" x, ^. b else if( m_nJob == JOB_RINGMASTER )1 A* s- B3 D" o" ]' @8 u
nPoint += 160; h7 G! `" c$ x, b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): @+ _9 E9 g% Y1 w+ ]
nPoint += 180;
; e$ u( X* K! T o) H else if( m_nJob == JOB_ELEMENTOR )( ^9 j+ i9 p# i6 n2 n& R) {
nPoint += 390;
4 x& D7 I+ D7 j9 } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) L5 C9 F, A2 T- u c% e6 v" n
nPoint += 120;$ U0 i8 E, n* K" R- f; G6 u# _2 i5 F" s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" j% k1 s% c1 n' g( B
nPoint += 150;" z$ S0 @5 T5 n9 @# E0 e7 J
else if( nJob == JOB_FLORIST_HERO )
) [0 Q/ O6 @. q* n nPoint += 160;
( K+ y; H1 E- y/ w; ~1 O+ f. S else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 w w" v( K2 F7 _ nPoint += 180;
( j! m5 C! i2 b! _1 g1 _6 H9 ] else if( nJob == JOB_ELEMENTORLORD_HERO )9 e7 | g6 ]3 v, e7 W4 j
nPoint += 390;* g/ k2 t8 l! x2 u
6 k3 [1 v* i! b7 i, a1 S5 C* h- s+ Y AddSkillPoint( nPoint );
! ?, ~6 Z5 t/ C m_nLevel = nLevel;
& l' n3 Y: n% ]* G9 ~, y" v2 ]' n4 T8 N
: Z D% i# G$ [& Y/ ?: h SetJobLevel( nLevel, nJob );" ~1 X: a, L1 n5 S8 S$ j6 ~
m_nDeathLevel = nLevel;
% ?9 J. _5 I- a. E& n0 M1 C$ e& c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. F$ D. u3 t4 h. m, y if(IsMaster())
9 X$ U: ~+ ]/ H. o$ y$ l {
" e: @' W' E' v# K4 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: m; c6 W: T& G) h- h, m8 a
if( nLevel > 59 && nLevel < 72 )& ~- {$ P) Q' e; y1 O
dwTmpSkLevel = 1;! I+ O5 p X/ X0 ?. Y
else if( nLevel > 71 && nLevel < 84 )! ?7 h5 o* p3 k+ u5 m
dwTmpSkLevel = 2;" e* g9 h0 t5 }- H3 J# u
else if( nLevel > 83 && nLevel < 96 )& A7 a0 @, V+ K: k* m6 d
dwTmpSkLevel = 3;
) S9 Z; t* G" _8 `, b9 t/ U else if( nLevel > 95 && nLevel < 108 )
0 B- h( f9 Y# D* q7 M dwTmpSkLevel = 4;2 M( ~9 V- |; A# v/ w: g
else if( nLevel > 107 && nLevel < 120 )
& L, H" x |; C7 |! e/ n2 S dwTmpSkLevel = 5;
& |' b8 e& T% s. q for( int i = 0; i < MAX_SKILL_JOB; i++ ) , i* |" x4 O: S$ S% l
{ - I+ R! d4 l9 [- C$ F( `
LPSKILL lpSkill = &(m_aJobSkill); C2 N: V! g2 x$ e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 B3 i! G6 }$ B' E, | t {
; R4 ?& B, O: n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 f# b- a' E' | if( pSkillProp == NULL )7 N0 T, B) \, @9 L8 M% w+ H4 f
continue;. a r* l3 V& ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* v3 `' m4 A: c2 k/ f6 y- n, _( V continue;
g A/ X$ @/ K2 n3 V" g2 f) \7 ~ lpSkill->dwLevel = dwTmpSkLevel;
/ I& ^, k: k. K$ a, a; _( ]: M }) d2 ^/ `1 |1 f9 V/ _7 w
}
9 T! I2 h3 t7 T: |* O3 s) ~ }0 {! S% l/ W8 c& _+ r+ J9 q+ v2 ]3 ~
else if(IsHero())
4 ?3 |8 s! n2 X i+ O7 Q {
' i0 h. h4 j7 }# o/ x3 z" b for( int i = 0; i < MAX_SKILL_JOB; i++ ) # s/ X7 T _ i! I0 ~
{ {5 t- d9 D! A: T
LPSKILL lpSkill = &(m_aJobSkill);
# r+ _; J2 w( [' z if( lpSkill && lpSkill->dwSkill != NULL_ID )$ C% }+ S" ?0 H
{
- H, C( h- q q5 R6 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 g' W* l v7 x+ q6 M if( pSkillProp == NULL )+ U' N D. s( ]: p j; g9 G
continue;1 q# D& b0 h/ U. a" T, S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ \+ j: t2 t" O( ] continue;
- o& r4 j( J) K5 k+ b lpSkill->dwLevel = 5;
! t# u% R5 @% E* l }5 I* i2 K- p) m' Z# e1 {5 I, h
}$ ?' s1 J. I/ {0 V
}; C7 L [6 n0 L( R
else if(IsLegendHero()); c5 K( g* c3 C5 j4 h
{9 \6 U8 x) O8 C! F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) D' N8 |- v/ Q) q; e+ x' ]2 M {
, ?+ \* `2 q$ M LPSKILL lpSkill = &(m_aJobSkill);
' e% i1 n& J. y( s2 P if( lpSkill && lpSkill->dwSkill != NULL_ID )7 h" a( `, ^5 ?5 D) E
{+ d4 V2 x" x5 F7 g8 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * E' ?% L' J, |0 _3 u' a
if( pSkillProp == NULL )9 Y, O4 g1 M3 G' t# M
continue;
/ ?2 n$ U; H8 c# _1 D8 A4 w3 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ G R4 j2 n$ w: ?3 X continue;
9 e7 r: x% }4 t lpSkill->dwLevel = 5;
* [6 \5 G8 c4 |% ?0 O }
0 k1 i, I" {5 b' }" G }. F5 G3 \ `4 I% ?
}
/ T1 O6 I: P O& X( l+ M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% ^7 X! [ h% w
if( bGamma )4 s+ [1 ?" B- j) v2 p# m
{" J2 P6 \) }6 B0 G5 i3 s
m_nExp1 = 0;$ |/ N h# B. U8 Y" x
}# i" K: K# J# V% k6 N# `
% N5 o' V" E9 ?- {) o# H ( (CUser*)this )->AddSetChangeJob( nJob );7 R# Y y9 f L5 q4 ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 F3 N8 ~- q+ Q1 P# j. ?) P5 m s+ R: ~* d
5 A; T. \/ S" @/ t; U8 v
& L+ Z; Q5 I- k/ L( C) E
#if __VER >= 11 // __SYS_PLAYER_DATA
2 e' J" J2 q1 d8 g2 Y" g" P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 m g1 W/ _6 r0 ?0 y0 ^/ K' v/ o#else // __SYS_PLAYER_DATA
* a. c& K! _: Y# t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 e! _7 P( H0 U# ]- P" q. y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: v# v6 x/ T. O& r) k; ?
if( m_idGuild != 0 )
( H. i- K% S. l) P& [ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# N4 R4 k# C+ p" {2 |, K#endif // __SYS_PLAYER_DATA; s7 } r2 J2 h8 a
SetHitPoint( GetMaxHitPoint() );
( @. A7 l( [) T- n/ A) V SetManaPoint( GetMaxManaPoint() );
4 [5 v1 Y0 L$ i2 C SetFatiguePoint( GetMaxFatiguePoint() );' c" w6 b$ A6 f- b6 @$ Z
if( nJob >= 1 && nJob <= 4 )
9 P5 O" h5 \4 ^ {
/ @- C9 T2 E" s$ T% ^9 Q/ K m_nStr = m_nSta = m_nDex = m_nInt = 15;" n( B) [, T# V0 w- N! O
m_nRemainGP = 28;7 a% D$ C; [' }* @7 C8 I8 R
}
2 j' B( I) X1 ]1 A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
m0 `$ N0 [3 _) K8 P' q {
) m+ W; C; h# k( a, n m_nRemainGP = 118;- @" N3 H9 w* y+ u3 N5 k! q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ f9 t H9 T2 p* I: h! _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 [8 Q, {# h, v0 n6 e9 H* d }
& Q( s3 q+ h8 | ]% k1 P% O+ ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 Q/ {0 j# X; H9 Y {* M; i0 g! t- m: m
CItemElem itemelem;
$ |. N+ v1 m* X+ c3 c itemelem.m_nItemNum = 1;
7 q/ v$ u, a( M5 G! M itemelem.m_bCharged = TRUE;7 L/ d l; Y3 e; z; V
BYTE nID;0 B0 n: ?6 E8 ~* i: ?& v: j
- D" b$ E0 d# t) \7 B
if( nJob == JOB_MENTALIST_HERO )/ H, ]3 i' e6 F O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. B: k2 [9 T! h
if( nJob == JOB_FORCEMASTER_HERO )
$ V. U. M# k5 b2 R* X itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 `, Q0 }4 W9 g( c R- T
# e) N* M7 ~& G- g+ W ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# a# b% r3 }5 T" a }
7 S3 ^, `7 y6 g: K g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& ]- M5 L. j' B+ p8 z) j
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 d. v Q% ?- [& d3 {5 p1 _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! A4 K: R- a6 d8 l; {. g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 [. A2 [/ I7 R/ V% x8 \. I" Q
( (CUser*)this )->AddTaskBar();*/3 e3 ?- H& I$ H) T
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 b5 k3 T( y; {1 I4 b/ N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ d1 M q. [3 P" D9 e
((CUser*)this)->CheckHonorStat();, P+ d& p' P u8 \. k3 X k
((CUser*)this)->AddHonorListAck();$ C% N/ h- K( F# i# M. ~6 g- v
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 C3 M) T) s! W- Q
#endif // __HONORABLE_TITLE // ′Tà?
6 O7 v9 n: K9 j+ J& T }
5 D# B6 ]' l* D# u1 o- Z#endif // __WORLDSERVER
$ Y, ^# }7 S! F, k9 I* ?- B+ ~} H. s8 x4 A# D" H0 L- K5 M1 |) A. U1 a
2 F$ I L' {+ m然后你进入functextcmd.cpp并添加以下0 c+ N4 @3 `* R- r1 s* z
+ ?3 F$ s R$ e1 F
代码:
5 K6 u' I( w/ CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( [" E" ]4 k; G, t下面插入
3 y8 g5 i9 d% `1 z& ?( @6 l+ N, d# `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 [2 p; N2 v8 s9 U' Y/ D* B2 Q# W) b& x; A" o1 z
然后你去3 [3 {5 x* E# x9 H* g
9 f; x! K) x: N6 {3 I代码:
4 D# v8 {# B3 @& l/ j) _1 n1 L代码+ H2 g4 @6 J; s1 P1 }
BOOL TextCmd_ClearPropose( CScanner & s )
/ ?. b" m, N0 L6 a{! [& t: y! m) l" H3 N
#ifdef __WORLDSERVER
, t, |& Y2 {; i CUser* pUser = (CUser*)s.dwValue;! S2 J/ a* e4 m6 h( t! J
g_dpDBClient.SendClearPropose();! w& v* N" p& ~; \, H
#endif // __WORLDSERVER: @0 V& o" ^" u
return TRUE;' z1 s: T. O6 ~5 O% l; A
}
* ]% x/ R6 s7 O& v% E下面插入
. ]6 P) E* D! x' h8 D5 wBOOL TextCmd_rebirth( CScanner& scanner )' L% z7 j/ k5 S5 P5 @% W# b5 `/ i
{* w8 L7 I% K" X- l4 a
#ifdef __WORLDSERVER
* u$ M& q% t8 x. `" c& i. SCUser *pUser;% z$ f5 e# J) H* }$ y
pUser = (CUser*)scanner.dwValue;
+ u8 T! _& j2 Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% i" e& _2 g5 f/ ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" R5 i) v3 |2 s1 B5 s- X- Nelse
2 ~$ ^; f" T; rpUser->AddText("你还未达到重生条件!");
. `/ j6 d3 \7 M G5 o8 u; q, B3 s M#endif) n% x& f) t( j9 n
return TRUE;& Y" }' q/ {6 u' U
}
1 u6 n9 h- h% S) {' T: Z9 a
. g5 S' J7 g) Z. D* b% f! V: U3 U' e m/ { E1 a' ^
+ ?/ ?2 w( v. ?* i1 z7 O1 f/ N2 Q! |8 F. E. J2 J% z" u8 q1 y* j
|
|