|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( p/ l6 |8 y2 ~- x7 G: g
4 K. T& U* F* Z2 v- a" v' [/ GMover.h
) b5 G3 ]+ T( u/ r8 k代码:$ y6 B! s% Y7 ?5 x, i4 x
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# W# y" a2 K* s2 e1 M& \
7 D5 ?3 c/ j3 W: g8 O# g; Q0 ~下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- E+ P S3 v0 v$ H
N+ k% i! _, W& w然后你去mover.cpp添加3 d( a3 ]! K6 r1 ]
) i: @, ], ]1 N& z; N' G: W( v, s! O
代码:, }$ j: |+ d, T! Q7 O. ^7 f9 J, D3 L
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 t, A& b6 R/ G& o4 _
{5 N" H3 n3 |2 b
#ifdef __WORLDSERVER
2 ~8 J% h. k2 H" K4 c5 G; L // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; p# z8 S2 j; d3 J1 \; L
MoverProp* pProp = GetProp();- k5 x' ?; L$ A& v# x5 {
if( pProp )+ ~( P* o `5 h9 d# e' ~
{
- b( W' _% F9 J if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, z2 O$ `0 p( M! H8 m2 i7 R* K; y {
( r/ K- t6 k6 h0 W* ^7 q AddChangeJob( nJob );2 s% O1 V( D5 S' _
}else{
2 r- C2 J! c) ? return;
9 ?3 K3 l2 ?7 g+ _ }
9 _+ `5 D% `' E. s7 e* u0 c int nPoint = 0;
% q; h* Q" X0 {2 w2 p if( m_nJob == JOB_MERCENARY )
) `7 }: |/ K9 K# w% V nPoint += 40;7 `" v+ C+ [* ~6 h
else if( m_nJob == JOB_ACROBAT )$ [% V, r4 |' }9 q2 ]3 h0 e
nPoint += 50;
. f I: n" }0 S# y3 G else if( m_nJob == JOB_ASSIST ), ~/ ?+ ], c0 l, \) B7 j
nPoint += 60;
: }$ N3 R, p4 E/ u else if( m_nJob == JOB_MAGICIAN )
5 b3 G$ {7 Q) m. O0 S/ A7 Z' A nPoint += 90;# I ]0 m7 G' Z1 v: P3 C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) i8 K# k: `# T+ W; c
nPoint += 120;+ {& m6 D) H3 n8 R) Y* D
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ u, s" T, o& {, ?
nPoint += 150;8 t. ^3 i2 l3 V
else if( m_nJob == JOB_RINGMASTER )% e- J. p+ t0 ^) m
nPoint += 160;. N/ r0 k6 o2 s5 j+ C4 Z; e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* Q# B4 f( X) v
nPoint += 180;! W! E7 k! ?* l! T
else if( m_nJob == JOB_ELEMENTOR )
: l' ?% r' V( T% L& L" t: B nPoint += 390;
: ~. `: n+ q& K1 z. ]( K- O* T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# |+ Q" \/ ~- |# h
nPoint += 120;
, y& h( ?; M- Z: Y' J1 e5 g3 Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 j+ \( r* F+ T' e" A x! | nPoint += 150;! u: r* E0 M; `- ^' f3 W4 D
else if( nJob == JOB_FLORIST_HERO )
$ y8 h1 z1 [) B nPoint += 160;
1 ~! X( I1 W2 p+ ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# P) f4 X% K# e' M5 y nPoint += 180;4 E# W. {8 \# n' R- |+ L- j7 i# E
else if( nJob == JOB_ELEMENTORLORD_HERO )
: b* b$ m7 x9 \/ H nPoint += 390;* J; A5 N: j; V! |0 J( g
1 x) `8 M9 T8 j H+ o, E+ A AddSkillPoint( nPoint );+ g$ U+ }7 j% h* `$ U" Z1 y9 z
m_nLevel = nLevel;4 i2 n% p- ]. ~7 P- v0 x" N8 s
# q$ ~9 G- S3 ? d7 J# ~' M
SetJobLevel( nLevel, nJob );, r; W1 v+ q) [' G/ B7 [
m_nDeathLevel = nLevel;
2 ?, y3 N+ {" q$ O#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& O4 w: ?3 O3 w0 v" X9 B8 x if(IsMaster())1 J! p8 K8 [# {8 K+ S
{/ s& |. ^1 g! i! x; F
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: Q% n4 c2 D' V4 V# _2 w if( nLevel > 59 && nLevel < 72 )$ r1 Z1 g0 P) B5 w0 I
dwTmpSkLevel = 1;; b+ W2 p% M, C! ]1 I
else if( nLevel > 71 && nLevel < 84 )
! d% f' y0 f1 R3 {- q- [: c dwTmpSkLevel = 2;
2 ^% h! Q1 }; N. J1 Q |" N else if( nLevel > 83 && nLevel < 96 )0 A( U- N0 u3 t* z5 ?6 @7 Z
dwTmpSkLevel = 3;0 N+ K3 v- J2 K, z
else if( nLevel > 95 && nLevel < 108 )
1 e% j* Y! A) @; S3 z( V dwTmpSkLevel = 4;
* U, l) q9 Q O else if( nLevel > 107 && nLevel < 120 )
4 y: ~4 }5 z7 o. W' v, e dwTmpSkLevel = 5;
- g& }6 m8 `- K4 F7 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 i1 D$ Y+ I% a2 Q' v( W M
{ - [2 ], I8 u# F8 o/ ~
LPSKILL lpSkill = &(m_aJobSkill);
- V. t5 \& f6 F" P4 o if( lpSkill && lpSkill->dwSkill != NULL_ID )4 ]1 A2 F1 m) Q% I
{
1 b3 k, ]8 h( W, V( R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ E" h' X7 M, y) D) Q# | if( pSkillProp == NULL )% m: m! f/ p# ?2 i: F
continue;, V- H, b. L+ Q7 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 a9 }8 u4 A" D; M
continue; Z: j4 I& }6 y2 `* M
lpSkill->dwLevel = dwTmpSkLevel;
/ \: P* A* g( u }- t3 _/ u; |7 d, }- ^# l# ~% M8 Q
}) \! L8 I( f8 s, m6 y/ ?, |# |
}8 N1 q$ @, e9 q4 C1 V7 `& F5 M
else if(IsHero())
9 d, G8 {% Q, Z5 {+ ? {! d; z" m7 B4 v# P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- F$ H1 D5 \" {0 x$ M* Y { 2 _/ [; k/ j! G$ [* r/ Q2 y
LPSKILL lpSkill = &(m_aJobSkill);2 @( Z! U5 D, A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 l( E# N1 t/ W {- {: J u! l) f) n( ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 v% D# ?, c6 l6 p
if( pSkillProp == NULL )9 E3 ~7 g& f$ _
continue;& F% d' h2 @9 q: s* o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- Y$ A+ y8 P) g
continue;
9 @) o1 ], F6 _$ W! y" y% t4 q* w: e lpSkill->dwLevel = 5;
) t/ i/ o8 f6 f2 I }* o K5 W+ ^) [$ h8 H8 A
}( a, J- a9 l. J
}
8 \3 \7 I6 k7 y) K9 p F% @) c else if(IsLegendHero())
+ V; ]4 H m8 ?+ d' C S {4 n; A, J. V* [& z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& ^" f, b5 X# m% I1 q { # J( V" \5 c) W1 }
LPSKILL lpSkill = &(m_aJobSkill);
# _1 B7 ^# K. Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
, ^+ g: [* a% l1 }% C {
9 |+ ~' w: L H7 o6 |( O2 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ C! W0 I, S0 B2 f& ~8 R9 U) M: e if( pSkillProp == NULL )" m' z- n' q% P* M3 ?" h( v
continue;
$ g0 \) k5 U& I& L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 v6 H% `& K3 O5 p# Z
continue;
& I' O/ ~) f6 v# p0 w7 Z2 ] lpSkill->dwLevel = 5; h. Z/ O4 B2 a6 Z0 W$ ~9 e+ T
}
' E" X3 I# Z; r6 Y" y6 y }, U W, `( o$ |- a
}
* c( ?: Q* N2 K, s/ k9 @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 b/ c6 v& @/ ?
if( bGamma )1 f! B6 R) S/ H! h+ O- \, B
{# O8 H7 y& Z& y/ H5 U9 h. o
m_nExp1 = 0;! b$ r/ r& W" _8 k: |
}' K% C5 D& |4 L, r# b
" ^) g* d4 V' ~ ( (CUser*)this )->AddSetChangeJob( nJob );
1 E/ `" J! x- j) o5 a1 r5 \, e g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 h1 @1 ^; @* v) B3 g# r4 ^4 I) F7 G) m1 c! w( D) @
/ I* ]$ q4 G( s+ Q* e#if __VER >= 11 // __SYS_PLAYER_DATA; I/ _. T. _- _, p- }: h) X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% |& D- x3 l+ d, @+ h4 h8 Z
#else // __SYS_PLAYER_DATA
" O# {; P& }- Y, j4 p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 C+ e/ w9 G5 T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); i% L- J h, {: M2 f4 q! L
if( m_idGuild != 0 )5 s: k, X$ o9 U1 B0 M) |; L# b4 t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- l! |" Y$ r( W' P' \" p! K#endif // __SYS_PLAYER_DATA# H+ ]6 p; w: ?7 p& Y- m2 x% W8 d
SetHitPoint( GetMaxHitPoint() );) R. P+ ]8 N5 |2 a
SetManaPoint( GetMaxManaPoint() );) u# e# m5 [% B. ~1 C" g
SetFatiguePoint( GetMaxFatiguePoint() );* W- X+ i: X7 V/ V
if( nJob >= 1 && nJob <= 4 )2 V' Y6 b% H; T3 |+ F* r
{! p/ U7 g6 N2 P& `' _% P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 {9 c# v7 P( T1 X8 v! V m_nRemainGP = 28;
+ i7 A2 D9 }3 y& t. k0 l- b }! J _- Y$ X# }" e/ t# V" c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( R) A) H7 N6 T" R
{
& m, @, r$ K$ F$ n3 O" H' F0 N m_nRemainGP = 118;
% T0 }8 D- K& e# A! r8 g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 [' R& H0 p4 U6 O9 R, e7 T) H! l m_nStr = m_nSta = m_nDex = m_nInt = 15;+ c# c8 _7 g# |$ [
}
9 o% d( B/ P: x& M% P& F1 V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 x- n9 V _, c9 w1 h
{4 x- `4 u' N; p% @* m- p( k
CItemElem itemelem;
" b, e; T5 j# e itemelem.m_nItemNum = 1;5 T/ u2 c8 Y3 r( S9 I8 E! T5 K8 V2 K
itemelem.m_bCharged = TRUE;
% i5 X( o/ v8 [ BYTE nID;
( Z+ ~' e! ^3 A8 R3 E/ w9 u/ ?5 F# T& T2 l) {7 [2 W
if( nJob == JOB_MENTALIST_HERO )
" c9 u, P& h% x7 R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 T, [, Q# G& p: m" L$ v1 X' p/ ? if( nJob == JOB_FORCEMASTER_HERO ), b$ F- w! K( Z) h/ J9 c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! z! I0 q1 y5 c# W$ R8 o4 o. o0 U% @* l/ s. L; I5 A+ @8 c
( ( CUser*)this)->CreateItem( &itemelem, &nID );- S6 i. E1 ]- @" u+ T( J6 w3 C
}3 S) e9 v- A- N- q/ [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! e$ N+ R9 K! G2 u9 z5 Y! j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! O4 y0 M% Q3 }* ?' l7 f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. i0 d5 D& B& ~+ j( |5 l% c* s% ~ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: V5 U! m5 @* l* Z; _: p" | ( (CUser*)this )->AddTaskBar();*/
$ c; x/ G: ~$ v8 ~* N1 e ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, p, N4 z- u* ]/ m# X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 o& b( `1 ^! w; @- N/ z
((CUser*)this)->CheckHonorStat();. A9 u* q! c N
((CUser*)this)->AddHonorListAck();. i1 ?( G1 _' }# D* H; U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 `6 O5 ^8 k+ k0 g#endif // __HONORABLE_TITLE // ′Tà?
6 H5 T5 K( _# R8 B. b }
3 g3 \& P- [+ G s# Q#endif // __WORLDSERVER
3 A0 `1 x/ m0 p/ O( a} 0 Q# ?5 _! P5 ^3 G; D
" n9 N0 |$ n. ~+ `. K然后你进入functextcmd.cpp并添加以下
* i* ]' U ~; H# c4 X
) S8 x+ ]0 e3 c+ s代码:9 K0 W) k' ~9 A% `' i/ a" r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 b' I# e+ ^2 j- v; ^
下面插入
* t8 V% \. z( Q' X7 c8 V8 r* BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & a' U _% Q6 n; ]
, [* C. t$ @ o* G然后你去1 j/ G1 ]1 }+ ]( G( X) o; E' K0 X
' s9 G4 R& S) r$ N" v8 b代码:/ f$ J2 d" d( w m6 c3 f
代码
: Q, X2 w! w: Q7 y' ]6 EBOOL TextCmd_ClearPropose( CScanner & s )
- J2 C- Q5 x! P{
. ~: l! e1 @# l4 @& p8 N: x#ifdef __WORLDSERVER
9 U+ m5 m, H! G CUser* pUser = (CUser*)s.dwValue;+ G9 ]/ X) g" g) ?6 b- e0 u* G- I
g_dpDBClient.SendClearPropose();/ |' N L k- K' W" K3 ^# W
#endif // __WORLDSERVER
! Y* ~* u- p! | return TRUE;2 ^6 N7 f+ |. g2 U8 L5 P$ N) U
}" j. I; E, u4 F6 b6 K
下面插入
8 n9 @' M$ r' {5 U- QBOOL TextCmd_rebirth( CScanner& scanner )
Y. P3 l: S+ n _( p{
/ }% a: c, H% r7 Z) ~#ifdef __WORLDSERVER/ l x% h' f' E; a, ]( l
CUser *pUser;3 n; T+ E8 |* k0 F
pUser = (CUser*)scanner.dwValue;/ ]: Q8 A5 z9 S' o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 W+ ~, x& S2 |0 Q4 D. m/ h& q2 \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); F. A3 p1 K/ Z( L
else
1 N* Z5 Y3 n4 d" D5 A; p2 h r4 epUser->AddText("你还未达到重生条件!");
' \* ~- G+ r0 U g#endif
7 o* q! l, p) ?2 P* z) Freturn TRUE;' I6 l5 i2 S" Y. l) `# V
} : u# l3 K# ~2 h. F2 U* W
% W a. |5 B b, Z. O( U. a+ m1 S1 }: t, B! M: ~8 [+ c
" v* e* i. D. |9 ` |
# Q& q1 Q/ w5 o3 R |
|