|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# F: m+ h" `$ Z9 d
- t7 Z4 A! E K( \! H
Mover.h- \# N* i( p. k- U4 K: ]
代码:
# R. X- L7 c3 \! r& v! R1 q$ y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: E% m% Q. l# U$ }" P
0 }7 t/ O! W0 I! H+ h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' ^8 z7 f7 d' p+ A9 w
. k6 M! p* m/ f& @1 r0 F6 m
然后你去mover.cpp添加
: e; C9 \( J& `
7 d! t3 M0 {, ?* K, k- f代码:
3 J ?2 v7 k/ [' |' w( Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) i$ I' @& B! C& Z2 b. u0 i
{
& {# }1 P% X0 p; L#ifdef __WORLDSERVER1 Y, i, S& o3 ~2 J" `2 \: d. {$ r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 S1 l: U' v, Y% m+ j# r) F# d MoverProp* pProp = GetProp();9 [0 V+ @6 g, M
if( pProp ): z& h& L2 s# t' X$ b
{
1 U4 g0 I5 i: W; ~, N# o if( nJob > 0 && nJob < MAX_LEGEND_HERO )" s1 r4 [+ L' W! O: V3 Z
{; y/ D f: D" L
AddChangeJob( nJob );/ W7 R% e6 s6 f
}else{9 L& C' t# \+ O: i; c$ b
return;
0 p) \* T6 i: G$ ? }5 a$ }, s- ]' s, p8 `7 k
int nPoint = 0;
6 y( P0 k+ v/ W* p if( m_nJob == JOB_MERCENARY )) S! h% a# e% ~/ S1 T& Q! H- M
nPoint += 40;
1 z2 w3 {- g; l( p) i5 o: ^8 Y3 c else if( m_nJob == JOB_ACROBAT ); L$ J, B' a- R6 k( \# F1 K
nPoint += 50;
: D3 ~$ M: ~7 ~8 W' c else if( m_nJob == JOB_ASSIST )
- Q7 R# g3 c" z5 k; ^ z, J nPoint += 60;
; J/ D- o- o# r) D- \ else if( m_nJob == JOB_MAGICIAN )2 G. O3 w8 O& u& F% a$ @% r2 A
nPoint += 90;5 u8 t0 E8 O9 d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 w0 k6 k% G+ L2 T4 I nPoint += 120;6 r0 v; h, ?+ C/ r- A* x) T
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 `$ ?0 G, d" E nPoint += 150;
. K# T3 w2 \, _" _ else if( m_nJob == JOB_RINGMASTER )9 L% ~1 o+ A# H! n) V* j
nPoint += 160;
2 @* C6 \* r+ M5 d2 a& @6 B' H8 q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 d2 L5 l" Z$ L8 K
nPoint += 180;
0 A7 L5 y3 A, [1 q( D else if( m_nJob == JOB_ELEMENTOR )& h6 N+ z3 q, H5 T, v s
nPoint += 390;+ ]& [% f1 A% _9 j( X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 E$ S L: l' y1 H! I nPoint += 120;8 V; c" m! x, Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& A, V+ E. X1 J8 u/ D4 N
nPoint += 150;% J. Z" i4 l2 c# Q& w
else if( nJob == JOB_FLORIST_HERO )
, L# O1 O1 s- y: ]" ]1 \+ ` nPoint += 160;
9 T6 y$ ?7 Z; l! U; t, h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) g; f8 z* w9 k, p) v- o A
nPoint += 180;' v3 P, v- r# ]' y5 C
else if( nJob == JOB_ELEMENTORLORD_HERO )7 i" @+ r! J% U( I5 t
nPoint += 390;
! d4 J W# n0 y: E1 Y9 T$ T/ b* p! o
/ n& H9 D( W2 U0 ~" o AddSkillPoint( nPoint );& _; ~3 j6 s- S
m_nLevel = nLevel;9 T0 ~8 v. w& `/ d
- K+ W4 f) M! _3 w SetJobLevel( nLevel, nJob );
4 o9 ~* ]9 B7 |: \ m_nDeathLevel = nLevel;: a9 F% k/ G: _; c7 X3 r8 @7 e9 M$ l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 @, {2 `) [( P) i4 V7 P# D2 m/ v$ A if(IsMaster())2 p9 v' H" }$ u" a/ q8 c0 {
{
$ e1 c. ], ]6 d& P7 o2 }* U% A: h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! i& d6 P0 F! J+ @" `4 I if( nLevel > 59 && nLevel < 72 )
% G4 n" f. |9 o dwTmpSkLevel = 1;4 }7 i5 V" n3 w2 n6 I
else if( nLevel > 71 && nLevel < 84 )' O. L& U7 a8 R* r9 U
dwTmpSkLevel = 2;2 {' K5 M0 g" ]& \7 d1 t
else if( nLevel > 83 && nLevel < 96 )& L3 L5 q. Z3 h9 V1 ?5 d
dwTmpSkLevel = 3;
; O, V% c+ O( s* j+ `% [ else if( nLevel > 95 && nLevel < 108 )
3 M2 m, @) K! `% @+ R' o dwTmpSkLevel = 4;+ J2 |5 v* F7 L6 G) }
else if( nLevel > 107 && nLevel < 120 )+ n/ V9 X! k0 U6 q Y
dwTmpSkLevel = 5;4 P. |3 k' I [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : _. P% A' p/ J5 j
{ 1 l2 `6 @ {, H4 K* O J
LPSKILL lpSkill = &(m_aJobSkill);$ d* h, c" {. q m* N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( t( E0 L' q* d! k; I1 a. O! Y- S {* k0 j) s% g/ ^2 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + ~/ k; u5 X9 N
if( pSkillProp == NULL )- X# A$ ]% Z5 o4 }" ^/ w
continue;, |& L. \: j; C- \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ?3 Q/ \& F. N, J
continue;6 Z4 z) U% c( B
lpSkill->dwLevel = dwTmpSkLevel;
, s4 _ a. R7 G0 i }
J, F+ L- f% K" B1 r n6 S }
: z. @) D" z: v }
- H0 A6 r9 i! A" h else if(IsHero())
n- {: J- A) E7 K3 ~8 B) C {1 b" C: M# Y7 A$ \. \4 ?- C% [$ k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 i4 i' }* e j- _
{ $ e. r3 k/ @+ S' y' i
LPSKILL lpSkill = &(m_aJobSkill);# z1 Y2 }: o6 a3 O3 w% e/ f
if( lpSkill && lpSkill->dwSkill != NULL_ID )& F! D/ R" r$ V6 b1 b
{: g8 C. q$ {- f ` e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! m, Y3 A- D7 y- w3 L1 U
if( pSkillProp == NULL )0 q; l' Z4 _* f( X; }
continue;
1 |* _' y2 x& _1 f: |7 z0 L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! q5 X+ _0 |4 M
continue;. J2 ?- q! X" Q: z' F
lpSkill->dwLevel = 5;
1 _' Q$ Q3 r, V" L" M }' g6 x: d3 I+ r B
}
8 r1 x. o6 C+ o; ] }
6 G3 a2 `( C7 s3 O else if(IsLegendHero()), y# [: {. ]9 G$ {' R8 g7 V
{. j- n; S8 @; q& b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & w3 V7 G( d) ~, T9 ?6 i
{ + `# _2 g$ i. b- m# H
LPSKILL lpSkill = &(m_aJobSkill);8 S, w" W& B }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 K& t( M! K) Y4 Z {9 a$ s$ c4 a2 w- }* [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( O8 h: w# v' N$ U! ?
if( pSkillProp == NULL )# }; w7 I0 v1 [. w$ N9 L, I
continue;
: j/ V$ v7 U* r* R- @3 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: l/ b$ j; x- c# u- ^2 k9 o continue;+ S7 @8 z8 [% j3 C8 ~; _
lpSkill->dwLevel = 5;. T& ?3 M* b/ i" V" H
}
1 P. Q' j8 _6 R1 Y3 D0 c }) L% i: }6 ^5 t9 U
}
/ m. T* W4 m- i: ?' k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, P4 n$ h3 ?" o
if( bGamma )% j8 [7 c# p E3 a* @! z3 }) E
{8 v) w# d1 f, J, v* S( ^/ Q
m_nExp1 = 0;' M, p5 u9 |. o$ M% k- \
}
6 a" r) ~5 g1 T
- [' X' f( t3 {$ O5 @ ( (CUser*)this )->AddSetChangeJob( nJob );5 ~4 U: e, E9 p+ B* j$ Q4 y( @6 [
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 q1 M' }" o. s% D* A* N0 n0 g! e3 [& d: X1 A9 x6 G9 M6 q& ~* B$ f6 K
* _. N& g6 ]3 T$ h#if __VER >= 11 // __SYS_PLAYER_DATA+ V7 g, [2 A1 c: v0 Q4 q b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ T, ~9 p: i* B5 n9 J7 p#else // __SYS_PLAYER_DATA3 \# ]* Y& v3 F u# h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 B' N' [4 L8 n4 {. V/ S* i( T- O3 j* ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* R m0 p' R! k4 f, v @+ m: E6 o if( m_idGuild != 0 )7 }4 b7 {! Y7 y) m N" o9 K: Q. ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! ^( B8 l$ S: o
#endif // __SYS_PLAYER_DATA" H& j# ?/ m U$ C
SetHitPoint( GetMaxHitPoint() );2 i0 u1 A1 @9 ~$ [
SetManaPoint( GetMaxManaPoint() );
& g: u, o% a9 y0 ?$ Y- [ SetFatiguePoint( GetMaxFatiguePoint() );( M( ^7 s O+ E! f, Q6 w; o) ^
if( nJob >= 1 && nJob <= 4 )% O9 K' M# b6 w U/ A" m
{
2 _! A+ q4 i7 O9 w, T. Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
, g2 p" p& |! M4 M( T, y" u m_nRemainGP = 28;% t4 H7 D$ g6 M4 N% i! V
}
$ ]8 l5 i6 f- u7 D) [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 L3 f. s! d1 P% H
{
* U3 Q( y: m1 d( T5 |& i. N m_nRemainGP = 118;
. j. V: d; Q. |3 M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& |' R( m1 ?/ `3 }4 o* M m_nStr = m_nSta = m_nDex = m_nInt = 15;, Y {0 z' G/ n8 G" T" j; C
}
5 M* e" O, t- F7 c/ ?7 ?- ~/ W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 b6 `7 l& E( n2 ^ y$ ^+ v& V {
' G- Q* v; r2 ^% C, R# s7 b CItemElem itemelem;
% g( _% y; W( Z% g* {2 K; C2 K itemelem.m_nItemNum = 1;
* w7 h$ b) h+ Z8 G. r# o itemelem.m_bCharged = TRUE;6 @1 e) A( @& B' b# r" z6 ]
BYTE nID;4 r- u7 K: J O& L
3 z7 m& F7 d4 D& s
if( nJob == JOB_MENTALIST_HERO )
4 b1 m- D0 I8 N3 N( I; C4 d1 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 \! I, Y+ ~. c if( nJob == JOB_FORCEMASTER_HERO ) ^) k3 W: X9 R3 ?. N' P
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% B) l! ]1 u/ M$ e6 u" r5 T. d- `+ e9 C
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: Y. M; _! K" x6 W# H% h6 } }
* o5 x9 \+ o: @) X6 `! |/ ~$ R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 D7 j! @% r+ C% c7 a9 Q! Y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! f6 I) a, c8 V- K7 L3 ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; f# U/ D9 C0 Y0 m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" ?9 C; c' ~. a ~1 r N
( (CUser*)this )->AddTaskBar();*/3 @ I- }* K2 D( C. I) Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 p+ G7 P6 _8 V& i( ?' w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 i: W5 p) y' M8 H- c ((CUser*)this)->CheckHonorStat();9 `* w) L; l. G* x5 S
((CUser*)this)->AddHonorListAck();; q* E2 j2 `5 {) Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 k# g. L8 @# C z
#endif // __HONORABLE_TITLE // ′Tà?
5 H2 I; w. ^7 z& u1 v }+ h N A+ f9 K& A ]
#endif // __WORLDSERVER
+ v% ^& r& N4 d. O} ( h1 e) c0 q8 D5 B5 w- M
( p- A! O& \ i$ s: ^然后你进入functextcmd.cpp并添加以下/ L; K8 \1 u% v1 t2 D) x
! }. s) r# j6 } B! N9 x
代码:1 }$ a4 q3 K' V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 @3 W% y9 n2 ^* N4 ?" R9 N; P
下面插入9 }" C9 d, ~% V+ g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 F6 Z/ u' g0 E8 Q9 d
I' H* e8 E M& S然后你去
* `8 v' \' D8 g M) p: ~4 R" f
6 p* H$ n& @1 `' v/ @代码:6 \' ] ?8 ?- ?/ H% N$ D; E T$ W
代码
$ K5 `9 z3 ?! Q% c5 ^& DBOOL TextCmd_ClearPropose( CScanner & s )
* d4 b- l; e4 h9 n4 w3 U4 C3 f{
9 L" ^7 w$ O/ A: v#ifdef __WORLDSERVER
& q" N7 N1 ?, k3 V* w CUser* pUser = (CUser*)s.dwValue;: F' U8 g' f2 i: @9 m% X) v, d
g_dpDBClient.SendClearPropose();: Z* e: N- M d6 y: q2 g
#endif // __WORLDSERVER# ^! }0 t& C' l/ E/ R1 S
return TRUE;
/ ?& W$ d* A5 K5 P}8 ~2 M7 ]# U- [% W$ q2 P) }- q
下面插入
( P4 m: }& s) v8 W. e o% pBOOL TextCmd_rebirth( CScanner& scanner )
/ R. X, O7 T" |' y7 X) |5 L{
0 J' f" [% [% V# b#ifdef __WORLDSERVER s, T: z' R. C; y( z# D
CUser *pUser;8 K; T* e$ k* U/ O" V; ?& {9 W
pUser = (CUser*)scanner.dwValue;
& I% A. H7 o! `if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 `( S3 I) h9 ]8 J1 u7 g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
P9 E7 G+ J/ o8 _else2 F7 U) i7 e4 `# _: s
pUser->AddText("你还未达到重生条件!");- U, u T% i4 a
#endif& w( O, U [" X* a
return TRUE;
# d8 e9 h2 d# b: w/ Y h}
8 x" t: A5 w& R+ N. n+ n9 b& w J+ ^7 x$ h( S+ E: V) ~5 W1 E
! c3 S( Q j3 I/ {7 W( E
# n+ p# s8 T" F8 b
7 u5 h- _: s+ P5 v) V, @ |
|