|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 s8 T$ c* T1 D0 L- j
& y; ?3 x* s7 L: e" R2 W; ]: r- ~Mover.h, k3 W0 q8 r( h4 z) f
代码:
- f+ M" k z- w# U: Q4 M3 m* ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' C4 R$ T2 v3 U! U
) L+ {/ n+ h* [ K
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 G x# n. [: B" b5 x! a6 P
- V5 o1 \2 j* g: q0 g然后你去mover.cpp添加: {1 U1 m' d: u9 Q
* F! t$ k' d) h
代码:% v1 l" {& s. A N5 F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( I$ _, V' L* }{$ I$ T2 ^3 j& W) Y) }3 C
#ifdef __WORLDSERVER6 @* B- M( i, F {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 Z T4 O( ^" ^" ~3 j r% F MoverProp* pProp = GetProp();
" v, I G% T l( ` if( pProp )+ W5 X3 k: t# a: x& k
{
$ i# ?$ _# b7 d5 ?$ y if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 `3 g3 a8 D! ^
{7 M# e; Z* U* z6 F# @" x
AddChangeJob( nJob );2 h+ m2 _8 }! F2 `. J8 O: [* v4 }
}else{+ \$ [. d0 ]. O! }9 U" v2 N0 q) ^
return;
+ x$ T$ W6 P) j# p% @! I; ] }
: e$ P7 z& h- Z* e. H- f4 K# [ int nPoint = 0;
6 q4 i, S/ S; z" _$ }2 S if( m_nJob == JOB_MERCENARY )' h% n y2 {- `* ]4 M
nPoint += 40;
C( _3 @& D' B3 v8 p: t else if( m_nJob == JOB_ACROBAT )
. B6 @7 j4 X' _1 L3 I! J# W nPoint += 50;0 T, q7 M* y. ^6 z8 z% W9 z
else if( m_nJob == JOB_ASSIST )% D- t" f8 q, r5 \0 s5 T
nPoint += 60;% }, B) I7 U# z: p
else if( m_nJob == JOB_MAGICIAN ) O( i1 @8 j+ g4 p9 v
nPoint += 90;6 c' [1 y0 J8 G7 d! U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. I; V6 W, e3 r2 ^& R nPoint += 120;; ~5 c [& s( N- {" [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# x' \7 ?4 H0 O g; _$ P$ \" ?
nPoint += 150;3 u7 W2 _! q8 _3 i
else if( m_nJob == JOB_RINGMASTER )$ i( v% O% C8 i' P/ x# R0 j
nPoint += 160;- a; x4 R% G. U. x% c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# n! ], C2 l' G: L- M2 _4 G
nPoint += 180;
( o+ [6 [: v, n9 c' A6 e else if( m_nJob == JOB_ELEMENTOR ) q; X7 y5 H& h
nPoint += 390;' b% u& D: R* ^. ^# k
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ F, s4 v& c0 b1 {% }, i3 [ nPoint += 120;) F, T2 u# e- P, S1 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 `+ C/ u: V7 ?0 {) Q4 x3 H
nPoint += 150;
1 G3 i' j* ^4 v a. X else if( nJob == JOB_FLORIST_HERO )
/ O* m e `% ^. I0 [" v- i9 w3 n nPoint += 160;# u/ ]/ ~- f+ S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, m( P7 I, e. D7 B5 S0 A nPoint += 180;# K% s1 g' i1 O3 E/ {
else if( nJob == JOB_ELEMENTORLORD_HERO )/ S9 E0 }- W5 F! {9 @4 c
nPoint += 390;1 f! l% \% o6 s
, R2 T# _; g0 A AddSkillPoint( nPoint );7 @4 g+ S% B0 o" z/ x/ h2 v6 T
m_nLevel = nLevel;$ |( T5 g6 q! P0 {; Y
7 V1 v! u& v, ]! }; I( [$ W3 q" f SetJobLevel( nLevel, nJob );" C: }6 X/ `/ F" M7 `/ v( x4 o
m_nDeathLevel = nLevel;1 y% p* Q N9 Q! V! B
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 `2 D0 U/ Y3 ? if(IsMaster())( s1 E8 N6 w8 _/ X- d: `6 a2 f
{
) r8 v1 I. {4 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: V. E$ d D. f6 M% W/ Y9 v if( nLevel > 59 && nLevel < 72 )) z- V8 [; q2 `# H. j
dwTmpSkLevel = 1;
: n, T$ v6 J- e! r; o7 m6 Z else if( nLevel > 71 && nLevel < 84 )
# u) T1 `3 i9 t7 t s( g1 ]( k dwTmpSkLevel = 2;
- s7 Y1 v0 f9 {5 P- V8 B ^ else if( nLevel > 83 && nLevel < 96 )2 V) {; n' T, H% V2 `; j% l
dwTmpSkLevel = 3;7 a0 o+ y( A( }0 i1 |5 e
else if( nLevel > 95 && nLevel < 108 )4 ~; M7 N5 i( T8 F$ I" ]
dwTmpSkLevel = 4;
+ L2 u5 L; _) }7 X1 z else if( nLevel > 107 && nLevel < 120 )
! C$ ~/ O- n7 a2 S$ Z9 y+ @0 H dwTmpSkLevel = 5;5 i! q2 C/ S' \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; P5 ] i/ w" r3 x+ p- v& G
{ p, h, ]( N, m& n- J$ C! b
LPSKILL lpSkill = &(m_aJobSkill);* `! E) {: q0 i0 T' Q$ _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% |! G! H; M* p- g, r9 Q {
0 _$ m6 W2 T: p; ^) A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 j% ~8 \" |6 w4 V9 K9 H& Z: Y# O if( pSkillProp == NULL )
# q: d. B9 R- n/ q9 z j u% G continue;) y& Y0 v& K6 `5 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! V7 E$ `3 z& V" s' q, P% ^$ T continue;
& \9 o5 H9 B2 g5 [' ]9 L! }" Y lpSkill->dwLevel = dwTmpSkLevel;$ m" B; K6 p9 K
}
; \6 T$ D3 Z$ ~6 X* ?3 h }
3 W b% J5 |9 H3 j) U }6 \5 }" ?+ S, t0 P/ m
else if(IsHero())# E) l" z! }: ]3 H' j
{. T5 H6 J/ J- X1 p. F; c3 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 \9 a5 \* ?' u6 D { " p+ h0 M% {+ d( g
LPSKILL lpSkill = &(m_aJobSkill);
* P% w7 U, Y2 S% m if( lpSkill && lpSkill->dwSkill != NULL_ID )
- |5 _/ H/ L. }, i" u9 _$ D/ g P3 M! o {8 C0 [, i' ?2 J" W- w$ b( D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- p- |! |( s$ I2 ~& ? if( pSkillProp == NULL )
/ ]/ f4 G/ @7 R3 K' F$ J% d1 [ continue;2 D c' N9 B* {2 }2 K, b/ ^& P4 |% b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- d" N2 C% z! P
continue;
$ }6 |9 K" n: C& L/ G lpSkill->dwLevel = 5;
' w* u( T( R$ A% @$ {; g* Z* X E0 ] }
5 ^$ q3 z1 M1 T% s9 b! C }7 l* P1 U! k6 {* T
}
5 K. b& ]/ v/ l else if(IsLegendHero()). [4 O' Q7 g& E# V$ v1 _/ k
{" ]3 f: X5 ?( Y; A! l: G( C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 M2 p& d3 K1 F& e$ u0 m" | {
: s7 Z8 |1 r5 I2 z. l2 p6 _ LPSKILL lpSkill = &(m_aJobSkill);
, c, g+ C$ E l4 s+ ]. l7 _! X- T1 w% q. @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
* U$ @' E8 e& J; [3 j& T {4 J1 f# Q$ E7 c: F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% ]( e2 R* l9 Y6 E8 c0 m if( pSkillProp == NULL )8 C, \+ L0 l9 O3 J' ]8 w
continue;
, B' t M5 b$ N; x/ V1 q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 Q* t' h. u# [0 z, Y+ h2 P
continue;
& o5 f! n4 ~5 J& ? lpSkill->dwLevel = 5;
5 @. f# C7 o1 h* d }% i3 p( ]% i6 X' m7 d6 D
}0 {- W/ L9 r. m5 m5 r9 E
}
W+ i4 e* C7 B#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ U% d+ h5 ^( c6 B3 k% s4 E if( bGamma )
; N: m% v' k" E7 T: u- C0 l6 _$ Z/ _ {
: G9 ~$ Y) I, F m_nExp1 = 0;; \& V2 R% D5 l% ~: X
}$ L+ A! z# y! ?* G1 O
5 ^$ A7 \" d- D9 x; G2 K ( (CUser*)this )->AddSetChangeJob( nJob );( _% ^9 G4 \/ A5 v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* G- i6 v7 m3 m9 Y
5 u4 ~: c. e$ W0 q" O2 O$ D' L6 ^6 K% Y! C' x! b* Z6 B
#if __VER >= 11 // __SYS_PLAYER_DATA
. v# P# T: l/ l* c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# ~# L3 U+ h8 C1 U" m3 R p0 X#else // __SYS_PLAYER_DATA' N: h! B% ]# [8 u4 B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; u: E! ?) [6 x+ j4 Z! @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. H3 O9 @" B5 R2 E if( m_idGuild != 0 )& S9 |& R" p: S% C, U$ u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& j" |; K' x7 [#endif // __SYS_PLAYER_DATA5 p6 w9 \2 C* f' L3 j4 m* _/ t* `
SetHitPoint( GetMaxHitPoint() );
1 Y3 I1 q0 j% h6 r SetManaPoint( GetMaxManaPoint() );
, D5 C+ E* a# T3 ]* S. r; l SetFatiguePoint( GetMaxFatiguePoint() );
! J4 g3 H1 z7 ? if( nJob >= 1 && nJob <= 4 )
' r) A' W* |/ Z/ W; ] t6 D1 u {* Z: v- O m1 Q2 ]. q1 n$ w% Z1 z
m_nStr = m_nSta = m_nDex = m_nInt = 15;# [8 b5 j. u3 i- I. V
m_nRemainGP = 28;
3 v2 _7 ?" U' j/ J7 `. j& b }
$ @' k3 |8 j* r! C' }2 c$ X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); ^5 w3 I* |& D# {+ V7 c; S
{
2 W% s8 Q. D* k: _ m_nRemainGP = 118;
( [( \+ B* \) `5 {4 P$ @& P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ S: H- W8 ]2 P7 L m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 F; w8 I/ d' B4 |3 C( i* w2 c }
" J9 g: n3 S Z& m if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 s3 R9 y3 u4 [) d; s# L {
7 B7 E8 M2 f. ?" \ CItemElem itemelem;
; @8 f9 X4 g' r2 T itemelem.m_nItemNum = 1;
e( h: q$ E! ?3 y) i' Q( S8 I$ I6 Q itemelem.m_bCharged = TRUE;* b+ ?" `" }: `, B# K* o
BYTE nID;
1 j% g, ^1 _1 k0 I! k6 g, f) y" F$ j0 Q) M3 M1 a- W
if( nJob == JOB_MENTALIST_HERO )
: p/ D4 ^( H/ q; B% Q' t itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 g6 b4 J& ]8 b* A if( nJob == JOB_FORCEMASTER_HERO )
7 m$ p, k/ o" D3 W1 r$ I6 l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ F3 X) @3 V* h3 Q
' [* _; _' {" ?& l ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 Q7 P4 X3 T& k3 m5 `
}$ s6 n9 ]/ P4 g7 W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 R: J& ^+ v" c% N( ?: h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ v9 B" [5 D7 [; A L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) k5 o# z7 z/ \9 W6 m: G1 |! G1 ^- P
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 n( o$ J/ p: Z/ O
( (CUser*)this )->AddTaskBar();*/! B; U" ?0 R7 h+ }
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; m, r W; g u, J/ }; k% S1 w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 J$ w, Q/ b, N; q7 X
((CUser*)this)->CheckHonorStat();9 m7 H- {4 o4 K7 e) V1 R
((CUser*)this)->AddHonorListAck();& n/ Y9 Y* f) i% P8 U
g_UserMng.AddHonorTitleChange( this, m_nHonor);8 i+ u: N' g% n" |2 [
#endif // __HONORABLE_TITLE // ′Tà?
$ h8 R5 C# v# x6 ^9 |- ?! K/ @$ H0 } }6 @" _" M) I a' Y9 q) ?$ d
#endif // __WORLDSERVER
* S2 K3 U {) T/ J9 m$ n}
( e6 S0 X F6 V4 F; w
# h8 n- v+ ~6 z; A4 t6 H然后你进入functextcmd.cpp并添加以下
, j1 L' L9 U6 [) T Q5 S! }. y' k# }3 V' c! g0 V
代码:' R( y! U6 b; \, h7 a8 G- H) \+ z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 G: J' ~: C' M0 g4 B下面插入
/ E9 f9 F. a; }0 n- S. e8 M- f& NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 S' o/ a) d3 j/ n' a- @4 _- j" P) C' J
然后你去
+ f0 c: L9 ~8 u! Q; `, E% H. ^" q
$ t k( b; A7 S3 `/ K: a9 @代码:
( l" N! ]! `8 H' g+ E代码
6 m) t3 z3 {9 D9 h/ EBOOL TextCmd_ClearPropose( CScanner & s )! Y7 x g7 l* M
{( R+ u/ `% J" C/ f3 _# V5 Q3 N% g( C
#ifdef __WORLDSERVER
/ X( {9 z0 K" h. E# b% a CUser* pUser = (CUser*)s.dwValue;" O: d# o$ y% b6 l/ [
g_dpDBClient.SendClearPropose();8 ]+ w. s6 n! e- V* b5 d3 o
#endif // __WORLDSERVER k' r. w8 v3 `/ f/ V7 G# _! p) L
return TRUE;9 k( ]3 k# n3 ?! ?0 t& D2 g
}8 |2 Y: ~, }( f E+ q: s
下面插入
; d$ a h: ~: g0 a: [BOOL TextCmd_rebirth( CScanner& scanner )
9 O8 \/ H' A7 ^# Z+ w{6 F& V, i- R( P, O& ]5 M" @; K
#ifdef __WORLDSERVER: ?" v5 \+ c4 |" Z& s: Q* H; C8 @
CUser *pUser;
& \9 _* ?$ y# \0 G- E" A7 b! ^pUser = (CUser*)scanner.dwValue;
2 z5 r2 d' G8 f1 N1 N# H/ T$ Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), w4 p6 P, o4 ~6 |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
n8 m% ?# C# G; t& [else
; @1 Q: S7 J. m0 OpUser->AddText("你还未达到重生条件!");9 f% U; I% D& \7 q9 D7 D" t; O9 b: \
#endif
4 m# a# ]8 F/ y4 l. Nreturn TRUE;
& E' R* C! r" }% B3 o9 m}
& } N, a$ G+ D# h4 [4 n
8 G7 S% ]. ^3 ]. a. U. U3 y( k$ Q4 h1 A- U; x
+ U8 t- e% [* z8 e
: n. S! B0 e. A: @3 k9 y
|
|