|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; M5 v4 q& _$ Y. } T% S: \
! f; R: n$ T/ a0 x- H* \, ZMover.h a9 M9 j, q2 C+ ~
代码:
4 K4 N+ ?* q+ b找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 F* U0 ^5 Z8 k: G5 F5 r+ d& \- X8 c1 w* {3 |" I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 n" u% d3 f% u4 z7 e4 h, `- _
! q3 i- C$ c- L然后你去mover.cpp添加
5 w; r- S U1 n
% G. |0 G5 V' X! g7 a" D! ^+ p代码:
% H1 [4 Q Z3 s+ O8 z3 w, [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 ?# K; D; o8 c% r+ N& ^0 [
{4 _; r2 w$ W3 l! |1 |
#ifdef __WORLDSERVER
X4 u" \% j. n; T8 C+ b: F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 N. X& ]3 r. R9 z MoverProp* pProp = GetProp();! [$ r% o |4 d8 t- z: n+ k
if( pProp )# U# M. y* P J7 E- h9 R
{
% ^$ Z( l0 Z& N( `. y* k p if( nJob > 0 && nJob < MAX_LEGEND_HERO )- H* ]- r3 e6 y6 h. D. F
{
- O; ^( e+ J5 s# T! o* ]; h& _3 f6 t AddChangeJob( nJob );. Y+ R( l. f1 F4 I- l' E
}else{
! z! i1 M5 x; ]8 O3 E1 Y return;8 |/ A5 y* H+ c9 ~
}) l4 {) ?7 b% H* i+ m" l2 W
int nPoint = 0;' U3 w9 T( A Y% a+ S5 K
if( m_nJob == JOB_MERCENARY )
8 I/ f( _" e: x/ g/ |' K3 u+ L nPoint += 40;- p2 e! T9 T6 Z2 I- H
else if( m_nJob == JOB_ACROBAT )7 E, a& u7 c. D
nPoint += 50;( v2 X6 u+ r' b) ?. R
else if( m_nJob == JOB_ASSIST )* ^+ Q4 F. C; a
nPoint += 60;; s9 A0 U) p s9 C& }
else if( m_nJob == JOB_MAGICIAN )
/ ?8 s9 O/ w% f3 T# B nPoint += 90;/ n) g9 _: i& ~8 h$ L3 u. Y' e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* f; C: ]. b) u, [7 G
nPoint += 120;( K* M* ]4 g2 F! f! j& F# l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 d& m* ~5 q' a
nPoint += 150;. ^) W, I; q, h! l6 S v2 G* g
else if( m_nJob == JOB_RINGMASTER )
0 Z! K2 S5 I5 m! _2 o nPoint += 160;
$ H+ f: g- V3 R- X5 y/ u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ V1 ^2 W3 E/ ?7 k
nPoint += 180;. v: f1 p/ z1 \* Z p
else if( m_nJob == JOB_ELEMENTOR )
. n. T# _/ K- H% O1 t" Q3 } nPoint += 390;" E+ R/ h& O# a, l$ |; u9 Q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 Z' U$ m( m0 i5 g7 |7 g nPoint += 120;
x$ [# l8 H* S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ _4 E. f" q5 D1 Y4 K
nPoint += 150;; u9 `: q3 I3 [! ^$ L) D- w
else if( nJob == JOB_FLORIST_HERO )
/ T5 U. r5 |0 I% h; w9 z7 |- N* e nPoint += 160;
- g/ G; J' h8 S. c; e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 t8 x0 H2 `0 K2 X7 N8 V nPoint += 180;
, r0 N4 o6 t. v4 [ q else if( nJob == JOB_ELEMENTORLORD_HERO )
* f; r1 M4 V8 k- L nPoint += 390; {. M5 s7 t+ s$ r
8 t0 w0 c! z) s. E5 j) s7 E
AddSkillPoint( nPoint );3 V- p: N6 |& k+ ^2 [4 _: j
m_nLevel = nLevel;
1 ]8 ]1 ?$ O) Y8 N+ v; S& Y; X6 ^4 A# ~0 J
SetJobLevel( nLevel, nJob );
9 ]9 v; ^/ C3 D; s* ^& P, w m_nDeathLevel = nLevel;
6 F+ W! M# k; L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" }5 e6 v# E; k; b# C if(IsMaster())
1 |/ A9 `( S' B0 E1 K& j: x {
/ L5 d* ?4 \9 R& P7 M8 K5 t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% H" o* x3 ^( V$ r if( nLevel > 59 && nLevel < 72 )
0 S) y- v- I" F3 {- a dwTmpSkLevel = 1;' y1 r# }) c* [5 z- f; N
else if( nLevel > 71 && nLevel < 84 )9 c) }6 V6 o! v
dwTmpSkLevel = 2; g6 N, R) W; ^& V, y
else if( nLevel > 83 && nLevel < 96 )
3 W5 U4 f- p2 l! L9 @- v, Y) O dwTmpSkLevel = 3;- w7 n6 R) ]* g0 p# G
else if( nLevel > 95 && nLevel < 108 ): K/ S/ N( e3 N
dwTmpSkLevel = 4;4 Q; o& u- G3 Z$ z) v3 F+ H8 q
else if( nLevel > 107 && nLevel < 120 )
3 ~4 M% A9 t4 f8 q9 [/ z6 Y+ m dwTmpSkLevel = 5;. e: ^8 F- |) T7 o+ `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 A0 R3 C" e/ ?; B. M0 F' n+ y
{
1 W& G) M$ g* }2 S r LPSKILL lpSkill = &(m_aJobSkill);
$ X% P7 P/ v6 M' h) _. v if( lpSkill && lpSkill->dwSkill != NULL_ID )3 {+ U8 p/ R4 \/ p; I
{
6 b7 h, u' X+ \* Y" d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , k8 _0 } Q9 m; ^" Q# [) Z
if( pSkillProp == NULL )
: E' R" |, J8 W6 ?7 e. n5 I4 }. r continue;% O$ A" Y6 |- M- E" l1 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' ?- b% N7 ^5 }( n9 \5 e( q
continue;
+ Q. ^5 ?, J( w9 H+ k lpSkill->dwLevel = dwTmpSkLevel;7 k! i1 s- V* B5 H) o+ ]
}
1 Z( G6 s0 \) O" P }
/ Q* J* a5 X: r3 M6 b }
. ?! k0 F u0 G# K else if(IsHero())' g. G: Y' E4 ?4 |& Q/ u! _! J$ P
{
- w8 @: ? {$ U3 k' e for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 M& R, k- e) q4 V+ ~. U {
7 _; z3 Y8 E" S/ ?$ z$ c LPSKILL lpSkill = &(m_aJobSkill);
2 V, i* {# Z1 e' a5 r if( lpSkill && lpSkill->dwSkill != NULL_ID )
' p% J2 | C- `4 ? {$ \# P3 L. n7 Q& w/ n" C. @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; K1 o- n% X2 j
if( pSkillProp == NULL )* v+ m' I6 R8 C
continue;
I/ E( V7 @9 @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 D1 Y& m5 W# y* w. n
continue;
* ~) e( G, }3 E1 x0 l1 Y lpSkill->dwLevel = 5;
: ?2 g/ A }6 f) @6 \5 U9 j }4 [# D4 a* C( G. I$ }; w
}" m, y4 Q+ i: ~% i! T- }1 e/ D
}
3 i: T( o( B# i5 N: G0 W- S s else if(IsLegendHero())
) V6 d! N! r t- A3 B( u5 B- w {
, _ ?5 s9 b6 e4 H7 @! y4 ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
! c Y3 {4 Q3 u& _' I# I3 v9 O { 1 a% d1 r8 }! t5 m+ N: U. O
LPSKILL lpSkill = &(m_aJobSkill);" u0 @% C0 e/ f4 w4 v# D4 P ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( E; b1 `/ z7 N0 P# a0 K3 _ {# s! X1 q0 t& c8 V) B! E3 K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; g, R- K# r0 X6 Z' g! A+ l
if( pSkillProp == NULL )
" k9 I$ n P5 Z- \) V) Z5 S continue;) o- Z) ^" T) V+ A' w7 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 g, ~' X% O) W. O6 ^0 A& _4 F$ L continue;
; i) ~3 r8 Z( [! _ lpSkill->dwLevel = 5;0 G8 C4 I+ L) y) g) l, ]' b, U+ d
}" X7 H% F3 j. u9 x* O' \% s
}
% |) Y7 R! c& W: A }
& _8 T: O# d$ F) F! ]9 z9 _6 _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* l9 G) }$ O z, p: r0 S if( bGamma )
% T. u0 b9 ]: H% L! H" D" D {# U, l: y+ J5 S# t2 ~
m_nExp1 = 0;
7 b6 L, |( \ B }6 ]0 c; s# d7 E. J9 l+ Z! d- U" B
1 f! ]. T3 s* f' @1 { ( (CUser*)this )->AddSetChangeJob( nJob );* F& P9 |- C7 O0 c8 S. d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 ^4 D. y7 v, Z7 d J$ Z! G
6 b: _, k6 Z# \, z8 @
7 B2 i6 k$ c! ^#if __VER >= 11 // __SYS_PLAYER_DATA
$ T/ I5 `9 |2 d& u g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); X+ E+ p! z1 Q7 Y* T( H
#else // __SYS_PLAYER_DATA# _6 X2 y: x n; E& K3 t; T: c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 S# Y0 X1 ^1 H0 O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* d! J2 U- P% y/ f2 [, x# V
if( m_idGuild != 0 )3 Q* v/ F+ W7 V' f4 s1 o9 Z9 e
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 Y" B3 o; j$ J+ w
#endif // __SYS_PLAYER_DATA
8 w% ^: d& b U7 _1 W SetHitPoint( GetMaxHitPoint() );9 Z9 K9 p! a; S3 y, I2 a5 Z
SetManaPoint( GetMaxManaPoint() );
* |5 G& `( t- `: k7 G" |$ u SetFatiguePoint( GetMaxFatiguePoint() );0 Q3 r: g' D% M# G
if( nJob >= 1 && nJob <= 4 ) C6 R! J5 I, B- u
{
) P G/ F+ }) q% u0 r( K$ b3 b! E m_nStr = m_nSta = m_nDex = m_nInt = 15;% C$ W, P% B3 [4 X5 ~% H* Q
m_nRemainGP = 28;
- n" H/ |& R: w6 O2 ? }
% ]4 S) S$ V; @- W& Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 i+ c& y$ y7 E/ P( `
{/ n& k/ \. j4 o; v+ x
m_nRemainGP = 118;: A& L7 C% U4 ?' n" h {7 j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 V3 G2 g* R& L1 y
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 T( T. Q- V3 d/ j4 F* A9 V- a
}. C0 i+ X8 [0 C3 H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! Q" s. X6 L/ R ^
{/ B5 r: Y. y, K3 O- k: c5 U6 }0 d/ D
CItemElem itemelem;+ H1 J- y; ~- V; e1 h
itemelem.m_nItemNum = 1;
/ A9 u2 R+ _: p* t' H f+ i itemelem.m_bCharged = TRUE;
8 k7 I. _, Q: H6 Q3 s BYTE nID;
' n( V9 L. b& c) M
; E6 @1 m$ L+ _ if( nJob == JOB_MENTALIST_HERO )9 Y# ]( p% B, Z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( _+ k2 D; _7 q3 r. _# |. ? r( \
if( nJob == JOB_FORCEMASTER_HERO )6 u. i6 ]4 f% a9 E- }$ A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& I% {; `! @9 F
U" B9 S7 _3 g% [) C
( ( CUser*)this)->CreateItem( &itemelem, &nID );, |' D, B& J8 {7 k9 _; r
}( k) I. |" }* x
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 ?8 G% {5 _: I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 B6 ~. | Q5 q/ ^7 s; ^
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% G; D. u0 D5 f3 q ?! l- l& @: g /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 y( i9 y5 R7 x5 e* ~: G* x! B* w ( (CUser*)this )->AddTaskBar();*/
; q% L7 u; I9 d( I3 P$ _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 H* E, t, M, H0 a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. \' U; @1 g; R- Y L1 r L, V
((CUser*)this)->CheckHonorStat();
7 d/ l) o2 v; T& T, f* a ((CUser*)this)->AddHonorListAck();+ U4 J4 U' p- ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, y4 Q/ ?9 l8 D, b" {9 v3 ?9 P. y#endif // __HONORABLE_TITLE // ′Tà?
: r5 A8 l* H3 o, i4 Z7 a, {/ b }
7 n. r( _, f: G/ [+ W, N# B" ]! t#endif // __WORLDSERVER% r8 d( L" U' h
}
5 p% K& _3 o! ~, u1 `4 l
; z# b; A2 Z8 C# v2 O5 @然后你进入functextcmd.cpp并添加以下3 h0 V, H, D1 L1 r
! m) J; i ?% g1 h5 C
代码:
% k, [" X6 U, u$ T% j3 ^ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, _ [& l; g; N0 o; \* E下面插入
: L0 G9 J. b; fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - s6 e0 C) \- u
3 }1 \. ~, X; E' g9 k: D
然后你去
7 `- }) L2 M! h* r; c& Q$ f! N0 V6 Y$ w% n, d6 D0 n( R; v7 Z' j1 K
代码:
; w9 D7 D2 Q3 l- s代码, {- v' P4 V' s# T2 t" g- _
BOOL TextCmd_ClearPropose( CScanner & s )/ ?: e( f, \; z! G/ K% G
{
9 ?6 }& B5 X, p$ A#ifdef __WORLDSERVER& F+ C; t9 t3 `9 C7 E
CUser* pUser = (CUser*)s.dwValue;& `" @4 W( a' k4 z3 R
g_dpDBClient.SendClearPropose();
5 R! x3 x! T8 Z#endif // __WORLDSERVER, a. ?# `9 Y# ]. R& u7 |" E* T
return TRUE;
0 g3 d/ Y4 q* E/ q1 g- x, G( n1 e/ f}/ h v: E7 q6 `+ b/ U' L
下面插入
" h4 Y2 w4 z2 ?" G, _1 G6 `" L1 kBOOL TextCmd_rebirth( CScanner& scanner ): x4 M/ K7 l! \. u
{$ x; ^3 a* ^) e$ X: c
#ifdef __WORLDSERVER" o/ o1 E: s5 {4 J: N6 o
CUser *pUser;
- u" w% r( W( T% WpUser = (CUser*)scanner.dwValue;* c y# o# j* P! v4 X- u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" @% i6 Y! m" ]3 L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 H+ l, y7 T9 |" ^else
9 m7 O+ b1 O W6 ]2 K' mpUser->AddText("你还未达到重生条件!");
' A' s4 w. `* _) r% z" C& } e% s# p#endif
- X0 D6 ^6 q1 O/ @return TRUE;
, h4 @9 x& J9 _ k8 f6 M7 b}
+ d/ N( y$ a5 I# f
) b2 z" N, _: ]1 L1 c' Q: |( H8 y, h6 g* T; {5 `
) w5 N6 k3 k6 p* g
, M6 h, z5 U; ~- ] |
|