|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- R; i5 z q$ S! W' {
$ M* I1 P; `' l7 z" @Mover.h2 |' s, f% I8 H
代码:
, {' D' E5 U! h& [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ [" [% N' @4 o U; T
5 X0 i8 v# E, \: ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) D+ q- e/ u" w0 U8 N
0 F4 S _* l( e4 [+ _ V `然后你去mover.cpp添加
7 ]* o" X' x. I9 V, x9 s3 y5 Z9 F$ R0 }5 |/ v
代码:2 y1 G9 ?8 F( m! ?9 c
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 U" m6 ]% r4 D0 T" n7 O7 D% c
{
- [4 r1 G9 }" q#ifdef __WORLDSERVER! F! h; \6 y: |, ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 i; {1 {3 N1 k
MoverProp* pProp = GetProp();! S3 L! ?; k$ d% k5 d7 ~; C& i
if( pProp )
I, ^+ |1 ?; `8 p2 g {5 v- X5 x9 M8 n5 ?3 L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) b z9 A. N: O( C' P" z- h {
. q: }. P( F. q7 i# L AddChangeJob( nJob );
8 K; J$ c8 `6 a5 w }else{
y; k( c( J, M2 u0 J( F6 m return;
" p# U% T r: ?0 A" q }3 K: m% A% g# n( p, f+ O* Y
int nPoint = 0;
! s a' K `( N$ E' x if( m_nJob == JOB_MERCENARY )/ G; D6 n! Y! d" y
nPoint += 40;
' `8 y6 X1 K* l& V# ?. i0 v else if( m_nJob == JOB_ACROBAT )5 G; b! J# c7 h3 Z& y+ v
nPoint += 50;7 |0 l: ]/ y3 P% @: A
else if( m_nJob == JOB_ASSIST )
! E; v9 v) i2 o/ { nPoint += 60;
% i) O( M7 O, n else if( m_nJob == JOB_MAGICIAN )* X' E) |' `) U
nPoint += 90;
5 @" h1 U: |) s else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 s4 O! l3 s. t8 w- K6 t0 F nPoint += 120;) s1 p% d) }# U$ m- O( `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- y* F+ w% _' J5 ]
nPoint += 150;
0 d1 R; }2 {5 [1 A else if( m_nJob == JOB_RINGMASTER )+ p7 H8 O" e9 n6 e& O1 s2 t
nPoint += 160;
7 |6 V! O4 I; x0 I: M3 l# \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
u! ^6 y0 W) W* U r2 i nPoint += 180;5 n8 V) b O/ V1 A( {. u$ C
else if( m_nJob == JOB_ELEMENTOR )' ?, l6 S- @4 [$ H
nPoint += 390;
/ W3 }7 o/ b2 ]: j. L% ^" M else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) J- o! Q: [7 C) G1 L, L6 i: [
nPoint += 120;
7 A4 A6 m2 D% E; r. V& k! [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) e5 f9 X {, A* t0 B# J: t
nPoint += 150;% i4 m/ e+ g; w6 Q5 c
else if( nJob == JOB_FLORIST_HERO )
" c- @! d( C1 j$ D: M' v1 W( O) b( m nPoint += 160;# d& b# d9 C0 X3 k, e8 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* b; N! k. R0 g2 l q
nPoint += 180;
& D' V9 S, Y: v% r9 S7 }7 |* ~ else if( nJob == JOB_ELEMENTORLORD_HERO )
6 Z7 V& A6 b7 k8 S ~ a9 ? nPoint += 390;
: c% T5 s/ v! i7 R; x; D% W: o. a$ F8 X7 p" z( I; }/ \
AddSkillPoint( nPoint );3 y- {9 S: D3 r+ g$ f6 _
m_nLevel = nLevel;1 W9 ^! ]* U2 S4 F
/ W+ F2 n3 h7 n8 \! C3 x SetJobLevel( nLevel, nJob );% Z3 h3 T7 Y- k( f3 R. i% z
m_nDeathLevel = nLevel;
6 G& D# ?7 S0 N9 Q7 \% V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( o8 T9 Y5 E& i9 e4 x, O
if(IsMaster())5 D: `6 M# B- }- p* a, C9 [6 H; V: t& G' o
{
. K( J& I" R3 g+ d1 _3 m int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 A* V- g' @$ |6 H- v5 B
if( nLevel > 59 && nLevel < 72 ), ?8 v: ]5 i1 M$ h
dwTmpSkLevel = 1;, _1 O) h+ n, Q# f3 {( G$ X1 i
else if( nLevel > 71 && nLevel < 84 ). g" l! p7 ]$ z" N: ~3 }* O3 ?
dwTmpSkLevel = 2;
( w' _( _9 Z" G2 K else if( nLevel > 83 && nLevel < 96 )
! ~1 j# B: C9 G9 q! ?+ }, ~ dwTmpSkLevel = 3;
" M& `. J- E- w& ? w1 }0 u& g else if( nLevel > 95 && nLevel < 108 )
; x) j) E- [6 G4 H* T dwTmpSkLevel = 4;7 P. V; g6 O$ i/ Q8 K! i
else if( nLevel > 107 && nLevel < 120 )
8 O- {- v; B$ G( ]9 k% h dwTmpSkLevel = 5;& O! a- E4 l6 m2 }8 T; a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : F/ w/ Y) C5 t8 D& j( w
{ ' @3 q& t# |8 T- t. v- O, y
LPSKILL lpSkill = &(m_aJobSkill);
4 B$ R1 p4 s0 Z/ L& {& @ if( lpSkill && lpSkill->dwSkill != NULL_ID )9 M4 ^/ r2 i5 u6 e* m) n
{) P- v7 y4 D% m. V! E1 Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 y3 T( V3 n) l# y) B) z8 P3 o
if( pSkillProp == NULL )& K3 T) H4 c, i/ ]" x3 R
continue;
# f9 [ Z8 ^ r% l; [1 [& f g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" g! b$ W+ k+ f
continue;6 w, I! Y( F1 a! {
lpSkill->dwLevel = dwTmpSkLevel;
% ^8 \& f- l" {0 d: x, m: }. j }
% l+ j( D" I* @8 g* R# I4 o5 o }
7 o; c; P" j6 Q) d }
) f9 C0 e. c5 ~$ w' M) S: j# V7 R" ]' E else if(IsHero())
" B+ ~, b% z6 i {
3 T* h$ o) J; n9 f for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 K' X8 O7 L( K2 f+ N+ g- ]3 J* Y { ! Z. ^& L$ u3 q. D) V0 o; T
LPSKILL lpSkill = &(m_aJobSkill);
. Z5 q2 g" Z1 q if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 x8 y$ X8 L0 C+ j2 |7 A. c( S {9 c h- |$ K Z" G2 l3 S- a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * K" y0 X' u5 {( R) u
if( pSkillProp == NULL )
6 c/ g# |' X4 ?- ~& ? continue;
* X- _7 P: A* F1 I, p if( pSkillProp->dwItemKind1 != JTYPE_MASTER) j1 f7 i* ?) U9 m! l* y
continue;
( q7 d. G' P( x/ N, j lpSkill->dwLevel = 5;6 v2 R0 r3 c% _4 z' |
}
G" A+ G. b+ j0 x( _$ x! M0 p; p }# W& r3 ]5 s8 y
}" @& V7 O' o5 z
else if(IsLegendHero())
# A0 { x) `0 U E {% ^; \) G& E; m6 [+ h9 ] h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' h7 m+ |8 S1 J. j) k {
2 ?+ W: L5 Q, b) Z0 G8 e3 i: [ O LPSKILL lpSkill = &(m_aJobSkill);
6 \/ b+ i: R( z8 f( Q- H0 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
# j5 v, ^! Q# V- M {: y# n- j" e) q0 c6 }! e r. n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 }) n5 ]- b4 g
if( pSkillProp == NULL )0 T% A0 Y: H5 r/ D
continue;
0 N; m% ]1 }3 Y% s8 O- M* F" M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( x% S+ }+ \& o
continue;
8 H0 r. l' R: H% o3 I lpSkill->dwLevel = 5;
6 x4 R% U3 s, J3 @3 V }
9 I+ Z: E \% w2 o `/ t }; B1 M# W3 f: [! Y6 @: H* E3 i
}! G; G% j' u/ }1 z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 ]/ l' g+ j: C1 `6 Q( v/ v3 C8 q if( bGamma )/ v5 m3 B) F8 t' u
{5 I( R0 p- n4 ]6 ~" y
m_nExp1 = 0;7 ]; [# H& k- X3 x
}7 F: A ]; X) W- ^3 C$ }! N
' E1 v7 z7 T w. P$ [1 k ( (CUser*)this )->AddSetChangeJob( nJob );( @# ~; |/ i$ P. s$ W A6 ]2 [
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, s3 B a$ Z. Z
$ t+ m# j7 U" K: [4 F8 o: L; r4 A/ X; Z; v8 j, [3 R8 B" {8 c
#if __VER >= 11 // __SYS_PLAYER_DATA
$ {" Q. e h u' F3 c( \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. z. L6 b& c/ A1 c, t
#else // __SYS_PLAYER_DATA5 \8 ~' s. K5 a" c5 n& W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# B# }5 ]/ W% R! W9 @- H; B q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ A- N. z! u7 D2 x$ t if( m_idGuild != 0 )0 r& }4 \& |' v O- a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); N0 q, F/ b9 ?2 t$ p: r# G
#endif // __SYS_PLAYER_DATA
0 c6 O. f& W( ^8 K8 H SetHitPoint( GetMaxHitPoint() );
& \1 K9 Z6 A/ p" A9 r SetManaPoint( GetMaxManaPoint() );% e% p7 w, A: P
SetFatiguePoint( GetMaxFatiguePoint() );
; I1 R7 [3 b) u# y3 q& M if( nJob >= 1 && nJob <= 4 )
4 }4 g5 b# q; t% @ {
8 y9 E( q- M( c( L& a; U8 a' i m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 v9 H' b4 X5 v m_nRemainGP = 28;. ~# z6 ?3 {$ l& I# S
}
p! {7 G3 I1 i0 f8 {- a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ t; V. k3 {( ]( @3 j2 t6 q- X+ Y
{
$ f' k/ f, i1 P$ j* H2 j m_nRemainGP = 118;1 y' |% M" h/ O2 ]; ?
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ i" @( f% w" B* N9 k. e) e! F$ A m_nStr = m_nSta = m_nDex = m_nInt = 15;" a& N# q. t: o M9 G0 U7 y
}
; N3 V5 g3 ]8 L7 Y% c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 M6 H$ U( Z' o9 d: L# B. H {2 Y( M, E/ }( W( i7 e
CItemElem itemelem;
3 E" K* K! r6 T7 F# R itemelem.m_nItemNum = 1;* J) V8 B% `! D
itemelem.m_bCharged = TRUE;/ E; l4 C5 p: g3 K) a0 A
BYTE nID;) {3 z/ g; T! @" T- H# Q$ z
. Z, r, s5 H3 E) \ if( nJob == JOB_MENTALIST_HERO )
( u4 Z* b9 F: [! ~ ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. T u0 d5 D) i9 l4 i8 `- q- K$ T if( nJob == JOB_FORCEMASTER_HERO ) I0 A5 D; b* G/ R7 \( {4 R8 G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) X- Q% _9 V$ `3 R
- g( p! ], z9 \: r6 _% J' L
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 h3 ]4 A2 A, X
}2 O$ X: d( o; S, B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 d0 n3 P* K2 @1 I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* H8 @& v# U: N5 J7 k9 Z) d% w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' ?8 p% s% S2 S2 S+ X" G" d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 K) t( o) @3 f0 y" d" k ( (CUser*)this )->AddTaskBar();*/6 u2 q. V R6 |3 C' D1 Y* ]# w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 v, |+ p8 {& h+ w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' a. p! C5 ?0 m5 E3 \8 [" M ((CUser*)this)->CheckHonorStat();
* i% d3 p- D: H: O! s ((CUser*)this)->AddHonorListAck();
4 c2 W0 U/ n8 ]' T% p* ^1 q g_UserMng.AddHonorTitleChange( this, m_nHonor);7 x& }* n" I( m7 d) Y9 C
#endif // __HONORABLE_TITLE // ′Tà?5 F( @" Z" D( v8 z' p
}9 X; n. |5 T9 r% Y
#endif // __WORLDSERVER7 ~) a* ]( _7 O# }7 C- \( k
}
7 V/ h4 C$ b) j
) M6 u* r4 f: v9 _ O: U5 e) ]然后你进入functextcmd.cpp并添加以下1 O) l/ |3 u0 @# [
: G9 @1 t7 a& e& g7 w7 R/ ?
代码:
- x8 i+ X. I. |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& f: ~! X9 `2 @下面插入
: R7 u c8 X$ K; U! \ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" a& J, M% v8 B0 f3 Z( m" [- y, n$ d8 e, J, u
然后你去
8 L: y& r2 s1 m; c% Q* |1 i4 t+ E. i, _4 ]5 n. n- t
代码:. J5 {+ D* ^& E& `4 ?- m
代码" K Y4 N$ [6 t! W, y; F- W, W+ h: C
BOOL TextCmd_ClearPropose( CScanner & s )
+ I \! m1 h1 ], r3 [" X1 e4 j! f{1 `4 ^( |5 B& [; t0 O' x
#ifdef __WORLDSERVER8 o) M' T; ^0 g a& B
CUser* pUser = (CUser*)s.dwValue;+ e7 E0 A! @& _$ `9 J* h
g_dpDBClient.SendClearPropose();1 `& n0 b: x; d: U1 P1 p0 {3 S
#endif // __WORLDSERVER/ G3 T1 n# ]7 F" j% D6 V
return TRUE;
0 B. |! C q; z- { v% a' r) g}
% T# U5 c' D E* C) T/ x下面插入: C; r% {6 d8 q M9 W9 ?0 K6 |: k
BOOL TextCmd_rebirth( CScanner& scanner )
# n) O0 w9 S Y) @; @{7 M' n4 N7 R8 {
#ifdef __WORLDSERVER' j5 h7 H5 M* N( r( q
CUser *pUser;
: n% l% V( k8 i) B7 L, D( ApUser = (CUser*)scanner.dwValue;5 H8 J3 ~# h$ C9 z1 T( a0 C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( m( Q& Z% Y e: u
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# r) f4 L' {9 Gelse, O" D/ l1 Q. a; c, k! n: ^
pUser->AddText("你还未达到重生条件!");
# t- U& D/ P n#endif
8 F) k: l5 E+ _% u5 p( e5 [return TRUE;# x0 F* w% m; S- w% Z
}
6 ?4 f3 e. g" Z7 K" v/ o. t2 {5 u4 `' X3 V
4 j, x8 q, s8 e( B; g/ m
# [2 e# H3 J }6 W X1 [9 O
$ L! ^, ]# Q) Z m! z
|
|