|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
o, R6 e. j4 U( E
! E. G$ l8 b" V4 m# W* fMover.h; B: s Z* ?/ y( J
代码:
. w9 G$ R8 K0 |$ x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 [0 C# {3 w, q: d, |* m
1 d! q- X; @. f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * t5 |1 e1 U$ r6 L5 P
7 [6 c6 R& y0 ]& n9 J
然后你去mover.cpp添加0 c F5 G2 e& H0 Q0 b
2 v7 B: j* {1 a8 m9 X/ i+ ]代码:& j& m3 H6 }8 {# R/ P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' b6 B4 }" y& t
{6 `( M& U8 K0 M d0 b% [, N0 N
#ifdef __WORLDSERVER; B1 ^& G* v. S/ [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, C; J' q, P/ q# ]2 j7 N! w- ]5 G. J; n! U MoverProp* pProp = GetProp();
; p6 I5 V& O& H/ U+ N if( pProp )
9 s6 m2 n6 H5 ~+ B0 x( U {: h: {4 ?$ ^7 D D/ Y1 C( s" J
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% |: ^" ]. Q! Y W- f
{
: v1 \" R) R- B' W AddChangeJob( nJob );
2 j! m, f1 ~: C L' S, B& } }else{
! H2 c; c4 [0 e6 ]3 ~, d4 X9 J7 [- d return;
. _( \7 W, B0 Y7 q }
0 u# z1 Z: E$ f; N/ o int nPoint = 0;
G7 d1 y* K1 f if( m_nJob == JOB_MERCENARY )& i: y: V* \) Y% |' Z
nPoint += 40;
6 n* y1 ]2 x) `' e0 N. b3 U else if( m_nJob == JOB_ACROBAT )3 s( T' Y" l7 i3 S/ i0 L, s
nPoint += 50;/ p+ U# j7 M, U8 c* H7 L8 |
else if( m_nJob == JOB_ASSIST )& w: r* e5 M9 O6 H0 p
nPoint += 60;
. \" t0 y2 m- @; E1 o8 I5 B" \) `$ M else if( m_nJob == JOB_MAGICIAN ). K& S3 J* N* Z/ I. z+ P9 g' p
nPoint += 90;
' J* T8 W" W V8 g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; d1 R4 }" H* n& a7 Y5 W2 S5 F6 g nPoint += 120;+ E2 `/ {+ X# M$ d5 f: X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% g/ `; y4 R$ x, F0 L: a6 ^
nPoint += 150;
$ P1 n% D8 Y3 z' q1 z# o% Q# e1 e5 n else if( m_nJob == JOB_RINGMASTER )
3 a. G* p# v2 p3 V5 R nPoint += 160;( G( _2 F' j5 j/ I3 j7 i7 t
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" H+ x% j# d& J3 E6 q- ?7 X: v: K nPoint += 180;
( O+ v& A( m. I else if( m_nJob == JOB_ELEMENTOR )
6 T5 K K4 B- O; B- Q* C nPoint += 390;
% s1 q( I/ s: u8 c9 m/ ~/ w% h* R5 u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 E2 [1 v! [8 m- g4 d" W2 ?
nPoint += 120;
7 t6 [8 }* f- a$ x else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ S; [/ C! A$ ] nPoint += 150;
9 f: i- O. G( k2 l/ r else if( nJob == JOB_FLORIST_HERO )
8 X R* g" F* X7 d i nPoint += 160;
" t0 `% G- M, x t- @7 T; a else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( y# P+ a6 V: ?' }# q/ R& Y
nPoint += 180;
$ j8 m3 Y* g T' X0 d; [. F else if( nJob == JOB_ELEMENTORLORD_HERO )
$ _- S J6 @) u. l6 }) Y. J& u nPoint += 390;/ R# r) N* T* `: n& A7 q
" U; ]# o5 D0 J9 V( L, u
AddSkillPoint( nPoint );
$ H# s$ _1 k6 v- m2 l- X: L7 N' @ m_nLevel = nLevel;. r% R x, B. y0 N
]# d+ r {! r# Q
SetJobLevel( nLevel, nJob );5 P6 Q* v/ R0 P; u
m_nDeathLevel = nLevel;
' ~0 N. K8 {+ F- S& L, y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 ^& B- e3 N( N% {9 u+ k if(IsMaster())& j- x3 L1 x; I' R5 X; Q+ o5 h
{
R$ i. s# K; U, x7 @+ Y3 f* H int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ B' x$ V9 O/ r if( nLevel > 59 && nLevel < 72 ). Q& [6 ?1 p5 \& O- t' V
dwTmpSkLevel = 1;- I, x4 G; W0 a! k" |
else if( nLevel > 71 && nLevel < 84 )
6 E" v4 V7 G. O: \! \ dwTmpSkLevel = 2;
; _& v+ n3 Q; [ else if( nLevel > 83 && nLevel < 96 )" O$ e( t. ^. w0 U7 z
dwTmpSkLevel = 3;
( ~. p6 x% O. Y$ B; E else if( nLevel > 95 && nLevel < 108 )
3 _0 v9 e, ]2 c% c8 r dwTmpSkLevel = 4; {* e" @5 H, D4 ~
else if( nLevel > 107 && nLevel < 120 )
% }- r: a& ]$ |5 a$ w" w5 J dwTmpSkLevel = 5;
$ K" O7 l* [; i6 P for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 E/ |' l' |0 d1 U" a6 g { % ~0 R* I3 J K6 Y8 ]! y |1 f4 B% R4 U
LPSKILL lpSkill = &(m_aJobSkill);
$ J# u, O0 G" Y2 p z if( lpSkill && lpSkill->dwSkill != NULL_ID )5 i4 h8 ~5 A/ s. i) c( l4 M
{7 D! @5 M- r9 O. M4 Q+ c3 E, \ P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 `8 R- X1 {! g+ j$ e2 _) r6 r
if( pSkillProp == NULL )
+ i, g0 C$ q/ S. F* R- Z continue;% W m8 T& R; N0 S- R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) ^ _7 |- X+ {. I0 |
continue;
9 H4 V+ G7 m" t7 x4 d lpSkill->dwLevel = dwTmpSkLevel;
$ I; }- v; F; N* d9 F5 c. u- d6 M }% O) |1 M; w5 w/ @
}
8 [' Z" t7 ], M; X' F }
, K5 S' W q) H; g& _6 p; ?6 c else if(IsHero())
4 g" V0 I: k( U {: z# T7 l: o) c* A |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% m- w' q5 U7 T+ r: l/ Z( b { $ j1 J0 K* T4 x) u1 N+ B B
LPSKILL lpSkill = &(m_aJobSkill);
0 [0 K: Z+ p1 p2 {7 i/ @9 n5 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
( D1 _8 p/ Q- S0 C [9 D7 R5 ` {" S0 O: E) y2 W5 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 V7 C6 H" {' ]1 `/ H if( pSkillProp == NULL )
- J) o4 A0 X' M+ E continue;
: c6 Q9 s0 j3 {$ v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! _! F& G+ l- P$ I continue;6 ]0 ?- E5 Q/ G8 F, y
lpSkill->dwLevel = 5;
0 P2 m2 s0 z$ E z# M3 |% q8 j }. }# p) X( K# X8 w
}
# m* P' Z" y9 N* T }
1 b7 P7 `+ T. }& @' n* R3 l else if(IsLegendHero())2 V2 ]5 a' j, ^3 U
{
& B6 x' L5 H4 j6 A8 b3 O for( int i = 0; i < MAX_SKILL_JOB; i++ )
' @- Z- k# q6 T1 m3 A8 y { + p7 o7 u$ A7 K5 j$ [
LPSKILL lpSkill = &(m_aJobSkill);2 [' A% D. `$ A6 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ O: d8 F8 V% @+ ^" N$ n! f s
{
+ u4 s3 L( i1 C2 ], p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 K6 d/ k) m4 p7 G+ M' q: V if( pSkillProp == NULL )+ H+ D+ g4 W# s. z# k; K- t% c
continue;1 r+ {- g9 L" a5 H. U9 s/ R4 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" R& z, e5 S7 y' C continue;
9 @8 _' Y, x, t. { lpSkill->dwLevel = 5;3 x- E9 v: W" o
}
8 {# g c! v/ n: R8 n }8 h8 r3 w Z. y5 {; T1 p
}
% D! p( J5 s0 Z) d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ u8 N" U+ @9 f# ? if( bGamma )
5 d2 t9 E% W! X. m+ C5 \6 y4 _ {
* x3 I4 e. J3 o8 q2 V9 b2 k+ x5 g m_nExp1 = 0;
/ p5 k' D1 ~+ ` o$ U) S: P }* C7 Y2 S1 G. V' N# V! G: [
1 q0 z: p. g) t2 u- i1 R1 n7 Y. @' E ( (CUser*)this )->AddSetChangeJob( nJob );: D& Y; g7 ` D* v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; _1 m% @1 Y$ r" Z
$ H) [; b4 e7 z! S8 G
: V# e+ Q4 |1 s8 B# {' Z1 l' }! Y
#if __VER >= 11 // __SYS_PLAYER_DATA9 O o/ M- A# Z. U" b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 V7 Z; \( o! m2 z' G# L2 s
#else // __SYS_PLAYER_DATA
( x( x2 N1 |5 Q: A3 o0 E- j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ F6 j; c% t) C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 p0 l& z0 R" T2 Z0 ~2 B' [+ y
if( m_idGuild != 0 )
1 r+ ?+ p7 `7 U8 e5 o- r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ ^+ ` N- T7 s" S0 y#endif // __SYS_PLAYER_DATA8 R* m1 Z" ?: f, M3 W1 Z! \
SetHitPoint( GetMaxHitPoint() );3 }! J( s* U4 | W( J# ^) a
SetManaPoint( GetMaxManaPoint() );
. ~+ e& S- M/ v" h/ p* L4 d SetFatiguePoint( GetMaxFatiguePoint() );
, m$ i( a6 W# H: \ if( nJob >= 1 && nJob <= 4 )8 H/ |, t% A& ?& e
{
( W+ S8 i. X: r, C( e4 z( ~9 u# o m_nStr = m_nSta = m_nDex = m_nInt = 15;- ~5 ?( A4 z! k3 I6 z0 R
m_nRemainGP = 28;
. t9 q: F3 L* y }4 M# s* B& T# d; J0 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( a* B7 I7 i& v3 R {0 C( q% i3 i6 s2 p0 O, d
m_nRemainGP = 118;
6 J! i7 r8 x" e: y8 L4 T //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 t0 s# J8 H7 V7 @/ ~. x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 P) @# k+ ?- v# o8 w }
' A& {5 m$ S* b1 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 j$ t( n" z: l8 l- E1 |
{
5 `" z4 a# }3 R CItemElem itemelem;
4 r! }9 J& a9 j& y* M$ B" G itemelem.m_nItemNum = 1;
4 T, _/ R9 }. `; C9 r; @) {. D/ n1 x itemelem.m_bCharged = TRUE;( K0 E7 |' Z# {8 u( t) v, E
BYTE nID;
6 A, Z* X4 l: h& [
% @7 Y+ M2 J- w7 \3 x4 q1 M if( nJob == JOB_MENTALIST_HERO )
" q# e5 [2 I" i7 n$ X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* \: Q( @2 U, p2 { if( nJob == JOB_FORCEMASTER_HERO )
. j) C1 r( S1 g' E- N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, k1 A" w* `, O9 J" Y3 A+ R0 Q7 l, f" N( P
5 k; R1 R: R v8 T
( ( CUser*)this)->CreateItem( &itemelem, &nID );. S/ V( f$ g* n; J0 q% J
}7 k# ?' [! p: h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 l5 {# I b9 i4 ~4 D, k N4 U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 x9 S# \7 ~6 m3 w3 t
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( D/ g$ B) ~6 [6 R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# x) G# Q k% H V) Z% u ( (CUser*)this )->AddTaskBar();*/
5 `, K0 G% r$ @5 H$ F! }4 V7 K ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 o' J0 ~" z( l1 a" ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; f% d0 d1 x! N9 M4 W8 l
((CUser*)this)->CheckHonorStat();
7 m5 o* K, L; V ((CUser*)this)->AddHonorListAck();1 B( g! b3 z" T1 Z7 p
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 e; e$ k) ?$ S" q( S/ n
#endif // __HONORABLE_TITLE // ′Tà?+ G3 ^3 |) v/ _8 x+ a1 w( Q" A
}
' m0 r4 z% c. n* {) O: ~#endif // __WORLDSERVER, T& M9 w5 m2 q
}
* k2 \. G: h% z w2 K$ q. ]. V
# |- @7 F0 V6 d2 {然后你进入functextcmd.cpp并添加以下; L0 l8 {$ J# X0 q
* p- c! j. R0 d& G, i代码:/ k- f/ P4 t' d2 p/ x9 P+ r, W) y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). @: V) N+ c0 ]* E: G2 t
下面插入
' A! b* @: g/ o, }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 B2 _9 p S5 w0 n7 ~% |3 B
9 d6 ?3 [9 M* B1 x, `* a: I然后你去
( A& ^, ]8 m- h i
; \4 u7 m0 P0 C, m2 f% E代码:
' l1 p( I7 Z1 F+ {2 C! V# U6 J代码, [) p( }2 d/ r" V1 K
BOOL TextCmd_ClearPropose( CScanner & s )* r' d, u' E8 R4 D/ k+ L
{* ~$ v) o6 K+ \% }
#ifdef __WORLDSERVER
' Z6 I) W$ u S CUser* pUser = (CUser*)s.dwValue;& ]. s# Z; r( W; T9 m6 h5 g
g_dpDBClient.SendClearPropose();
8 n% h" g, ?) s( r9 s% m6 Y3 V; K#endif // __WORLDSERVER
; y4 B: H o: L8 Y2 N+ F return TRUE;
8 N" V8 f# s. t5 o! o; C' G}8 }7 V9 V' U7 v: L
下面插入
% G( q; s7 D5 Y6 L. [; JBOOL TextCmd_rebirth( CScanner& scanner )0 ^) h' x; r' N9 F3 e1 Q
{2 ^4 }/ y" i7 E* v
#ifdef __WORLDSERVER
8 x$ [# q5 g: |! pCUser *pUser;( }+ v' B8 O, Q# X( `
pUser = (CUser*)scanner.dwValue;9 u: ~) ~# V0 X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% D; S" P- ?1 F/ h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 T" ^. ^& X9 \
else. j7 j$ C: W1 b8 c
pUser->AddText("你还未达到重生条件!");
. \( r! W- ~2 f8 q0 @2 B6 @#endif
, M7 M& w* n6 a- y' K0 E B2 |- qreturn TRUE;
' L0 z! d8 ]9 z! b$ S2 L" }} ) f' t8 U$ z( s+ p1 q
: F6 z8 H. @. q) G, z5 ^8 H2 y. c
& ~ { O+ j/ i
# \2 n4 X; U4 u% g+ u
0 e3 @5 {9 k) a7 o5 h& @
|
|