|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! V" e, c* v4 O) t; ?: d2 B% S; K O1 Y" g) B& {5 X
Mover.h" F$ d8 h2 A% c! \/ E4 V0 N
代码:4 w$ i( e. T# q4 E$ d! C. D6 T4 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ D/ a `2 B8 T
$ q/ S: s( {: T/ q! _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 |: Q7 z9 X5 A& k0 n
8 N, O+ L, d$ @2 `5 E. d
然后你去mover.cpp添加
! n6 ^3 h* ?7 p& X& K5 y' N9 l- T) ?, X" W
代码:
3 N4 p7 x. m" ]3 d! u4 pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( A; Q' I0 Z# U+ O+ v7 C
{
6 l. D7 E: S" N8 y( ?7 r4 {! `1 w#ifdef __WORLDSERVER
3 K% q" n/ }" ^/ @+ ~+ {" w( Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 s9 T3 P2 e2 n+ S0 K0 N
MoverProp* pProp = GetProp();
. @* p1 p' Y$ y7 { if( pProp ). [0 o/ n. z, v# V
{
- W! p7 q2 M R. d7 U3 ?9 z2 i if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! ~7 o3 F- }- R: B1 z; | {; g8 [0 u* O. z$ J
AddChangeJob( nJob );
8 E3 ?/ J8 h3 Q7 K/ w4 P- b }else{
" n0 p, n+ P1 E E return;
5 D2 {5 j x U, J }2 H" C8 N7 w0 C% w1 S- N |9 R
int nPoint = 0;5 N" r7 I) t+ G; j3 |! S |
if( m_nJob == JOB_MERCENARY )
( X: @6 _, ?$ d2 Z& s% t/ j nPoint += 40;
' h2 ?# M# ?3 V0 F1 j else if( m_nJob == JOB_ACROBAT )) E5 Q* P4 }6 n9 j5 Z
nPoint += 50;
4 S) _+ l/ ]. L: n else if( m_nJob == JOB_ASSIST )
- ], ?! h* j8 N nPoint += 60;
0 T' e/ }$ p, t% k. B- J) B else if( m_nJob == JOB_MAGICIAN ); ?; j! h- s# @/ `& D
nPoint += 90;# n6 X1 L2 t: ]0 f, A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' {4 v6 f x4 Z nPoint += 120;
9 [0 W8 k! s3 {& z' T: a" X" Z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 @( T, @6 }) y M, Q' X/ s
nPoint += 150;/ K1 {: }- k8 X- W, `( ^
else if( m_nJob == JOB_RINGMASTER )8 r5 m$ D& a. B8 V; a {
nPoint += 160;* q8 H. s! K: f, T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) v* U" ?5 X$ P* X0 a
nPoint += 180;& A* t' g5 ]8 a/ J- n& G6 K; a
else if( m_nJob == JOB_ELEMENTOR ), ?5 J) A( ]- f. F9 N5 G" z9 F
nPoint += 390;4 D$ g! a {. ?* T0 A3 o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' ~. n6 ?! S2 V/ n9 {6 o nPoint += 120;- |+ |/ x' k$ u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 Z$ D: O! k- \
nPoint += 150;
% t9 C9 Z, Z6 x% n m else if( nJob == JOB_FLORIST_HERO )
( O8 r9 q5 J8 g nPoint += 160;& e8 z1 E* \4 F" l& Z4 w
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 Q9 v$ X! t- k" R" d7 U
nPoint += 180;
6 Q2 n: ^/ z; P9 p3 W/ b else if( nJob == JOB_ELEMENTORLORD_HERO )
! N% Y$ M/ I* X9 D& U, P2 p nPoint += 390;! G7 B% y' _5 i. N
) E9 D% v' W. c# b9 h; W5 N- R+ p4 u
AddSkillPoint( nPoint );
0 ~0 _* D$ L4 D5 o: F; f o m_nLevel = nLevel;' I2 |8 A' ?) o# x8 |% w
& `8 t* }* _0 F# o! i SetJobLevel( nLevel, nJob );
7 d0 J, K5 @. Z m_nDeathLevel = nLevel;- b2 k; t9 {# \/ T/ z, N2 ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 I5 ~ E. B0 i1 u if(IsMaster())) S' ~% }4 Y7 a4 B7 }, {) ]
{
0 y$ Q( R d: c: Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ m: g; K+ \- Q( R# Q4 a
if( nLevel > 59 && nLevel < 72 )
1 f3 U' i% t4 H. V0 U- I dwTmpSkLevel = 1;
- S+ A& [4 o1 Y0 G5 r. x* o# r else if( nLevel > 71 && nLevel < 84 )2 G: S& e: p. ~# x9 v, {& D. E8 h! ~
dwTmpSkLevel = 2;
) ]" r1 W8 G+ G8 U& X3 e z# ?1 a else if( nLevel > 83 && nLevel < 96 )0 S5 o4 F& Z+ T+ {2 j5 B* B; q, }3 V
dwTmpSkLevel = 3;
: @/ V+ R7 H' g5 p$ X else if( nLevel > 95 && nLevel < 108 )8 {' r+ v! B) E! Z+ S5 e
dwTmpSkLevel = 4;
Q* |/ Z" C; g) L6 H* ? else if( nLevel > 107 && nLevel < 120 )( g( J+ K1 G6 d2 v" {( s* c, m$ q
dwTmpSkLevel = 5;
! b9 d4 R' ]5 ~8 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) # Q5 L+ u2 t* V
{
3 S" w; t0 }1 s! t- B h LPSKILL lpSkill = &(m_aJobSkill);% e7 d1 h3 ^4 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 u. W2 s2 }# f S; r3 P
{
* H, z/ ?6 E4 \7 c; ~" }/ E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 K( j" I( A, ]; t if( pSkillProp == NULL )( T" c: F5 y' ` Y$ u: i
continue;. [. {! L1 m6 c8 R8 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); \2 Z# ?. T- s
continue;- P9 _- [( o5 _: E
lpSkill->dwLevel = dwTmpSkLevel;4 Q& K7 n% X' _- R
}
, K% e7 g4 y0 B. I0 }- G. d }' R# v5 a8 l5 [1 D
}
( {, `5 `3 L K: P. ~ else if(IsHero())
; p& K, q0 T( d {! l+ Y* I# C! }: X( C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 I! A4 w; I) |
{ 9 T% j! L) K7 Q0 t# _
LPSKILL lpSkill = &(m_aJobSkill);4 a2 \" O% D+ X5 m; N! j- N7 D5 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 r# p5 l! h3 U* H- `8 ~ {
3 F# i. D* E& `1 ^& d( D! D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 ^8 ~+ W+ l7 {$ I+ k4 u
if( pSkillProp == NULL ) F( Q3 y* Z: a- ]# ~( N/ ] D
continue;
! F6 k0 c5 M- d' k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: [4 a' j4 m- N" d9 l* Z continue;+ k1 o$ Q" n. {* p7 e
lpSkill->dwLevel = 5;1 B3 y6 S7 T* B
}
) @5 D# e5 p0 d/ A$ K } M: s* \ t) c8 e7 U
}4 k4 r) j, S/ e5 H: q/ Y
else if(IsLegendHero())
1 b; w6 k9 X, U3 m% G2 y {9 o# N3 X. C# i! S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 W- R8 Z" T: k& b0 m' W
{
6 `5 ?1 E* I) Q) d/ j0 Q LPSKILL lpSkill = &(m_aJobSkill);2 W f" s% N. X2 Z% a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! S' ^4 B$ N6 v {+ ?% ~$ q8 }: E- l- C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ l& e% A8 E2 q: k9 h. O2 ?
if( pSkillProp == NULL )7 V: q7 Y) J9 `, R" b
continue;
1 k! A& f2 N2 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ G& M2 g2 V, O4 x8 W- e. ^
continue;: N, B1 I! x$ Q& q! u `
lpSkill->dwLevel = 5;. o) _+ t# ^) Z4 X: t
}" Y0 [' M2 ~7 W' k8 f+ }4 U
}
# }- {+ q$ s8 W& C# u4 V }
, [9 g, R( z" |- H: @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 d2 |* D* `% {9 @3 l
if( bGamma )
) ^& \ Q- @& U+ c4 \1 ` {9 c% T9 q: C4 r8 W. A X
m_nExp1 = 0;
Q1 n. c& k6 g8 h' }8 V+ n! N }
5 q2 ~. v3 g2 T% f0 ?$ ]3 s: f" |7 w, L
( (CUser*)this )->AddSetChangeJob( nJob );* c/ V c8 `9 Q: w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" M! `6 V# v. O7 \7 l; b
+ p- F; d1 f5 I( `0 _% b
# ^+ U5 _& J4 a#if __VER >= 11 // __SYS_PLAYER_DATA% ~+ Z/ c' l* b/ b {' W- A! ?) _: R5 S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ Y8 }3 N8 n4 y% r j#else // __SYS_PLAYER_DATA q9 @$ X" a) h K5 l9 g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 t4 E4 ~) r/ j) O! k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ L$ n$ R0 k4 w. X { if( m_idGuild != 0 )
: h# c9 m% n" ` g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* @* n! x' O2 O2 L; b
#endif // __SYS_PLAYER_DATA
' Z- i# X+ _0 K2 [# `3 S: Q5 [ SetHitPoint( GetMaxHitPoint() );; a' H. ^1 ]$ e r9 h. X% N
SetManaPoint( GetMaxManaPoint() );
8 [) h' _+ N D( c/ _: U& i7 }: q$ \ SetFatiguePoint( GetMaxFatiguePoint() );
0 ]6 Q! f5 F+ D+ K if( nJob >= 1 && nJob <= 4 )0 Q u6 q& b n: s: o4 G7 [/ y! D
{
9 N: u2 w" v3 r) ?" F& J+ h G m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 C1 u. u8 ~: k+ W: Z7 O c k5 |1 p m_nRemainGP = 28;
. d8 T* @5 T9 [+ h }, {- x' s9 M* K; s4 l+ `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), m2 y" q/ Y8 P# G; h
{9 y/ L, }# B' }$ j
m_nRemainGP = 118;- ^9 P& \! g1 Z* b) E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ M5 V @/ C- D$ r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 Z; ?2 R0 g8 e, P }
( R- b: j& G# e7 \0 w0 r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). v, @% G) j3 {; [6 e/ f; a. z2 c
{
& P0 ^" |8 W5 Z9 u6 n CItemElem itemelem;' t# H3 m H2 I0 W$ S8 }: r& H
itemelem.m_nItemNum = 1;
- E- y7 X9 n3 _! Y itemelem.m_bCharged = TRUE;
+ |6 i9 ]% b8 t. _6 A- K/ P BYTE nID;! i, Y( @0 v' B0 n8 G
- y4 {) a5 E+ |# T. W, q
if( nJob == JOB_MENTALIST_HERO )6 ?, a, d5 G2 |- }; n3 C7 p3 r$ i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 K$ f% k8 C8 P; @. J$ ^. X4 o
if( nJob == JOB_FORCEMASTER_HERO )& N' t1 B1 N! n
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' I- e, N0 ~; C P6 n& I7 n
& {$ K1 Y3 p% I) Q" Y, `' e7 O: j
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 x/ i: B* Q u }
$ R# T4 I2 x6 P( I! K, Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 H' K) ]( }" _$ k4 a- P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, p" K8 V" j* b# u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 _% j% P% F- ?3 z" s8 v* s" E& x+ Y5 U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ m6 ]' Y* d# y! d
( (CUser*)this )->AddTaskBar();*/2 S1 S0 j0 o" j! o8 I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 P& T z# @9 q$ I1 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- }3 ]8 @' g6 h* c) ` ((CUser*)this)->CheckHonorStat();
' v* u2 s# _8 `% y3 ?4 y ((CUser*)this)->AddHonorListAck();
1 C, j) A7 [. [8 A( r: r' T g_UserMng.AddHonorTitleChange( this, m_nHonor);: ~$ @' q: G2 h
#endif // __HONORABLE_TITLE // ′Tà?. k- J9 u! Y8 j' F y7 K
}4 y$ P2 q7 N. U) n! _/ }. z; F
#endif // __WORLDSERVER
. u/ A$ Y& q" R4 N}
5 q& O1 `" u6 }2 z
& ? h( I5 [, ] |+ C然后你进入functextcmd.cpp并添加以下
- |2 f6 [, S! D0 a1 B) e. T) w, F2 ]/ c* a4 Y; q( Z1 X9 b
代码:
/ q$ i% K, p4 l+ H+ A, D; KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 F1 D6 G. q+ q( G6 x& b. A
下面插入. e# b6 j* }. h P7 x/ q: P1 J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - }3 R9 f3 p3 ]) k; j
7 D3 P7 i9 d7 D: g1 a
然后你去' a7 P' a5 f2 E- b; b% a9 j
: B; A9 m& f4 d. u: P代码:
% H8 q+ S. U0 j& l: k代码. _5 K; r2 N# q0 A" @* f" t
BOOL TextCmd_ClearPropose( CScanner & s )
( _6 ?/ {6 {" Y- l+ b3 d# I{
. B; U. u" F4 f7 p! R#ifdef __WORLDSERVER F% T2 M9 q* U7 O: C! u- p$ L
CUser* pUser = (CUser*)s.dwValue;0 J& F; F: Q- M8 T4 [* d
g_dpDBClient.SendClearPropose();
% w) c( w& Z" C: }. S! d#endif // __WORLDSERVER3 S( u3 J; i H# j
return TRUE;
5 k# c: |9 F8 S: j8 w& M}
' c0 d0 S0 Z4 |$ r" k9 ]! @/ i下面插入, _' a/ _+ t+ q: Y# g- ~+ |# Q
BOOL TextCmd_rebirth( CScanner& scanner ). ]9 q6 t7 S' U/ I' o9 U
{6 B' z" G; C5 Z+ y/ p0 W" r z: W1 T
#ifdef __WORLDSERVER D# P: H% f4 e. n+ W' g
CUser *pUser;$ T" `3 X7 v" E5 U
pUser = (CUser*)scanner.dwValue;
! n2 |2 ]2 N K; x- |& Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# K8 }- Y) |" V) r ?+ C; npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# M8 x2 t. B9 u9 u1 w$ kelse4 m$ d' \) \8 r J
pUser->AddText("你还未达到重生条件!");; g: ^, ^6 H% R1 N
#endif
; M& I# A. A, h# z* J4 E xreturn TRUE;
% T- E. s) x. k; x} ( U* i- _4 d) `0 i0 A5 y
2 b% a4 m; v" e# r! C1 N- B9 P
: L4 n$ _3 ` _& H- }3 H; s/ m- G( I: T3 b! P+ U
* r5 g' t6 f- w1 E8 j9 f# z
|
|