|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% L8 s( m6 h+ f7 b7 Z. l, r- i
, N. L& o+ D+ I
Mover.h5 c$ i; w+ u0 J! J9 U
代码:4 C: f: s6 G6 `; @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; S! l$ _3 d& t7 A5 P8 } U% Y3 p$ r5 O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 b- Z6 G$ a" L: X. i2 v
0 w7 G7 K1 L+ k. f, c然后你去mover.cpp添加
( |$ F$ z2 d$ `9 G9 Q5 s) j* e9 t) u$ Y7 \2 M
代码:
8 T0 U; T+ b6 l! g, Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 Y9 ^" `, ]2 ]; s# l6 @{
; M* b# l- y4 q1 F#ifdef __WORLDSERVER6 P" }$ ]+ y" i' k# E% f2 C
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. n J% f) U. K( ?( X
MoverProp* pProp = GetProp();' `3 z' v' @/ S. ?2 {1 a
if( pProp )
2 d3 _. g6 z( q7 N# ]/ V {/ N5 C: {$ W0 ]" Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 G9 a1 \; Y. j {4 \( K. l5 A/ w' h
AddChangeJob( nJob );
; {2 C0 b+ Q' h1 s7 l }else{( I* a2 Q2 l# |7 X) W
return;
) e4 d% l/ r' ^! G% U. q }
; x/ h' m& v, s; C int nPoint = 0;# \. q3 n, o g
if( m_nJob == JOB_MERCENARY )
: m9 L+ k" T; `6 t nPoint += 40;
+ @9 b% S2 J! e% Q* V6 E else if( m_nJob == JOB_ACROBAT )
7 ~* C @7 o3 N: ?, e$ Q nPoint += 50;
" w D' H% ~, U- Y else if( m_nJob == JOB_ASSIST )
$ u- A) @4 L5 s nPoint += 60;
; }5 G9 a0 L9 I0 d) a else if( m_nJob == JOB_MAGICIAN )3 [# U* i: p% ]) k6 V# A
nPoint += 90;
( h. Q8 Z. }* g/ e0 @* ] else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), s8 Q, N. t- c# A( X# j
nPoint += 120;
! ~5 @% X4 X+ H; @6 o# q% q) S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& {! {# j7 ^! ~. l7 i
nPoint += 150;
2 n0 e' G4 r. [ else if( m_nJob == JOB_RINGMASTER )
& C! `6 F! H( g: y" ]+ a nPoint += 160;6 d3 ^ x" A4 R+ z( h" o$ U
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ d$ h6 z7 [, s nPoint += 180;
8 J7 Q q" k7 i else if( m_nJob == JOB_ELEMENTOR )2 U( e: U9 A9 G5 i& r: X
nPoint += 390;9 _. P4 u0 V# N+ ]& T/ B5 B) A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 B+ A) t/ v2 X% D& k7 q. B nPoint += 120;3 @8 u+ ~/ w! a% x- c$ k8 {0 u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# G. B( d) Q. l; B nPoint += 150;
8 \; S/ ^! `$ i* L: i8 m else if( nJob == JOB_FLORIST_HERO )
' ~1 c/ q2 E; Z/ D: I: Q# ^% }- ], Z nPoint += 160;
: z a/ O9 t. C3 ^+ k1 r else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 ^6 E; e% l% T" A/ P9 W6 F/ u nPoint += 180;8 v# y. J6 S" k2 w) h" L
else if( nJob == JOB_ELEMENTORLORD_HERO )6 s& p2 [8 P( o+ i. V
nPoint += 390;' B& E6 i Z4 q
) ]0 y: p% T4 @2 Y, {; O AddSkillPoint( nPoint );
# e5 C+ p @2 d( C, J+ U, N m_nLevel = nLevel;
5 D7 a/ t5 M; S$ T( `" H; L* h. y8 R' z. \* W% k
SetJobLevel( nLevel, nJob );6 K/ r0 {2 ?9 ^# y1 P& ?
m_nDeathLevel = nLevel;
, S3 P$ Y" ~5 K# d% C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 d4 E% g) r6 ~/ z3 j
if(IsMaster())# h9 h% r& V6 x; k3 m
{
5 _" _6 H4 J: q" m i9 X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. v% G9 ~( P4 j1 J5 ?) P, c if( nLevel > 59 && nLevel < 72 )* G0 v4 x1 s, |1 D, }
dwTmpSkLevel = 1;$ y3 S! o- v, b+ X4 a+ `6 v# Q4 q* N
else if( nLevel > 71 && nLevel < 84 )
8 `) ?. _$ b. m" [& L" K& K dwTmpSkLevel = 2;
. h+ R' u( E8 ?9 H. X5 J! K# Y else if( nLevel > 83 && nLevel < 96 )1 L0 _; _" S% K9 ?8 E& e/ I
dwTmpSkLevel = 3;
; T2 @4 j, P- s0 c& C& e else if( nLevel > 95 && nLevel < 108 )
" l/ N" C- W0 e0 M dwTmpSkLevel = 4;8 P* Y" D( v' {- y8 A1 B$ }9 `* |
else if( nLevel > 107 && nLevel < 120 )
) s% {4 K/ M% X* n8 E dwTmpSkLevel = 5;9 q4 b) p+ u2 `; n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& V" U3 o2 S9 X& K R { 2 z8 O% P( I' H( O0 t. ]0 ^6 e
LPSKILL lpSkill = &(m_aJobSkill);& S6 G) c W! w4 ?6 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )- a6 [- N8 |& u/ ~; a6 W
{& _* J0 q# d9 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! `0 k' I4 _6 d& i4 J
if( pSkillProp == NULL )
) Y. ~$ u$ f6 P" e, S continue;
' o4 O5 @8 `/ l3 y2 a& o+ f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 f% w9 W5 |8 j/ p8 Z8 a* F
continue; T/ U; a% E3 `
lpSkill->dwLevel = dwTmpSkLevel;
8 q3 @% M- u% [; L5 ?% g$ T1 s7 O9 B }
4 ]: M0 O! @9 S& B) v7 M' Q! p }
2 R6 H5 V$ p( [& I }
, g/ C) b" H( d Z else if(IsHero())
3 S I/ W+ w. X/ _0 o8 y. | {+ @# r0 X A! n( F) K0 [" @; A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 ]# h# L: a* L* x) }9 [
{ / i+ n. z4 [& M) L
LPSKILL lpSkill = &(m_aJobSkill);! P7 n; Y# G0 \# s' O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. ^6 r5 f8 h/ K% h2 n {. W4 U6 @! k, F. o, u: x. w3 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 l( c3 |9 A9 A4 ^% b% r$ v if( pSkillProp == NULL )0 [7 {" v9 }1 k- n- t+ ^
continue;
& [" m! U' `' j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ B+ J+ m5 X+ I5 ?) ^
continue;7 i, y, e7 F% j1 [7 i; V
lpSkill->dwLevel = 5;
9 S, K2 ?" O! R }; h* c, k" V9 |/ }( T
}
: V5 E. W" `! p7 k% w. m4 M4 P+ B }
" c; l y, o4 q. d else if(IsLegendHero())
4 P3 ]3 z* n2 P, I, ^& b2 L {# Q. Y- X4 `; y0 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 M/ f5 s$ c# U* n d/ G {
- g7 C4 l: J, ]+ j( | LPSKILL lpSkill = &(m_aJobSkill);( O! V! ?: _9 G; K4 a4 t# S" h5 V! t# k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 s! L9 o" c+ [ {
" _2 B% Z. L7 B" [0 G( S% m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 n) \! z' d( d( b7 R if( pSkillProp == NULL )
) R" k' |1 P, T6 ~' y+ W continue;: \- S: ]" W" e4 v$ r/ T! v! V r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 ~$ o. F/ l( X' d: F3 k2 B continue;( n8 R) H+ C3 n" ?+ ] G: ?& [
lpSkill->dwLevel = 5;( a1 @7 a/ d% o# p1 A3 R
}
+ A o- G3 S) J8 E+ S }) u+ |2 C, t; D1 H4 E$ Y3 D: Q2 i
}: y. ^0 e: R8 t& m( ]
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ T, @' m) Q3 U( f' S if( bGamma )
" p# j5 X- p/ ?9 d {# q6 m7 d C6 W- V/ l: C
m_nExp1 = 0;0 e. x! I1 M9 }* n
}$ y" n8 V$ \$ O A3 [+ _
/ F2 P. P7 h, r2 h: h4 f
( (CUser*)this )->AddSetChangeJob( nJob );, ~" W& `* j {8 `$ V8 m3 `2 X" M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' q' y9 p2 B& ]: e j; p0 y
6 F; w; Y, P% a) N; W
& I' `6 `& }* S. L#if __VER >= 11 // __SYS_PLAYER_DATA. E K# j5 u1 |3 ?* c1 M8 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) J3 L) V, b0 P8 S& E8 V% g
#else // __SYS_PLAYER_DATA" |9 Q' K4 m( \0 f" A; _5 w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ H. h( z+ X9 z# g- n# |! y7 ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) \. H/ s: q' R! W' l% @# @) C if( m_idGuild != 0 )
- U6 q. A* {, ^9 a. F, r' O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 ]$ p; r& @+ M0 k4 Q+ R( W#endif // __SYS_PLAYER_DATA0 O; J% H1 D0 u8 e- F% T
SetHitPoint( GetMaxHitPoint() );6 K3 q6 b6 z3 c7 g6 H
SetManaPoint( GetMaxManaPoint() );1 b" W0 B H! X$ F
SetFatiguePoint( GetMaxFatiguePoint() );) k9 W& }+ E* C% e' e
if( nJob >= 1 && nJob <= 4 )
; s0 b m- \8 G1 q0 S {% W+ J9 D2 ?8 ~2 h
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 R: m& _6 |6 c0 X. K) R m_nRemainGP = 28;
1 ^( {6 Y/ N: x3 }+ j& | Q3 l) l, Z }
! s* z% @( n7 j; y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" p* ?* z% l+ a5 k# n" `, } {
0 ?3 `+ c* }9 F4 Y! M) r0 \7 @' {/ B m_nRemainGP = 118;
}2 i1 G* h" Y: |9 A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 g! m) x* o+ D" ]3 g+ z
m_nStr = m_nSta = m_nDex = m_nInt = 15; x9 l/ l \# K8 ]3 b
}6 ?* Q2 F% _. \9 v5 z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 f" r" R& B& |: k Z {
* B+ [" w3 @$ ?' S CItemElem itemelem;. X' ^# H1 P$ n$ r+ y w( n& N
itemelem.m_nItemNum = 1;
2 H E8 B c7 k; C" z( \9 D itemelem.m_bCharged = TRUE;, E* |0 y% R# g9 x, H6 l
BYTE nID;# y7 `2 c; E1 ~6 d3 Q7 g) y8 C# [ A
& C6 x1 v" [5 f. R if( nJob == JOB_MENTALIST_HERO )
. [6 x/ G; w8 ~# }7 {! z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, ]7 v8 Z. H2 S( x8 q+ U% F- R
if( nJob == JOB_FORCEMASTER_HERO ); W/ n( x% l4 w+ W" G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% ?# v/ ?& N. ]9 Z
; k( ^9 A/ { j+ {; w ( ( CUser*)this)->CreateItem( &itemelem, &nID );; ~ v4 N: g* d) `6 ?2 U9 [
}
( P1 G' t$ _# G, _( |& \- l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: E( Y# {1 s# c6 N( M
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 S0 Z; y' E2 s0 d& V p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& h d* f0 b7 g. b E8 p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 `( J# [9 S0 {' } ( (CUser*)this )->AddTaskBar();*/. S- b. b. s8 ]' ?% e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- M, l9 t1 t4 \* X4 ~0 h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: k3 ?* n' }3 Z$ E- y& u ((CUser*)this)->CheckHonorStat();0 p* ?. R7 ]; p% v
((CUser*)this)->AddHonorListAck();
0 D+ P* P, `3 @" C2 C& O4 u g_UserMng.AddHonorTitleChange( this, m_nHonor);9 \- h' q* | E6 @
#endif // __HONORABLE_TITLE // ′Tà?
$ ~' P- K5 ?( @% A }. H. h7 P* ~0 L( c3 U+ w! g
#endif // __WORLDSERVER
; N# ~/ ?3 f8 S0 Z2 `5 T} " Q. h% ~3 R0 ~# P* K* A4 J
: K% T! x5 s* a. C
然后你进入functextcmd.cpp并添加以下
/ W" L, I- Q- {0 A
2 K6 A+ x7 m; t) j! n; f代码:! ]$ M) T8 F( R; Z' I# n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 a6 f4 N, P; G9 C0 F下面插入
; r0 O! E- I* e+ a: vON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 m0 M" @" `. E! k
% M) K5 T1 @4 Y& M5 N. |然后你去
) p$ `' B% r u' O. |7 B
8 _2 I) i5 G- G2 U4 _9 X( X代码:
' J) I/ F0 F/ R. e4 ]代码6 b- A% [" @9 j. n9 `0 @
BOOL TextCmd_ClearPropose( CScanner & s )% O0 f& x/ P: T1 h2 p
{
/ R4 E; e3 l6 U$ s: |#ifdef __WORLDSERVER$ E* Z/ k0 X4 ^) y: \- ]7 w4 Z8 c
CUser* pUser = (CUser*)s.dwValue;- Y- F+ Z f6 C& N i1 k
g_dpDBClient.SendClearPropose();/ ^2 a( m. t ~% J8 P) u8 Y5 J
#endif // __WORLDSERVER
) V/ J3 G( S# W8 o return TRUE;
+ i% d/ V) d, T. u, E}
& d! M' ?3 Q, y- [! }9 h下面插入
, s0 G/ k# m" N e7 {! lBOOL TextCmd_rebirth( CScanner& scanner )
. x- y5 X/ U/ H; |5 ]{
. ?9 L% v8 U9 O0 k& Q#ifdef __WORLDSERVER
& m, W# L- q! [* ?1 w# Z' Z" P2 A4 i" ]CUser *pUser;4 ] O6 Z4 @/ L) v k" s
pUser = (CUser*)scanner.dwValue;
. B8 `/ H- V% s% [+ A0 z k$ S* Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ x. M. u* \0 M! r4 S0 ?2 T5 [0 q! QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 u& D# E9 e, s0 a6 E9 P- pelse
) U2 j) h5 ~2 l6 c6 T6 }6 hpUser->AddText("你还未达到重生条件!");6 q6 l) o, x8 s6 b7 V- r
#endif. _8 n3 X8 V7 ~1 m
return TRUE;9 e1 o( c+ R2 ]! G
} 9 ]% S! g& _! @
# D$ n+ ]" b! _ P* x) }
5 i- C7 J/ B+ x, D( d6 r
/ s5 d+ s5 T- D& I8 K6 ~
& c, j8 z% R$ \4 e& E1 a$ C |
|