|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: Y: P2 U9 d' J) R" X5 F$ j: c' ]% W/ b9 V
Mover.h
3 `& i/ K) [. L) C% I+ e代码:
7 \( g( G; T" w: n" B4 j* g$ w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. k4 B! C" x. A7 k+ `* Y+ ~( R7 U4 n u2 i9 W: k# [! x1 D: p. r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- \9 N% J! O9 n) X3 O- a! `
% L, f' o4 ^1 q `然后你去mover.cpp添加" {: ]: S6 [( Y0 l$ v
" M7 W+ g7 j" ~* `6 x
代码:: }" E: a A+ O z& Y9 b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ R8 ?* p5 y/ r{, a1 R6 {4 [3 r
#ifdef __WORLDSERVER
: ^3 j/ n# r7 R& ]9 |! ^( z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. i& v. H+ G) h% w$ b5 g6 c, b
MoverProp* pProp = GetProp(); j( h& G+ o0 J" K a
if( pProp )5 f& l o3 i8 B2 \: P( l7 b* j' q
{0 H7 n3 y o! P& y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( Y% z# ?6 ?/ N/ x8 [6 g/ Z {
( u9 I; e2 `! k) i; | AddChangeJob( nJob );
( |9 t! O( R$ v5 _, c3 R4 P }else{/ S7 o: M/ `1 |
return;
5 p. e4 `4 z( B6 {9 X0 H/ I! Z }6 q. k7 D- ^0 t% b) V+ Z4 K
int nPoint = 0;
: v6 e8 Z- Y/ @ c+ i$ g+ w if( m_nJob == JOB_MERCENARY )% `* e0 l$ D7 L2 y' E
nPoint += 40;
h, ]! F! [4 n+ v* u. j else if( m_nJob == JOB_ACROBAT )
4 t3 P# \4 N7 @7 Y nPoint += 50;, @/ V3 T: O' P% Y
else if( m_nJob == JOB_ASSIST ) T, X- ?* y% K, j, g% k) m( e/ `
nPoint += 60;
$ N8 [! h; J& C) v7 G% b+ m8 T else if( m_nJob == JOB_MAGICIAN )( t# U+ l0 u. U& z* ]! E( i
nPoint += 90;4 ?; \- `+ a) e: t3 i! d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 w- G6 K! N3 {- z% j" ?
nPoint += 120;
+ v' K) d. O& }! j* f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ n N8 M8 I n. u2 [0 F
nPoint += 150;
) `/ P+ W' M: b! r: y else if( m_nJob == JOB_RINGMASTER )
4 ^8 W5 S7 T' K; r nPoint += 160;8 k) W5 h0 q) ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' v0 f. H2 k n2 P nPoint += 180;: p: e: h# F% E% C
else if( m_nJob == JOB_ELEMENTOR )
) a! v3 U% C/ F nPoint += 390;
( v- }( C- c2 Y* F' c& { f9 n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# Q( K: o, ^3 p& u/ Y; ~: F nPoint += 120;. t# m4 T, v" G$ o4 |9 V+ m5 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" P5 _; A+ m( {! F5 y( F8 y; H* g
nPoint += 150;
# z% Z3 l. d( Q+ D else if( nJob == JOB_FLORIST_HERO )+ O5 ?! \7 X8 \5 F+ Q
nPoint += 160;/ ^ N$ X' V& S, ~9 P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& _2 f" X) F* {1 K' `
nPoint += 180;" ?1 u+ C$ t( Z) u6 A9 d
else if( nJob == JOB_ELEMENTORLORD_HERO )( G) v% L7 V; a* B+ O
nPoint += 390;
, Z# G+ p0 M* c$ L6 ?7 D# v" ?1 T) w
AddSkillPoint( nPoint );) E! N$ P* o, S: S- G
m_nLevel = nLevel;2 e: D; [" d% c$ v
( J7 T6 q: G. m& a$ d1 @! _
SetJobLevel( nLevel, nJob );
v( }2 `% k7 \9 w7 Y m_nDeathLevel = nLevel;
G8 Z# ?4 b% H& [#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 `5 M0 s9 L; C) e: @. s9 T" d, | if(IsMaster()); l" p( H: g, u( N
{6 }: U8 ?( g! x' t( {7 m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! V9 J; x( B+ p- w0 i if( nLevel > 59 && nLevel < 72 ); W- g6 @- X+ j4 z
dwTmpSkLevel = 1;
# G+ ?: P3 H! F3 A- f9 w else if( nLevel > 71 && nLevel < 84 )
+ U" Q6 |- t! ^5 p [' x0 r dwTmpSkLevel = 2;# l, J: p' Z6 `0 Q8 ?9 Y2 W
else if( nLevel > 83 && nLevel < 96 )4 t+ w9 i! h% t2 N! b0 `, I
dwTmpSkLevel = 3;
* d4 J& M0 ^" X" g( f* n, H else if( nLevel > 95 && nLevel < 108 )) U' L; X5 t$ Y, E; U
dwTmpSkLevel = 4;' R* m) o# c3 w# r2 T2 ~5 k$ G
else if( nLevel > 107 && nLevel < 120 )
$ P ~/ Z* _4 I, w, e) q8 x dwTmpSkLevel = 5;1 n, M% S9 l' s, J% X0 q3 G2 R1 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 ]5 ?5 f9 H) G3 }/ h \* f+ x
{ % b% s4 `- [; Z. ^, [' V7 u) b, m
LPSKILL lpSkill = &(m_aJobSkill);
, R; W# F7 [) n/ U8 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
' E$ \( t. z! n" G {6 B! y. W; U/ q5 R, [" ~$ p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! C) D# o2 y8 T5 I7 d% m
if( pSkillProp == NULL )8 `; V& j' ]6 U I
continue;) Y" A9 j) l ~. }1 C3 a" _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 [5 R3 H) G1 @2 ~3 D' W5 V
continue;; |3 A% t& G W& v! R
lpSkill->dwLevel = dwTmpSkLevel;
; |- O1 r+ h. y( @- ?' P9 I }
" @ j" q6 i& r; G, v2 c8 D }
3 y( ^0 W- ^% _2 ]' U& r( ]! V5 G$ g$ D }# {8 ] ?' `" W' R) x* t
else if(IsHero())
8 e1 N; L$ K% Q3 ] {
# w+ V* H3 ~* w1 e* ~* c for( int i = 0; i < MAX_SKILL_JOB; i++ )
X! E- x4 x5 W( N {
8 ^& a: b' ~. K- y" U( e% X LPSKILL lpSkill = &(m_aJobSkill);0 Z! c' x3 @& x( T; ]* {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 K( |- e7 U7 u {
% {5 ]6 T/ }: m. g; e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! ~$ O( K( g) r3 C A if( pSkillProp == NULL ). [& v5 U8 T1 a/ y
continue;
: m( F2 y) I/ x F' Y" u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; ?- p, Q! ?9 M5 a' b continue;
% q/ a6 s7 l- z lpSkill->dwLevel = 5;, d; E- H) [! A& X0 r: }
}' `4 ?( }( T- O5 z
}
3 Q# r. \; D! v }* }- ^; p& r% D2 s: m- r- z
else if(IsLegendHero())/ ~9 @5 m+ m6 z
{
- A" |6 h' A$ @* ~$ }. I7 z- T for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; o& S, j/ k% A$ \' i
{ , }, ^( R. h3 }/ ?: Z& N
LPSKILL lpSkill = &(m_aJobSkill);" W1 D: O& j6 p( D
if( lpSkill && lpSkill->dwSkill != NULL_ID )* K' F' x: `5 J# `+ M
{1 h x5 O& e8 b0 u) q0 L! U7 d! |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + U. w2 ?' d- C5 I
if( pSkillProp == NULL )' `+ A/ L' c+ B0 S1 U9 O' e$ F
continue;. n% c5 \+ t$ y G3 U! P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ n8 P' h# D* q: z1 R& P Z8 u continue;
- y) z, Z1 X3 ?: E2 H lpSkill->dwLevel = 5;& N& ^" A% R: g, p9 E. v
}( G3 \% I2 J# Q0 m" t3 I- [4 B
}, `) o7 i9 ]0 F9 p9 H
}' ^; E5 r$ v3 |
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 b2 L2 h- N1 q) Q- `7 e
if( bGamma )
1 [' h5 Z& w4 U& v( I8 s {& {- x0 n% m7 c+ [6 V' T) }/ ?
m_nExp1 = 0;; w+ O6 d' g* r" T: Y+ }2 _
}/ @. Y8 F4 T! k% g( H2 ?; o0 c* l
7 L: y( o- }' [0 _3 r6 `
( (CUser*)this )->AddSetChangeJob( nJob );
) S6 q& ?* E M9 G: O- e- V1 b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 B0 k- }; W- o1 L' E- f/ P
/ ~ }9 M% W* h* y3 Q) r0 J* D6 q/ F8 R
#if __VER >= 11 // __SYS_PLAYER_DATA
0 _( O w+ a6 m2 b& n7 b$ I9 C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) `0 b* c1 g% Z
#else // __SYS_PLAYER_DATA
) M4 Q: W7 ]3 c! @! U' S g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( W; D0 x- G% H- b1 A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 S& R6 A- Y/ M6 V2 d* t( z
if( m_idGuild != 0 )# F. l2 f1 P, @" z; h7 k/ N* O; F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) e2 o, E2 b/ j#endif // __SYS_PLAYER_DATA
' s2 T( f2 X! E2 W1 o SetHitPoint( GetMaxHitPoint() ); ~4 [& `6 _2 z- w# W: e7 k5 l
SetManaPoint( GetMaxManaPoint() );6 ]2 K# I2 c5 E* V
SetFatiguePoint( GetMaxFatiguePoint() );
2 D/ A9 V+ i9 T7 v( T8 p if( nJob >= 1 && nJob <= 4 )
; I; P" h" D7 y4 y {# X& X* _/ s/ B$ z; L1 c
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 B6 o7 t: l7 _5 o2 w; m- o; I+ V
m_nRemainGP = 28;
2 b" a3 s" o7 [% Y* ?. f x }
4 ?! @! x. d& B4 Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 {, E. V. B7 g' r {
4 l0 p/ C5 i# y( s( b m_nRemainGP = 118;4 _8 G" j. h) O
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 ^8 Z5 }; @1 @/ ^' ~1 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- n% M% Y6 g0 U& e. B6 j' S }
2 P( q/ h" X! t0 | s! v if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 p% G& |" Y% g) o1 Z' e w
{
7 m+ Q1 Z- o( s- m _, } CItemElem itemelem;
8 z0 ?# E2 R0 v( R( B- P itemelem.m_nItemNum = 1;% ?, B& X( K' z
itemelem.m_bCharged = TRUE;/ L' X5 z) x' N4 l! X' V' s+ s0 F
BYTE nID;& ]8 o' E& B. P, z# `: _
9 g( ^9 y4 R, ^' O3 e% v. G: s
if( nJob == JOB_MENTALIST_HERO )1 j4 e/ d% h1 J ?
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# M& Q6 d) c- l$ z" v8 o6 r% T! z
if( nJob == JOB_FORCEMASTER_HERO )
. h. S- D( |+ ~- x2 V j+ O# I- G R itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, b! O; B$ H0 F( U- V3 `5 ^2 x& C& n ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );7 ?5 O( }( U, b/ H9 C1 e: D0 t; ]
}; Z' Y# M) r) W5 ~# L
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 Z6 H! x$ a6 P7 s3 n3 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 [; ]. m9 n6 H% [* `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 ?8 m( f8 o$ Z5 M( }$ U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 D$ `! a- ~. L6 N4 K. | ( (CUser*)this )->AddTaskBar();*/
! Y) I% s/ A# }/ ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" C. r# ?" g$ Z+ @5 q9 G) T#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 f9 ^+ M. Y# H1 M ((CUser*)this)->CheckHonorStat();
- R* y s Z3 |, Z5 w* m9 Y ((CUser*)this)->AddHonorListAck();
% E7 Z5 z* E. @. y1 r g_UserMng.AddHonorTitleChange( this, m_nHonor);
, B. }2 Q3 M+ \; W#endif // __HONORABLE_TITLE // ′Tà?/ Y9 O, u$ n. y6 [2 f6 v+ H4 ` d
}6 p; V" p4 ^/ b( V7 h
#endif // __WORLDSERVER
$ |! O, C& o/ ~+ S9 y% Q} 1 s9 E9 x, z- o3 }
7 N/ j+ c6 O. Q# l然后你进入functextcmd.cpp并添加以下# d- C# ~" U9 C0 O3 z
; M! b' \9 [" {3 s. ^8 i
代码:
4 J; X" n$ H! }; E) lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 h9 Y6 i8 P0 k% T4 k1 h5 ?* Q下面插入! k6 K; V' a# ~! `/ x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 e7 p0 _, Z4 a& R. N7 s
+ T+ k! c+ G0 W6 g' Z) T+ W0 h然后你去
" B* Q. b& H( H
/ k( Y5 v7 h: D$ @6 z代码:
, s4 M! d8 q/ O3 f2 ^5 B代码! W: F6 s# b Z, T. @& e$ I! i
BOOL TextCmd_ClearPropose( CScanner & s )7 N- y% L; n' X, l8 U1 E$ t. c, c9 Y
{
! a9 s; q: F1 }' B8 q Q* ]: H! i#ifdef __WORLDSERVER
* t1 t- v, r+ p0 _* ` CUser* pUser = (CUser*)s.dwValue;
: \$ J' z5 J; x; H) h/ J3 h g_dpDBClient.SendClearPropose();
- J+ C, J8 n) R! S1 L#endif // __WORLDSERVER. O- J- O! _- @4 u t" w
return TRUE;
C' S2 t) @& V+ f6 |: G. r}
7 y1 A3 ^& z0 t: @, q下面插入
/ a7 D" M' `& F0 ~BOOL TextCmd_rebirth( CScanner& scanner )" k5 i8 a, `/ O
{
; U( I, P8 r* {2 }( h#ifdef __WORLDSERVER5 ~2 l/ ~% Z3 w3 L6 q8 B; p8 I
CUser *pUser;
v2 d! F8 m7 N: p- HpUser = (CUser*)scanner.dwValue;! m/ J7 C, t, v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): ]$ n. u6 L5 V; I5 G2 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" w/ P/ ]8 v; r4 p8 h5 v; g0 Celse0 {( D" b7 y1 f+ L: C, b
pUser->AddText("你还未达到重生条件!");
' }2 ]2 ~9 }7 g+ v9 Z#endif
/ i9 l) i) v7 yreturn TRUE;5 H. ]% `/ a1 @
}
" ~; ]' V2 r$ d3 ?, M/ S) ^4 C6 b0 Z, T" h
4 i0 R+ u, S# U1 J9 `( ^7 [9 v6 D. Z# ]
6 {$ }0 ~0 I% v% l$ ~
|
|