|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( t3 N1 c. W6 l2 C( l
8 r7 r7 B& P% J# @
Mover.h
+ d$ Z4 N" H. k8 \ J0 N代码:8 x* L& y, [' w; t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 A% ?! \3 Y9 F* ?4 c, S$ c9 @2 z; }$ A( C+ m: |
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' D) e' W$ [) h
/ ^ `) `" ?+ X, C
然后你去mover.cpp添加
$ G8 c+ Q- K. c7 L% N
) y, t+ G& N, J1 r代码:
2 A R/ Y- U8 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" {" x/ ]# D! W( D
{
6 q# w; [8 Z6 M- \: V4 J#ifdef __WORLDSERVER
& e! |* t; l% H) \2 ]2 R // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ c' F( m" r% `# n+ h
MoverProp* pProp = GetProp();; m7 t+ m% z8 Q, ]
if( pProp )
. r) Z* Z- q3 C5 i {* j+ i0 k. r; f/ u7 A4 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, A8 N/ M5 f ?2 s {( o% `# I$ I# h( ]
AddChangeJob( nJob );
3 Y3 [; ?& d5 d, C6 q }else{! }2 M; }8 A# [( ~* G0 \
return;
$ t) C, Q" [8 u5 C" E }4 K |. {0 A+ _6 I2 A8 ]
int nPoint = 0;
7 c B" J8 {( K3 E5 K) F" O if( m_nJob == JOB_MERCENARY )
2 C& o! `% i( E, q+ o+ s n7 E nPoint += 40;& ^8 c8 K6 w9 g8 {9 y5 e
else if( m_nJob == JOB_ACROBAT )
" p4 J$ x x0 ~ ]% ]& D @ nPoint += 50;
( x8 z% Y8 ^: U& c else if( m_nJob == JOB_ASSIST )5 e, \. p7 ~; Z2 j8 r
nPoint += 60;
6 J& `5 B9 Z7 r, q else if( m_nJob == JOB_MAGICIAN )
: A# i- t! t* o( A nPoint += 90;$ t; h( n. V3 i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) D o$ v1 n# {0 ?1 | nPoint += 120;
& N5 y K ]- X6 T( ~* _* o else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ J) I/ l) {$ P2 O
nPoint += 150;
+ R. ~" F; D- F+ n+ K+ \% y8 E+ x else if( m_nJob == JOB_RINGMASTER )& a4 @$ ^2 ]; b% R$ E
nPoint += 160;
L% Z( C- r: e0 B7 T S6 Q! o2 I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' X0 _; X# J& u8 O! P7 F
nPoint += 180;
3 e# J) j2 G" I0 U& n" y- \/ ]- O else if( m_nJob == JOB_ELEMENTOR )* {% c6 X! R% F: D! Q! x
nPoint += 390;4 o8 Z* I1 b6 i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 ~: y) U5 Q. X4 {' v
nPoint += 120;
" T# z) B {, v0 y6 ]/ G# X0 l else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); u( B1 M! p7 X* o# R, c. X
nPoint += 150;
: ?* R5 Y2 c( T8 { j0 X0 M else if( nJob == JOB_FLORIST_HERO )% }* u. }+ o: H' ?) e
nPoint += 160;
% |3 g. K4 M: N! n0 B, g; u$ q7 l" M' d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; j/ x$ k( ^$ ^% \ nPoint += 180;
/ Z+ R8 Z; [' {1 a4 @ else if( nJob == JOB_ELEMENTORLORD_HERO )3 W2 L1 K1 _$ l. V2 ~. b
nPoint += 390;
8 @' a! G6 S! x/ x6 W) R2 o* O. e$ `' P) p4 O: l
AddSkillPoint( nPoint );
+ c6 u! x+ r5 W; v* O! e$ W m_nLevel = nLevel;% e- _8 V2 [! K& G |
8 d8 Z' g. ~ E' c2 v
SetJobLevel( nLevel, nJob );
" K" `! D% I$ Q% _0 i/ ~, a+ O m_nDeathLevel = nLevel;8 ?9 {' X1 ]; e& z; Z9 O0 h8 X( c! f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% p' |8 Q; u0 [$ N, g; _* S if(IsMaster()): \5 q' \ t6 M1 R$ t5 S U4 s
{
7 p4 A$ q' _5 ~1 Q) D1 l: x/ e& j int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 {* M$ G Y7 ? n/ L6 x if( nLevel > 59 && nLevel < 72 )
8 N8 K" u9 q' D% K, i dwTmpSkLevel = 1;% z( ~. `' B% _. I7 g
else if( nLevel > 71 && nLevel < 84 )
: ?# @6 H5 E* N+ O dwTmpSkLevel = 2;
& U# \$ Y2 |7 X0 S" \& k else if( nLevel > 83 && nLevel < 96 )- A* l8 U* S& A# x# u
dwTmpSkLevel = 3;. f/ A, [! V3 ?3 ?
else if( nLevel > 95 && nLevel < 108 )
8 X3 ?0 T2 H. `+ y& Z+ O dwTmpSkLevel = 4;
! H ?* W- u! c% Y( o% H; n# s else if( nLevel > 107 && nLevel < 120 )7 U8 _: w0 Q- N, H( G
dwTmpSkLevel = 5;/ g) y6 R# c' F' U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / T; N4 v5 e$ B" z% f6 r9 `6 U) W
{
$ D. j, \( E, P1 Y( Z( v0 a LPSKILL lpSkill = &(m_aJobSkill);
4 `9 j) O; _' y$ D if( lpSkill && lpSkill->dwSkill != NULL_ID )9 O. ]. u6 a+ g0 J
{
+ A5 o4 ]3 Z3 q& S/ m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 H1 O) |7 K8 n$ m+ l, }4 ~ if( pSkillProp == NULL )
2 d- k9 V# g/ E( f& P& y continue; q2 U9 F2 U1 B$ S! t" _! I9 v9 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 P$ j. E& q% c) c# j+ b% q3 Z
continue; \" Q* C) C5 q/ j3 m
lpSkill->dwLevel = dwTmpSkLevel;4 m v2 Q( V8 R! F9 z8 u
}
, P0 ?3 H+ ^& M- e% p$ I$ l/ c } E% T* D- x) o. ]
}
# G' E9 u. _$ Q else if(IsHero())
9 h+ C- i2 f8 f( l: I, h8 \1 N' s {; S5 Z+ Y3 v$ J4 L4 P+ X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 |8 W! y( M$ p# v( F; z { 1 W7 c# ^2 O3 A6 i
LPSKILL lpSkill = &(m_aJobSkill);
# f2 _+ i/ y' v if( lpSkill && lpSkill->dwSkill != NULL_ID )5 x$ Z U) I! J- Q- P, D7 R
{, b4 e, M" Q M+ s# J8 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 a) f q( r% e/ N/ b& o if( pSkillProp == NULL )
: n0 n5 b9 v" n8 X5 F5 w continue;1 a6 n. O |5 I; o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 q/ Y! }- ` I0 r. [( P% B v
continue;' k" @2 Z' I; W: ]8 O
lpSkill->dwLevel = 5;" Y' Q2 v+ v9 s: h2 V% k
}
; v% y& T0 a& }8 B1 p' w9 D }& m1 g5 p t$ \5 O$ y0 k3 a
}
4 O9 V: M( w7 o B5 \ else if(IsLegendHero())
4 d( G' W% M1 ` {
7 |4 S$ y0 j: r. w for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ f9 @% \- v& [) Z) K( z { , D4 u# O, @. z# q4 ^ N
LPSKILL lpSkill = &(m_aJobSkill);! X5 p) ]( l9 z* ]0 u- }# x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! k' |5 H, O. b4 b. y7 U( I {1 p$ \! E( x1 e6 S- K% D( n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / Y S: k5 p6 I; m
if( pSkillProp == NULL )7 j1 V9 ]1 R& F
continue;; y/ n3 \3 K: f0 `& t; F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& M1 K) Z6 A/ _4 J continue;4 X3 |1 M6 l1 U4 J$ L
lpSkill->dwLevel = 5;5 \! v' B6 u3 t& n, o! t, w
}
1 Q4 B1 r- j( s, B }
8 c7 D9 w5 b. q7 ?5 x9 n+ W. o }/ {( v; q5 t/ k* N
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- R" z& |8 n" S6 |9 J/ l6 G6 G0 }
if( bGamma )
0 h! ^: Z/ z; V l0 O {8 ?& _, [/ n) \6 K" h* y0 S1 G0 Y
m_nExp1 = 0;
7 u, w5 z1 P9 X9 ? }+ h' f" w, H: L" u2 V$ [
. b$ O, b$ }+ E6 }# T% T3 n ( (CUser*)this )->AddSetChangeJob( nJob );
+ M# d$ e7 {9 ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
f( Q, R" I# S
# d9 p: k& T* q7 L& k! T% R- y3 C* N- D
#if __VER >= 11 // __SYS_PLAYER_DATA
; O! v7 ~) d' R3 h9 `( U! g. u g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); h0 F4 O" T1 Y* Z1 g2 |' N, S
#else // __SYS_PLAYER_DATA
2 e, x- B% w" m0 Q* `% } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: ~+ Y" d# m, K4 u: i9 R. q8 g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' {+ e( x' A' J" _
if( m_idGuild != 0 )5 s9 J* \$ [0 N$ K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* b5 H5 M/ z9 M8 |
#endif // __SYS_PLAYER_DATA, J+ @& G& n1 ?. ^0 a" x( X h( G6 K
SetHitPoint( GetMaxHitPoint() );
0 N0 S% e0 w' r8 O, L( m: {1 E, G- { SetManaPoint( GetMaxManaPoint() );' {4 R2 J% W5 c+ r- u) O
SetFatiguePoint( GetMaxFatiguePoint() );. F2 S \: {- m" L
if( nJob >= 1 && nJob <= 4 ). t* ]9 f0 ~2 s1 k5 Z
{
7 _* ?; }$ C* E2 e7 |1 F, H m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 O# ~+ _! Y3 B3 ?# m; ~9 i. M3 R) x m_nRemainGP = 28;
9 l6 O+ _+ n I& ? }8 Z9 f2 P. t+ u X8 ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ q& }1 d! G9 o' V4 g {% }/ N, f( u, p2 R5 w! B! F: { [
m_nRemainGP = 118;8 O5 k6 f- i# K; u& S5 r7 ^! d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' x1 n4 ?' D- m% C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, T) O8 L c# ~ }
! k: e4 ?; }7 q; i5 ` if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" P, a" l* N/ G! w- L f6 Z2 P
{
1 n3 t: g$ ?5 m3 m0 C$ t% @7 l0 S CItemElem itemelem;* A* t( t9 s9 T$ |, x
itemelem.m_nItemNum = 1;
3 x: w+ G, d1 b* h# }! _" g itemelem.m_bCharged = TRUE;, ]1 F6 I0 c- N: @3 }) z1 i8 ]
BYTE nID;' j- h: | M: k5 m; T
4 G3 @+ H! d8 y1 `( I& x
if( nJob == JOB_MENTALIST_HERO )
) n/ }- U" Z h8 O5 p" X- r itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 y2 X! Z1 J- ]: s$ H$ h3 ]# X
if( nJob == JOB_FORCEMASTER_HERO ) L- S2 R2 X) a' [: m1 ?8 l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' l; w3 \5 v8 h! ~
- K1 k* w# P' K# x) I ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ x1 k( o0 J( z4 r0 K }6 q: M- X+ E0 f: {& k# q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. u$ I& \$ D9 r& i4 O5 ^# g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# u1 r! m$ W; Y* p2 e; Z8 p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ j! T8 a W* p1 H5 ^ u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, {& X& ]: I- [5 K7 {7 d+ N$ { ( (CUser*)this )->AddTaskBar();*/7 u: H2 z0 K* X) [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 ?: m. i% c& i0 ~5 T4 }
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 t1 l& h- l# B; I1 n ((CUser*)this)->CheckHonorStat();
; q! n; B/ i7 i5 n; b0 Z) A ((CUser*)this)->AddHonorListAck();
* J ], u5 d2 L6 u% T8 n8 {. A g_UserMng.AddHonorTitleChange( this, m_nHonor);
, d5 r7 @- o: |6 c6 q' p( l' h#endif // __HONORABLE_TITLE // ′Tà?% T, ?7 c& D+ T6 Z& u' }- B S" {
}
1 I O( M# I0 T/ Q0 E$ T/ t% I2 S#endif // __WORLDSERVER0 w5 Q4 L6 x8 v! e" ~
}
# e! q c/ A9 W. \' m" |' Y0 s9 {6 {* H( U9 s( [8 k4 a# u4 a0 d- L
然后你进入functextcmd.cpp并添加以下
# }$ T0 t6 c* W+ ?! D% i/ S8 s: V$ n6 t# J" c+ G- m
代码: ?3 I2 F% j% {- S* q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& w, ]- I% n# ~1 Z& V. [. D/ x2 _
下面插入
- `2 f% w& _( P% CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 Z% ?% L. L) ~/ r5 w7 ?3 M% L
' ` Z& E- r0 L* G然后你去
/ |0 A7 J/ _- `/ W f. j# Q# I6 y
9 H" h u. u' q% @, q代码:
" u+ [6 f6 Q2 P) a% ? c4 A6 \代码9 z7 z; V/ O0 U, ?" Y! {
BOOL TextCmd_ClearPropose( CScanner & s )/ K" Y+ x$ S) E6 H% \9 x) E
{
* P/ w# O4 x' n- n7 u#ifdef __WORLDSERVER
1 y3 o e# I% s$ \ CUser* pUser = (CUser*)s.dwValue;
, `2 u8 e4 w/ w/ \ g_dpDBClient.SendClearPropose();
( q; @; R0 W+ {#endif // __WORLDSERVER% x0 d/ b9 U% r! u' @
return TRUE;
L5 `) j" ]+ S. z" f q2 x5 T9 }4 N}
* _9 f( {1 [5 c7 ^ _. J8 G下面插入6 a& H* i! m" k
BOOL TextCmd_rebirth( CScanner& scanner )* ~; n( R) {$ E h
{) B4 m F" j: O) p2 Y
#ifdef __WORLDSERVER
5 [* D4 U. w; K" T7 `CUser *pUser;
5 s2 H* w% k4 c, R) M9 D% U3 T d# wpUser = (CUser*)scanner.dwValue;9 A8 B$ I0 j9 k" P4 T& i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& O" x$ e7 j9 {. _' O, J9 o
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 u( {4 W& @( y5 g, _0 R) Z
else
/ `- Y- R' Q1 W mpUser->AddText("你还未达到重生条件!");) e$ S- P2 S; F2 o
#endif0 J0 l t, T! Z/ e) _) X
return TRUE;
/ U# S3 |- z6 O' H; a} $ ]/ ~2 P% a% s( G9 q0 f
( O! X& L. R9 j6 M6 G4 Z/ Y$ J
! D. u" R% g0 Z" ~) E+ V- b
0 J7 Q: m* n. y0 r
8 Z3 v( @: E3 m6 K+ G& a; N4 i0 H, x
|
|