|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% h( ~2 V2 o5 b! F
$ n+ {" V3 E+ ~6 L, }; z5 S) MMover.h8 g6 `+ q* z/ `1 j
代码:
6 a0 Q5 L# G2 l& P/ B* ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) p3 S0 D! f0 h! C7 e/ S: p. M4 n) [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + [3 z% s8 U& Y3 {0 \! n* I# `
- s* R/ R; b% j9 V+ P( H
然后你去mover.cpp添加$ ~7 x/ N2 q3 v/ X% ~# w
. T& C4 p$ Q" j% P9 X5 s# g代码:
; {' r& J( }' z1 U* U- f/ hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' x5 ?8 g0 w0 t5 p2 C{
' F. W3 H7 Y8 W$ }. b#ifdef __WORLDSERVER
4 N' S9 m D$ J0 s2 y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: L2 ~5 @3 v0 {$ @$ t" k MoverProp* pProp = GetProp();5 K2 F1 J! e; ~5 T- l" X7 |2 h! D9 s
if( pProp )2 V5 A! K: r: \# u, ?$ Z# }
{
* u2 Y, C% A' K1 D& H6 W$ K if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 T" X. z/ a" `0 _; y {
5 `. C* z6 x# z7 s* {$ c AddChangeJob( nJob );: m2 R' x- @7 W+ T, G8 g" e
}else{( Z2 f. {! L" J
return;! f; O( f* ~/ k5 N( W
}/ J" b6 x1 i& |3 B& }% m) H
int nPoint = 0;
" _% P" V& O% }8 F9 i6 w0 }2 n if( m_nJob == JOB_MERCENARY )
9 U% ]( g% L- F0 J0 R i$ { nPoint += 40;
1 }$ u. i" [7 f- J/ p else if( m_nJob == JOB_ACROBAT )
+ H v6 m7 |) P, v+ }# t+ A nPoint += 50;# R, m0 b9 ~# D1 x) v
else if( m_nJob == JOB_ASSIST )
; D* N; Y( l2 u( K5 k nPoint += 60;1 C: ]0 L" t3 M( X+ h
else if( m_nJob == JOB_MAGICIAN )) g+ H5 L5 f# N k( S0 R
nPoint += 90;6 }/ F2 _# X' m4 r
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% `# A- N8 E3 _& h
nPoint += 120;) t4 ~& g- m7 N O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& g; X+ f5 M4 ^6 _! i$ ] nPoint += 150;. V0 ^" [5 {1 W3 g! H. X4 {
else if( m_nJob == JOB_RINGMASTER )" s* D" T' a4 {# u7 F, ]
nPoint += 160;
0 R3 J0 d! ~. F c2 o+ E9 @, M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- p. R* ^7 [# g" m nPoint += 180;! n- m0 Z" |+ o0 Q
else if( m_nJob == JOB_ELEMENTOR )
- @# K. N9 }7 J% C1 e+ s nPoint += 390;0 |6 q3 I9 \$ N# n- |3 a7 G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' ^9 ?0 b2 ^4 ?7 v$ G0 g s
nPoint += 120;
7 {& X; t: o, i d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; u5 R$ _) t# `: Z O# {# C9 V nPoint += 150;
% x0 M" `( F% x9 k6 R$ L else if( nJob == JOB_FLORIST_HERO )
3 E4 {! V" \( K/ W( u% q' ^8 U nPoint += 160;
2 O$ g) S# V3 u; C$ b6 J$ { else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), ^% Q }3 Q6 K+ g. T. N8 X
nPoint += 180;1 S$ ?% k. N6 e
else if( nJob == JOB_ELEMENTORLORD_HERO )6 X5 g- S8 a3 w% a& [- @7 f8 P# D
nPoint += 390;
) Z8 p5 O6 H+ \, G, N/ c
+ `9 b. y) Y2 Y/ J2 ~' K AddSkillPoint( nPoint );
# M" F/ e) h( ?. Y m_nLevel = nLevel;
& z# S1 q& @ X) R
5 o/ W4 i" Z9 {. \4 L! \$ f- R7 s SetJobLevel( nLevel, nJob );8 O# }: [, z8 X0 G: y1 U N
m_nDeathLevel = nLevel;
& n- C6 @# } S; H" u6 s1 s( I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( e; W7 [& t! L$ a7 m* n if(IsMaster())
2 F% M* Z2 `! R% D8 K# Q {
9 X9 S4 e. c0 j' W- N* }4 H: ] int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, s" ]2 m2 W# A, @; z z! v4 T if( nLevel > 59 && nLevel < 72 )3 c5 l) l# A/ ^( M4 n( [$ _' e
dwTmpSkLevel = 1;9 s" X% h5 w8 L3 n# v% C% p
else if( nLevel > 71 && nLevel < 84 )
) [4 w2 T5 W8 t7 z3 c& d# q dwTmpSkLevel = 2;4 A& G8 t1 d4 `
else if( nLevel > 83 && nLevel < 96 )
L' c; d' d5 q dwTmpSkLevel = 3;
- D, ~( a/ @9 |0 Z else if( nLevel > 95 && nLevel < 108 )
4 i9 c' L( O0 L& b1 r* I: G dwTmpSkLevel = 4;/ ?2 _- w1 y; k+ l" D
else if( nLevel > 107 && nLevel < 120 )+ b1 `# x- @0 S: ?( k
dwTmpSkLevel = 5;
; M: R. C9 Z( { for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 Q' q$ f# [ x* X) s3 L
{
, G- [) G, e5 A% Y8 x4 n LPSKILL lpSkill = &(m_aJobSkill);
% o6 K: e6 ]% q- k% {% p4 E8 U/ Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
# I7 W. F4 j5 Y2 X1 `3 y& I+ P' O {
" i( V# ~& ^: g5 ~ Q" o. B/ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . e# M2 I3 T1 ?4 G, F: T. h) a
if( pSkillProp == NULL )9 [0 J2 v' P! k
continue;
B" |, x9 _, l1 Q* }5 {! [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 B5 ~' O7 e( g
continue;
/ d( Z7 f& r. C5 Y lpSkill->dwLevel = dwTmpSkLevel;" e: u: @: M: q) b8 c( j7 o5 x
}
- l7 j6 Z& X6 ~$ M4 a: x: E }
7 N& [( X& H/ c$ b/ f# Z4 ? }
+ h5 G/ e: q7 a$ { else if(IsHero())
* T6 W) `; W1 |5 f {- E* O/ i( L h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 a! p1 }; Z, k/ A9 p( j {
0 t# }* i4 a( C8 F2 N* Z7 ? LPSKILL lpSkill = &(m_aJobSkill);- {+ G* H8 i) V) K5 V: m: O+ R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% T1 i" k" ]8 B: B+ o( P+ W+ Z {
7 \/ s0 d1 B D2 B0 ]! _- e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . z# h: `( V* Y; A0 c9 Y$ x
if( pSkillProp == NULL )7 l8 ?& `! S/ t+ ]+ z
continue;, |, [9 k& k8 m$ p! `5 X/ U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 M# S% z( j# A7 B$ `
continue;! [' D, Q( s) Q; O7 j
lpSkill->dwLevel = 5;: r6 p8 T& W& R
}8 H/ U+ N# b2 }7 D
}: _% Y9 \ }3 E$ C, V% V
}7 r# [2 M; K, [+ Q
else if(IsLegendHero())2 G3 P4 L+ m7 P5 O. _( U3 c
{
' P, g+ D! g/ {8 V4 F2 n4 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) % C* a. b& s0 ]- `/ m
{
, P+ \- s. X$ l( p) @ LPSKILL lpSkill = &(m_aJobSkill);+ y+ y, A' K1 e5 h" r8 p; j( J, h% s
if( lpSkill && lpSkill->dwSkill != NULL_ID )' n. k5 c i. [( P# Z* h1 o# d
{# a8 _3 q# E s* ^1 _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 {$ f3 w7 c1 V3 X if( pSkillProp == NULL )& |7 W1 \! J+ d% l6 X9 l' K# ~/ u
continue;9 }! o+ \: S7 Z g: T5 \$ z t) c4 O: _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ r5 H5 ?" i" g" N continue;
9 e; B0 S& C3 v( I; c- I lpSkill->dwLevel = 5;
$ Z* d- v9 I& [% W3 U }
0 y# o5 |( V3 o8 T }
7 }. e! Z- a" H% s* b3 d }9 r2 C$ [& e: U* p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" D" n9 M( `, q1 } if( bGamma )
# [' N4 w- O, R/ K P {) o1 ]5 P6 @5 P8 v6 R3 d) `8 t6 _
m_nExp1 = 0;9 H5 ?; @/ A' S& Z; Z$ ?! M
}
- V, G2 [( e4 j8 F/ l
7 c E2 ~' m d ( (CUser*)this )->AddSetChangeJob( nJob );
1 P" l3 ?9 R/ b1 s3 Q/ b7 j5 X g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* ~, z# y7 f0 ]* w+ Z" j, B* o6 ~% p) l& I3 A
3 d# J- Y. I" J0 u5 b1 Y. F
#if __VER >= 11 // __SYS_PLAYER_DATA/ Z2 ^* h7 F% |/ p( f' Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ v0 l. ]: m3 _7 n2 N) Y
#else // __SYS_PLAYER_DATA
1 }8 U+ z3 {" n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 K2 S5 N& D& P; u' J& ^8 ?
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, a. O' O0 Q( g1 y; e+ ?
if( m_idGuild != 0 )
) n0 \, U" ]7 k2 o g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: }: `, h' g: y- h/ ~
#endif // __SYS_PLAYER_DATA
! @! ]5 Q2 q( P7 ]" ]+ S' Q$ h SetHitPoint( GetMaxHitPoint() );+ l6 k1 U1 S* d c5 W+ r
SetManaPoint( GetMaxManaPoint() );" ]8 Q6 M$ s4 \) J- N
SetFatiguePoint( GetMaxFatiguePoint() );
7 j+ z. ^7 D- P if( nJob >= 1 && nJob <= 4 )
7 e7 s- S7 ?6 e3 ^* j4 o. j& _7 ^9 t {3 x* b, P( Q: u0 A- v6 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;- v* Q2 }* C) P& f
m_nRemainGP = 28;
& ]4 P7 ^/ M1 U7 v) \* V }
- s; _6 D, H9 n6 ^. D- ?$ ` if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ |! s" l3 i4 j0 a# o8 F6 j
{* R- d& Z4 C% T- }
m_nRemainGP = 118;
% ^# f" a1 g6 O3 {. ?$ N" e( a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! ]8 Q/ F, |" T3 L X5 I3 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
( e6 K4 m6 T* _) E+ O }3 ^1 K7 E9 I/ s. M1 V2 X% L4 b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 J; t: C, k4 ~
{9 L8 y( Q% {1 _2 g
CItemElem itemelem;' K9 a3 b& O% I9 e1 Q
itemelem.m_nItemNum = 1;4 t$ d u/ V a& E
itemelem.m_bCharged = TRUE;1 ] e! J0 j( h; O4 `# v
BYTE nID;" T, b9 u5 B- r+ d) e7 u* Y5 R
7 q/ ]3 ~+ j/ ^- N3 j3 a; A4 O6 p if( nJob == JOB_MENTALIST_HERO )5 n( D: N6 P* @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 b/ o( ~$ k) |% Y
if( nJob == JOB_FORCEMASTER_HERO )
0 }: ~& B- K; K/ J) ]1 x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 A% `1 a1 _( E' }
! }" N( o& r3 x: u5 S ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ m& u. v" b4 ?! x" f B* ~ }" n) v0 i* z( l5 v5 Y, B" \0 ]
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( z( S5 n; `( }# @% p1 O6 p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
{6 m- f7 Q# o; R8 @7 q% R+ y" X# H ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& J8 Q, h% I/ _3 {" h- {2 U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 e3 Z, C; H& L5 x
( (CUser*)this )->AddTaskBar();*/+ H$ P E2 U, O( q5 F; Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 `% L1 ]; S2 o) U$ f: W; q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 q. D5 |& p: e( F ((CUser*)this)->CheckHonorStat();2 L! S+ c& g: s8 t: S4 T
((CUser*)this)->AddHonorListAck();5 W0 o2 M9 q( M, }! i, o+ y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) z: C: o* K. c; ~#endif // __HONORABLE_TITLE // ′Tà?
$ s, }* i6 A: W8 P }
: c. P: f h6 C8 }3 \4 g#endif // __WORLDSERVER
$ s; B9 p U& s, C& w}
& \; K7 q, S" C6 n5 V: u0 J0 w) D
9 U4 l! N' T& E( \: O: g然后你进入functextcmd.cpp并添加以下7 Z6 ]9 S {0 x+ B& C8 ]
8 x! V4 C$ f w& B; u$ x0 K
代码:* Q1 s# \0 P; @$ d6 H8 l
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' b( q% D" _. s1 |. X, z/ L# Z下面插入
4 j: y6 i0 Y3 x3 T- N% L5 kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) L ]0 b/ [& K; S/ ~! w: F. @5 t5 l) x% N
然后你去
9 A9 i% d$ f# s$ d( j3 s( W. r
代码:9 Q o1 z' ^$ y4 b3 v: g
代码
: m$ L' N, V( @ E5 k9 f1 EBOOL TextCmd_ClearPropose( CScanner & s )6 q5 M- T5 m) j" y( L' n
{) g; v4 ~# x. r9 N8 C
#ifdef __WORLDSERVER
8 N% c, Z/ {/ ~0 F1 H CUser* pUser = (CUser*)s.dwValue;
2 U8 S3 }6 Q2 V4 W2 U g_dpDBClient.SendClearPropose();
9 l0 d. M7 ]: k( i( ]! W#endif // __WORLDSERVER# V m) t( P$ J" S1 ^
return TRUE;7 o B6 o7 \6 N' H8 b
}5 C) D3 J( B" M- c l
下面插入
E% p6 s; | C" p! QBOOL TextCmd_rebirth( CScanner& scanner ), e9 r& |5 W0 E n2 N( ]
{1 C6 {% e: b. P C; R7 X
#ifdef __WORLDSERVER
9 O$ D8 f, y. _% b) W8 bCUser *pUser;
* u1 {, E9 @( D1 [3 cpUser = (CUser*)scanner.dwValue;
4 {5 u/ ^& z- j8 ~+ B" C$ pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ F# c7 G: A2 U% BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& G; U; ?+ G$ t% |( v G4 @! J
else+ R% X9 G2 Z- f9 _
pUser->AddText("你还未达到重生条件!");& u0 z/ H5 O7 Z' i: Q) O" L
#endif" H, y$ ?0 P- D0 r
return TRUE;
1 b: o }' {: V6 q! z3 q3 K% i}
; O3 \4 l9 K8 V$ A) w
0 K- _6 w- y. L* D' P" Q8 X) ]! d9 c) @
1 F) V1 o" H" {) L o6 f
7 D0 s7 _% [9 f- N |
|