|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- d/ j/ Z, v: N3 e6 q, y6 G
1 O0 n6 g# |/ t# {0 N4 i/ w- \. i4 HMover.h8 y2 j# H& i- ^7 [ o
代码:( k( g1 j, |# b% s [( G3 `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 Q0 m3 L$ Q) b9 ~8 }/ Z7 f/ F( @! R7 x- ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ]0 x( n3 C2 V- f; u; b5 A6 D: c
6 |# X- F* U( b: B9 J然后你去mover.cpp添加
4 s+ i6 ?& }: Q/ o' B9 ~& J6 @( h' D0 S! c1 x9 Z* ^9 |/ H
代码:
: F; G( ~1 E9 [0 T" s1 rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) N8 B+ X, `( o0 h2 z
{* P5 y& P8 U; V$ E* o3 x
#ifdef __WORLDSERVER8 z; H( H( [/ c* ]9 b& S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ e- |. ]' w) Q% Z+ b2 ~1 ]/ e% T
MoverProp* pProp = GetProp();6 n2 \0 I& @4 N; ?- O9 `
if( pProp )
$ E3 m) b- Y s* t {
1 p! A* O! f. Z( w8 | if( nJob > 0 && nJob < MAX_LEGEND_HERO )% f: j1 f/ Z+ p" E5 W9 X6 z! k1 v" p
{
0 `4 c0 Y9 N0 ?; ?$ Z$ J( v AddChangeJob( nJob );
$ v/ A: ~9 d6 v }else{
9 _: Y9 M+ [- K) s0 z$ I return;
8 j J3 K/ E; r }# N2 f3 c5 m- x9 V! N
int nPoint = 0;
1 l _/ n, g/ k if( m_nJob == JOB_MERCENARY )" f# R7 p8 e& a4 c! Z3 b) L7 Y
nPoint += 40;
* p9 d- R; h1 o else if( m_nJob == JOB_ACROBAT )
, _$ c" ~3 u* m# S0 q: r nPoint += 50;' x! D! K. z6 p; w
else if( m_nJob == JOB_ASSIST )# W1 X6 }1 [& Q0 A" [% \
nPoint += 60;# z t! D# k k7 R) M' C
else if( m_nJob == JOB_MAGICIAN )
2 s1 V- N7 R# I$ r nPoint += 90;5 ]7 F; o# b* N( m$ Y! w+ `& ? N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ R1 D5 s. v+ I+ y! Q
nPoint += 120;& c6 i1 S; p3 M" t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( b1 l4 y1 r" f3 D) ?6 l
nPoint += 150;' |8 Q6 A; }0 t6 |6 S4 U
else if( m_nJob == JOB_RINGMASTER )
) U) f# O* P9 N9 x. d J: C) r) h nPoint += 160;3 ^& k$ r! w0 d0 q- ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); Z# O9 ~" r' b* U$ E
nPoint += 180;
/ x) Z2 b# Y! X+ q) R! P else if( m_nJob == JOB_ELEMENTOR )- i w/ F o% C& k# a
nPoint += 390;
" e) v9 `( s% e+ B" o% B. ]' e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 d9 Q. ~: z$ m nPoint += 120;5 D: ~/ p; T2 M8 u3 O! O# K: \+ S
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! A3 r0 q/ u" ?$ Q: { nPoint += 150;
5 Y' C1 t0 ]) p; z else if( nJob == JOB_FLORIST_HERO )/ d$ V \; B: T+ r% T
nPoint += 160;4 T$ d0 ^! b: }; h$ x
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); b9 e- ]% F* p$ ]5 h
nPoint += 180;) v% v8 Z' e2 E
else if( nJob == JOB_ELEMENTORLORD_HERO )5 e; z$ @9 ^4 U- b0 @3 d% ]
nPoint += 390;
, Q& T7 s Y" O2 ?) V- q9 a3 P$ ^# G4 X9 z1 v
AddSkillPoint( nPoint );
" }, u9 T: }+ {# Z" U& w m_nLevel = nLevel; j( E7 O" b- P* P
3 Q! |1 O) ~. [: u8 N0 V/ n+ B SetJobLevel( nLevel, nJob ); B" l% q0 u$ j& p0 Y7 e% I
m_nDeathLevel = nLevel;+ w+ [! M4 f3 a1 d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 N0 @, k: V# B5 G0 T
if(IsMaster())+ B& r2 b) v4 s. U) M; l3 b5 K
{
; d6 z) Z9 n0 m, v3 F7 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- j# r! \' J. I5 ~4 X V if( nLevel > 59 && nLevel < 72 )$ U' k4 }4 o" ]4 ~/ M
dwTmpSkLevel = 1;
: z y( b! p: c7 d else if( nLevel > 71 && nLevel < 84 )
9 X5 X7 U: s% ~ dwTmpSkLevel = 2;
5 |4 I1 R9 r+ m1 u6 V2 N else if( nLevel > 83 && nLevel < 96 )# g: \1 H, W$ {: `. I3 V
dwTmpSkLevel = 3;: W8 p- p0 u) S B* x
else if( nLevel > 95 && nLevel < 108 )4 R- }& c& S' r7 A) Y* I
dwTmpSkLevel = 4;: T6 @ R, ^* s1 R8 q* E
else if( nLevel > 107 && nLevel < 120 )5 S0 f$ Q# \ @# B/ B. ?8 u3 Z5 Y
dwTmpSkLevel = 5;
, r8 U# N& {8 a0 M2 A for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ ^; m- ?, k/ q( r8 G {
3 Z- ?$ ?. D# M5 A, C4 r" p LPSKILL lpSkill = &(m_aJobSkill);
* A9 d5 n$ @8 S+ @9 o9 p5 @0 E if( lpSkill && lpSkill->dwSkill != NULL_ID ): e" V9 d# L8 w. y/ m
{* [. {$ p* A+ U; p" M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 v- f( J: m& ~5 p8 O" ^
if( pSkillProp == NULL )
8 |$ m, u' V# {$ @4 B% F continue;8 P6 X, X# E5 c0 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 a* p! m; o& {5 {
continue;4 T6 B8 G, ?! j: O) E$ G1 X" D
lpSkill->dwLevel = dwTmpSkLevel;- [& q, B4 C3 v: b# B. \+ b) o; X
}
- u* K/ Z/ r4 G8 T( }) y0 _ }1 _) t: |" G, H
}' `# r5 W: m& H- o% ]
else if(IsHero()): w0 U. f! B/ M6 m* _, K! c. K/ E
{" Q3 a3 B# ]0 \. W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 p, g z( [$ B4 Z+ _, a8 h9 C
{ 4 _3 _2 r5 b( u* V
LPSKILL lpSkill = &(m_aJobSkill);' M c' d6 t% n3 G. X' X3 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 H" g! l5 H7 s5 T: V {
+ m, D; z, d2 I& d$ }& j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( x, Y9 u9 V, I9 G" h if( pSkillProp == NULL )1 C3 `% {+ i( |% o, i) j0 A
continue;3 w9 a, j( N$ ]* \3 L" y- t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) k, D- u3 O% [' \7 |9 s; O/ n1 z
continue;
# O1 ?" [& L1 u4 k \3 g4 K7 i g lpSkill->dwLevel = 5;
! W1 B5 ~" u$ F2 q. H }
. F1 t J4 r6 C( B' x }
0 z- g5 Q5 p9 `2 l; y }$ r0 I- T2 z4 l3 M4 I+ u
else if(IsLegendHero())
z7 D& W; _3 [ {
( s/ T8 k( H% [+ ? l- | for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 O! G9 l" T* Z! D! v" ], d {
! a8 f7 o6 w7 S( C; r0 y! p" o LPSKILL lpSkill = &(m_aJobSkill);& `8 B8 q' a) k4 K8 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, C1 N) _1 v: `2 m5 L6 E$ _" O6 f8 v {
]' c+ ^6 T7 G; x) z3 K; `/ A6 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # b7 g- y8 Q. \& p1 [ U# F
if( pSkillProp == NULL )+ B0 P8 G# v! L- p+ a
continue;9 e4 r' ]2 o( S2 m3 g5 ]6 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 h7 i9 f# ]) Y6 g continue;
' t$ f( J: ^$ r) L8 ~ lpSkill->dwLevel = 5;8 n, s2 V. P6 {0 K
}' C$ u/ w6 W' A0 [- I+ U; J
}( z, p& e& Q4 \/ ]6 o' _
}
% b. q/ U+ K# B* \! _& O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 l# F0 N/ q- ~$ @/ {% w if( bGamma )+ c0 ^& T8 P5 A! y6 O
{
' T* ?% d# Q" h m_nExp1 = 0;( s0 Z ]7 u' d- _; Q7 G
}
( Z8 F; w2 H/ p0 @: S4 g# w9 z! ^" n7 |0 Y' q1 E9 `" H3 U+ x
( (CUser*)this )->AddSetChangeJob( nJob );
, s4 |- Q0 B+ Z7 d2 o g, Z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# i" ~7 X8 l: q
) a3 w! h: I# m
, c! s$ _: |: C7 a( h, K/ l$ c8 v#if __VER >= 11 // __SYS_PLAYER_DATA: z4 l* l8 p. ^9 u1 [" x( n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 q! E$ T1 s D& R#else // __SYS_PLAYER_DATA; @$ W) C& \+ L" m8 L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 a5 K {$ K. F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! L5 i- }; c: e, x
if( m_idGuild != 0 )
' Z8 b" p" D' z. L. g- b0 U! Y' t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 p" [2 s* x% ~
#endif // __SYS_PLAYER_DATA
) o* J: S6 _1 c1 n* b3 H SetHitPoint( GetMaxHitPoint() );$ n4 c5 \# v! u6 V+ P& j
SetManaPoint( GetMaxManaPoint() );
3 ~1 e% Z4 f) o7 L8 x SetFatiguePoint( GetMaxFatiguePoint() );* w6 y' O- K( p- w
if( nJob >= 1 && nJob <= 4 )) b2 X% y. C( l0 w, Y
{ [8 t" m& K' w6 @3 J+ o0 y
m_nStr = m_nSta = m_nDex = m_nInt = 15;* }# o) c% E2 U' ^" v. O
m_nRemainGP = 28;
: o+ T# [5 {, C4 X$ `( ~# G }/ K/ y; r; e0 z3 G/ _6 A; b
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( V& `# p" X8 a2 H! q$ ?0 ?! U
{/ H) G; z$ E5 \+ f6 G
m_nRemainGP = 118;+ W8 f: K' J& v# _/ g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! T+ p' N) Z; r. M5 |% L. [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 ]* R. F) y& y }
! l5 Z& c3 H( [6 ^( W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 [* W; z3 S; k
{- U9 ?0 s8 v! j' ~- [* `* n
CItemElem itemelem;
( K: y& p$ D! ^/ q# y8 _. w! a% s itemelem.m_nItemNum = 1;
! [' e% K6 q; K7 J itemelem.m_bCharged = TRUE;
0 B3 r0 N$ e; F0 ^' X BYTE nID;. p7 l( q* n# f- `1 [; m& Y& i
$ |# ]8 ]; S' { u) _' L3 A
if( nJob == JOB_MENTALIST_HERO )
+ h# }3 S9 r/ D6 _: X9 Q p itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% P1 X5 v- O, M6 i5 s if( nJob == JOB_FORCEMASTER_HERO )
4 Y# ?" p0 @% ?1 n2 e9 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ Y4 ^0 X: [, f6 u/ c+ C" K% k- }- N e. N
( ( CUser*)this)->CreateItem( &itemelem, &nID );, u# s. o# r. x8 w0 e1 Z
}
0 `3 A( w( N }! _- j' G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* E* Z6 p8 U% J1 r9 W! O7 k, t- P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 Y& x; \5 I& u7 [9 c+ [7 P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 t" K8 z/ E& H: w6 k5 x /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) `' k8 V/ g% d- C5 m3 @ ( (CUser*)this )->AddTaskBar();*/
2 k5 C6 Q }" s# x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- B% d9 b2 {$ K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' T: Z. v5 e N y+ I
((CUser*)this)->CheckHonorStat();
5 a9 K: x n% O( B8 n1 @ ((CUser*)this)->AddHonorListAck();' Z, u% F* I+ L/ a- X% }' \' z& |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* H& \, U# L2 A& T#endif // __HONORABLE_TITLE // ′Tà?; A$ D4 U! R9 D4 |8 s, n! F1 b- I
}
3 H" T0 w4 L7 v# ^/ [' F* O, [0 _#endif // __WORLDSERVER
w2 t8 g) ^- a! I3 F}
: G; F2 q. A, q1 G4 r8 k' L) B- T! `5 y5 |% ~8 j1 J% N2 c p" {
然后你进入functextcmd.cpp并添加以下
( b/ |. p, F G* x" Y- S4 U( A. l( X$ _- I( [
代码:1 @3 C3 d( m. d) ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& u7 U3 k1 f* w7 p, o. q
下面插入7 }" x4 \2 @. P1 ^2 I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 s# ?+ Q+ `5 R) u' d- A9 k
' @2 e' r: M# y
然后你去7 U1 ~! a( C( I" ?6 z$ W! {
& B3 `1 P$ R1 k4 H代码:1 s( x6 l- n0 N! |/ X4 o5 Q: o0 ?7 h
代码
/ ] ~4 w! \" K8 U1 R. i2 J& S! vBOOL TextCmd_ClearPropose( CScanner & s )( h' O# x) S0 \1 x, v" h% A# k
{; ?- \* j. c/ q/ j5 M1 n# N9 d4 R: @
#ifdef __WORLDSERVER" h: A; H; o% i% y" l* J
CUser* pUser = (CUser*)s.dwValue;( T" Z. k9 q& @) u
g_dpDBClient.SendClearPropose();
; @9 D4 G) H3 G) z( [7 h, [3 n#endif // __WORLDSERVER# R/ w2 u1 W4 V2 K
return TRUE;
) ]; F+ P2 R5 z' ?% N4 H- f! C}5 Y9 J& J7 ]" Q. m
下面插入7 a% |2 ]* ?% I5 |$ b7 G4 v
BOOL TextCmd_rebirth( CScanner& scanner )
5 ]# i8 u$ G6 X: f9 X& [{
2 f5 M4 d8 O/ W, a* m#ifdef __WORLDSERVER
4 s1 Q# i5 j% E) R! U' tCUser *pUser;: k0 H$ o) k- T8 P% c
pUser = (CUser*)scanner.dwValue;
6 g! R) }) S2 M4 tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' ~4 }, [& ~) j* Y/ FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* k- j5 ]% {3 n0 ^+ lelse& }% [: g# o( k5 D* Y! t( s8 Q
pUser->AddText("你还未达到重生条件!");# j" T4 k B$ d* l0 R- |
#endif
0 r1 h1 ?/ s4 U8 b! \2 \1 Zreturn TRUE;) x, c8 r) A# E$ {; r! H: W) o
} 3 f# F1 O. N2 E. x0 D
" R$ ?9 P: [: I8 h6 G# ]7 v
2 D C; Z& f& c: J7 v- M5 o9 Y; S5 P) z2 U* | J7 {( @4 b
4 S3 E% Z z5 q/ z( a3 f9 N) V* h
|
|