|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 k' P( j2 [) B G g" W
+ n8 n; ^: G' M' A( |6 I0 [5 vMover.h. g+ m& w+ B* \& y! H% B. Q
代码:, \' l. N. R( P1 u- k0 { Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; ]7 D& x @, a3 ^
9 m+ n+ |( k* f/ N/ K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; b+ V- d! k# y! z8 ^0 l7 I0 }) m, D% c- G, p
然后你去mover.cpp添加
: Y0 s' F" u3 ?5 x: s
( R0 N8 K# D* t7 ?$ \代码:
; G" P- q! L& @4 ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 w1 Y1 F) a. N4 a5 M d{
' D: U4 }. k+ _& } ? F, d6 o& \#ifdef __WORLDSERVER& ?/ a1 P# ?( |& b4 ~* I
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( F4 y- D0 s/ d q3 L& l" o* @' S
MoverProp* pProp = GetProp();
2 m4 e+ T' c6 M8 ? if( pProp )& i) P: E2 ] d3 D4 u$ a
{& ~7 S6 O3 O% @' |# W
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 @! u1 F6 c- J3 _; F {6 A6 ~: J6 m7 G
AddChangeJob( nJob );7 X# K) [) c1 U" r* c$ ~# S
}else{
1 Z& D& U% L j/ {# t return;& C, J$ }, g( t9 e: L2 N, d
}
0 ], p% [/ _" K1 k, X) w int nPoint = 0;" U* x$ N$ s6 |* W0 y9 T
if( m_nJob == JOB_MERCENARY )/ Z7 q. f( h& j2 J) x
nPoint += 40;- z6 `) b2 \- c; G: `6 g# G! A
else if( m_nJob == JOB_ACROBAT )2 \5 z p0 [" `1 Z7 S
nPoint += 50;
0 d* `( S- h2 \" u1 s else if( m_nJob == JOB_ASSIST )
- E9 Q4 A; p- m4 z! |' [* _ nPoint += 60;
; i* A5 w2 y9 R! G8 U else if( m_nJob == JOB_MAGICIAN )
2 B8 ~- N9 w8 y; a) ?( T3 l6 U nPoint += 90;5 i- r7 Y4 M! l0 x' \/ I$ h
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" ^7 ^( n0 Q: _ nPoint += 120;- f" Q) z$ t# s( B3 f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) A1 A0 i( j9 t1 B9 S. M
nPoint += 150;
$ S1 b4 j/ Z1 g/ y% O S9 [ else if( m_nJob == JOB_RINGMASTER )5 [- n' l8 A7 O3 a1 ], o
nPoint += 160;
1 q; E% [* A) i& R9 B! r5 M5 Z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& @. f, B1 O- d; |3 y
nPoint += 180;3 @# r9 y: d% `$ _" V& ^0 d
else if( m_nJob == JOB_ELEMENTOR )
) s8 s8 C/ l" @" _ nPoint += 390;
* E1 h- l1 q# s9 {( n1 H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" Z2 S9 j! O) m* \2 r9 p' P1 _
nPoint += 120;3 q h" V& J- a' g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 E+ }" h+ j" O. ] nPoint += 150;5 | B) T8 {( M4 b6 v; |% w
else if( nJob == JOB_FLORIST_HERO ), s0 C& C4 \$ e
nPoint += 160;/ |; V. l' G/ k' f2 d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 _; h( N% C2 J0 @( ~" P nPoint += 180;
- Y7 A+ [- A4 i else if( nJob == JOB_ELEMENTORLORD_HERO )& A1 R: \& y; ?! R: `
nPoint += 390;5 K5 G/ Y" \; k, X; L
" a7 h4 w/ O8 d1 R, q6 M* O AddSkillPoint( nPoint );0 ?7 m2 }' C' P% N9 Z/ J9 [+ h
m_nLevel = nLevel;5 r$ V q0 @; o6 \9 w2 L
! G8 U2 r" m" p/ t SetJobLevel( nLevel, nJob );
) D8 k6 R- |- D3 ]* V m_nDeathLevel = nLevel;
- G- Q- R: d ?" O9 i0 N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' N, g2 ^* d ]% }& K if(IsMaster())3 N3 k, d% V: Y4 A+ Q
{
' e# C4 F1 d7 {* i1 D int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" K8 _3 M2 N! d# u0 [2 V
if( nLevel > 59 && nLevel < 72 )2 w( v0 X; A( I
dwTmpSkLevel = 1;0 K4 J V1 { w' C: v
else if( nLevel > 71 && nLevel < 84 ). R N: i) [3 `- d' w4 H5 C
dwTmpSkLevel = 2;
$ s; Z* f$ R4 p1 C* C else if( nLevel > 83 && nLevel < 96 )
! ` x" _ k+ s- I1 J dwTmpSkLevel = 3;
5 k) I- ^6 x# A; p2 A else if( nLevel > 95 && nLevel < 108 )# i! D2 o# r. N5 }" A
dwTmpSkLevel = 4;) q+ L: t1 W C
else if( nLevel > 107 && nLevel < 120 )
0 n5 A0 R/ I* g dwTmpSkLevel = 5;
" G6 q1 Q, i7 g, U3 n) d for( int i = 0; i < MAX_SKILL_JOB; i++ ) . W ^- l$ i1 Q. J) F
{ & c2 ]/ j8 i: y9 |8 G1 m0 r- @
LPSKILL lpSkill = &(m_aJobSkill);1 g+ C6 V& d( \- P4 @/ v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: c7 t$ ^9 U6 \) f {
) _: O: J- @8 `% ^) {5 e8 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); Z y8 M4 S* X0 m
if( pSkillProp == NULL )
; O, {3 d+ t! f5 i, N; x) w$ r/ k continue;, g( m! u+ p7 B% ?) O4 a$ {" t0 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 ~3 r5 n& |' }$ i* }9 K5 n& ?
continue;, Z: A/ c; B* i3 ]& r9 B
lpSkill->dwLevel = dwTmpSkLevel;
# q6 a0 _6 W' d4 D6 N- U }
$ n0 W8 Z" g9 r }! J% I8 k0 D- h0 g3 |: c$ o6 n, V1 _ {
}
9 j- U1 r' C+ I* }% r9 P3 D. k2 H else if(IsHero())
3 s" _. T4 D1 ] {8 n$ D6 M5 ^) C- l* X6 I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + w8 C/ }( X" U2 K) A) p! g
{
0 s( z! |5 U( C0 V LPSKILL lpSkill = &(m_aJobSkill);
, S" B+ h2 C* q+ Z if( lpSkill && lpSkill->dwSkill != NULL_ID )# g) F# L9 p& H2 Y) G8 h1 q0 w) ^
{
4 S& d0 g4 I. T, N9 t" ~' C9 X# Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / C5 b8 q. ^7 v6 ]1 `. F$ {( i
if( pSkillProp == NULL )
/ Y5 \0 w* M8 A) P! N1 Z. t continue;1 g% L' m2 T% H# }% o1 p4 ]; g- M1 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 ]1 C- K# R% N% l' p* Y/ o, t
continue;. a% B7 \2 ~1 C" P
lpSkill->dwLevel = 5;
- ?( B, d2 m1 |, ? }* d3 J6 w4 r5 Y0 `8 J n
}
6 Q- z1 F3 Q* }7 O) J } F8 R `) `0 m/ z% Z
else if(IsLegendHero())
: ~+ F2 n0 B3 R# X {
& M9 j, g! `* L0 K for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! }0 t+ p! l% T% U% C1 ]* b0 I
{
/ U1 t9 b7 J4 D: _ LPSKILL lpSkill = &(m_aJobSkill);0 K# ^9 b! O! |2 O6 Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& S- x6 t8 J z7 x4 |. P {
( c ^& ~9 |/ _& R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, @! z0 C C w+ p0 I5 E. s! Q if( pSkillProp == NULL )& q" u9 U9 _/ f4 {
continue;
( z# @ u" T u) D5 m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) o: }, B9 j: @$ C3 U; l/ H, t continue;! s( X, \9 a- L
lpSkill->dwLevel = 5;
/ d* f: K5 S# M }4 j/ t$ Z/ P. I$ v# L
}) B8 H- K6 j3 k, v' S& y
}# ^/ _- S* j; V) {7 E2 g+ [
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ M& U: u/ A+ ~+ \; W B* j% S if( bGamma )
- k% T) Z5 o! [ {& R; G- E7 F1 i* |
m_nExp1 = 0;
, U" c9 w8 D/ g; e7 _ }8 E" O: Z% u2 ^5 p9 D/ }3 Q
& s4 O9 H8 ]2 w% h
( (CUser*)this )->AddSetChangeJob( nJob ); G: T, e# b: X9 l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( T" T7 Z% j! v; W: q, {
; M6 d) ^& D3 C: L
3 W9 Z7 g! Q2 o+ C2 L4 H. Q; `/ @
#if __VER >= 11 // __SYS_PLAYER_DATA2 v* L; L b' n2 R3 B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" x7 N/ R! V- g7 y- c6 C z6 L#else // __SYS_PLAYER_DATA4 \" d" b7 W4 w7 K8 ]. q9 `, j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 x7 j% l; K6 Z7 H8 T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( P9 r3 g! ]/ g f. _$ _- R if( m_idGuild != 0 )7 _. P* @8 n1 d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' \5 ^5 b Y6 M4 p#endif // __SYS_PLAYER_DATA5 f6 K9 ]1 O4 V9 g
SetHitPoint( GetMaxHitPoint() );
, n1 h: Q7 _# u! `; |$ U SetManaPoint( GetMaxManaPoint() );
j5 F1 h5 i- o7 |) w! U: Q SetFatiguePoint( GetMaxFatiguePoint() );
& }" }2 s% w/ w, e8 o! R if( nJob >= 1 && nJob <= 4 ); `+ X) d# S" U# F9 C/ Q7 i& n
{
3 }( G& N1 e& i) @) | m_nStr = m_nSta = m_nDex = m_nInt = 15;
( G9 |8 `# f& ^ o m_nRemainGP = 28;
5 v1 x' \! F( _0 Z n0 |3 A }. j% E5 k) R( o& x; I/ ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 r6 f5 D4 j( A3 v+ X, I {
0 y/ H m. g N6 k4 G7 C2 g& m+ E m_nRemainGP = 118;6 {5 {1 Q+ W @! g4 \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 K; `6 I$ ?9 r6 L- G) ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;# q# y& N( E0 u- i9 r8 U$ h
}
, K4 M a$ N$ W3 G e7 K2 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 Y C5 g+ ?4 Q
{0 Z( t/ L7 h/ _( A, T. K
CItemElem itemelem;
+ [& d6 t' E0 x y3 a* L2 }* d itemelem.m_nItemNum = 1;
8 x" l9 b8 o& c" H itemelem.m_bCharged = TRUE;, M8 y# `6 e( f' R
BYTE nID;) ~% ?& A* T6 q3 G" z- J
0 ~! G! t# A% V0 R# t
if( nJob == JOB_MENTALIST_HERO )! X/ q" g+ R5 L& D0 p, d3 q" v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! v6 C" P R5 E; ~( B if( nJob == JOB_FORCEMASTER_HERO )
) H- G5 d9 c0 @) ?# s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& ?. Q8 L% w! f( J! X' ~
/ ~1 Z) Z" a x' B ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 d; t( [& K: Y2 y: p
}
6 ^* o; f/ }, y6 O! X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 D* Y8 K% p6 v9 ^, j! l: ~: U
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 t2 c! |3 K, O m
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* j) @8 ~; y- V. } /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ r( E8 ^+ U9 ]7 {6 P. g; K ( (CUser*)this )->AddTaskBar();*/
1 P3 _; ~1 p, R9 \+ T/ s ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 T h# N2 m+ i: K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ V4 f. d9 D J ((CUser*)this)->CheckHonorStat();
" g4 a5 s/ p( X" b) @* n% c ((CUser*)this)->AddHonorListAck();
$ y$ c: \% a1 |( T6 O7 l g_UserMng.AddHonorTitleChange( this, m_nHonor);3 G3 s% g. o9 |1 Z6 Q
#endif // __HONORABLE_TITLE // ′Tà?/ }5 p9 S3 G2 G M9 A/ W
}
) ?; b6 S4 w; {+ _#endif // __WORLDSERVER
- Q7 i# x/ T! S% {6 a6 _" [$ ~* c7 }9 G}
# X& y- O* Y; U, n$ C8 a3 w5 p+ y. Y1 r
然后你进入functextcmd.cpp并添加以下
; s' U' W t! P6 Z5 }
% N3 }& U1 W7 h代码:% n% S7 N- i4 u9 S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ ^; i2 r2 [1 r: h, _ ~
下面插入
& b4 [0 f8 Z- y% G1 I' a" LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + Y, {- i$ t9 W3 U! u# X1 R
# n( I: V& q, J3 K) Y. i: {然后你去
# P2 ^7 K- ]$ g4 K. E# ~* u7 c) r1 j. `$ A
代码:2 {5 u& @9 q+ g' G
代码; k/ t3 ?9 [" ]# @4 \" Z* ` S# Y; {
BOOL TextCmd_ClearPropose( CScanner & s )
# [3 h. e! g+ t+ n{6 d C" i# n. P& R) {! Y
#ifdef __WORLDSERVER
+ G$ y3 f& W" f. B CUser* pUser = (CUser*)s.dwValue;
7 {. V2 l/ U& B+ J) _+ y g_dpDBClient.SendClearPropose();
. P$ ^2 `3 t6 I* V' M2 m) J#endif // __WORLDSERVER
9 P% ~+ b- T" b return TRUE;
7 P; C0 p# Y b, n8 l2 V}
! ]8 ~2 u. `. h: j' W ?6 R下面插入( \' W9 L- T9 s* s
BOOL TextCmd_rebirth( CScanner& scanner )0 [# \/ E6 e& [( z
{0 Q9 ?1 N; T' M9 K# e6 w% [
#ifdef __WORLDSERVER" V3 ~5 i# C2 C1 ?3 f
CUser *pUser;
' I: n. W. v% w( ~$ \4 [+ BpUser = (CUser*)scanner.dwValue;7 f6 f& a l2 C# {" x0 v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) Y+ D# h5 W8 dpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ O/ g$ c3 a* ?5 l5 @. n
else
9 k" m! x/ R1 t% @7 RpUser->AddText("你还未达到重生条件!");0 P; B6 m+ \$ n/ E3 V- N
#endif: Z, @7 u6 J, j1 P3 C8 Y, M
return TRUE;5 U+ W } v) U" N# r' H
}
$ Z' h# y C& G- E* a r# @
9 d- ~/ M* |: m2 u6 Z7 ^$ S2 I/ ?$ X6 {/ q' ]; A5 X4 L/ s8 ?
* z. _4 @# R* O& R* ?7 n% G
$ S+ @ L& Y' S' D8 v/ Y
|
|