|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 g; s: P/ |6 `) S2 c9 F* X5 ~$ |2 W; c# o+ ~
Mover.h
5 t/ e+ }( X. b; P3 U0 F3 A代码:7 B- S% B4 C; o- C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 `# f/ U! H# C7 B6 ~9 @) {; z" B( r( _+ a6 v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& R: Y, R2 N/ M5 {
4 i$ {2 e+ s' w6 I然后你去mover.cpp添加
; J% C$ s$ C( }$ `4 N; s0 p$ X! c7 w4 ^' X; t: V' ?* K
代码:6 W6 Z+ V' Z, x& }; l: c R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 c3 g6 n& j! x! {{
: x7 M0 q" F; v' g: u/ G#ifdef __WORLDSERVER( f% }$ B% g8 G! Q) ]3 x! N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: I' g3 x5 X8 ~+ H6 W9 N! H
MoverProp* pProp = GetProp();
/ K ?- R7 j1 t- _: y/ @ if( pProp )
8 t) B; B, h; g& P* d6 B {
) Y- p; z J3 _# U if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- V3 j. n5 ~6 ?, W Q {
! T. W' N; u5 u( k6 a8 c AddChangeJob( nJob );
, C A7 i/ v1 p }else{$ l9 t; K& t% v$ c9 `6 T
return;0 U" w |/ m+ |2 f7 a% {. C Y
}
* ~" W5 z* g% f8 i- S/ Q int nPoint = 0;
) \- |$ y4 X0 S1 R. { if( m_nJob == JOB_MERCENARY )
% E1 V- }6 o) M6 u" u* y* M nPoint += 40;
" K B! V$ C9 m" u/ C' A else if( m_nJob == JOB_ACROBAT )9 r& {4 T& X7 K4 M5 C; k9 j, S
nPoint += 50; u; m0 U; @$ q8 H% S) y" G
else if( m_nJob == JOB_ASSIST )
; m$ l3 c" l9 \' L7 O. E nPoint += 60;
! a! U* U( A2 i' f: k else if( m_nJob == JOB_MAGICIAN )
# M2 C S$ u+ f. A& U nPoint += 90;
" g+ ?/ c2 Y! a+ @% h9 D& | else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" n" Z/ R' V" c, V9 m" O7 X6 r
nPoint += 120;
% h' G+ X3 T( z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 w7 |& w) h- p! T
nPoint += 150;
3 n0 f8 i8 `& ?( c! j% s$ H! { else if( m_nJob == JOB_RINGMASTER )
y8 i/ A+ B4 D- L) K8 n# E nPoint += 160;
/ n( P' n2 U( e6 D& |1 l& n else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- N, ?6 \& H- N$ ^ nPoint += 180;! B" x6 |3 C9 a7 V( w
else if( m_nJob == JOB_ELEMENTOR )
2 T) F: ]1 D: w9 w( \0 n. ~ nPoint += 390;
3 _; R6 B6 W" W9 J- Y1 V+ O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 e3 @% D \" ]0 B. |# g nPoint += 120;
2 e3 l8 g' O5 M9 X a5 n% l/ h else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( g2 x: _2 ?; U nPoint += 150;2 Q) b( y, P5 q2 ?" w/ c
else if( nJob == JOB_FLORIST_HERO )( @& g& d: n% ^% [! A3 H& m
nPoint += 160;
. ^# {; n6 B0 B2 J% c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ [: O& C8 E f2 ? nPoint += 180;7 F% [) a+ B9 `/ f
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 [" L: }9 [' k nPoint += 390;$ `# h a* c E
0 ~* V& s0 E1 }, s) A2 l AddSkillPoint( nPoint );, ]" Z) ~' y! `8 E# {
m_nLevel = nLevel;
* g2 W3 L5 r3 L/ f
- t2 ^' v6 T* |, u: z SetJobLevel( nLevel, nJob );4 c9 U( M: G# K+ p! J k9 s
m_nDeathLevel = nLevel;$ R4 B" E, v" ~7 B. ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 ]* l9 B5 d6 U7 e! E, k
if(IsMaster())3 N/ [8 \5 r7 r5 K
{
# S D$ p4 F- @4 g& M$ X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: |' e' V8 R: W1 s( S, z5 }% H
if( nLevel > 59 && nLevel < 72 )' p) V6 c9 O' I
dwTmpSkLevel = 1;
" L! @0 p: U) F) _6 `( c2 A else if( nLevel > 71 && nLevel < 84 )' ^) U, l. M6 r/ ^
dwTmpSkLevel = 2;
2 R' r/ R7 [% \) q$ w else if( nLevel > 83 && nLevel < 96 )1 x9 q$ B0 X: x
dwTmpSkLevel = 3;' n! E/ d4 Z1 K; p$ q B4 l4 Z
else if( nLevel > 95 && nLevel < 108 )
$ N' I/ `- [7 t( l' a dwTmpSkLevel = 4;
: F, O7 f2 o! \5 G& t else if( nLevel > 107 && nLevel < 120 )
8 `( `+ o1 a9 M# D, y dwTmpSkLevel = 5;, e8 B/ P% _+ m f9 A' Q! j0 P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) O+ R& I# Y+ B' l; Y
{
& f, _: [( r) w6 q LPSKILL lpSkill = &(m_aJobSkill);
3 q0 \( X5 Z/ m0 \" Q' ^9 J if( lpSkill && lpSkill->dwSkill != NULL_ID )/ j0 H/ s& W- }+ A! d
{
" o& l3 `9 c+ W k4 O" ?4 v: R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ e& p; f2 j- r if( pSkillProp == NULL )
* k1 \9 j" n& b0 I3 j- i continue;! B8 f: K6 U2 r1 ~! D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 F" v( r# @+ `2 O. @
continue;
% a& ~/ O$ I, z( P0 e0 \4 J6 [ lpSkill->dwLevel = dwTmpSkLevel;( z* K& m0 R- h6 {* e4 @! o
}
# ?: s& h* g8 L }
- t( o/ B& Z( K: ]. | }
( B2 |+ `7 ?" T else if(IsHero())2 m* Y/ I5 E# [/ X2 o, e& {
{
! X0 O) l" m5 \5 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) / u5 t) ]: J% F
{
& c, o/ w8 R; ?& f0 g* E7 H LPSKILL lpSkill = &(m_aJobSkill);3 U, g4 \' }- P- }5 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )) U5 E g. N# V5 h7 O, }- ^0 J
{
' f; q0 R" d, |+ }' x( K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / F: U7 Q& y" A u& e6 `/ D
if( pSkillProp == NULL )
& a! j- y: Y7 h3 Y continue;6 I& s! P) z( \ E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) V7 H; r+ m; I; W8 d continue;
( `2 Q, G8 E/ c& L6 o/ v. l# H lpSkill->dwLevel = 5;
: [* j+ e! j9 m' \5 b7 ?: ^ }
" ~2 W j. ]' S l) A8 G }! F. J+ W; R! d! f. d' d5 I
}
" F+ E. @- s% ~5 H else if(IsLegendHero())
$ J. Q7 R( \9 N& E, F {; K% `: N5 r+ P1 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 Y- d+ I# b& H4 s. F
{ }% U8 w+ E8 c
LPSKILL lpSkill = &(m_aJobSkill);
! ?/ s" T I* W if( lpSkill && lpSkill->dwSkill != NULL_ID )
; v+ m( D5 j: X; g9 [ {
0 ~* ]8 w7 Q4 y; J- P& E. m i. P! {5 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 X+ k! m/ ^( K; | if( pSkillProp == NULL )* E0 M. B" M2 I
continue;; U* T2 o. K$ q" @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 M7 `. T1 P" n* x+ m/ V4 I- {
continue;
& w, s7 Q$ o8 O# o- b) z4 C lpSkill->dwLevel = 5;
+ t" {3 I/ d" w$ H4 g( }9 O; @ O% p } G0 Y8 P4 V! \/ w% N
}8 Y. f9 `4 m r& U8 o% Y$ e
} {3 { v& @& F5 f1 N
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 P9 u) K# D3 Y t
if( bGamma )
" m- l' J7 h) d {
8 g# r: w3 F3 R: U% z- w7 x3 L: r m_nExp1 = 0;
, z8 r' n$ O5 [- r$ U }
3 q. h' z/ z" b! }" W. u2 W( a0 n' }$ J7 C1 v! `/ b8 V
( (CUser*)this )->AddSetChangeJob( nJob );
F" X C H% N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 Z! i$ U' A; `+ v
4 V9 i5 n( p& a+ h9 a/ k5 \! j9 `+ C0 P3 b7 S& u5 C8 e: i
#if __VER >= 11 // __SYS_PLAYER_DATA
8 ~, O. p5 j1 @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) j. {/ w8 J; M2 b#else // __SYS_PLAYER_DATA0 c( C ~! P' P8 v+ m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& e7 O2 n" I$ X1 X* Y: o9 {1 Z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 Z& g- H: z1 G; {
if( m_idGuild != 0 ), t/ ~& D# [. \. I( J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 \$ y% H( S# d; D7 ]
#endif // __SYS_PLAYER_DATA
; [0 I5 E! N! K0 ~ SetHitPoint( GetMaxHitPoint() );, _9 H' u' d+ H! [% v2 l
SetManaPoint( GetMaxManaPoint() );9 F- M8 w) x4 S5 A* g) q
SetFatiguePoint( GetMaxFatiguePoint() );
) q5 |+ K7 P, B: d) j if( nJob >= 1 && nJob <= 4 )6 O' _+ M5 a7 T4 B" R& u
{3 n2 B- w; O* C6 j+ v \6 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- Y) p1 P/ C3 G3 U% H m_nRemainGP = 28;
" }* h2 Z0 a) R* d y }
6 f0 d+ i9 H+ T: y6 H, s! X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" \2 g; R! d. E- a) U
{
) Q: C& m+ Q6 q A m_nRemainGP = 118;( S8 P+ y/ h( i$ z- b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& X( Z( [1 Y" c! o1 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 ~6 U) f; P$ S1 X: S2 V* D }" S. n3 I9 [# P: W$ m) Y0 _
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% i5 b0 K* @, F$ ~# ]) x
{
; n6 A' }( v, I. h9 u9 X CItemElem itemelem;
3 g$ h/ | L( E6 C2 G( ^ itemelem.m_nItemNum = 1;
+ p: `9 _4 h+ n& ~: A! v- g itemelem.m_bCharged = TRUE;6 o. H! r7 V' ^$ e& D( j
BYTE nID;, Y1 [1 s4 s( Q$ ?# h* K0 c8 D h
9 t& f6 x/ ]0 ?# u) c4 C: b3 p if( nJob == JOB_MENTALIST_HERO )
; @' o$ A; q( r+ }! z2 H% y itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; n1 I; q+ G" P' }- D
if( nJob == JOB_FORCEMASTER_HERO )
: i( ?+ w$ w, J: n0 C) M itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( }8 S/ W$ R9 H; N# q& }; l& C
. j1 X S& y, d/ s: Y' [ v1 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );7 |+ H" K% l! k% ~" q6 p$ c: q n
}
# |7 v$ H3 Y6 v# } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ s6 I& y, s8 h
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 ~) s. f+ [9 Z5 V$ l4 L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ f+ c: m' W/ A7 o- i8 E3 s
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* `' j' M* `" `% l0 ^2 c ( (CUser*)this )->AddTaskBar();*/, B0 s' E; u8 }/ p2 k* n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% f7 {+ ~3 J) q0 F6 J4 |) B7 `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. {& q3 o ^' r- i( ?/ m5 e& S
((CUser*)this)->CheckHonorStat();7 x4 q/ g/ b# K- p0 L1 Y
((CUser*)this)->AddHonorListAck();- o2 s1 @$ j! e7 N1 ?, b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& e+ Z/ a5 ?2 \7 T7 Y+ X#endif // __HONORABLE_TITLE // ′Tà?" M9 m3 s+ a7 E- o1 H
}) G' W0 L& O% r+ x* y# q
#endif // __WORLDSERVER
5 Q4 k: G2 Y4 V# i C! ~: x$ d8 a}
6 F: d/ j+ z+ ?* c8 z8 m. T/ x7 I0 {! E3 P2 q, V+ B O) K% d
然后你进入functextcmd.cpp并添加以下
/ `5 W- l- a [& Z- f: h
* p! d/ `1 N# p1 _8 Y( L4 {1 j# h2 y代码:. J, ]) x8 [7 W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# I% m4 [0 a7 K: w% |
下面插入
* r& w" v: b" q% F% J3 }/ oON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 [; Z D! A& Q+ t L- G& |5 ]+ R
然后你去
4 w0 |+ L5 T; A6 z
+ m# c- i5 M8 s2 [; }! A代码:
8 {5 y1 Q2 X ^代码
' k" G- V/ Q6 {4 r% zBOOL TextCmd_ClearPropose( CScanner & s )
+ K M: H9 {. c: C) T{
1 E. p0 S' x0 D" q& U! T* x6 M5 x) K9 g#ifdef __WORLDSERVER- L+ |# q* N; C% ?" T5 z. W
CUser* pUser = (CUser*)s.dwValue;
8 j+ k: Q6 q7 j7 c g_dpDBClient.SendClearPropose();$ w: ~+ X" y7 q( Y! I3 d; Z+ D
#endif // __WORLDSERVER0 U+ h# {& h' |# y! Y
return TRUE;4 I7 h) t2 L. S5 s( J
}' {7 r0 K" R- u+ m0 ~
下面插入
2 s; q; B y9 H2 RBOOL TextCmd_rebirth( CScanner& scanner )2 P4 l" [3 J. X' k' f8 G% K
{
1 k5 H8 h5 h! D6 y0 F) S/ ?#ifdef __WORLDSERVER2 A4 C. z4 Q1 R! U8 i5 m9 M7 c5 S9 _
CUser *pUser;! z& d4 t( I. w% s" b# q
pUser = (CUser*)scanner.dwValue;; @/ r1 q" H: E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), N% D. `* h! g j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ o# L5 w3 d: R) o% V# v3 zelse
& G/ E- e; M: C# J) T% V, B* V- j2 JpUser->AddText("你还未达到重生条件!");/ T7 `* S% `+ k. b: Q
#endif# j+ I; [4 Y5 S0 g4 T+ o" \
return TRUE;
5 j r; Q/ z0 Z6 O- q& N}
2 H* Q, K0 t6 f' _' p) r$ D( F: o4 ]; S3 v( \% J
" a( j% D0 Q, ]+ x+ N. p
u! u6 Y" r; g- ~" a
7 t# W9 _6 `7 H9 }& A5 g2 w |
|