|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 C+ W7 B! L0 X! j3 w6 j/ L4 J! l+ i+ }* o
Mover.h
% t3 \, {, I3 W% k3 X h代码:1 v5 h7 |% N( Q% V! {6 O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 { Z4 U7 Z a$ t. e1 Q# B& Q- D' _8 a1 R
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( N3 f" `1 Y# @: ?2 ^% V% O! m1 j j7 Q& |% t! ?" Y
然后你去mover.cpp添加
. b9 b8 n1 @; v/ M6 d: R% c4 v% }8 h+ i. q% ?- f+ w, }
代码:6 C6 i$ m/ U( E" k& W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 L" q4 @) |1 V5 T( u0 D2 G( ~
{
, M( B0 [0 q0 P) u#ifdef __WORLDSERVER
4 Y% n V7 E5 @5 i& \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ u% p4 t' B: k, K MoverProp* pProp = GetProp();
8 ~0 j& v0 I0 P2 }! u" E; ]+ R/ } if( pProp )$ j/ N1 g4 v; v2 B# T
{
& X5 Q% w7 |3 N; d if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( z/ N9 A1 g2 R5 K {/ x- }* k, T1 v. [1 G* T8 }* i2 v
AddChangeJob( nJob );
4 |' ]7 m+ o: N% ^' M }else{
* L- m" l/ L! C! u8 K O" z6 H- Y) d return;
I* u% ^' C& v+ { }: v* S, B* {' d9 d, w& \
int nPoint = 0;
1 ^3 z6 ^$ V$ v( w/ M* y if( m_nJob == JOB_MERCENARY )- R: M8 J- E& {) B' S1 x/ ?3 A
nPoint += 40;
7 ^( d5 ~2 m% b" U else if( m_nJob == JOB_ACROBAT )3 Q3 H: g* v e" e
nPoint += 50;
* `7 Y3 c, e. Y& G else if( m_nJob == JOB_ASSIST )
- o6 `' h" ~. N nPoint += 60;
: J* K( k; i! _, C else if( m_nJob == JOB_MAGICIAN )
4 p! J' ]7 ]4 Q4 ]/ T# o G) n3 q7 c nPoint += 90;1 Z* x8 w/ o1 r% J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) k6 C+ a- W4 R7 o( W! S8 j nPoint += 120;
4 Q5 ^+ Y @* Y- T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 w9 i5 R/ z+ V* Q" m nPoint += 150;! r0 O' V5 r! I
else if( m_nJob == JOB_RINGMASTER )$ G+ B* N' x$ {' }( H& e2 u
nPoint += 160;
5 d6 W' X% W- e# V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 \0 s3 `/ p! X* X+ Y. v nPoint += 180;
+ j2 y- W: A- Z3 P0 x4 \6 d5 J else if( m_nJob == JOB_ELEMENTOR )
4 _" ]: t0 r8 K: A3 t4 U2 a' ^# m nPoint += 390;
- M- D c7 f+ L f else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ h; N: r( [0 Q0 e nPoint += 120;
, c3 p7 \& ]8 l% \$ [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- l+ Z1 t. N; @ nPoint += 150;
7 A% M0 k* @% u# q3 g9 i& z1 O' _4 t else if( nJob == JOB_FLORIST_HERO ) O( J1 d" [! N' m: |+ ^* C
nPoint += 160;, O7 s% A- ~4 U! Z9 a; ^+ q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 ^: @: x j1 t3 B/ r6 h) Z
nPoint += 180;
* W& S f& n& _3 I else if( nJob == JOB_ELEMENTORLORD_HERO )
% l; D n: k# v, u' M) A5 ^2 l D nPoint += 390;
^5 I a* k4 t0 n7 U8 a, h, h. L' {! R6 I: p6 \
AddSkillPoint( nPoint );
; I8 W, I( k4 t" n9 E m_nLevel = nLevel;& p I$ N7 W7 m% @, X$ J" e- L
5 P, p$ r3 ~) e, B! T) A
SetJobLevel( nLevel, nJob );
4 N% W1 Q) T9 u8 P9 _$ e7 B% V m_nDeathLevel = nLevel;& X2 Q5 T0 _8 j' N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( @; {! {8 m% i0 U if(IsMaster())
& ~3 [ f9 s+ m* }! D8 ^! V {
D* e4 O3 i# {( |- i: S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 W2 N6 r5 Z" U2 X if( nLevel > 59 && nLevel < 72 )( K; d) I; U0 b6 @; }' T% w4 ~) q
dwTmpSkLevel = 1;
( w6 B c1 D' H. [- c* I0 n# v else if( nLevel > 71 && nLevel < 84 )
7 I4 Z3 w5 t* J' t3 g dwTmpSkLevel = 2;
' \3 T# g0 ?( {7 u- |1 R else if( nLevel > 83 && nLevel < 96 ); X: }" _. @* ~5 [& X
dwTmpSkLevel = 3;$ P) x/ Y5 D$ x8 }& d2 O
else if( nLevel > 95 && nLevel < 108 )* V( v! a; J8 w7 c7 i& U
dwTmpSkLevel = 4;
' ]! X- o5 C) z0 ^9 |3 \' q! y4 J else if( nLevel > 107 && nLevel < 120 )
. e8 x% @" Y5 G* } dwTmpSkLevel = 5;
5 o3 d* k( o( Y; f' r for( int i = 0; i < MAX_SKILL_JOB; i++ ) & i! _! [. `- u+ `* Y
{
+ X. g& H" J: u LPSKILL lpSkill = &(m_aJobSkill);% H& |5 j+ m# I- y5 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 D9 U) Q! e6 }7 j
{
# H( K0 ]1 x: u5 P+ V5 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' p+ G" L# w1 A/ A$ { if( pSkillProp == NULL )5 ?! A6 t3 D. @ ~) L% j
continue;
! q. z1 O" Y) S5 O3 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& r( j0 x9 q+ ~/ n( j Z, A @ continue;
+ a. P1 |" ]1 b' k lpSkill->dwLevel = dwTmpSkLevel;
1 B Q7 R9 J4 ?1 Q }5 D @& u% b! y. k4 V2 i7 G
}
0 Q" l& s; z0 x0 C( a: V1 f }
2 I' n5 v8 b7 D8 v% H else if(IsHero())# b' W# e4 X9 Y8 z" i" M" a
{
0 }4 H3 i$ v7 ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ z3 I; n7 N- }( r {
, `1 f9 f0 d1 E$ W# W: t LPSKILL lpSkill = &(m_aJobSkill);( j9 k" k' C3 x! A( u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 A; p. Y4 e1 X% j* [8 j {
, S" Y$ Q7 A) \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , T' j, \) I! t
if( pSkillProp == NULL )
1 ^8 |( D/ [9 W' D3 y/ p' u continue;1 J2 Q) Z2 E: n/ i( {. d3 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! ~ I4 x; G9 p+ c s0 T& O! Q1 C
continue;
. Z" P* R8 P$ f6 R3 u lpSkill->dwLevel = 5;
; J) U8 `5 m; b# E }
" B y$ Z5 _8 p! a6 ^/ } }2 G" ]) ^7 L/ W5 ~$ t
}) Y* o% u6 K) d- b% y
else if(IsLegendHero())
# M( L* F s5 A* p7 b: z {
$ X, V5 y- W) H. R, R z for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 n7 \& J1 L8 Y8 a. z) i { , e7 m% | I3 N4 P2 `: o8 Y7 e) x9 w
LPSKILL lpSkill = &(m_aJobSkill);* `- D. y, ^: b g3 R7 I( Z$ r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 p" Y+ X9 k# c: M( u {
8 ~+ ?7 H8 j9 p4 a3 Z& ~! w% p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% o3 W) m! A3 E7 k! ]/ }, e7 v4 Q+ w if( pSkillProp == NULL )* {% I2 \' f3 Q
continue;* D7 \" P6 d; t( ^ F5 b. U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 X( |9 m- R, p* N" c h: }
continue;
& y5 X# L6 y2 K" ` lpSkill->dwLevel = 5;, x: p- R- l- c' G# q$ q
}
0 _1 E: p* H+ {3 [+ [6 x2 b. L }5 T9 n0 a0 v0 J0 R
}% K$ Z5 [& u$ F1 A6 l; u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 a: c6 V h4 E/ \
if( bGamma )
# F* W0 I- V+ v1 q" Q) G4 A: X6 y/ @ {
7 K* b, E; C% f) \2 f+ H8 O" k m_nExp1 = 0;/ `( ~9 `5 w/ g" w+ e) p, n
}
' J9 t- n7 p1 Z& X
6 F# f0 r2 y6 Z ( (CUser*)this )->AddSetChangeJob( nJob );
" x9 }1 M: d, u. P% L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 x' w3 z2 e7 Z, T$ w3 u( ?) i7 K$ o* {
! V9 R7 d4 J8 a8 n9 R; {. z# f3 ]
#if __VER >= 11 // __SYS_PLAYER_DATA+ i$ ~8 K4 K7 @" `( z2 |& x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 S4 D4 q4 b( f#else // __SYS_PLAYER_DATA `6 }7 I; r6 e- }( q8 R5 `
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 f4 R4 q0 s' O' S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) T. {. p; \. d+ h4 \% y
if( m_idGuild != 0 )
* ?+ @# n" ?8 |+ Z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( g5 a7 u/ S$ S% T ]6 D#endif // __SYS_PLAYER_DATA
+ \5 v# L( I0 _2 ]4 v# e SetHitPoint( GetMaxHitPoint() );
6 m# [5 T8 s4 Z SetManaPoint( GetMaxManaPoint() );- Y1 `" u5 J# d( K7 V+ z$ j4 h
SetFatiguePoint( GetMaxFatiguePoint() );
# Q; t8 ^8 z+ ~4 o1 R# c z5 h5 O if( nJob >= 1 && nJob <= 4 )
7 O. e- j7 H4 D k) { {
2 x8 H. y- |! D; {5 F. l# e* n4 S m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 E. O1 h, Q2 ~+ n6 P" Y5 h. Q m_nRemainGP = 28;3 C& k! ~+ q3 H& h9 k" x9 V
}7 _. [& W9 q3 c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): H& F- g. U7 e+ t# ~5 ?* |
{- q2 G; x9 f, ^- @
m_nRemainGP = 118;
Z2 _5 q6 K7 V4 N8 J- d/ `. z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 [; G# D, L1 P% e9 u5 S8 q m_nStr = m_nSta = m_nDex = m_nInt = 15;
# G C3 Y2 Q2 D# H" ^- e }. C3 `' Y) c0 H; P7 p
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( r( F# W# E$ P# u" r" g( H! Q
{4 E' D5 j5 \0 l- L2 D# {
CItemElem itemelem;
/ h" s3 ?) g/ \- Z5 [- T itemelem.m_nItemNum = 1;
. N. J* |( e( z% p0 a itemelem.m_bCharged = TRUE;
, Y3 v3 u3 X0 u ` BYTE nID;. q; K I! } O; H! A# X3 Z
/ \0 X: K: h b6 N0 ~$ L" Z8 i
if( nJob == JOB_MENTALIST_HERO )
7 R8 z" c1 E1 v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 @! |* \+ {" i4 Y if( nJob == JOB_FORCEMASTER_HERO )) u0 ^) o. W7 E( K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: P0 ]! e" i; x9 U4 i9 l7 ?% H
0 D R% F6 o( }& ~4 A4 W ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 A+ l+ B: J7 U( G, p& p1 K4 L
}# ]* e! e1 F0 }3 K5 z# @
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 h. J- G& [* G) M1 ~% V5 S& D$ c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, n6 `( [) L5 Y6 z( I I9 y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 r$ o! R; |* k. m$ _5 P- b( ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" o @9 z- m# o3 {
( (CUser*)this )->AddTaskBar();*/1 N4 f: o5 t+ P; K' b) C# z* I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 @( ^- A0 A6 \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; \$ t# K/ [9 E ((CUser*)this)->CheckHonorStat();# K% |/ [7 }* D
((CUser*)this)->AddHonorListAck();+ H- B# a4 I) i: w9 o2 p
g_UserMng.AddHonorTitleChange( this, m_nHonor);# X) @# s2 K$ c
#endif // __HONORABLE_TITLE // ′Tà?: S7 S1 E8 w7 N; o
}
) l" Q- M- j% i( w#endif // __WORLDSERVER
" ^8 n3 H& x ]' A: |, s}
4 y, J3 `; f) Y+ A7 D; r# ~: f0 G( q! s
然后你进入functextcmd.cpp并添加以下8 B2 T4 {, \$ h5 A& Z. n% n0 Y
' p9 O L5 ~2 p6 t. j+ h6 h1 h) n代码:5 M9 \% T% E$ Y; m
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 d% C8 Y! F8 g. | Q3 R; z- c
下面插入) W# h5 x7 q0 w- B4 Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , g! S3 {9 t4 B6 V3 }
+ t+ j" d& a- x% E$ D然后你去+ r/ C% L# W$ a8 D6 k" Y
' A$ F9 N0 I/ v, Z% w# [2 y
代码:! H! R% b4 N. c6 L( G9 f; g
代码% r2 T1 l+ f+ ?' p& {( I0 J! f* u
BOOL TextCmd_ClearPropose( CScanner & s )) z/ b( P9 J; v u2 Z9 b
{6 ^% h% P/ q5 B" u2 r/ G; [
#ifdef __WORLDSERVER
: @2 C( o6 y+ u8 | CUser* pUser = (CUser*)s.dwValue;% @& d6 V6 n" ^" @, R2 O# @8 l7 V
g_dpDBClient.SendClearPropose();
/ [9 @1 F, ?* V! r: N#endif // __WORLDSERVER% o6 X! s7 Z$ K+ B. C
return TRUE;. F6 S1 x0 q0 ?$ j: M3 a8 Z0 ^8 J
}! C4 i; j1 \6 T- `, B! L
下面插入
* j C9 x" L, f: ^1 hBOOL TextCmd_rebirth( CScanner& scanner )
9 O" e* G4 Z7 Z5 m9 l{
( R |6 B# o8 B2 n. G#ifdef __WORLDSERVER* W, X. V( F1 s$ u: U
CUser *pUser;
; c& o5 f8 r2 m& k+ C% }" r- L# ppUser = (CUser*)scanner.dwValue;
7 r# ?# P+ V1 K$ cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), U+ Q& P7 F4 x4 z& D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. C, t2 D* h2 @
else9 I: u" h6 `- F5 Q$ k( L
pUser->AddText("你还未达到重生条件!");. _- ^( p/ h0 `; C( b9 V% z
#endif
6 m5 w8 m( R( W* E7 }1 Greturn TRUE;
# G% ^" M2 G1 d3 R} - |7 F7 E9 r- K$ ]4 D1 N8 p& y) N
( m2 U5 e; J8 C( L7 D8 r
( l' _& W2 B* r) \# R3 [" H: z/ ^
1 K: K# s+ Z2 c: u
' R+ n% _4 A- b% M
|
|