|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; z& R9 `( u# {
3 K1 s2 o' A6 v, s$ O+ U2 p
Mover.h
3 B+ }4 J9 `+ R代码:$ L3 s; n$ s% `/ l1 @! y7 d
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 O. \4 O7 P' @7 m) B
. d; H, q: _0 O1 m
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 U0 m* }' H$ D4 q* l6 Y
' {, c I& C. ^( S! J8 p) c/ N然后你去mover.cpp添加
4 q) c1 f( J% O( q
( R6 _# q8 M( \+ j# z! x代码:9 E: m+ d2 |; B4 `$ s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
{ ?5 O5 X- Q! L: C& R9 i{
* t% A1 H( a5 z, E' ` }#ifdef __WORLDSERVER7 ~2 _ ~1 ~7 q9 f9 `; ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. J" g4 X& n4 P% X# _
MoverProp* pProp = GetProp();/ C6 v. \7 G1 _. ?+ e- h
if( pProp )
5 f" Z1 x. M% a2 O0 `" {* ]% k7 T ` {
2 [$ h( r$ g; p8 c& M# ~+ `7 f if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, V% {! b1 Q1 }3 h+ a) V" V" r {
' ?* D* A; r5 X5 A AddChangeJob( nJob );$ g: d( l; E4 Z p- T# [2 `7 M, v- b" k
}else{
) R7 ]) W( ?7 g return;# l" |7 i Q4 ]& {, c
}
" }+ \$ V1 y& R; V+ h; _ q- N2 T int nPoint = 0;1 _2 z; N, Q% k, y$ U" a! S$ J! |
if( m_nJob == JOB_MERCENARY )
0 z5 l X4 m" I! i6 G3 m! t nPoint += 40;
& ?* w; | A- J s- b else if( m_nJob == JOB_ACROBAT )( e+ P7 x' f: P, l$ ^/ L) J
nPoint += 50;
6 d- N% u( r9 c- p& Q5 P else if( m_nJob == JOB_ASSIST )
7 V6 n1 t% F: e% K3 V" f. z( C nPoint += 60;0 x! r3 j, y4 j- Z1 n Y
else if( m_nJob == JOB_MAGICIAN )
/ Z, a" d% O0 a/ @& w+ h( H- C1 E, v nPoint += 90;
5 A# z' }7 u0 s. }' g% N- ]- c8 j else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 G3 w# c7 }4 x) c! X* x9 g$ y/ s
nPoint += 120;8 }; G- \5 M) z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 y2 J9 r i4 M+ d" N1 z
nPoint += 150;
' G2 h" B; }" J# e/ _4 U$ p else if( m_nJob == JOB_RINGMASTER )
4 r5 A% Q7 u( z, L! F0 D nPoint += 160;5 a5 M2 P5 M4 A5 \9 R, O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" ^* M; [% j" b0 v
nPoint += 180;8 k: _ Q: M# y# z; d" e
else if( m_nJob == JOB_ELEMENTOR )7 B) x) q+ o8 d' ?
nPoint += 390;
9 k* R2 R$ \4 K" K0 a- b/ i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 J) d; Y% e7 I7 K
nPoint += 120;
8 K/ @& C8 S; {$ U! @ V else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ f0 d" W7 g/ a% v
nPoint += 150;+ c |* E r& ?
else if( nJob == JOB_FLORIST_HERO )
% G" v/ v* h0 b nPoint += 160;
3 E" `/ ]3 R s& d4 U# g4 R else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( V) Y4 r% H- z3 Q9 f+ E" J
nPoint += 180;
4 ]4 `9 W- V( K7 D4 b2 U else if( nJob == JOB_ELEMENTORLORD_HERO )
( {* X4 f' m- N; i* { nPoint += 390;* s$ L$ S( p9 b$ S0 a: E
- u5 A, H' `3 V" l AddSkillPoint( nPoint ); e3 S2 M' m" R2 x$ d
m_nLevel = nLevel;
; D e* l. R7 ?" C; E1 V9 F ?# Q
% x$ t; Z4 J8 v3 ^ SetJobLevel( nLevel, nJob );& a, P) P4 s2 ~+ P E
m_nDeathLevel = nLevel;4 b! ~6 |' G+ p' E1 k8 t7 _ H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! P* q# ?0 \6 l7 |# P: g& I
if(IsMaster())8 |/ g, ^' v7 j
{
& y ?( M' }5 ? I, M int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) u. k5 p: K% U4 s( p( ]$ Q- M; [ if( nLevel > 59 && nLevel < 72 ): @6 O( D1 R) O, D% P( |# {
dwTmpSkLevel = 1;" b) l! @8 t5 X6 K' P
else if( nLevel > 71 && nLevel < 84 )
& M* t% f4 u6 r: l. J$ K dwTmpSkLevel = 2;8 K6 s6 P7 e4 o( G* j% z0 n
else if( nLevel > 83 && nLevel < 96 )$ k( n$ g" {0 R% f
dwTmpSkLevel = 3;) @. a! S" {, f% h7 b6 E# c
else if( nLevel > 95 && nLevel < 108 )
6 s( m7 R9 t4 Y0 S: G& f7 g dwTmpSkLevel = 4;2 V( X$ ]" W1 k+ p" R M+ X
else if( nLevel > 107 && nLevel < 120 )
6 v0 h( b) Z% C" ]% r4 }8 u dwTmpSkLevel = 5;; Q2 W* N/ V+ D! C- q7 |7 d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . h+ l' R! U: \3 O
{ . g5 Q1 L, U# X3 V
LPSKILL lpSkill = &(m_aJobSkill);
6 |# {' d0 L* \: D# D4 T if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 I( K5 U: [( F' Y3 {, T {
2 ~/ ?/ \! N- b( j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 n/ j) x: U2 |$ ^
if( pSkillProp == NULL )( L) R5 u6 u4 P5 T
continue;2 A0 k" M/ M1 A( g+ m9 ]4 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ g; b0 Y2 H( V2 ^
continue;8 O) F1 @ |" ?& F" k {$ K& s2 L
lpSkill->dwLevel = dwTmpSkLevel;
/ }- Z9 c+ Z& m: v/ A6 Y, j/ K f5 J }
. j/ @% Y$ `% g; @- S7 K, O }; X. ]* e& t0 O. T$ b- Z
}. M/ Q5 f) S- ^' q$ T9 R- s
else if(IsHero()), E8 [" F/ [' j5 y) v: f
{
; H5 a$ h" U+ @5 s/ F- q for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 n1 L) G3 j$ U- q) z' M
{
8 [3 r9 }9 p1 {7 G2 s LPSKILL lpSkill = &(m_aJobSkill);
$ X6 T; ~9 f0 W9 V4 \5 M- r if( lpSkill && lpSkill->dwSkill != NULL_ID )9 D, D/ `, |& a6 b G, }
{
* r* K5 N& A( ]* Q2 b- c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 `8 ?- `$ [, T! H+ e$ h9 I, E
if( pSkillProp == NULL )" c4 W- z* h+ K6 a) m
continue;/ w( b1 q. @) ~& t; _% c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 {+ z- X+ h& }: k \ continue;( i6 q$ ]+ M1 [# V
lpSkill->dwLevel = 5;
6 f* J" b: K' ]" G; q& o }
) |2 \* F$ ?" Z1 x, D; ] }6 E* Z" C; L/ _. j% X$ N4 R
}
- m- T% D+ z9 y$ O7 x else if(IsLegendHero())! [- ^9 c# N0 z! t! _
{
; u; O4 u! R( S$ h5 A for( int i = 0; i < MAX_SKILL_JOB; i++ ) % ]; `) B0 A" [* r) C$ G' i
{ % h+ }3 K: ~: L8 L4 K, r# h" D
LPSKILL lpSkill = &(m_aJobSkill);( H# b1 E' b3 I1 W8 L! {+ V$ X
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 C. p0 M: B) q ]! Z
{7 w/ i1 U5 O% W# i1 @7 E! w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 g! R! R" m2 {: e, t, S1 g( b if( pSkillProp == NULL )
% V$ B$ y8 M% k& A2 }% d continue;+ f; h) @+ ?- R+ v7 T6 x; }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- E! g, J1 f) ?4 r- ]6 x' U
continue;
: C8 H) {& x. G0 [: y6 o lpSkill->dwLevel = 5;4 O5 b& Q2 W8 t& y
}
1 v; x% L4 V( d$ p/ H/ l. M7 [; ^5 s }
2 P: N0 U- W5 B/ B$ N4 m. j }9 c1 e" P: q- {/ }# k3 m
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 n' Z0 q5 B7 @0 }
if( bGamma )/ j/ y5 W, @* _" ^; n% a
{$ N( Y: x5 v: k( j$ _8 e/ U
m_nExp1 = 0;
8 E; Q$ S. D# x2 l; Q6 P }/ ]1 ]0 a& w) ~- [& a9 L
0 Y) U; n7 _1 M; i) N" |8 J" s# _ ( (CUser*)this )->AddSetChangeJob( nJob );+ H# G) V! \2 U6 \1 V3 O, ~( X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 Q2 w1 a! E! b# i* ~2 h" Y" z/ R" |0 B% b' i {7 D( _
( @9 j' `. N; s& m#if __VER >= 11 // __SYS_PLAYER_DATA6 h: }- Q5 }4 [' ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 d3 t. S3 b* I& `2 \2 n1 r @
#else // __SYS_PLAYER_DATA: ~6 F; \" T4 @/ f) \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, ]0 p0 A4 _8 M* U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 b' P9 N; v; s7 A9 f
if( m_idGuild != 0 )1 N3 ], |$ Q) }' Y; j `! u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 Q0 Z) H8 c$ i5 L#endif // __SYS_PLAYER_DATA. {% `$ x+ Y& U- t; C+ @
SetHitPoint( GetMaxHitPoint() );
" t; W1 ?. p9 C SetManaPoint( GetMaxManaPoint() );$ z+ N$ F& x( I$ B1 Y
SetFatiguePoint( GetMaxFatiguePoint() );
6 X) ]$ F, }3 ~4 x( y if( nJob >= 1 && nJob <= 4 )" ?7 u2 g: v8 S
{& w1 _3 M M, f
m_nStr = m_nSta = m_nDex = m_nInt = 15; m7 e% h2 ?8 N! I, P1 T
m_nRemainGP = 28;
- _9 J) ?: U" E: A% b" {' _ }- |5 ? U, u" ^6 E, G! L
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 p" s; P& @; M
{
( S2 |8 M6 d+ ^, J! w9 t m_nRemainGP = 118;
. |1 |/ v% G1 H3 D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 R; e- U I# z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! T6 E7 _5 ^% D0 M) {. Y5 _ }0 G: q) n0 C# x. c! r' R7 S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% l5 X: I& W- g7 J0 I {& @& q8 p$ | h/ M0 X% w9 x+ p
CItemElem itemelem;' ~& \, n9 o: Q
itemelem.m_nItemNum = 1;
% M& y$ z' @' m0 ^! ~1 Z itemelem.m_bCharged = TRUE;( A6 U3 A* X2 _, g( t
BYTE nID;' [( T$ `( u4 ~$ s5 J) B$ x
5 W- J6 k' [9 j if( nJob == JOB_MENTALIST_HERO )9 x9 p7 b; n9 y7 z( y* ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 I) @; p8 ~! u; } if( nJob == JOB_FORCEMASTER_HERO )% j# u- u# k" y8 n3 Q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: H# r) C, Y+ e/ h& y
8 E1 f5 C0 s9 W8 Y6 _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ Z% l$ Z& M- l$ l1 k }' d) a3 J0 t7 k! N4 l' B- N A
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' Z' Z0 X5 S- h" X2 y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- C; R3 r- F; H ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' d, n; m1 ?7 _1 h; f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 @. {& K. A1 ^9 Z7 R6 k ( (CUser*)this )->AddTaskBar();*/& T" _/ I6 k# n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" z, e4 Y( y$ D2 R; S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ s$ w1 E9 G0 Q# z% I* O. s1 w ((CUser*)this)->CheckHonorStat();( ?3 Y, C# j* V
((CUser*)this)->AddHonorListAck();
$ F: I) E8 k8 u# i6 A7 \ g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ ?; U/ o; C1 K8 y: B O# E3 [#endif // __HONORABLE_TITLE // ′Tà?/ `8 |: f, ?% j' L, Q1 s
}
1 J: Y/ X& J. B#endif // __WORLDSERVER
) ~" E, C! o% e: u5 M6 V2 t3 n}
, B- Z- X5 l) O5 v+ j
5 o; u4 G1 R8 i然后你进入functextcmd.cpp并添加以下
# e/ G$ V0 H5 l" B( x) _% R r, W( _0 K0 s1 t
代码:
! ^/ b+ h6 E" R# p- ?6 ?ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 t K" i* [6 N( Y/ W下面插入" S+ K/ ?2 m# p2 R, S+ K S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% ~! w5 a- D/ A* y# ?+ o- k: W7 N! N4 z
然后你去
5 x3 O5 P' [8 g7 @ g( w. {: I% r$ ?$ {1 b' W3 h! A$ w# O) l* C( o
代码:
3 |$ M, d! w: N& o0 Q- e: V代码8 ^- X0 f3 B/ n& D6 Q
BOOL TextCmd_ClearPropose( CScanner & s )+ o9 _% [* G- _6 s
{
+ N" A9 @; u5 ^#ifdef __WORLDSERVER
. G# Q5 f: t% U/ w5 q% Z CUser* pUser = (CUser*)s.dwValue;+ C; h. \; o1 `6 N$ R( b
g_dpDBClient.SendClearPropose();. ?' ~ [: a4 U6 h. Q0 |9 a
#endif // __WORLDSERVER
, U7 S8 z% ?0 o: K/ K" \ return TRUE;
6 M" R8 \2 r8 {. J0 o}
* ~1 e; X% Y" R4 N) C7 f* Q下面插入
1 C! q5 ]# c7 k* M& t7 KBOOL TextCmd_rebirth( CScanner& scanner )
8 Q/ x3 `7 R+ u5 Q; t* V7 o5 |- ]; N{: W9 Y$ N$ Q. w/ |9 ~
#ifdef __WORLDSERVER
$ Z/ Y7 Z p2 wCUser *pUser;( p% \/ U/ A. P
pUser = (CUser*)scanner.dwValue;! G1 S# ?; f6 j: m9 k, O& i; s
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 F9 O4 X7 O4 C! T. vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); ]) p8 ^/ I+ P, k) m
else* o. x$ g/ o( ?% e
pUser->AddText("你还未达到重生条件!");) ~: ^# u, K1 x5 X- \8 Q
#endif: w/ V4 n3 t: g$ h9 `% e, v
return TRUE;
+ U% S# J. H% a( @5 |, \% Y}
7 }7 S& o y7 [8 p- y" ]/ {3 z0 k3 z2 ^ }8 z& V! p; i/ f# [: a6 K
$ f8 ~5 g6 H& x
0 ?0 {7 N7 [% }* u- ^
x) M8 R p& u |
|