|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 o6 q# ~7 a& M; e1 l( k" J" ~7 C! }" G& [
Mover.h
) { L6 w8 ^# R代码:
8 y6 Y. ?& `, Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ `6 Z% t7 |% ^% R. P! I5 ]2 X. r U. O7 m9 C$ E1 c
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" w5 ^5 [* m( A2 c5 i3 s( w) k& {, r4 a, s: B% @
然后你去mover.cpp添加; m$ X7 h) E) r% }' T* c: C" O% P6 o6 Y
- ]# w/ m5 ~6 I+ a, p# l% B代码:
9 s I3 o+ F1 R4 Hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ e5 q ^1 w- {
{( ~9 T' O, }- t0 S3 R4 k' P- P
#ifdef __WORLDSERVER, W2 g% B% c6 Y% {# p: V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 V% ?: P( R6 L) Z C MoverProp* pProp = GetProp();
4 T# j. p! ~2 s2 h& W; d if( pProp )
3 X3 S3 E5 D' d' D4 ? {
6 f: C# X) r( P3 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 x7 ^' n# s* ?- P' Y" r
{
9 B/ q* ~. _4 i9 M) R AddChangeJob( nJob );
/ p& J1 n F/ @- }0 i% I }else{
0 d8 ^: `* L- I' w return;
# J' ]4 T- d" f7 D( p- V }
* h/ K, e0 h8 ? int nPoint = 0;% L: L! ]$ U$ v0 g& A
if( m_nJob == JOB_MERCENARY )
1 Z a9 _# q \$ P5 N nPoint += 40;1 D/ k0 I" }4 N+ n$ [& Y: k3 ^0 D; h
else if( m_nJob == JOB_ACROBAT )
T1 ?1 \' k' g, U) V nPoint += 50;/ o* a% x* r* P6 ~. H% M6 k
else if( m_nJob == JOB_ASSIST )
/ s6 f1 {9 T! {* w nPoint += 60;
( }4 x' r3 K' `- } else if( m_nJob == JOB_MAGICIAN )
4 X9 k+ a2 f$ z+ i0 @" E nPoint += 90;
* v |) H/ d& y$ z" s! `6 H" S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 ^3 E9 l: k8 p( ~" ~8 m$ W5 r nPoint += 120;+ a; o2 q! F% R' |! u5 ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 {( T W' u' F% G
nPoint += 150;
- X1 X8 T0 S3 m& k+ A0 V( m else if( m_nJob == JOB_RINGMASTER )
* K0 C8 d3 _. G( v, i G nPoint += 160;
8 [- p% `3 P. r# e) }- x# R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 o/ B5 g( ^ R3 s/ j, @7 L
nPoint += 180;1 [6 }0 Y$ }8 I: M$ C [9 r7 S, b" R. i4 d
else if( m_nJob == JOB_ELEMENTOR )
, T' q8 [: j( \ nPoint += 390;) S; c; z+ x5 q2 E; D* Q( ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; j1 }# K1 Q6 C; _! C/ Z nPoint += 120;
4 p: \, Q( K' v4 @8 \1 t7 b- z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ b# c6 y' o" Q: ~2 |0 m4 r/ `4 ]
nPoint += 150;$ {% m1 \# _9 E, [3 @1 s' ?
else if( nJob == JOB_FLORIST_HERO )
9 u2 y* D6 L2 _$ x nPoint += 160;
: P0 F+ P! N7 L. \ o1 l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ G8 C) ]$ b8 I6 o( o; g. N& p
nPoint += 180;
) F. O& A9 ]$ H& O/ e& V8 a& n else if( nJob == JOB_ELEMENTORLORD_HERO ) o6 X2 S1 T/ n; W4 G, s1 a% @# Q
nPoint += 390;
. e/ {; q/ \7 E, t: f1 s; H. |
; q8 y9 |5 x. ?3 K6 Z AddSkillPoint( nPoint );. o$ |: @: L$ Y' r( v( m3 N
m_nLevel = nLevel;. E3 W, A: }% X+ m7 P1 O
1 d/ X5 N7 H& w5 p SetJobLevel( nLevel, nJob );7 I' `8 ?1 `2 `- E/ H; m( p$ ]
m_nDeathLevel = nLevel;
% g1 D6 m) ?, c) t/ k2 F, n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% u) X B. N/ X/ o4 y" U, r' y) B if(IsMaster())& z; M- K/ m+ N+ N
{
$ h, |& Z8 C: W, o& g. d int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: m$ E* G# ?& J/ J5 n
if( nLevel > 59 && nLevel < 72 ): ?+ O5 v0 u: M" D
dwTmpSkLevel = 1; @ Z" ~, q; t* u, I
else if( nLevel > 71 && nLevel < 84 )
( x( d) a4 K5 m9 x dwTmpSkLevel = 2;! B6 M* b9 @, P' [, }! h: x
else if( nLevel > 83 && nLevel < 96 )
' z* B# |; N) l, t dwTmpSkLevel = 3;# t+ w' H; q; A$ w& ^' J. z2 K
else if( nLevel > 95 && nLevel < 108 )$ S( a( Y( C$ @) o N& a! D% D' e+ i
dwTmpSkLevel = 4;: k' [6 w1 w% z) p! b( W
else if( nLevel > 107 && nLevel < 120 )
& D% J. q$ k0 m* ^# s dwTmpSkLevel = 5;7 [# d% r! H+ j& H# G& C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 _# j; @; n. \, p( j { ; M1 m0 h. d) ^' I. h% {5 k
LPSKILL lpSkill = &(m_aJobSkill);$ ~% r; g# V3 e: e8 X& i% ^2 @7 e" Z
if( lpSkill && lpSkill->dwSkill != NULL_ID ). T' u- f7 G6 E" k3 \1 S+ o
{, T& M; @+ b/ P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 N1 k. j0 m4 c8 O/ p
if( pSkillProp == NULL )
4 Y& i/ a! _5 Y% X$ `# H continue;& ~9 K0 E% Z8 V& z! u) k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) l; _$ ?6 l) B6 k: |' W
continue;' y& L8 @1 U' c3 t$ {, g' x4 Y: Q
lpSkill->dwLevel = dwTmpSkLevel;5 m- X/ e9 `3 G( q o
}0 Z) B, e. G' b9 x) R; V9 A
}
0 T' F _" W; T( F }4 u% Y2 \9 R% j+ o5 ?
else if(IsHero())
+ }! I$ A6 r/ b. Y {
2 v, K/ M+ d. w( `' K for( int i = 0; i < MAX_SKILL_JOB; i++ ) |/ t; }3 \+ x1 {& s8 }0 s; u M
{
3 V% y" H# T. d; O0 C LPSKILL lpSkill = &(m_aJobSkill);# Y' _2 x5 i* l6 i& @( }8 D2 d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 B# |5 \4 x$ e$ Z6 t! H# ], t {& i7 N9 g0 r ~" y: l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 p, j% w" |) l4 k# l2 r1 D5 \# C if( pSkillProp == NULL )# f7 K, g3 k, n5 r& a
continue;
7 [. x& n/ Z; C7 ]: ]: O( B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! W" ] Z) Q' r5 Q7 Y9 Q8 t1 {
continue;- R* \. I4 o! ^: `9 m; V4 V
lpSkill->dwLevel = 5;6 F. D& f# {8 S( S$ ^7 U! c) e
}
: e* f7 {9 A# }# ] } H. [* A% y. Q
}7 b2 U5 Q. b1 ^
else if(IsLegendHero())9 _' c/ r5 `# Q! Z( y* Z
{2 |/ d3 U" J3 _, X+ ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : V6 m* S% W# [
{ 8 Y9 }( W: B$ t! L5 ?' l; B# j
LPSKILL lpSkill = &(m_aJobSkill);
( n# G* j3 }1 z4 S; W: {) }# i) n if( lpSkill && lpSkill->dwSkill != NULL_ID )
; ~& Q) W8 ]: s, [( M {
4 Z0 c- ?# Q4 W: J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 T' H0 n# z: T, ? if( pSkillProp == NULL ) {/ A! @. x- X/ Z5 ~
continue;5 c1 }% N9 @: M" f- _* }* Y7 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% M+ o; b% V$ M( L& C8 K& M continue;
2 `8 H8 L, @; Y) M7 W lpSkill->dwLevel = 5;
1 ^- K. @5 t6 e7 U2 \2 \* M; n }
, t, @0 @( A, z6 d: b }
* T, ^% [& M5 V' v ~9 g/ O }
6 `) s/ `3 I2 L9 l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 e+ g# F6 `7 B
if( bGamma ): ?3 [1 t$ F+ c+ S
{9 T# k$ C |. q$ V# b2 X
m_nExp1 = 0;
- a4 O" z6 ?0 ^: v6 I }0 V5 f/ @3 y. z& {/ x3 ?# H
& u$ q1 ~6 O& F; Y% {" Q6 Z2 i; D1 k ( (CUser*)this )->AddSetChangeJob( nJob );
( w# O# I" Y3 ^2 ^! v0 z3 k* ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 v% J" H9 F' E" e! t. _. i# h0 q3 t4 I$ j, e7 |
: I. @4 s- j" h s2 V+ D; e" O#if __VER >= 11 // __SYS_PLAYER_DATA1 V3 }% \- y8 u! b% o/ M7 P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 d% ^2 a* b- |: B4 x# P8 U! W0 j/ ^* \#else // __SYS_PLAYER_DATA; B7 e+ O1 z6 Q1 s# Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- V" D/ S8 [; v- Y2 }+ b; j& ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 w; o) k# n% c) z" ~
if( m_idGuild != 0 )
4 Q* a8 e* ~. E$ n. R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 j Z4 I4 R( L0 R& W# u/ q5 k#endif // __SYS_PLAYER_DATA, e5 K9 a/ t6 i4 X) t+ ]
SetHitPoint( GetMaxHitPoint() );
: O( o/ S' I& J' B% @# ^3 } SetManaPoint( GetMaxManaPoint() );
2 I5 }& b' Z& a0 H- D% r& e# X3 K SetFatiguePoint( GetMaxFatiguePoint() );* N) z, J# q5 W4 l. a
if( nJob >= 1 && nJob <= 4 )
+ T. ?% h- J/ X* a {! Y, E4 |' x9 }: N u* H5 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( T1 W8 ?7 F0 D6 L m_nRemainGP = 28;
3 G: R( H9 o6 W. O }
5 x+ w8 ?$ K! k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 j1 e4 G+ \8 ^- j4 g4 Z9 L {- ?+ `2 u/ C W+ V! A
m_nRemainGP = 118;
5 s5 r+ Q: R" Z& g& k9 W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ x+ I+ f2 c- r0 y4 j m_nStr = m_nSta = m_nDex = m_nInt = 15;
! Q9 ^% f# I; d2 }5 h0 [ }
& Z" B+ Y: J8 o* b/ R! X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); |4 d. u$ K1 x7 F) S+ y$ _
{+ O) K& X# q) m* b: Z7 `, d
CItemElem itemelem;
$ v0 y8 n- L- e itemelem.m_nItemNum = 1;
) a# K" p3 M7 z8 _ itemelem.m_bCharged = TRUE;$ Q6 e% v3 ~: U
BYTE nID;
, a$ y8 |% l' U& M# q1 ~
9 P2 {/ ~8 ~& Z8 ], z' o; { if( nJob == JOB_MENTALIST_HERO )0 n2 S& y% T. H% g6 f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 z1 F, Y/ J6 A& z' C- s' x if( nJob == JOB_FORCEMASTER_HERO )
+ h; x, P) O, Q x5 s7 H. ^( B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 d. b2 h$ e# ?' ~9 k; w% v
+ G1 F5 f# W" o# C ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' j: F& ^$ o2 d4 h9 [7 \ }
; O! M* u9 ]% }! N/ o3 m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 A; K$ ~% q& G$ u. R. m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, p0 D) r8 }+ f3 e$ Q( ~% l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 H6 _! _% {5 S/ D, [( N7 y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* N% o+ B1 n. I- S/ _2 @
( (CUser*)this )->AddTaskBar();*/
; L" Q. m1 v p2 u1 a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 C3 b; M" ]$ c/ j* i1 C- N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& q( b& _: y" y0 F ((CUser*)this)->CheckHonorStat();
+ d* W( d9 e5 S4 G- V ((CUser*)this)->AddHonorListAck();- h& S6 s0 i% Y! j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" H4 S. R% r7 N9 }#endif // __HONORABLE_TITLE // ′Tà?) [" H% u5 _- g- z' i8 q
} S3 r) K. k0 @+ c
#endif // __WORLDSERVER
5 m. n3 j+ g) _4 X* T# J}
- |( Q, p+ h& A- r- M: l5 l/ @! [# B- t) V7 }; w3 Y5 Z M% R5 S* m8 Q
然后你进入functextcmd.cpp并添加以下
5 S P4 I2 k/ u! E H4 P( J8 d% K& X3 y, `1 B4 ~5 W# M8 I
代码:
1 d4 i* Q: q! Z% _# Z# ]ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! j! U; e/ N2 R下面插入# _2 h$ J$ `3 m- `( `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 G4 I# Q' T" i' W3 ?" x% A" |% m$ [+ y
" A+ t( G* ^: r+ V然后你去
" j1 B9 ~: x: Q7 F: U# t, ~5 {% `6 l( i
1 C9 `, ^* t& s9 O, c7 O3 ?代码:
2 S1 I+ N: \0 S1 g4 p3 L9 n, F代码8 V+ f4 x6 z" f$ f. G2 c
BOOL TextCmd_ClearPropose( CScanner & s )2 B5 R9 B4 I& t, n7 r8 A' S
{
5 p) J$ l+ e9 a. m; O( `#ifdef __WORLDSERVER
$ x1 N8 E' a; ?- G) L4 J* q CUser* pUser = (CUser*)s.dwValue;
4 U& x8 k6 s$ `8 u: y g_dpDBClient.SendClearPropose();
: t+ x8 b! i& N4 @* t# }#endif // __WORLDSERVER
- G4 m, N- n) n+ e9 i return TRUE;
4 l5 ^; S% C+ G}
4 s$ f4 U& }: ]% I9 l5 g% H$ V* s下面插入
: ^9 V2 H3 q2 h- wBOOL TextCmd_rebirth( CScanner& scanner )
& Y0 x& ]$ u; W{
# ^5 p" p" c* }8 Q#ifdef __WORLDSERVER/ j/ D& i( k, W$ Z* ^* s. w
CUser *pUser;! E, k7 T8 c' ~" w9 S
pUser = (CUser*)scanner.dwValue;
- D6 [" L+ C2 F% f, ?" X3 z& jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ n( f# w' M4 }% f) `0 HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 R [! j) g n6 [else
4 q& `8 f9 s* B& M) g! A% ^2 E8 qpUser->AddText("你还未达到重生条件!");8 g2 x* L) t' g1 C
#endif
0 ~1 m1 q4 W7 H; f% p0 zreturn TRUE;( P5 J, p% z- X$ P. g4 I! i0 B
}
% n& i1 a0 J9 T! x" ^
# I0 v3 ?, X( L% A" h5 \2 w8 D9 T7 [8 |
1 w- }0 j3 G; x% q( K; k7 q! E7 V2 I8 j W, M; ?2 n; Q/ u" f
; W9 K i& J- l* O, s |
|