|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 r* F9 f" E0 D3 c/ ~; X$ X' z, ]/ J+ q/ Y& O; ^+ \. z, H7 ^4 p
Mover.h% C' X3 L% N- D5 K6 s
代码:
0 ^/ t/ g/ [; k+ m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ A! `( A& r6 |/ B
, D+ I9 `9 }* b4 L5 ^/ K" |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; h8 }5 |) U q( R3 F$ p _
' J' n. X# j1 i, l: U3 Y+ w! B然后你去mover.cpp添加, h" f& c; L& |. ^ _3 r
( @/ H+ F; n$ m: u1 L/ V/ I' `代码:+ R' u1 q8 N" v, T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ W, l8 b! S- Z{
* p5 I s" p* E#ifdef __WORLDSERVER
2 y1 W% C/ ~4 ]! C: d0 Q7 t* L // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" n% q" }. s1 S$ L' }( u MoverProp* pProp = GetProp();* |7 {+ O& x) V, t2 q* s, f
if( pProp )
" {5 l* M# r* h$ v6 H {
. x3 @' R. j4 `1 `7 T& {- a# Q0 j& s4 n, I if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ V# a" h+ N1 Q x5 J
{
], X, W+ i- d AddChangeJob( nJob );. _; k# }6 J1 Z
}else{
3 T3 E# o4 c* ?% V Q7 ~ return;
8 N J- y1 ? T }
. z6 y. I& }" Y" a: o7 V$ C: E/ _ int nPoint = 0;
' v8 ^* {! l7 t) w if( m_nJob == JOB_MERCENARY )! G" }7 H7 u% u H2 c Q9 K
nPoint += 40;
! M; U( ^ P, m7 w* i else if( m_nJob == JOB_ACROBAT )
7 w- A( x* x: m* {, `$ m+ p nPoint += 50; n% n; h: b% W" @$ c2 g& @
else if( m_nJob == JOB_ASSIST )1 a" |$ ^/ t& o, a
nPoint += 60;0 {- X& x0 D, }! ]* Y5 ]8 ^
else if( m_nJob == JOB_MAGICIAN )
: u8 W; P! ^7 t# m% G3 ^9 B1 T+ N nPoint += 90;. K0 y1 m$ h8 {; S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). K0 Z) P" Q4 X# P0 f3 t' m( _
nPoint += 120;3 x0 `: B& A, M' _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 W. l$ t2 P8 p* `
nPoint += 150;
6 a0 b; i* W1 W" F+ Y$ D) { else if( m_nJob == JOB_RINGMASTER )
# E8 i: |. Z6 L3 U- t; p nPoint += 160;
4 l) k+ H2 U% {! | else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 ?! L0 U' R$ b3 J$ \0 L
nPoint += 180;
4 [$ c. r% L0 V/ y( M: f else if( m_nJob == JOB_ELEMENTOR )
7 A. q$ A) g7 O9 I4 b4 t nPoint += 390;5 k' y& Y& [3 Z6 T! V5 G) N
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. B. }/ v: ~; C, C nPoint += 120;
3 L) l% M- i5 ^ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 J2 J1 w+ q/ M9 p3 N( y: c( z U/ o
nPoint += 150;
' d$ c. O" d, v& h+ R else if( nJob == JOB_FLORIST_HERO )" M$ }2 d) R" y+ Y
nPoint += 160;
8 O1 `* x8 @4 b/ a1 |+ e2 }4 `% X else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# S( |* o: Q) b* i9 `- f
nPoint += 180;) F5 E, u3 V- p; l" i
else if( nJob == JOB_ELEMENTORLORD_HERO )" F- e" v8 G. f6 w8 D5 u& s! Y
nPoint += 390;
. L4 R- p, l. S9 F: n' J( a4 y+ o3 A; Y
AddSkillPoint( nPoint );
1 M& j8 h7 R# T m_nLevel = nLevel;
. ^6 u& B7 s: F n- U& U- ]* P# ]2 s# ~( P1 `" Y" v" X2 u
SetJobLevel( nLevel, nJob );8 g1 v U7 Z7 d5 ~) W& m
m_nDeathLevel = nLevel;7 a! Q7 f2 |3 X! c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% _+ c& h: y* H; M
if(IsMaster())
: K/ h0 v( w: p {0 ]+ w- I3 B. W; T5 }
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ T) v. [; i4 Q; l# H. m
if( nLevel > 59 && nLevel < 72 )1 @6 Q3 K8 \: i; c) \) C% A p
dwTmpSkLevel = 1;, k" {& L) k# ^; B
else if( nLevel > 71 && nLevel < 84 )
: O! H& U1 H$ E0 X0 Z7 h' s dwTmpSkLevel = 2;
7 J3 b z2 T0 A7 c4 I# G! J else if( nLevel > 83 && nLevel < 96 )
. I" m+ j" G$ ]% `+ m# A( ` dwTmpSkLevel = 3;* Z* y0 I; B6 \
else if( nLevel > 95 && nLevel < 108 )
% F3 u2 T3 H4 S dwTmpSkLevel = 4;
& B1 Z1 k2 `/ {4 r+ P else if( nLevel > 107 && nLevel < 120 ). Z9 `4 V( U' c6 c3 h; a3 |
dwTmpSkLevel = 5;
5 p7 _+ d& G. S for( int i = 0; i < MAX_SKILL_JOB; i++ )
# O5 q0 H% X" z [% H0 I { Z7 J A7 r, e8 K
LPSKILL lpSkill = &(m_aJobSkill);
: U5 v4 J6 u4 o! u# K* x* |4 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ H/ q, H; a& M) v- ~/ e {( I5 n, J, [/ w+ s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' _' J# h3 o8 b- |$ L; Y" v
if( pSkillProp == NULL )- U7 i# ]: c7 u6 |) a( z8 ^
continue;
9 B a! J# ]7 M' t9 c3 x! u- L6 A6 k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 `" ?/ ]& K, k, g continue;: {; p* y4 N' Q4 q% m
lpSkill->dwLevel = dwTmpSkLevel;, a4 E* o% i, `2 \
}5 P' d2 a- e+ ^3 c) x
}& u2 I' r) C; R! R, Z( l. G
}
1 e: q' }) L8 Y, e T+ m# Q5 T else if(IsHero())! Q& b0 c' f- r1 {6 r
{
2 R1 n! J/ ]& |- w for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! b4 o# E: R/ z
{
' J9 K, L3 a. l9 F6 E$ ~$ u2 N LPSKILL lpSkill = &(m_aJobSkill);
7 O$ N' O5 N% V3 Q6 r1 t: C7 S if( lpSkill && lpSkill->dwSkill != NULL_ID ), ~0 x0 P+ j5 K5 i
{
9 l- T/ N* U9 z6 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " v) r* ?9 I5 x/ `+ I/ D4 e
if( pSkillProp == NULL )9 e, ~7 S& U; h# h. o6 S
continue;
- k7 h7 t" s9 a4 q8 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 I9 k- N3 f) q: h. b9 z. a( x continue;
. R) |9 u! g+ D* O) w v7 @ lpSkill->dwLevel = 5;1 F1 b \/ z% S" U
}
$ b9 e$ p' X1 _; b+ I }4 z: ]; ~. a- G
}, g' E9 G( Q3 ]2 @! ]$ P. X1 [% l. _
else if(IsLegendHero())
/ e1 [) A ~. r, {3 S* K! E {5 q } W. y1 x. M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- M! Z( }* f: j9 d. o { " V' d) B5 |; F4 g7 o
LPSKILL lpSkill = &(m_aJobSkill);" [( q% R0 F9 n9 B y8 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 }+ t2 B& F3 g1 E& m
{% |# n4 I% t$ L: \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; L. g8 R( q" @5 S
if( pSkillProp == NULL )
$ d5 N' ^! x# G( \1 ~ continue;
& C+ L, B; N- H' r6 i/ \1 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 M, {1 j% Z+ D9 i6 M& ^; e continue;) Y Z& I# S$ L- F0 J
lpSkill->dwLevel = 5;
P3 j' z* p" K5 w1 ?$ b3 c }
, X" l2 }0 m$ \3 \: X }
2 r2 N4 ?7 B8 Z7 J! u& j9 q8 k }, H9 o) A0 Z( @9 [ g& h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) m; o4 {7 {4 T2 ~' o" ~- |& i if( bGamma )
: @' i3 I$ X; M4 {7 E {
4 K. L( E- G' i, P+ D( F9 t7 j m_nExp1 = 0;" O q# y C3 A$ M2 J! u
}
$ @8 q- `; r8 p: a" G) F" S" y* w0 H/ b. A7 @5 E0 f
( (CUser*)this )->AddSetChangeJob( nJob );# S) v* q: {( E* u% F- R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 Z+ m9 }: ~# E _
3 |3 K1 \5 j, e2 ?8 N, ~8 O7 v$ h) A7 P4 c+ f
#if __VER >= 11 // __SYS_PLAYER_DATA
1 r4 H' C1 ]+ D5 `( W1 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, R0 F% w6 Z) W* f4 K& S#else // __SYS_PLAYER_DATA5 G2 k8 ]6 P Z7 J# M1 Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: c6 N4 ?0 r5 j. I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% D6 ^; |9 _9 J' i5 `+ b
if( m_idGuild != 0 )2 ~1 M% m6 W" S3 B! M, J3 m1 x8 D, M( z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. t4 {9 J, T+ h D' Z5 E#endif // __SYS_PLAYER_DATA
+ S7 h6 R4 H" ^) A6 b SetHitPoint( GetMaxHitPoint() );* V+ ]. ~9 k6 v W/ b; w. P
SetManaPoint( GetMaxManaPoint() );' e2 i1 \- X& R
SetFatiguePoint( GetMaxFatiguePoint() );
3 W. L# ^* Y1 O3 q7 s: `2 y if( nJob >= 1 && nJob <= 4 )
/ z$ R( K# o! U: ]( Q {
: H. X: X2 f$ g+ m+ F/ ? A _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ l3 z0 @% S! B m_nRemainGP = 28; M1 `. y( G3 d0 @2 w1 ?, C
}
" S5 p& x* A$ R! P; Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 V) X, ?. j B% e+ R
{
, L/ N0 J% V- ]0 v u c m_nRemainGP = 118;
+ q* _4 a% @! c; P0 f: p4 L //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 e" O/ N! `+ t m_nStr = m_nSta = m_nDex = m_nInt = 15;
. ?* M; r: J/ W) o# X }
& J! I/ L! Y) V3 h: G if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 A K& o6 h+ y$ H
{
! ?! W4 G9 A1 N7 H9 u CItemElem itemelem;3 l* T' V6 d" q, u
itemelem.m_nItemNum = 1;: e2 Y, o/ `4 a) @: e
itemelem.m_bCharged = TRUE;- U2 ?% j' X* j# L4 h7 v
BYTE nID;
8 d% r6 T* j) n' r4 N' O- R! E/ A) |5 {, r
if( nJob == JOB_MENTALIST_HERO )
9 ]0 g6 X; T$ H' t9 ]& e itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ C' z' \0 D- {) s9 e2 a4 Q! s if( nJob == JOB_FORCEMASTER_HERO ) q& M5 k ]4 u( f1 D
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 E U# ]9 S4 X. o; R- Q+ t% s& C2 [) S- Q9 ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% d6 k2 M" a; z5 j }! y- s) [" H C( ^; K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 @0 [0 m1 U) r7 q' O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ I8 U5 f- @6 L! ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, K. M% b: L- p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 D7 b. V' \: T) v* ]
( (CUser*)this )->AddTaskBar();*/6 B# l) ?! Y+ f# W5 T) l% Y6 G$ I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 b: W L+ R* K5 ~% n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& {/ b0 v% j% ?$ \7 Y4 g' A) } ((CUser*)this)->CheckHonorStat();7 D g9 e( R# n, C9 Y+ y
((CUser*)this)->AddHonorListAck();0 n! _2 `3 w' S1 X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- l+ f e7 k3 d; f, ^( E& B2 _# c#endif // __HONORABLE_TITLE // ′Tà?) I- E- g) j, u% d8 X! D
}
9 `6 F/ T- h& u, z( Z% t; i#endif // __WORLDSERVER
0 ~& z# k& m: I3 N2 l, P$ O! B} ! Z7 j6 o( U' y2 Y
5 L$ F& B! C, g, u3 q1 t+ o7 Z
然后你进入functextcmd.cpp并添加以下$ G9 e# k* G2 }4 u
- f5 }# o. |' o, K9 m+ x& y3 r- a代码:0 C/ N' }$ L- _6 h+ u S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' \* f# S4 z! U' \7 N6 q
下面插入' W6 i# r3 a3 r9 w6 z. L7 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & E. Q7 k: n# o c' a# M
: r# [9 s8 A9 p. A+ @; t
然后你去+ C/ F2 D0 f! J4 l
- S1 [: |& X+ x D6 W* X7 m7 Y
代码:
2 {% m* C; @0 X4 ?代码
) G0 u) N2 l2 pBOOL TextCmd_ClearPropose( CScanner & s )
5 ~% E% Y# P7 [. p6 X{3 H7 i1 D1 _$ v0 U4 ?
#ifdef __WORLDSERVER7 J0 k4 x* [: n1 h" s- J9 q& _
CUser* pUser = (CUser*)s.dwValue;
Z& D2 E1 P4 D; \0 c g_dpDBClient.SendClearPropose();- Y4 a+ X) \$ d1 d
#endif // __WORLDSERVER2 x5 T& _9 r1 f" }: q! O3 q- r
return TRUE; C1 ~: @2 W7 b* E0 K" F/ C/ D; `1 H
}" w# K! o, V2 N7 J; L
下面插入
# k x$ U! w6 j/ |BOOL TextCmd_rebirth( CScanner& scanner )
G- s9 n$ f& V. x6 X9 y2 o& p0 f{
6 C2 M( F+ I3 F#ifdef __WORLDSERVER
1 P/ U' W" A5 H+ y$ J" [- |CUser *pUser;! A, ]) g2 F. m- l* Z1 C3 o* w; Q
pUser = (CUser*)scanner.dwValue;
1 N8 ^! x4 I/ u5 Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 a, E" D: k6 D8 w# C. SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( K% r& E* k. g0 q
else$ T/ [0 E, w# {
pUser->AddText("你还未达到重生条件!");
4 c- u1 C- F3 Q, |3 u& [#endif7 o: n3 i6 A5 k& U0 ?: \, |
return TRUE;( J$ g# G$ ~! f5 Y4 R
}
! _5 F% i: l' i. Q8 c: X4 h5 m
6 a1 a6 y4 m, J
2 o1 \' O5 m4 j( a& q" F/ U* O9 K$ e
8 M6 C$ f) c1 [, v! T' {
|
|