|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; F0 @! u/ M# W3 j: P$ e
- A: K- W3 l8 w2 iMover.h Z. D! b) V1 c/ Y& [
代码:
- V$ O% z+ F4 ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
Y6 Q: M( X2 Z- B
: Z$ {2 u/ X2 E5 |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 c, W8 i4 g' C: P3 O/ i5 b
. h6 t' T0 a- X. f% E然后你去mover.cpp添加
. I! g% h% H& F6 L6 ?) {/ v2 f" H
( V6 V' h0 w0 K& l7 P代码:
+ l* C0 S" k) _1 Q% S' F' A8 x+ n0 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; _9 F6 m- @1 l, k{
) L! E) N/ c) b; @6 e7 y8 `4 f9 O( H#ifdef __WORLDSERVER2 G- s$ P2 i9 M; U% j! g9 s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ ?; ], U2 V7 y: E! g1 y MoverProp* pProp = GetProp();
0 F d% K. F% {* l- X7 K if( pProp )1 x6 ~4 a0 s9 d7 R6 v
{
2 {% ?' V8 Y8 n3 I9 K) i if( nJob > 0 && nJob < MAX_LEGEND_HERO ). s4 o7 E' Q: v/ y
{
6 \' A* S: M y% N+ c2 q AddChangeJob( nJob );
3 P! `1 a5 {/ b" q' i/ q4 h0 C }else{
" E5 _, [% u$ P! c" Q& s1 \0 w return;- S% h$ [* l3 d4 P# e
}5 z; h' R& a' Q7 C" y0 x
int nPoint = 0;
9 I4 h* v; P1 W" x D/ G if( m_nJob == JOB_MERCENARY )
) n* B$ }. ^3 U1 C6 [. `7 W nPoint += 40;9 g1 B4 H# Q c' R, e
else if( m_nJob == JOB_ACROBAT )2 b4 O3 M, {- G/ Y* R: _/ K( R
nPoint += 50;
" i, B2 C# B1 C- q else if( m_nJob == JOB_ASSIST )
* q1 t1 K1 p* z! { nPoint += 60;
+ X$ W. Q) ]# |; h else if( m_nJob == JOB_MAGICIAN )8 c5 T4 z n5 E/ Z1 }; m
nPoint += 90;- a7 }* B) d: ]2 R' a5 @, k& K4 N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' R1 d0 ?1 s- v9 Z8 r$ {
nPoint += 120;; k; c _% o2 L" m" A; `# `$ C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 i5 Y. t; M2 U# M nPoint += 150;8 i% }( `1 Q# w/ { V5 [! N9 A% B2 e
else if( m_nJob == JOB_RINGMASTER ), {$ L* C8 M" Y8 p/ p- P
nPoint += 160;
$ ^; x1 y+ O* w' o6 y8 Q& U1 U7 g else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* V4 E' q6 Q7 ~5 `6 x
nPoint += 180;
1 u$ o& T6 E' P {+ P else if( m_nJob == JOB_ELEMENTOR )' |! n& `/ L' q( j
nPoint += 390;& v% ~: W7 o0 C, L( r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ s* z! ~0 Q X
nPoint += 120;7 H. V9 a6 R) ^; ~! D& K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% \% Z1 o+ _3 T8 u3 ^/ o( W! G nPoint += 150;
9 d, _/ D" Y9 O% `0 z8 M$ m4 F1 K else if( nJob == JOB_FLORIST_HERO )
: h$ g' x @+ |, { nPoint += 160;0 [' R- [5 p7 ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% u" h) ~+ y+ Q/ Y nPoint += 180;
* Y; q" z2 F+ i% e7 g0 E, T0 V else if( nJob == JOB_ELEMENTORLORD_HERO )! }- W/ e2 I6 H! g- ~- J$ {* i& I
nPoint += 390;$ J/ c1 }; K! j. O; U
% |7 W1 ^# B7 O% s AddSkillPoint( nPoint );
( B" T+ f3 w1 E5 H3 F0 }, i m_nLevel = nLevel;; o6 F; g# _+ N) O
4 N0 Z& X' M6 Y1 S; |3 D3 N6 c SetJobLevel( nLevel, nJob );+ h) X) I0 M( k8 A. U+ X2 L
m_nDeathLevel = nLevel;# E1 g1 M M8 F8 W8 g& c) w1 d2 l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, k0 L/ i# a/ o, E
if(IsMaster())
" r. A; r6 [: r9 j: K! X& _ { } c* W2 F! Q! D+ {9 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: c8 G& X, G3 j q; `* B
if( nLevel > 59 && nLevel < 72 )
* k. }9 T8 y+ Z \ dwTmpSkLevel = 1;7 w6 q, t6 l: P9 O$ S$ r
else if( nLevel > 71 && nLevel < 84 ); {$ V. h: i& m5 t$ J
dwTmpSkLevel = 2;
5 \. Q# q& W1 o+ x else if( nLevel > 83 && nLevel < 96 )' f' S w% v! t3 J q
dwTmpSkLevel = 3;! T, c8 R- i1 l9 c+ i N
else if( nLevel > 95 && nLevel < 108 )
* n* H1 v. X5 e: f5 f dwTmpSkLevel = 4;
* j) R5 O) L9 r6 Z1 g else if( nLevel > 107 && nLevel < 120 )3 b, ]& u8 s2 \7 Q/ E" G
dwTmpSkLevel = 5;" V; r9 o% Z4 S2 j+ V6 P# [& N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, l2 a( ^9 G+ P2 r {
' P. i2 Q3 B+ N' L/ o/ ] LPSKILL lpSkill = &(m_aJobSkill);
1 r- r! Q0 _5 R if( lpSkill && lpSkill->dwSkill != NULL_ID )! x" x' N. t* ~- s
{, o* P" O2 E; [$ u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " h1 h; G ~+ W/ u! z& B8 ]3 Q5 k
if( pSkillProp == NULL )
: y( ?0 _; F' M* z3 \, G continue;( k1 \, q/ Q$ U7 i- F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# r/ L% R* [9 q, p4 ^/ q8 z/ V
continue;
+ f7 h* O$ E( I* N lpSkill->dwLevel = dwTmpSkLevel;
4 m+ o# U* x2 N. M% Z7 o% R; t }
7 g; E( F; J1 A; F4 h }) H6 E: ~/ T4 O! B
}
" G3 f/ ^# c' {6 j else if(IsHero())
% c# y! b" R g7 X/ P {
% \$ }+ U; }# K for( int i = 0; i < MAX_SKILL_JOB; i++ ) + g1 K. P; D4 {& N
{ ; D1 T+ ~+ C" A$ t* y0 u, R' o
LPSKILL lpSkill = &(m_aJobSkill);$ \" H4 J9 [0 {7 | ~6 c+ B! W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 i$ M1 s- x, G% v, s$ P {
- s# z# |( m0 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 N! v( H. _3 k
if( pSkillProp == NULL )
6 i& ^" C2 z v+ N( X( N continue;
2 P l1 Q0 ?, C; U& L" z2 ]2 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 s: v7 ^7 ~* ]% c3 E& v continue;
, r5 x" T; y) Q8 ~9 I4 o7 C5 u lpSkill->dwLevel = 5;1 |) j* t( `( w0 Q1 A7 \
}/ @# a+ o: U5 ]% R: B
}
) J2 M: g- I# D8 x& i" r: l }! U4 c; R' c2 M4 e
else if(IsLegendHero())2 b7 Z/ ]7 h# O: y
{
5 Z" U0 u, ~1 v! C m for( int i = 0; i < MAX_SKILL_JOB; i++ ) - W2 k- O# u$ G7 S
{
& y3 P! r1 t3 W2 p$ U2 {/ b LPSKILL lpSkill = &(m_aJobSkill);
& s6 [+ q, S" W& H4 m/ i$ n W if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 t2 G1 B) z( }, R, ? {5 @3 V* y& s8 `$ Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. m- [/ J7 D y+ {) B if( pSkillProp == NULL )
' W& S: t7 z5 e. L. Q continue;0 R3 _; |5 F( Q* S2 v$ J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 C) I: J% W) Y continue;; R" U6 z$ C" R
lpSkill->dwLevel = 5;; d" R0 s6 J2 a4 K' U
}3 G) @+ j0 k0 K3 b! Y- E, U4 \8 `
}) v7 o8 g2 v7 r" U1 B+ h4 @5 [
}0 D9 ]; v( `" O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 @1 C4 p8 \/ @/ Z2 I" w: p0 ?
if( bGamma )4 f5 S. y* W. b% [& X; i- n4 w0 J1 i9 T
{
( {- H$ E2 C/ w/ q+ N( y0 i m_nExp1 = 0;
) B3 L9 v( ^; H: ` }
s- \# W! u _4 ?6 Y: B3 Z% N0 J
( (CUser*)this )->AddSetChangeJob( nJob );: y2 o0 a- b: u( s8 s6 r4 S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# {4 z& o$ d: ?3 |0 s& h
8 E' P1 ~/ [+ I2 V( N# q2 ?0 \' K$ r( N! N9 X% ?6 n. E* Y# E+ R
#if __VER >= 11 // __SYS_PLAYER_DATA7 w) |+ {" `- _; B. b5 v* H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% T* j" _- t6 l$ @
#else // __SYS_PLAYER_DATA1 [6 a1 l& a, Q' W" ~2 e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# R$ T3 K5 b9 O1 Q# A) Y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 s6 G/ F9 K- p0 P# m
if( m_idGuild != 0 ): o& V6 J$ V+ ]- H) q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 Z5 I2 T3 ~, C Z6 x1 Y! s' S* F#endif // __SYS_PLAYER_DATA
x2 l! J+ c) B) f SetHitPoint( GetMaxHitPoint() );5 x, u! P1 V+ p3 O
SetManaPoint( GetMaxManaPoint() );
. |+ A' }/ N) M! _3 K SetFatiguePoint( GetMaxFatiguePoint() ); N# P- W$ u+ I; {& W
if( nJob >= 1 && nJob <= 4 ); A' {- p' u7 l* b* \6 ^
{! g6 q5 J/ A5 ~- H& N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! [) H! V1 [3 e& B, ]5 e7 A) d m_nRemainGP = 28;, v- }' X" R- ]& S+ R( I
}/ [; d+ q4 u) H( E- u' S0 k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" A @# Q# Z7 [; a {# m" L2 z: p2 d
m_nRemainGP = 118;
. p; f& H7 X& A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. }. e; @* G) @" t7 n% L- @, V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" t" y4 J. ~+ V% W6 {7 P* x: b% i9 w }
& H! A% ~" R- c, k+ S E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 B4 E+ a/ \( h0 {% u/ Q+ S
{2 d) M; k9 g; [7 `" ~% b. r
CItemElem itemelem;6 F) Z) Z. T+ D2 f
itemelem.m_nItemNum = 1;
( J6 M5 L5 [7 m! j% Y itemelem.m_bCharged = TRUE;
+ I, _1 P5 { x0 K1 R7 x BYTE nID;
9 k& z1 w2 ?5 o5 A9 P: v9 ?) @2 ^9 P
if( nJob == JOB_MENTALIST_HERO )
/ f% a+ V5 r& x0 u5 i0 z' j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 j. q. k. w# k- Y, z6 ?
if( nJob == JOB_FORCEMASTER_HERO )
& Q# C( Q& r" B. {4 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
b- B/ H G( \! z8 D6 P( k7 C
; X4 B8 ]1 F4 v2 k ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 W! S; |0 A7 }# Y- ]
}( r# R$ S1 c/ J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- J0 d1 ~% O4 Q, Z5 x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 K1 k& f; w* T. n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& }! G, a9 z0 A
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. w/ P8 U1 x' R/ _( }0 B( [- W5 ` ( (CUser*)this )->AddTaskBar();*/
2 q9 H* E I1 L# O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 e' d$ {8 N" q: e) c
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; N5 m4 l. U. ~' _) {, f
((CUser*)this)->CheckHonorStat();
, |+ E- ^" e1 m [ ((CUser*)this)->AddHonorListAck();
# c6 C, n; D+ P; e$ t( w g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 z* {/ X$ M6 |( L4 C#endif // __HONORABLE_TITLE // ′Tà?
+ q+ @1 e+ d3 B& @0 r( @- c }
, _) D5 ~0 S& [! w" @#endif // __WORLDSERVER
* `/ c- y- v+ w: U4 o+ d}
* k: M* e h# x2 Y$ o! V/ k. {4 t
然后你进入functextcmd.cpp并添加以下/ L. o2 C/ ` g- D- H
2 Q5 K# p8 i. C; I. }代码:
7 c d6 Q8 E d C8 ?' R5 BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' W' {5 A3 G8 D8 }" ~/ a+ d4 L4 ^
下面插入1 M. c, l- `/ b2 t
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ W5 `5 ^( s, A6 |: s$ f% p3 ^, K4 z; ?9 c ]
然后你去
% z1 S. R+ ~1 O8 y8 c8 B
; b, K) _3 C+ l3 } w u8 h代码:* p8 N! m$ X8 W4 L/ s) d L
代码
/ ^$ M2 ]9 L _9 d7 aBOOL TextCmd_ClearPropose( CScanner & s )8 O. V% a# v) {
{0 e# ^9 l5 B2 S2 O7 n: D
#ifdef __WORLDSERVER
% N8 v8 c1 x$ ?4 b CUser* pUser = (CUser*)s.dwValue;
s/ J5 z: J, y% U$ }) { g_dpDBClient.SendClearPropose();
q2 t( s8 U6 Q#endif // __WORLDSERVER
! b( ]# n' g- j. }- v9 W; q return TRUE;8 e6 h' z. c* o; r" b: z
}
/ E; `$ r z4 g下面插入: ]5 _ t3 W: ^3 f5 ]
BOOL TextCmd_rebirth( CScanner& scanner )$ v5 } |7 @+ K/ G2 e5 d
{( L3 p2 f6 {' ^& ~
#ifdef __WORLDSERVER, x9 `* d% t6 v
CUser *pUser;
, r$ H; T# ~( @; w1 PpUser = (CUser*)scanner.dwValue;' D' i* k1 V' q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 m3 H) s5 Y& f3 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 V7 ?# D/ U2 Z8 [+ velse
7 S2 t$ B) X; f6 {2 Y! p, N* @+ @pUser->AddText("你还未达到重生条件!");, w/ [/ N+ ~. u; S1 S) t" n4 f$ O. K
#endif
0 V4 r1 F. k6 } D2 X" V2 Breturn TRUE;9 [6 C) P6 x+ U+ h# @: _
} ( S, Q% `, z! r/ n1 w* `
, p/ W, @# _: m" k& e L
4 A G4 K3 u+ [& Z" \
9 ?3 H. T2 O3 E2 r1 O; M, E" C+ r" |- l0 P. h
|
|