|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 o0 z; ~2 d( R1 f3 a2 v, w
/ B d% ~' @3 i9 ?1 z8 |Mover.h0 v6 r' k; z& B$ H
代码:
: ]) F9 Y q& i, P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% V& c" h; N1 n
5 w1 a( p* E1 {# _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & F' D2 \ Y H) `3 `& j6 u
4 g# k* o1 H$ n) U, H9 d. p
然后你去mover.cpp添加
: z8 l+ ]! i. A/ E0 c3 {& s2 t9 f; L/ b% ]: q$ m+ `# g8 p- E
代码:
' a8 L0 S9 S H$ Y' U" _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; M0 n b3 X {{
3 `; j7 n5 O D4 x( S#ifdef __WORLDSERVER1 F1 z# O, Z5 ^( i2 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( A0 P) r% P2 [6 Z4 `1 E3 _& E
MoverProp* pProp = GetProp();2 M( {; O" G9 W9 [1 h7 v6 v# Y
if( pProp )
" X( @# B; [ |6 q; M {
+ _+ u7 n. ?& M if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( k% g' k' _) d/ w7 _, T9 J& d {8 ^& z8 G: c! y
AddChangeJob( nJob );. y# y( B1 \* L" u/ Q/ V9 m+ A, H
}else{
8 Q; x. n, ]6 G M& @3 L return;$ [1 r3 I2 e: X6 ^
}8 M) Q* y2 ]) `4 {; a$ h/ ]+ `
int nPoint = 0;
! I& D/ s8 t/ j- B5 |5 f if( m_nJob == JOB_MERCENARY ) w' ~' T; a* V# Y& P7 Y- p
nPoint += 40;" D6 h) B$ B/ ~; j( x6 p
else if( m_nJob == JOB_ACROBAT ), U8 ]+ G3 X2 R
nPoint += 50;$ q, m+ x9 f0 I4 n6 y: I
else if( m_nJob == JOB_ASSIST )& ?- ?& E2 F9 {( C( _4 d& R0 s
nPoint += 60;
2 J& ?' n1 s3 F0 t6 ?9 G else if( m_nJob == JOB_MAGICIAN )0 J' U; k G1 y
nPoint += 90;5 X+ i, a) P# G7 `3 @
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 A8 L8 r; y3 B' M nPoint += 120;1 T; e( S' x6 w3 K: k0 x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
e8 }, n5 | i" d! | nPoint += 150;# O% W8 e) r1 b @
else if( m_nJob == JOB_RINGMASTER )
$ |" c7 S& o5 T( [ nPoint += 160;
) N8 ~3 R4 \3 P) h0 L, x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 m3 F. Y* }$ J [ nPoint += 180;
7 b, N3 V* n8 d else if( m_nJob == JOB_ELEMENTOR )' `; W4 ?+ p( S8 v5 W% m, h
nPoint += 390;* M6 ~. y& y. S: i" P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 W L( ]" s# Z Z# u
nPoint += 120;) _, m; W; t* P1 x
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 {* \2 G/ a! s8 I# { B c1 K
nPoint += 150;
) P. n* J! I# P0 H else if( nJob == JOB_FLORIST_HERO )
; m: X4 G* o9 P nPoint += 160;: d) U& v4 m- L0 z& f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 T3 a7 D$ E6 @! @/ R& m6 r# k
nPoint += 180;
4 p$ z3 I# m. O* u% z. ]: K else if( nJob == JOB_ELEMENTORLORD_HERO )& `, P5 I: t: ~9 w8 d
nPoint += 390;9 k6 H. E9 R1 i% h& _
4 J( W! Y, K) c8 ~, ~; f! y+ m AddSkillPoint( nPoint );
0 ^8 u: K" g. q- f& H, y m_nLevel = nLevel;7 {. c& J v+ u! x9 v
8 a2 X& i( |9 T c7 G1 D SetJobLevel( nLevel, nJob );
: I2 R. M9 q7 c% p, u9 V) o m_nDeathLevel = nLevel;3 _ |5 m3 |& F; k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans R8 x7 P2 {3 f% q, c* a
if(IsMaster())% I& h+ S, k+ ^8 a% O
{/ Q) X7 ~# H) [8 k+ m4 W, u
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 r s3 g3 G. @, u8 ? if( nLevel > 59 && nLevel < 72 )/ Y% l' A1 \% i9 [5 h3 A
dwTmpSkLevel = 1;
/ u$ E- d D4 d' q else if( nLevel > 71 && nLevel < 84 )
f2 ~8 J; B) @1 r8 e) m! B dwTmpSkLevel = 2;: O' h( y) c& g6 \
else if( nLevel > 83 && nLevel < 96 )
& ]% a) _/ {; g* R dwTmpSkLevel = 3;
& a" H. |/ P, r! C0 P6 B else if( nLevel > 95 && nLevel < 108 ). ?2 [- T$ S& s8 P7 w
dwTmpSkLevel = 4;
4 |6 W- s- I: x6 l' p% ?$ F+ ~+ ? @ else if( nLevel > 107 && nLevel < 120 )" [6 d: m: @+ j% s; }' X
dwTmpSkLevel = 5;2 H7 R6 [4 b/ [/ i, i: @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( t: C( [5 d! U0 z9 a; T5 ^ {
; w0 [1 ]/ x4 ^" o8 R LPSKILL lpSkill = &(m_aJobSkill);
/ O- Y7 m0 Z& {% f. ^3 g* r if( lpSkill && lpSkill->dwSkill != NULL_ID )( y1 o% q0 y. I; s
{
$ k8 e* V6 ?, |; ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) E+ O( k& E- L& ]% Y* a
if( pSkillProp == NULL )
/ P5 l1 Y8 d! ]1 A. z( W- r" C1 N continue;+ P; e- ]& t# z( w n) R/ d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), m( D" ~3 _ z3 M$ W- @9 K
continue;
/ g9 d3 ]; A/ D8 f; v O. { lpSkill->dwLevel = dwTmpSkLevel;/ k$ l t2 D9 l5 E: t3 S, S9 B/ X" l
}
# n& A6 I+ x# o0 O" | }
5 n9 `$ {1 d: g/ w6 d }
+ R# H' I; k7 c" w; q/ W else if(IsHero())! D. _$ a/ L6 H4 w8 d
{# e' a$ `' R7 P3 {3 G1 L/ k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; E5 o7 B U- j* T1 }/ d N. w% X
{ 3 e3 E6 F: O0 n$ O8 @$ @( ^
LPSKILL lpSkill = &(m_aJobSkill);1 J' u1 H. H$ P2 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ k# A! t- o2 Y& d0 F/ w {9 H; z* u3 ^$ n& e" Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . l* f1 h# B- |; S4 a# j
if( pSkillProp == NULL )
$ A( {! ]. M8 H# ~ continue;2 V; u' _: R/ _, [5 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 p* b$ D# p1 \+ I0 x; t continue;7 o; u) \1 X2 {- F
lpSkill->dwLevel = 5;8 d- d, b6 C4 p( s# O( K
}
3 {9 _; g0 ]' o4 N6 r }6 p3 c q& b, d3 [; w
}
% V! X$ |' \. l, \0 Q+ M% Z2 S, \( H else if(IsLegendHero())
! `2 F# t! n- y# g4 P1 e {
( \8 h; H1 J8 o6 ^' u, Q8 ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) , o1 ?5 r4 v9 b3 m: E
{ # m! G) o3 {( U$ K2 q1 t( P/ M
LPSKILL lpSkill = &(m_aJobSkill);
5 d7 l' T v1 S! O& a) y if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 S: e$ ?/ O7 w. g$ C7 V {' F8 |) D3 ^" B/ Q1 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 U! [( S P6 o0 a' B/ P if( pSkillProp == NULL )/ p! ^3 D9 [- I* U3 @& [
continue;
& k4 u9 S" J% x3 x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" T% t5 n1 n' @4 `$ }( C+ k4 | continue;% M3 q: |8 q* [! n5 Y$ F8 s3 i
lpSkill->dwLevel = 5;; w: m4 w( R3 z3 {- I
}
2 u- Z) H1 m) g+ n1 b" h }
# P! u2 n, \; ]6 e- u7 m) s) z. W }
9 O3 d! J7 s& h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( P2 v" \- j: X$ h" Z2 r- Y
if( bGamma )
/ O: ~/ C( H" [! H# c6 K8 o# w$ |7 L {
' w& _, T$ \) M! K/ o9 | m_nExp1 = 0;0 K0 m0 X" Q; n0 q
}
$ ]% |4 x6 X ^$ v" r Q+ e
% U4 J& W% B& w) F8 c' a: } ( (CUser*)this )->AddSetChangeJob( nJob );
; ? k/ {+ v& O' E% M/ H+ g3 @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( j% z& \6 l. f8 g5 h
$ M0 h, O7 E3 f4 ?
7 A7 f2 [% F5 T- f' O" ?
#if __VER >= 11 // __SYS_PLAYER_DATA9 U4 k' a! u: a- f* G Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# i1 H4 L$ R, Z" i! S9 E#else // __SYS_PLAYER_DATA2 k n% v' ? k' U/ Q) T+ j2 ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! E8 c. x- b$ Z1 N/ r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' l: y7 O2 j2 ~4 j# a8 W1 {: f
if( m_idGuild != 0 )' \# P# [- [/ E+ H4 S4 z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ T1 D0 p/ R* Z/ t4 R* c( V
#endif // __SYS_PLAYER_DATA! r; O$ w, w- X' u, D/ ^) U
SetHitPoint( GetMaxHitPoint() );
: }/ C' @3 N4 X% q SetManaPoint( GetMaxManaPoint() );2 @' y/ `- z, ^& `1 @
SetFatiguePoint( GetMaxFatiguePoint() );
" z1 y& @6 a4 o E1 z$ k if( nJob >= 1 && nJob <= 4 )4 e3 M; E# n0 n/ m* ^8 p( f9 T, I
{$ u9 S# ]7 V$ w2 d" ]8 N$ g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, k" F" U5 U/ ]2 j0 k m_nRemainGP = 28;+ y1 {0 D! B1 K+ J. `/ g
}$ t' |' `# N& z3 f) |
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 F" o. L/ `" H/ ~5 H
{
8 J: Y1 R j4 B( f& U7 k m_nRemainGP = 118;
/ T o3 R" j) a: _- Y% z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, o3 v6 f! @% d {/ t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" ]8 X" T* `3 ]# r( p }
; T @$ q# @4 f; \! X, b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" @/ A* N4 ^' f) D, ] {" R- o6 w' x) @9 v
CItemElem itemelem;
! y5 x5 D8 {4 {/ j itemelem.m_nItemNum = 1;$ \, v* C) C% A
itemelem.m_bCharged = TRUE;! B3 B+ S; L- ~5 P* d4 K
BYTE nID;
: B8 v1 E& Y; I$ \ m0 R3 N5 T/ F+ o6 c9 x6 ~- u* V: c: V
if( nJob == JOB_MENTALIST_HERO )
! v, K# j$ j7 m4 m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 p6 w/ X8 e+ S+ ]- P* n if( nJob == JOB_FORCEMASTER_HERO )
2 }& m$ `" k: l3 I8 G# x7 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( V/ M5 z9 Z2 S/ I* d: b) D) {$ q3 t4 O! b
( ( CUser*)this)->CreateItem( &itemelem, &nID );: D7 s' ]9 H: h
}% w3 ?+ D: d% I; f5 [3 }5 P, H% @
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 d% G- j9 A& B9 Y/ i {$ i. z. r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 S( z! Z& j8 i$ c9 u$ } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, X, ]8 {2 _$ N9 a, Z" t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: x$ _7 @0 i7 d1 \& ]$ l2 C3 ~0 X
( (CUser*)this )->AddTaskBar();*/
$ X& f: z. r% Y2 ~ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( u# o7 H. {& O. i x
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? C: q/ ~2 k9 i9 g R( {
((CUser*)this)->CheckHonorStat();
9 H' I* i( w# U, E5 c l# w4 I6 N ((CUser*)this)->AddHonorListAck();
$ N9 x; j+ Y+ f; w$ V g_UserMng.AddHonorTitleChange( this, m_nHonor);7 t9 N0 Q* S U" f6 Z2 q0 v
#endif // __HONORABLE_TITLE // ′Tà?3 `& g1 @2 ?' Y& J" W5 r
}: M9 G( ]0 u9 D
#endif // __WORLDSERVER2 h. j4 h a+ c7 L& f8 h: B
}
0 b. _1 U1 Q& t8 J
6 [; g% W, q1 {6 C5 b( ?! U. D6 P然后你进入functextcmd.cpp并添加以下. i2 v d- L3 \6 G9 p
( i5 b! X. L/ G1 R
代码:" J% v; @# z7 R; a0 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* A4 [2 C/ C: o) M# q/ x9 y
下面插入
- ]: ^- A9 `! p* ?ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 A) r2 ]* V; K* ]) B5 f
. [) t2 D- u' v ^然后你去
: Q3 Y2 H: ^# d- E. \! A+ y
8 a8 ~+ } [2 U$ Y代码:: X: G6 ~$ v( q# W$ L
代码
& N) v, a- z7 M0 m f. s. T$ @BOOL TextCmd_ClearPropose( CScanner & s )
4 j4 N# \; V( d+ w) b4 O; n{) z' T% K K) J m, y8 i) S
#ifdef __WORLDSERVER9 i8 g9 I) o1 f8 ?1 \
CUser* pUser = (CUser*)s.dwValue;
4 X, K0 H4 L+ V9 n: o; P. M2 ?# v4 { g_dpDBClient.SendClearPropose();
6 w& i! @6 o0 I. K#endif // __WORLDSERVER
/ }0 S6 P7 E- @0 n return TRUE;
) [4 X! @8 L" W/ t$ _}
" e6 g# K, C# b' A6 C2 c下面插入2 p, V0 H# | L/ \1 m- o d! ]9 K
BOOL TextCmd_rebirth( CScanner& scanner )3 G0 T' r# G0 V, M( n" W
{
1 p! p( y3 h4 e- u#ifdef __WORLDSERVER
6 Z+ l# G" S- }CUser *pUser;2 i: V+ n8 ^- y9 d3 V
pUser = (CUser*)scanner.dwValue;9 m, r5 m9 B5 k5 C( M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 Q/ Z' ^) o; K/ H" ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# r2 H# V; J' f3 `
else
& E2 u& m0 a1 n- |; hpUser->AddText("你还未达到重生条件!");& x; S7 [9 y& R7 {4 w) {9 c
#endif$ U: I, r5 s7 x& U0 k, }; i( C
return TRUE;5 u: @+ L* _. P) c* L
} 2 V4 q' r9 `, h# @1 r$ w
# S+ A( Y+ _4 L, b" W- I/ l( A
8 B2 T& Y {/ d) x2 k, Q) U) u9 E
# [- B" R/ l% n4 E) I$ z/ t |
|