|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* n0 e- ~, E) X6 O9 S5 E
- s) j9 `8 H* B; [( C XMover.h
9 S5 u% N: E7 t8 |代码:3 f% \. F) O$ g2 c1 _2 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: f, u6 o- p7 ~) n
8 ~( S, a7 b# q X: Z$ @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 e6 `) i5 Y" e/ I9 p
0 I6 K6 n! F) \% m/ v" \6 D然后你去mover.cpp添加4 U! ~( h$ m, X0 T9 Y
. Z% n( S% m. O: ~4 k! ~
代码:
9 S1 j: B* O6 w/ d, [+ ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) q( F' s' I) @ C: F; L{
* o9 B* r( w) b" J; }/ k2 l#ifdef __WORLDSERVER
# O8 x' z* O+ m4 O& z' W( N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" i: @1 ^- ?7 n7 t6 p% r* i MoverProp* pProp = GetProp();% B- W6 ^5 D/ D$ F) m, h
if( pProp )
" H5 _( q! J8 R1 ?3 B1 w8 x" J! Q+ Q {
9 Y) N3 Y9 B" J% R" h! ]4 ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )% @0 h5 G Y7 X9 w/ C" I
{8 `* Q% c4 N& [$ _% A3 O6 E" n
AddChangeJob( nJob );$ M: i( ?; S. w& p9 e* P {
}else{, H4 c& a2 E6 {* x+ o
return;6 F. o3 h% H0 X
}
- ^7 E" _4 u5 z) q int nPoint = 0;
" o: Z0 E8 ~' c6 e5 F if( m_nJob == JOB_MERCENARY )3 U q. K% T2 q6 r
nPoint += 40;0 c. z/ t1 `) H% m
else if( m_nJob == JOB_ACROBAT )
3 ~9 y% D9 A" Y, Z3 D nPoint += 50;
. E+ g4 }9 U, a9 l, Q1 r else if( m_nJob == JOB_ASSIST )
8 C& m P& S9 A/ V1 \3 l nPoint += 60;% K2 B6 {+ J/ q7 \
else if( m_nJob == JOB_MAGICIAN )
' @: O! ]8 \; L# y nPoint += 90;
* V( E( N: ]% e6 i6 ~' Z% t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& O1 Q) ~9 P. S0 K% b
nPoint += 120;
, {+ B5 X0 J7 b! q# ]" m, d else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 v2 D: e5 a/ \( i8 J5 M
nPoint += 150;
" X# x* ~1 @* _& m8 m, U* D" W: J else if( m_nJob == JOB_RINGMASTER )
) F2 }0 `1 ^& J5 |3 I nPoint += 160;
5 s& a6 [- a# \0 j& m1 [* N2 e else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); E1 h5 e. j7 d' K x% L
nPoint += 180;
! c+ D; G( t! V% F else if( m_nJob == JOB_ELEMENTOR ), W/ r+ f. w' z, m# m, N
nPoint += 390;
- l- f: a/ L1 O% Q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 O; a* L" ]7 E3 S- D' B1 O nPoint += 120;
: t9 A8 r$ q/ C, E9 @) x else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 L% u& p" R: S4 G' Y7 [( b nPoint += 150;
- e+ b. e; v" w# J: g else if( nJob == JOB_FLORIST_HERO )
1 C& G0 _$ Z: J, R1 k% b9 l7 e nPoint += 160;3 }6 @/ d1 }6 z( f4 X, R8 V$ J! l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 |$ X& y" f C1 h* O- k nPoint += 180;, W) {! L" ]$ W6 l" g7 s
else if( nJob == JOB_ELEMENTORLORD_HERO )! ^( }% f' v/ J
nPoint += 390;; K% e& }" r$ h n( N0 U9 w9 i
4 r7 ~$ m) a0 M2 S3 C1 N: J N0 M
AddSkillPoint( nPoint );
' a$ N% ^0 k5 ?; h) M m_nLevel = nLevel;
! L; U' T0 q) S" L0 B9 T* p1 R$ n( o/ J
SetJobLevel( nLevel, nJob );
5 P# Y5 J. q$ V7 O4 ]6 J$ | L+ L7 h m_nDeathLevel = nLevel;4 s2 ~! a3 \0 x1 T8 ^ D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ |; L* P6 E! H9 l0 X
if(IsMaster())9 s" F& k* W4 F& |7 ?: c$ j
{5 L, M/ ?( [# b( Q9 [8 u' \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ L' J) y( ]& P# O if( nLevel > 59 && nLevel < 72 )
3 S$ S. t. L* w% Y dwTmpSkLevel = 1;
0 C- T9 x6 V( ?5 d else if( nLevel > 71 && nLevel < 84 )
+ E$ ^+ U4 Y* e' `6 T; V! q dwTmpSkLevel = 2;! F+ z5 j3 q1 U9 C
else if( nLevel > 83 && nLevel < 96 )1 I" h5 l$ n+ h2 C% ^+ s) h( E
dwTmpSkLevel = 3;
% @; g, q/ n9 }/ \ T ] else if( nLevel > 95 && nLevel < 108 )# R W. `+ H' N2 d( R
dwTmpSkLevel = 4;9 e, f$ `9 w0 o; V1 C" u0 f
else if( nLevel > 107 && nLevel < 120 )/ k, h# k; V4 f
dwTmpSkLevel = 5;
^% c5 L" F2 |1 V) ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ x4 G2 l8 E, }
{
& v9 B" N; Z9 j, Y1 C LPSKILL lpSkill = &(m_aJobSkill);; T7 `9 X$ K- A! X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ j8 n9 i4 E6 E0 b5 B$ R @$ M9 c {
0 z6 u5 @ ^5 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) H5 Y1 n' H. X
if( pSkillProp == NULL )
, H) S- Z! }/ K0 U* A) G% p continue;/ M# \" j- ]7 O5 w8 U n% f! }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* L0 |, k( A# Z. y continue;6 [3 C1 T& |- T% H" e' B3 k
lpSkill->dwLevel = dwTmpSkLevel;
1 b1 Q1 T& z6 B9 [1 W }; X' c: D1 E7 ^1 l
}
& B' Q7 [# Q9 z }2 i" l3 b& D2 [
else if(IsHero())
9 A1 `2 g$ l5 G% M; j7 e+ D {% k! ~( `- k9 s# s: G% Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 E8 {) n. Y$ Y { + m+ B" H& p9 p( {; X, y* x
LPSKILL lpSkill = &(m_aJobSkill);# x# d( N+ w, a$ G; c! ~5 k3 ]1 Q6 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 R1 ?# l- _4 M' ?" p- z
{+ |4 G! K, ^" a' S; o" y" a$ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 `" w7 g4 G2 E0 N if( pSkillProp == NULL )
7 q. n! j5 o. P4 R* y T9 e continue;
0 r5 W0 I/ g0 ^5 n4 l% @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) q# P! t2 T/ a- l6 M# f, M! Y. C continue;0 m# L: K, m3 G: o3 \7 w( X
lpSkill->dwLevel = 5;2 h, W/ w3 ]) p( p5 k; e
}6 q9 Z% y4 S% {9 o N
}
6 }3 ^% W% `; X* q; x! @ }4 b& E4 |4 i& @; w
else if(IsLegendHero())
3 x' r; c/ h( g6 M w {$ C+ ~8 v8 p- n& S2 }. E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, ] P3 T# k8 w* v3 J- M {
5 S% s4 ?% J f9 Y4 w LPSKILL lpSkill = &(m_aJobSkill);
$ y# W( @ @& W% b7 j4 c3 Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 I: `& e3 r1 O {
* r% X5 s9 `! e$ T! Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' ^8 X. N( [8 H8 B; U
if( pSkillProp == NULL )) ^: E* E( I0 k1 L1 @
continue;
* U5 P$ j. b! `6 l* i' l4 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* m( Y+ D8 t4 S, ~% O/ w3 W( b/ [
continue;) J% H) J _; S9 o' ]2 G$ J
lpSkill->dwLevel = 5;! r3 A2 F( h6 d0 C
}& `, V' u( {, u- G
}
, @" C+ s B# S6 Y }" `, J7 T' P) ~& m2 q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) o% Y' c/ |) X6 _ \8 w
if( bGamma )
6 ~. o- m3 d. z; R7 z1 Z {
7 w: c4 Z5 p; N1 C d+ `- N m_nExp1 = 0;. e* I4 n4 ^' k. N# `3 P$ p- e
}
1 d5 f7 U# j" t+ H+ C) C. i+ Z6 l1 b3 L$ H% D
( (CUser*)this )->AddSetChangeJob( nJob );
* e$ n U) R" Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" A4 V' }0 k6 y9 I4 k; ~1 p1 c8 x: r0 H9 f$ j9 B
$ d" m/ v3 ~6 s W
#if __VER >= 11 // __SYS_PLAYER_DATA
) {' W0 H+ M% ?$ ~$ M: L& G0 S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 f0 w+ q9 ?; v5 U( D: e$ W. A#else // __SYS_PLAYER_DATA6 a! }' o* T) M7 ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( _# O$ E7 n u$ l6 z* [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 b( H+ `) ]* w! ]1 ?
if( m_idGuild != 0 )
; Z, p& g3 _$ C4 i" z: d. o g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: |' a: k4 R( w3 s3 U# J8 P
#endif // __SYS_PLAYER_DATA
1 B) Z' M- V! \+ d4 g SetHitPoint( GetMaxHitPoint() );
5 ~& m' k$ X P/ ]& [ SetManaPoint( GetMaxManaPoint() );
, J6 j. }+ q, ^' D% z/ x SetFatiguePoint( GetMaxFatiguePoint() );
0 j X+ y6 }, \' K1 @; h if( nJob >= 1 && nJob <= 4 )
' q: ~& t/ ^& _' ?- } f {
# L2 t' a3 A3 d m_nStr = m_nSta = m_nDex = m_nInt = 15;1 i% c2 Z/ k ]8 y& z( w4 E) w- ~
m_nRemainGP = 28;
+ ]" Z. @2 s5 [% _+ C7 q; W } A7 ~0 @$ f& K
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* I8 G" b2 I/ s8 X" g/ c5 E
{' Q; O5 ]4 j6 }, i
m_nRemainGP = 118;
5 _$ U" O& G2 ^ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ l7 U/ T. M' X
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 j$ s8 V8 Z9 M& n0 M3 r
}
3 r/ w/ {1 `8 u1 f; D& m2 b! i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). ]. x! A4 @' s; x5 ~: Y
{7 w0 S" S3 w( u
CItemElem itemelem;
: a8 a7 D) j3 m0 }# |, d$ K6 i itemelem.m_nItemNum = 1;5 t; B2 Z$ N: L( ^, l( Q
itemelem.m_bCharged = TRUE;
8 p) {$ a0 K3 g BYTE nID;
0 Y% A: S# P) o
! I5 |1 O8 L1 N if( nJob == JOB_MENTALIST_HERO )
" b6 R/ c Y* x$ h; X" ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! l$ `8 ^3 v0 @6 b1 ~
if( nJob == JOB_FORCEMASTER_HERO )
5 f2 X$ z4 h% I$ c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 e% y6 m) E+ D' h% a9 T
8 ^ |% \' r5 B x1 i ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 C0 C: d8 N- X; c5 c/ m
}: ]& `5 j, N0 p# E: v, o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; |% }9 s, v! G. v# D3 T* x9 w1 y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( z/ B9 {6 R6 D8 l9 A ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; y$ N1 f3 m7 X- J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 ]& M' U( h5 P& ~7 s- j' d- ^
( (CUser*)this )->AddTaskBar();*/2 ?" _) @7 [+ A# q+ Q+ ]2 m6 j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 C! i; t" R. I% O- A) o
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" ?8 q1 Y1 k( n7 O7 y& d
((CUser*)this)->CheckHonorStat();
# `9 z) [ n: b ((CUser*)this)->AddHonorListAck();7 K; a2 m$ w" X9 p
g_UserMng.AddHonorTitleChange( this, m_nHonor);- i1 |2 X% S/ A$ B! A
#endif // __HONORABLE_TITLE // ′Tà?
* p* M7 i$ t; i& a$ ] }& R6 A+ Q# }4 ?/ G& [$ J/ x5 ~- D
#endif // __WORLDSERVER5 y: v$ b9 c% H2 Y* Y8 s2 }
}
2 l# y6 u; q2 x# S$ z# S
, R* Y. ~4 @6 `+ Z" i然后你进入functextcmd.cpp并添加以下
, H7 T- @& u. i5 p1 J& z
* _8 N. k7 A! f3 X2 I代码:
7 d; g; s" f) CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. e: R3 N; S+ | e下面插入
( `0 M$ C/ J5 x" AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - q0 S, J9 J8 I
. j4 Q/ L n. g4 F4 g! B+ e然后你去9 w% M& ~0 @+ V8 P
- p+ ]& b3 s* C6 y! E/ u g) X代码:
# j# u- E; |% j4 b代码
( T" I# h- P6 Z0 S; N% ?BOOL TextCmd_ClearPropose( CScanner & s )
3 f2 N; z' o2 I- i% J' E: y( K) P{" L! z6 ?4 I+ O, g: @" W" m! d0 G( y
#ifdef __WORLDSERVER
2 |0 `- g' U! s9 M" u CUser* pUser = (CUser*)s.dwValue;
" d5 ~; E) T- X1 M g_dpDBClient.SendClearPropose();* \" a2 w5 l' T4 V3 \* ^
#endif // __WORLDSERVER
+ b* ] D2 o4 u8 @ return TRUE;: T* ^8 p/ u! d
}4 \" y9 @( U" y! `
下面插入
( f" I- k( M i5 @& `% Q& E2 k; xBOOL TextCmd_rebirth( CScanner& scanner )
, d/ c( h: D. A l{- w, g/ C8 z7 I' N8 Q+ a
#ifdef __WORLDSERVER
. R9 _ b5 s; s3 t8 y8 jCUser *pUser;6 e- H& [+ Z+ v
pUser = (CUser*)scanner.dwValue;
+ y& _1 R4 {4 N* ]$ M/ V# m. Fif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( D( J7 a" J& X8 P5 |1 m" h) f. ]
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) f. [6 {, x6 @- U, L5 ~else
1 m' \+ z* e, n& \pUser->AddText("你还未达到重生条件!");) M2 k( y) c9 T; V1 _
#endif4 |; `: X' t8 C ~* a; y3 k
return TRUE;
* E! n5 y( B/ b; b0 N' o8 ^1 m3 K}
: T3 x/ s* M# P& M* L3 y9 j* _$ l" w$ M; ^1 H( `: ]
, t- N3 f% l4 ~# f2 o$ V- N
4 m/ ?7 Q8 ^* P/ @' I
; E7 W/ i$ r. N( M" l% Y |
|