|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 r! D; y: ~. X7 S9 x+ d+ N
) u: M3 D$ c: Y2 U0 mMover.h. N; C1 f' n, v0 O
代码:3 V! `! K I9 l u$ I# f A) ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% a) s4 M1 M x$ `; D7 J/ V0 x: W$ C+ J' @" P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ R( y' ^1 J) `" p: v7 v% S; I. m
. J8 v/ J% D1 v4 v! f1 U5 u; Q然后你去mover.cpp添加/ ~% B$ {' F9 a# f6 e5 C4 c
/ w8 H @: x( i# S代码:
" c+ T) m2 O0 M1 T) `: X q) Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- K( f5 q3 R0 d1 `" R{
2 {6 f" [' F* W& A T+ F7 G; Q: A#ifdef __WORLDSERVER
9 W' E! G# i- z5 X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) o9 Q) R1 x0 @" [
MoverProp* pProp = GetProp();( k( e# A: h1 J
if( pProp )
; \" b; R) Y/ J: p7 ] {
( U# R: N& n8 a$ J7 @: P' P2 @# h if( nJob > 0 && nJob < MAX_LEGEND_HERO )* W" Q1 ~0 n7 b. w) Z9 E# S3 A
{) d4 a$ a6 m& K9 J/ C$ {( D
AddChangeJob( nJob );
8 Y4 e" D) q( T. I5 K7 O. `3 o }else{
. e. O, X+ ?/ |+ [3 G5 g* }' Y; U return;+ x% K- t- l- A0 d" H& s- {
}/ D$ R" O' p- G7 b) L- L( G
int nPoint = 0;
% B- t, K3 c& c# K3 A4 c/ W if( m_nJob == JOB_MERCENARY )4 i' A2 m7 I1 G f* D y+ h
nPoint += 40;4 S2 F8 p2 S8 b, x: A s
else if( m_nJob == JOB_ACROBAT )" s; o0 P5 Q0 ?2 m4 c
nPoint += 50;
0 B4 R( b* n, a else if( m_nJob == JOB_ASSIST )0 d& H7 q/ Q& d# Q9 a5 Q
nPoint += 60;) a4 w/ ]/ q b& [
else if( m_nJob == JOB_MAGICIAN )
" C4 q( J& v1 \ nPoint += 90;* |, I* M. k; T% t& t& v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 b$ M+ Y" J" v5 | nPoint += 120;/ z% ~- B ~: K7 _: g: Q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' E6 I) M6 i4 m2 c8 _
nPoint += 150;
$ o, t! T$ `; i" [! V else if( m_nJob == JOB_RINGMASTER )
5 D6 W$ p& q ^- n& H6 A4 Z1 }% N nPoint += 160;/ a1 I6 m/ ?0 t
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): J: L- e5 z4 {( ?5 f, n& v
nPoint += 180;1 t$ s8 X `+ f, M6 A
else if( m_nJob == JOB_ELEMENTOR )8 ?3 @; R/ Y9 G5 `
nPoint += 390;
% J- g) q) a# v8 t& q7 t9 n6 n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 F9 x) l, L# H: ] nPoint += 120;0 H7 j8 A8 q( K3 d2 \# @
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ F* F& s$ M, r' R nPoint += 150;) F& C0 R6 a/ U
else if( nJob == JOB_FLORIST_HERO )
- K& p/ f3 y+ h2 U nPoint += 160;8 W: |& f3 A- S% W; d- o4 w; Q2 x8 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% S. f# `$ m; Q9 ] nPoint += 180;
: ?$ ^0 r/ c( j else if( nJob == JOB_ELEMENTORLORD_HERO )/ R; Z- W- f; x1 L$ E( N$ P3 V& Z5 W
nPoint += 390;
! \& v6 j! W* l2 u$ O
; N. @, @, D1 |% X8 [! E6 a AddSkillPoint( nPoint );. F* l8 }( N2 A$ E; |
m_nLevel = nLevel;
" I( z2 k% i+ U! \, H; f
1 V% r5 E- L+ ?( G6 O SetJobLevel( nLevel, nJob );
x. f0 [, T: s/ Q* V m_nDeathLevel = nLevel;% a: [! z3 T3 m" ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& L9 B! W6 J# e8 f+ t
if(IsMaster())
; w6 H$ P% K- @# X( Q' ?* q% f, [! a {- r5 s$ D. r- i$ k" @0 ?3 G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: {! l5 P2 }& h6 R2 y* `0 L7 V if( nLevel > 59 && nLevel < 72 )
# x" V N: M5 w0 M, G) p; M dwTmpSkLevel = 1;
7 n5 a0 y H' V1 B/ F else if( nLevel > 71 && nLevel < 84 )6 t0 `1 f$ j* e f7 ?! _( \# L
dwTmpSkLevel = 2;
; ?+ J* N7 v( C7 v/ t else if( nLevel > 83 && nLevel < 96 )
2 R5 k4 Z, l+ D$ C" U: t A dwTmpSkLevel = 3;
2 ^1 I z( Y* I H9 O# l3 W else if( nLevel > 95 && nLevel < 108 ); ]& X' M' a; g/ f5 @3 R) |
dwTmpSkLevel = 4;
1 M# _( [, \+ S6 d9 M# p2 R1 o else if( nLevel > 107 && nLevel < 120 )
' e# h r7 i, H0 q" t5 N& A( H dwTmpSkLevel = 5;/ H# s) x4 a8 O) z8 l: j3 _' w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . r' @ D, Z9 h
{ $ q$ h, B5 _9 h5 Z
LPSKILL lpSkill = &(m_aJobSkill);
( w5 x8 B0 z& w) Q! k if( lpSkill && lpSkill->dwSkill != NULL_ID )" j; z" L: N7 Z% {& `& \9 f. ^
{
. L8 T4 U! f A) b' [ z8 `+ Q; ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / W! ~0 |/ x! T8 g
if( pSkillProp == NULL )# [/ ^+ U" R; z
continue;
" a" E; r) p: M, K# M( a( ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 E3 O0 s, c _$ l2 P
continue;0 o' @ m- c, ?* V1 i
lpSkill->dwLevel = dwTmpSkLevel;' X+ o/ q% R* x$ C
}
0 U3 C3 f4 Y: N" a) D }) Y0 F) D, {) r
}
/ s9 x! e1 S6 }/ o else if(IsHero())
- u6 ~6 U2 M. L2 J1 n( Q' ? {
+ b5 b9 \2 x1 S& v9 ^- K for( int i = 0; i < MAX_SKILL_JOB; i++ ) , i3 e F$ M' J" d. T- \+ P' r
{ * E6 O2 A7 x- i5 l0 n& G2 F' G/ n
LPSKILL lpSkill = &(m_aJobSkill);, D5 b) I# j: w) ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. Y* k2 N: T+ G' O# {+ s) c {7 Z, d6 D7 H" {( B( }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! l$ H/ j g0 q! [5 m" k$ O
if( pSkillProp == NULL )4 `, l9 _; @0 {: E( r+ i
continue;' I' D; t% ~1 [# N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). G4 \' c# [5 R
continue;4 q$ R1 b; K3 _/ \- O ~
lpSkill->dwLevel = 5;
& m% m/ [1 A+ `) z9 u9 d$ Z }
% Y7 B6 V. U( R% P$ t# m }
/ O4 O# P. i$ P9 Q$ D# [3 E }- A, K# Q8 t" n( L J3 q
else if(IsLegendHero())
4 ~& M5 P- P& Z/ n {6 O- O# c+ z) w3 Y0 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* o* y, v$ W6 ~2 b. ~ {
# x% m% }, _! z7 v( j f LPSKILL lpSkill = &(m_aJobSkill);* t. r" P P" X/ ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 U4 j8 `4 ^0 Y+ O; P% B; u {
2 L3 f' m0 K" F1 U2 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
^4 U" [9 Q: j0 s) i' z& ?; ~5 n if( pSkillProp == NULL )
0 _9 a( A: W4 y2 M) }/ a* Y& |5 X continue;
3 ^! @# T$ T2 f, t1 ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 Z4 a n7 d ^
continue;
C( o8 j" V5 f0 C j* [+ { lpSkill->dwLevel = 5;
9 u3 ^# `- o0 w }
7 ^* c( _6 w1 @* P/ | }
- I' N0 y$ e& X1 v7 M }
6 J w9 B4 f- M3 w# ]. R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! k" U$ y" Z! Q% |$ I7 K P if( bGamma )
4 r1 L; h0 s* m$ B$ I5 i {% |& T- o: v" y+ m9 d, s
m_nExp1 = 0;
+ M& @: l, w' P" U U% ^! O }
6 Q& L: V, U$ V+ x( n0 ?8 t2 c
+ o, y2 b7 A5 d, \ F ( (CUser*)this )->AddSetChangeJob( nJob );
8 s9 Q g/ g# Z+ K9 v g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 v/ t m* c0 ? g, S
& ~+ B3 f( a w+ \/ b( M$ K4 Q" v4 }( e% i" l6 A: J* }0 f
#if __VER >= 11 // __SYS_PLAYER_DATA8 V! h, ?8 r/ j" A8 [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# s' N! M1 Q" M( u/ k
#else // __SYS_PLAYER_DATA
* U1 ?( R* B( z8 A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 z9 n# ^& M7 v4 Q& }9 T" i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 x4 V, `; ]) c7 t7 ] if( m_idGuild != 0 )8 ~2 W# K9 k6 h5 t+ p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( l5 ^6 K3 t" X) `#endif // __SYS_PLAYER_DATA
9 a9 w% n4 t, ? SetHitPoint( GetMaxHitPoint() );* s. ^/ H$ w4 v
SetManaPoint( GetMaxManaPoint() );
! [" D$ X0 e+ X4 f SetFatiguePoint( GetMaxFatiguePoint() );# g; p' }, X: t" i
if( nJob >= 1 && nJob <= 4 )/ e% z; z6 S' Q( L: |, o
{( Z+ v5 s* ]4 w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- F, Q3 e1 ]" H- p7 |# o$ S! A0 v m_nRemainGP = 28;
9 l5 f2 i5 Y/ E. U }. t2 Z1 Y d/ I* |) w$ S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). {' u g- d- q9 O% F
{+ u. m1 C# U- I3 W3 P1 d3 ^" Q
m_nRemainGP = 118;1 B& j# j+ ]8 N5 w; l% A. t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 X) A; A& ^" \: H' y+ @ m_nStr = m_nSta = m_nDex = m_nInt = 15;
: i0 W( `( o/ m g; q }
6 W4 F" N8 B; @- A P# Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& m6 K' e2 I! T2 `5 i7 B4 s& e {# T' k* D# U/ L5 e; k- e
CItemElem itemelem;7 I& E1 B# l6 ^; \) ~' s) G
itemelem.m_nItemNum = 1;7 p2 S. s( i: x
itemelem.m_bCharged = TRUE;0 o# C1 U* B8 X% j" I3 p1 v7 b# Y
BYTE nID;
" W% D, z6 D6 {$ b' T5 [) F7 U7 Q9 l4 Q8 c! o) e* S2 ?' A, b% S
if( nJob == JOB_MENTALIST_HERO )+ f% i; I6 t. D" P4 E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 J" [# x5 T6 `8 V& k
if( nJob == JOB_FORCEMASTER_HERO )' q" F3 K" S/ [- K" W1 X/ F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- d, Q% S6 Z0 }% `1 J8 P( t3 ]# h
# }! w$ x$ I4 [+ ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );) K" i3 D( F- J/ V& k3 b' t' G
}
- \9 p* X+ T3 T/ Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 J# W- d, `- L. Q3 V+ ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ a2 L0 V5 `1 M4 W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* h$ G; Z* Q# A1 V! N+ R# t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; v7 p c0 F5 s
( (CUser*)this )->AddTaskBar();*/
, V# V. c8 k8 @4 [$ o3 k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* Q% K8 t. Z: t, ], S! }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, J; ^0 M- o* V ((CUser*)this)->CheckHonorStat();
5 k& U0 ~6 h6 ^% v+ |3 D& P ((CUser*)this)->AddHonorListAck();/ a! R& k2 `& p8 o$ ^
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) v5 w. g9 D i( q#endif // __HONORABLE_TITLE // ′Tà?
* ?) K. |" @4 {4 c( x7 ` }" I6 Y" W- `9 \* I
#endif // __WORLDSERVER
$ j4 ?& k* m4 z% d; V} 5 P; u Y- H1 u. ^: _4 r
0 w! s6 M( ~6 D4 m& `1 g5 Z
然后你进入functextcmd.cpp并添加以下4 s5 Y( p, ]: u+ M8 B+ a9 p
8 S B# `( x9 s' W! R代码:! v1 Z: x4 ?5 s* h" V, V! [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- M# G6 I; N2 s" s7 p
下面插入1 z; v5 @; S2 m5 S+ b3 O0 q3 T
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) m; g' j8 s) _# A' e* x$ T
4 l V2 E: Q* l1 q
然后你去
% ?# J2 I9 `# w4 W m( b" D1 m1 H a& V Y0 x+ k8 L
代码:
; w' U0 o: O0 O" k! E代码8 f7 v6 y4 q8 C# W8 j. w
BOOL TextCmd_ClearPropose( CScanner & s )0 E* n. u) r8 ~" U( s+ k2 R% [
{
0 d+ c- O! t+ l# J7 P#ifdef __WORLDSERVER
6 F3 G: J m, d/ V CUser* pUser = (CUser*)s.dwValue;$ ~( b0 j- s/ t
g_dpDBClient.SendClearPropose();
% f1 S/ H* T/ Q) k% w8 C# E$ i) M9 Z( Y#endif // __WORLDSERVER
5 y7 f9 d) H+ t return TRUE;( M8 S3 ^8 B- f4 v$ D L
}
! e. Z) p# v+ x1 C下面插入- Y [* f$ T$ s% d! M
BOOL TextCmd_rebirth( CScanner& scanner )
9 `! D. Z" p: v( f( y6 e{0 E* o& h! R* @1 {# r' s! o- ]
#ifdef __WORLDSERVER& k o& M$ P$ ]
CUser *pUser;+ {& I! A; ~. G- |2 D9 d4 I1 K
pUser = (CUser*)scanner.dwValue;
' I) F( @ H. O) Z8 Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 D% K' y) ]! i' @. C, n2 J3 F T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( U" o, v4 K$ i9 @else
+ R" m+ e. q$ N0 ^: h, VpUser->AddText("你还未达到重生条件!");
$ h: W* T' M" G# {* |7 e#endif
7 L% s8 S9 e+ j* _" m0 creturn TRUE;
j s( \) {+ N/ E: U1 o}
2 k' L) W+ L! Y1 p# j W6 d$ |5 B6 j( B3 t% a0 q
# j6 x9 \8 O& s
+ t. S8 Y8 _" Q- D% e1 x
o5 v7 K" @; I. y6 C. D
|
|