|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% }6 N- d. T( ?" V) v( e) i* i* {. S" R; X# u2 l8 i
Mover.h
0 p. l* b) e! ` W+ `- e1 i代码:
* t' L `+ q R8 u2 q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 C! J3 B: j: c. B
4 X+ Z0 _% Q$ v4 N( r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ B( V( ]8 e, W" J9 E
$ E2 E, i! i2 \+ a, V8 R
然后你去mover.cpp添加
& r1 R! c+ Y( g: ?9 z# x1 N4 t& n1 U: x! m1 H
代码:
* \. O" u- w. s+ F0 ^: E* fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). g$ K8 G$ x- w+ k' C) C
{
1 C4 ?3 d5 a7 ^& R#ifdef __WORLDSERVER% \: J$ h0 Q8 X7 J& Q, ? U$ ~ K; U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 D5 j$ ^# P0 U* b4 C( e+ Q
MoverProp* pProp = GetProp();
7 Z: W+ S4 C) r8 ] if( pProp )/ {, {, S" d( Y% I/ J2 `8 }
{. Q2 L) d) I1 `8 W0 b/ b- r. M
if( nJob > 0 && nJob < MAX_LEGEND_HERO ). {% P1 |# J0 j- L' [
{
" s- S9 p7 _8 H1 [5 }9 h AddChangeJob( nJob );
/ m) \1 ~5 g1 L% w$ q }else{- H4 f. c+ \2 {
return;. G" N! D: d0 l- }/ ^/ B5 P
}& K9 S4 [" K, @; R- a F1 q) u
int nPoint = 0;
3 M# i7 z! S% O' }. T7 A if( m_nJob == JOB_MERCENARY )
/ b/ n' c4 l$ t) r0 @! T: I$ @4 ? nPoint += 40;9 X0 M# z$ O; N& O
else if( m_nJob == JOB_ACROBAT )
9 b$ M# ]% P/ x$ `, J" A% u6 [ nPoint += 50;
0 g+ s! O1 U; R4 J4 [. N! R else if( m_nJob == JOB_ASSIST )
& c4 i0 i; X: z8 Y* d/ P nPoint += 60;
+ R" C' E4 c6 Y3 M8 c, y" `; _ else if( m_nJob == JOB_MAGICIAN ). Q$ U$ r2 i% A) A) a. c I; H5 T
nPoint += 90;
0 X" e6 ]" \* H4 |5 ^* z/ o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 x, p/ O( t( }9 { nPoint += 120;
7 G2 T8 ]: Y4 N0 ~: ?2 s) [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 y2 [, _: j, C) H d nPoint += 150;
) d/ i! K5 ]: b: ~8 [ else if( m_nJob == JOB_RINGMASTER ). V" ~) J+ v2 q0 B
nPoint += 160;
- ]3 Y n- K R! ~/ f7 e else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): N; {, x. ]8 G: @3 h H
nPoint += 180;6 U& c$ }: ^" X& ?+ a
else if( m_nJob == JOB_ELEMENTOR )8 j& }5 U9 P; X% X2 {! g+ w0 d; [
nPoint += 390;
U; `2 G) U9 V1 H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! j: k* ~* C6 l4 ~ nPoint += 120;
$ D& |( b4 x4 U% H: q7 T) @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 a6 R/ {( _- y, P L' }3 i: ~
nPoint += 150;; i: {- S3 A% R) P
else if( nJob == JOB_FLORIST_HERO )6 [" b& z, e' d6 {
nPoint += 160;
, U7 Q/ T3 ?* N/ z7 R. X! I4 z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 G, T+ x, U! |, N. ?9 C
nPoint += 180;( c6 i# ]% w$ Q0 h/ p5 o+ y; D
else if( nJob == JOB_ELEMENTORLORD_HERO )
5 c$ H# g, U' t5 L nPoint += 390;
0 c" K D2 C) @7 g/ k; |
% f7 {0 m1 Y6 Y. d1 \! b AddSkillPoint( nPoint );
' S. R6 S8 m: `/ ? m_nLevel = nLevel;3 y% x5 R% U: u8 B$ t
/ r* o& S5 c3 O7 R0 x9 h SetJobLevel( nLevel, nJob );
& G1 q. @% W0 k! N. ]- I2 j m_nDeathLevel = nLevel;( A8 z: g* b, x/ ]4 S# y7 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 r5 ^3 `/ ~) `8 n4 p7 }4 W, k if(IsMaster())
/ W( ~. c. ]4 K P7 ^8 o {
) [) n. e* L" S8 j int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) d. k- R& J) m
if( nLevel > 59 && nLevel < 72 )1 P' p% J2 ^% b+ X; U- _7 p
dwTmpSkLevel = 1;7 H& q+ E5 l* \2 f
else if( nLevel > 71 && nLevel < 84 )+ `; }' i9 O( Q: @9 p
dwTmpSkLevel = 2;
+ T/ o( q G3 h7 `/ F+ U else if( nLevel > 83 && nLevel < 96 )
% M+ l1 h5 t+ ^( d dwTmpSkLevel = 3;
[% U* ?: @/ Y* [ k3 v' h else if( nLevel > 95 && nLevel < 108 )
9 I/ V7 l( R! E2 Y& m0 B, T dwTmpSkLevel = 4;, l& Y6 m& s& z
else if( nLevel > 107 && nLevel < 120 )9 `' F$ L' f. t6 c# y+ `" l
dwTmpSkLevel = 5;5 E2 Z- T! M3 d! M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 s& L8 m+ S) a2 i {
/ G. h- n9 p1 g! i2 z1 m LPSKILL lpSkill = &(m_aJobSkill);
2 Z& b9 w3 G5 S# s) a: K/ W if( lpSkill && lpSkill->dwSkill != NULL_ID )9 j0 V% Q% K [, O8 k
{9 D: ?4 Q( C, z: e! ]1 @' J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * M7 H! N# [& `1 r
if( pSkillProp == NULL ), O' k, p8 I' e3 h5 e5 w
continue;9 \) {* e, v4 s& v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 {4 i2 o2 R) L' Q! E' P7 H
continue;, k1 L/ U8 c* j; c7 ~8 ^
lpSkill->dwLevel = dwTmpSkLevel;4 z( g' ], a5 _; {
}
1 G6 w) \$ D% J, m6 H" d' }1 H7 ~( ] }/ [ \( `8 @7 Y9 M, O, Z
}
; A* X. U/ r5 ?7 x9 U$ X) S4 J+ o# ~ else if(IsHero())4 U! K6 E1 s/ t) s, V
{4 b* m- t' g: y& g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - L6 z3 H& ]8 D# ~1 ^
{ # ~3 i7 r% M+ a2 ~( @; y
LPSKILL lpSkill = &(m_aJobSkill); U/ X3 J. t7 Y% V8 F" R+ G# l
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ A. q S8 \, y, [- J6 Z
{$ k+ B. [( ^9 {% }( }, I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " s9 {3 `/ G) l6 ~* N1 B9 k, ?
if( pSkillProp == NULL )
% `" U2 I# a8 L continue;1 S+ M$ j4 f/ M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! B% t" w) A) z continue;5 ~( m* l. z4 ~% ~# G# H3 { A+ y
lpSkill->dwLevel = 5; k; v$ L' p5 D9 B' Z
}( s; Y6 l+ [9 I
}. V; t" f2 T8 a/ A; M/ _
}/ a" y6 @, X1 E$ Z" _
else if(IsLegendHero())6 D! z! S0 k$ p" p" H. C
{
8 Q9 M2 G5 V1 G" L for( int i = 0; i < MAX_SKILL_JOB; i++ ) . x$ c# S+ g4 H; I) y4 ~* f" [
{
( J2 o( C; d9 [5 u- I LPSKILL lpSkill = &(m_aJobSkill);0 Y! k& ^" m6 i7 r7 L$ T; @" [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 C8 \) X4 M$ q' ^5 k {( @: W4 m1 v4 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 j s* K- g, h$ `7 F& n) q
if( pSkillProp == NULL )$ I" t1 ?0 ?4 S' X+ l1 Q
continue;
4 P6 Q+ Z/ [2 r. @5 V! { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& t8 R# J3 b0 P
continue;
) f& B7 ?' q; V% W8 P" g( Y: A lpSkill->dwLevel = 5;. B- Q7 [4 |/ ^8 K2 Z: q9 Y
}2 u; L7 R+ b0 ~ F$ {# x* a3 c
}
" c* t# W4 \9 G" n! a S }& _. N1 z- U, {3 A( Q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 Z6 i# Y% `) o% `1 u% T
if( bGamma )4 d: ^3 J3 D0 n1 `8 Z% ?
{
8 F, K/ |/ s! ^7 I6 x m_nExp1 = 0;
+ k5 O4 r, f; X1 u }
9 p: `2 a9 K( l0 U% K# W3 p' a) [) j; J) H
( (CUser*)this )->AddSetChangeJob( nJob );8 Q/ A( l5 R1 h( ~( U( t1 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: r3 K, E, }. j* r* ?
9 P0 K* I- v6 X9 z& Y7 i
8 Z4 ^8 }( O0 Z' i9 ~, y! `#if __VER >= 11 // __SYS_PLAYER_DATA
+ l: Y& { ^ d* I) d! V0 d- |3 c/ ^% X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 m( j+ j' P3 J, w' J# N% E2 L( T
#else // __SYS_PLAYER_DATA
" t# p# K6 I0 y6 [: {3 J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' |+ k4 E. q* t' ~
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& T! p" H- y2 \# `) Y if( m_idGuild != 0 )1 d* P% _8 l+ ~6 k' Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 T$ n* V7 C+ ^3 g4 D, Y7 Q$ T( e
#endif // __SYS_PLAYER_DATA
/ G. i$ `# k: X9 f7 H9 d a SetHitPoint( GetMaxHitPoint() );0 Z* q W1 t! j
SetManaPoint( GetMaxManaPoint() );* q. [3 F$ Q. S' P
SetFatiguePoint( GetMaxFatiguePoint() );
" U8 q' {3 A+ Q! z& O& y8 D if( nJob >= 1 && nJob <= 4 )& y+ ~2 ^7 A" I1 [6 J/ X
{
1 A2 _' n! q/ `. P. a m_nStr = m_nSta = m_nDex = m_nInt = 15; i; N8 Y% f' l4 n9 ]
m_nRemainGP = 28;
( ]8 j* F" K7 {& e% j }. y0 ^ a/ `) s
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 ?) q- Z0 B5 Z3 b& ?
{5 a/ k' W, F4 ?9 C
m_nRemainGP = 118;7 u. e/ p* ? G9 r" c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 k9 [7 a: _3 u E# c2 X2 {, H* [, K m_nStr = m_nSta = m_nDex = m_nInt = 15;: Y: y% b2 r0 H _8 ?/ v+ k! P
}; Z0 N) U- f5 n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& g4 Q& T$ F8 u* K+ L8 ?
{
( M( x& L4 h. N. A3 z, Y, n# U CItemElem itemelem;# m9 t% _6 N; I$ m4 F
itemelem.m_nItemNum = 1;3 c- {, i6 R$ J$ t" u
itemelem.m_bCharged = TRUE;
3 C1 `1 Y# b8 u! c- B5 K6 c5 ^ BYTE nID;9 t$ m/ W% ]/ `' J5 H
+ M. k4 L3 l5 g6 ]9 m if( nJob == JOB_MENTALIST_HERO )" Z' D+ H a0 X" c$ l; W; R% c! l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ x+ X8 C# ?- {7 y9 N
if( nJob == JOB_FORCEMASTER_HERO )8 l7 d3 _7 ]5 ~. y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ u/ E/ |% [0 D5 {9 x( x: E
4 }( |' p; u& D1 M! t ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 F5 l! F, V3 z }) f/ x& v$ f. R6 U) ^0 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ X( I! R5 m+ d' k# E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 h: k+ n/ X! v2 t9 t. r7 W; `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 u3 O6 O5 _6 a7 ?6 y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 ]) p* y W, c* ?8 Q
( (CUser*)this )->AddTaskBar();*/
/ o& T; g$ I9 P3 z0 [3 i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( B- o/ P6 O9 ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& F% o4 B1 b" v- I7 r ((CUser*)this)->CheckHonorStat();( @4 G+ R* w, s- |
((CUser*)this)->AddHonorListAck();$ R0 K0 B4 q2 w" d: _
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 p( J2 A1 p: ~1 H( ^' ~
#endif // __HONORABLE_TITLE // ′Tà?
/ W/ r M G1 A3 _; R. _: H) P$ [ }, M! \( ~$ P2 z
#endif // __WORLDSERVER
* g. i) e# e" y& g6 h}
8 M0 b/ O' r, o+ W7 i' R
7 E7 t2 h9 S/ G5 h4 e" E0 {然后你进入functextcmd.cpp并添加以下! ]8 S5 f5 @2 I, R, Q
6 a' F* K7 A. Q8 R' y# l; I4 q, C
代码:
/ V4 i6 _: ?- q: v9 AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 L Y( h+ K0 Y! { F3 b+ r& O
下面插入
# \, v0 {; ] [3 i2 g+ cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; ?, t7 Z, X7 c* j5 ~0 ]- D. s, C0 j9 `8 H% x- W! ~# ~8 Q
然后你去: J6 G# R: c1 S, I
4 U6 `% ~- a# n% K0 |( i1 Y代码:4 H/ m; L4 t/ M' {3 j; y
代码
4 G' a& v( H4 j! `5 yBOOL TextCmd_ClearPropose( CScanner & s )
0 n c; E, J* I# N1 D{/ ?9 }! ] v* B; i2 X
#ifdef __WORLDSERVER2 p% x1 \- d( C, x" b
CUser* pUser = (CUser*)s.dwValue;) x0 o' x5 G/ n# J! Z' \8 D
g_dpDBClient.SendClearPropose();; ]5 H. l% o( J, T/ @
#endif // __WORLDSERVER4 A* E( h1 C" D0 B7 W
return TRUE;
" y: F; `. n# |2 l}2 H! Q5 |* |! F5 z8 K; {
下面插入
% r7 g0 h0 R1 LBOOL TextCmd_rebirth( CScanner& scanner )
- F& ~0 h# j6 D6 Q{9 k! n/ D7 Q! N0 N) v; ~
#ifdef __WORLDSERVER
* I, Y' A+ {% Y) ~/ u2 yCUser *pUser;+ |' X" a" x9 e8 ^ Y, z: S1 t
pUser = (CUser*)scanner.dwValue;
: b* L$ m0 D4 m* d# s3 x! \, yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( u3 l9 @" ]0 C3 E2 H3 _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 z) n( [. E8 y. @- c4 R) \; s& e8 celse! n6 _7 E4 S4 B8 ?" {1 N
pUser->AddText("你还未达到重生条件!");# ?# x" h$ j' r: ~
#endif
3 R" ?2 A9 O9 Yreturn TRUE;& M5 }) w$ J0 [& U8 V- ?
} ) d$ ?6 H4 g! C6 c0 l) J4 l
) I+ Q7 D* ?" z: b& \) b! O
; _# B. r) j/ H( }
$ l; X+ e" Z- D3 g$ ?8 K7 H$ I0 f: V' [; q% k
|
|