|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ f9 H" Y( e# ^. F' T0 P! }$ c; ~- G
7 A' z' S4 T0 \" G* S
Mover.h; |) s& S" H, v1 M* n* Q
代码:" k- T3 x- q7 ?: n7 \3 |
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, w- M2 N$ v6 e* o! P. T
3 B8 c+ Q: o# x. _2 @9 i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 u L0 q# {& X' O& F+ V% t' S
" c# a& `, {7 z4 N! o% E1 k
然后你去mover.cpp添加
5 t+ \5 S* Y' o; \
# m+ ^& d5 Z* t1 k4 |* Q2 f代码:
5 a( Q1 h/ T3 pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( \9 P7 G' e* ?! @{
$ y5 Q% l0 o1 l8 Q- j7 @5 g" ~( K5 q#ifdef __WORLDSERVER9 G. Q! K6 Q7 P: C- K$ W6 ?/ P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* F' C$ Q+ N" ^/ i% B+ u# d
MoverProp* pProp = GetProp();
1 y. p- c6 _# m" Q J, X" J E2 p; ?) q if( pProp )6 B/ e) M) G3 ^6 K
{, K$ t. C0 h8 Q; \* D% r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 F, ]2 M0 U0 s& ~+ m8 m) O9 k0 U {
$ m8 b z1 g+ s/ s AddChangeJob( nJob );
$ u s! C: U, w0 y/ G* ]& X }else{$ M% q2 P. I) X: E$ B
return;
; g- t4 G F. U }
( g& R6 U7 I: e* ~/ A7 t# [) A int nPoint = 0;9 z2 K, D1 t* @- v0 p/ v
if( m_nJob == JOB_MERCENARY )1 ~+ a# T! `1 _/ z4 S5 f
nPoint += 40;7 f+ b9 |0 F+ {% [4 q) d& K2 ]9 h
else if( m_nJob == JOB_ACROBAT )
3 G) h! e6 M0 { nPoint += 50;
3 }; ^1 b9 Y2 Z# x9 g5 O' k S else if( m_nJob == JOB_ASSIST )3 y# U* V5 g1 m* T/ s
nPoint += 60;0 ^* {# z: U+ H4 o7 T% P: O# i
else if( m_nJob == JOB_MAGICIAN )
% e9 x4 W' W* u* m: d1 {. l nPoint += 90;
' ^% H. ?3 c0 { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 ]$ G9 Q; ]3 }( B: \) d
nPoint += 120;
/ X1 k% V* F# R. s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 n( D& T- {2 b
nPoint += 150;# N4 j q2 l0 B5 Y7 \) w( v3 U
else if( m_nJob == JOB_RINGMASTER )1 L! }% o8 H$ j: f R8 h' v4 J
nPoint += 160;" M* I: d* F _4 R! X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ P% Y/ U! j {4 ~
nPoint += 180;
$ N5 _* o6 }1 u: y else if( m_nJob == JOB_ELEMENTOR )
' l6 E. e1 X: Y3 t8 {: ^# v nPoint += 390;
0 G" P0 J/ E5 c# T. ^0 R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
f' i3 |7 _: r: ~0 d( Q' C nPoint += 120;) ]. @9 H5 m2 o" ~; Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 @% y8 N( i) O' N) u( x6 \' T" K nPoint += 150;
" L9 g8 l% D. \. X1 ?1 Y else if( nJob == JOB_FLORIST_HERO )
' e3 v8 @, s; }8 G( Z nPoint += 160; j- s8 U3 J+ u0 ` j5 ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ e% R" Y# r; l" p# \
nPoint += 180;" y6 l0 l% @+ h: {+ w0 ^' K, k
else if( nJob == JOB_ELEMENTORLORD_HERO )3 y2 X) F: U9 S( M* I
nPoint += 390;
) d5 ^( R8 Y2 k4 N% M- ? L, X+ M
0 I* A' f3 q9 c; e- U AddSkillPoint( nPoint );0 N" C4 n3 F; R. M5 `2 ~* Y/ k
m_nLevel = nLevel;
+ ~/ k6 s+ N7 _
/ R6 ^4 v! a z& k% O+ Z# m SetJobLevel( nLevel, nJob );! c! u+ T+ u L5 Z: R' {
m_nDeathLevel = nLevel;
3 M) b# a! h4 n. X3 n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 d2 {3 S& O3 O6 m: w& I! i
if(IsMaster())( Q" Q4 q% O+ R0 Y
{
( U% Q. y7 t( ^. O- t& F( u4 f/ P int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ K/ Q3 z; q; h: r4 T" z! _$ B q/ [ if( nLevel > 59 && nLevel < 72 )
# o) @9 c0 f5 l+ ?/ U. w6 R dwTmpSkLevel = 1;
3 B1 {, k" k; r5 ?3 R else if( nLevel > 71 && nLevel < 84 )1 Q6 g9 A/ A9 x+ p
dwTmpSkLevel = 2;
- F6 i/ R7 L0 e else if( nLevel > 83 && nLevel < 96 )7 ]2 T# w$ D7 S8 D H
dwTmpSkLevel = 3;) B3 B+ W5 ?2 Q. e2 f0 u
else if( nLevel > 95 && nLevel < 108 )2 A, @& P: u6 ?9 i/ Q
dwTmpSkLevel = 4;+ P$ ]2 S8 d% P7 S! j
else if( nLevel > 107 && nLevel < 120 )
! ~9 @- Y0 Q' ~) P8 H dwTmpSkLevel = 5;
* u' _+ F0 R4 a" i- m for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 M( H; a! {+ U l
{
4 I5 g1 C o9 X- E+ v3 Q LPSKILL lpSkill = &(m_aJobSkill);; Q1 O7 h$ ~2 {4 o1 b/ \: M: n) ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 w7 S* W5 ` }$ `6 _; A" o3 R {# O2 w/ L' T5 p3 u: x: V: c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % V0 r) i$ a; O8 [2 `$ X' F
if( pSkillProp == NULL )
6 j' z0 H/ o5 h3 V( w: q continue;6 c& B& g, \, x+ x; x8 S7 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 q5 v5 e! c$ E I2 m
continue;4 a3 r% ?: {& Q; N0 N/ o2 C
lpSkill->dwLevel = dwTmpSkLevel;9 q1 ?- r: A( N W/ R e
}
+ j: a$ b6 T- S, _4 Q6 N }) W$ q. S! U3 g) S
}
) j4 O( c9 `2 G7 b4 r else if(IsHero())
. }: R- W; N, Z" r {8 c, V( c6 [1 K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 ~2 N( T R1 c, {" g3 q2 t- ]/ V
{ # c( ]8 T8 A8 h# a+ \- G4 R
LPSKILL lpSkill = &(m_aJobSkill);
$ \+ h" M! E9 n ^9 z- x if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ z! r1 U/ h- M1 G {
9 l% _6 q/ |: t: A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) q$ e- p6 i' c+ T8 p if( pSkillProp == NULL )7 S$ x* e7 j( U5 i5 H
continue;" a/ G+ p, a1 p- y) V$ X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- O6 a8 M) h1 `9 d0 { continue;4 [5 t+ s! _! e' x2 `
lpSkill->dwLevel = 5;' \* w1 y5 L6 g6 {) l; k9 e
}
- }+ T2 e! f) \ B" V }
$ S3 k3 C @7 { }, s. \7 a/ D q
else if(IsLegendHero())
! F0 z2 n: z6 u: S7 b" Z1 Z {
* ]5 |1 B" j J! ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 f5 _" r2 B7 a {
6 S2 W* p2 C+ B2 g; k LPSKILL lpSkill = &(m_aJobSkill);
9 f" }* p7 \; Y9 y. ~1 e if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 _) E. _, Z+ g* | {
2 g6 U. P6 E( U0 a+ b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' V) y3 X& N" q+ e/ [
if( pSkillProp == NULL ) T/ X0 [) O$ U' e4 ^
continue;, ~4 y1 P; B+ v- t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) \( w/ o& }2 U6 M4 A" i4 `
continue;! Z" l* O: B0 Q; I2 M! h+ N
lpSkill->dwLevel = 5;% Y, n1 \* Q, M% M# L
}
/ [* k0 R6 F; w; G' K* B }
# o% V& S# _. n% N* P }
! N- x7 f2 B- u4 g& C! G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. c, s8 z$ ?- \; m, I5 z
if( bGamma )- H( w) E/ q+ I
{
* M3 `9 J6 z/ p9 ? m_nExp1 = 0;6 k3 H% A3 l. F" M: L) z
}" Q1 R6 I |1 D( i5 S
5 \$ O; n+ w( x( c& A' K' _ ( (CUser*)this )->AddSetChangeJob( nJob );
1 f; v/ f$ A! W- c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ P* @6 j/ u! V# }2 h s9 z) ~% Y4 T3 Z
8 `4 ?, f7 x, n2 ~1 n7 E
#if __VER >= 11 // __SYS_PLAYER_DATA
, G2 S4 N: I# R0 |8 w g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 Z$ `( W" R& i0 D$ s2 h8 E( F
#else // __SYS_PLAYER_DATA9 K' ?2 I/ p) @ Z9 s$ M) ^3 z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 h) C5 F3 q$ X# O* U9 X9 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# v. e2 j" j1 f* ? if( m_idGuild != 0 )& O& U/ ~1 l$ r: t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( j/ s( l5 B% N2 W/ j7 X
#endif // __SYS_PLAYER_DATA
5 \" J8 o1 |5 @+ u0 W( J* c* r SetHitPoint( GetMaxHitPoint() );
a4 U2 r1 v5 c3 a3 v SetManaPoint( GetMaxManaPoint() );
# _+ @$ X1 }! ~2 e/ D/ ^6 j SetFatiguePoint( GetMaxFatiguePoint() );
- C; ^& I! Q; L+ I+ j$ [0 p if( nJob >= 1 && nJob <= 4 )
. R, H8 ~6 F* A+ K {
( O: G' D( B9 O: o7 _, R m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 |: a( o- [! |8 S0 \ m_nRemainGP = 28;
9 V" ]% o4 F: } }1 K- i8 t: j& L" ^+ l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) r7 ?! R6 Y" ^' m$ w; l5 ~; w
{
9 O0 n4 X' y% |5 V; Q9 a m_nRemainGP = 118; M( P" y8 h0 e. z( d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 t) i, i( Q( c. t m_nStr = m_nSta = m_nDex = m_nInt = 15;" @; T$ b' X: }0 Y* n
}
8 T5 h% Q; ~$ {8 q. _5 z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. `1 n, M C+ M$ Q5 f; @. J {5 ^) i3 g% j& Z. p1 g% F2 w9 m% ?0 v
CItemElem itemelem;
" M" ?2 s/ H' ^9 o itemelem.m_nItemNum = 1;
8 Q1 V/ {! j- O' ] itemelem.m_bCharged = TRUE;
! m' z* p: Q6 I8 ? BYTE nID;
; F) w1 ?, i: V$ }7 B; p: E) D y" m" h$ g# h7 R7 h4 [7 P
if( nJob == JOB_MENTALIST_HERO )2 w. X1 H) r% g4 M) X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- r( J5 t/ i* p$ C/ [! L
if( nJob == JOB_FORCEMASTER_HERO ); M( Q$ Q* a u3 U/ ]" ~0 G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 y1 h0 \( r6 F2 _! `2 D
! D4 z' w2 ^4 o5 i0 C# { ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 z4 C" [: O) G; p9 y }
8 x. i% z; {4 w( p g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ o2 A. O) q" ^9 Z. c# J6 C% q: Y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( r( j2 O4 A) n3 q( @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& Y8 R8 G5 Q6 m& E# A! |1 x. | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, Y4 z6 v4 m d u ( (CUser*)this )->AddTaskBar();*/) l& L; @ ^" F$ p/ r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 K- i+ b6 L; z' b- H2 l9 M" q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 j/ A7 S) H/ X0 n ((CUser*)this)->CheckHonorStat();
( w4 H$ ]5 @, V5 w" `! m |# @ ((CUser*)this)->AddHonorListAck();+ ^4 y, z- s" r$ c
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 W7 ?) n: [6 h
#endif // __HONORABLE_TITLE // ′Tà?
- @1 b7 C! `: J% a0 B' K- N; p }
* X; c+ Q; x0 u8 O#endif // __WORLDSERVER
+ u) X0 @4 E, O' V1 a" }+ E, X}
* [" l% \' U& V+ {, }2 ?6 q: s( I) {+ F0 w" X; e6 O0 ?
然后你进入functextcmd.cpp并添加以下
# @7 g2 Z4 J2 h3 x+ m5 o3 d# |6 Q+ o4 U
代码:
/ ]* K1 ~- s: \/ O: W) kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 u2 b, {) C n& T/ e
下面插入8 B# g5 l* f+ A6 x- {; |9 k* K- D1 D7 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 [" n2 p. c( Y. ~0 B( d# B q$ i4 S8 Z
然后你去: d! I+ u0 p$ F! C3 T% z- j
: i: X# x" ?/ C! g1 u) G
代码:
1 _% `( Y( v1 }2 R; |代码- Y1 S6 _: P8 Q+ o* Z
BOOL TextCmd_ClearPropose( CScanner & s )
8 l, r$ p" e) H0 Q) l{% n+ w2 s4 Y3 l1 S+ B+ ~/ B0 @
#ifdef __WORLDSERVER
; c. T+ ^( Z- z! `/ C CUser* pUser = (CUser*)s.dwValue;
C; K" x, o+ T+ \- P g_dpDBClient.SendClearPropose();0 n; b, Y9 q. h8 Z$ ^! |* d
#endif // __WORLDSERVER
* ^% e& {- s; s/ j3 R8 H' [ return TRUE;3 [) G* v8 j3 X, R( @
}
' u; w- K3 ?( M下面插入5 @) Z" m$ a( ~% D
BOOL TextCmd_rebirth( CScanner& scanner )
- I! \! p7 Y8 m. s{
6 z( y' [$ V$ [3 R G& ]#ifdef __WORLDSERVER, m' h1 ?$ U$ |7 o2 I7 s8 |
CUser *pUser;" y' K y- E; S" T, I+ J" ]
pUser = (CUser*)scanner.dwValue;
9 ^2 J6 N7 q- i4 `2 S9 \9 Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 h1 C+ t n. ~. I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 M7 g6 _. n0 Z! T: m' l4 {7 v5 selse- _- [* [: {4 V$ C, R- U' G7 c" I
pUser->AddText("你还未达到重生条件!");
2 j0 Y9 I% Z, v8 h8 S5 @#endif* h, D! N& ]! \- e. w
return TRUE;& G. I4 Q7 Z7 |
} - b4 d7 d0 B7 @2 ]1 k2 v- b
! l: q7 r9 W, f' ~( V6 ]+ B; g6 Z$ @. n: |4 I" `+ Y s z: t
: Y2 z1 k x# M7 p: T) Z1 T
1 D6 Z: M% @, t- Y7 Z |
|