|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% U# o- G, [; H9 y* R, W
! e7 q4 D& U5 F5 V$ Z g% B
Mover.h
: W9 A' M' S0 L' w2 a代码:6 F# f' A; h- m- b" K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" d( x9 Y5 O* P6 @5 L
. p- f6 V# t! [( r5 F4 v/ f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; u }& C! k8 N- j, g+ L
2 @7 A. i5 i0 u/ z
然后你去mover.cpp添加; f+ l) o: I: T V
' C, a; F( c5 ]! P: ~4 M
代码:
- Y9 a" a6 y% [# y; w- Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 h; z5 s, V; g9 s, K4 ^: o
{" @$ @9 \6 D4 p
#ifdef __WORLDSERVER! o- o9 `1 a* f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 F9 f5 y1 \4 B* w& W6 h8 q
MoverProp* pProp = GetProp();9 O( X1 M- ~' l1 a& F" s
if( pProp )
* y K, M$ J0 `( ]. X* S( R8 \ {$ W9 U7 \) d( z; Y$ T6 [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! x8 Q( n/ v) |% X7 k {
2 H+ T# |; ~( O AddChangeJob( nJob );- A9 |+ o3 _/ {+ E& ]$ n1 z
}else{
& l* ?$ J3 u- @1 N, ^$ k- [# Q" X return;
3 K4 U2 Z% H% P6 G! ]# k }$ _5 M x/ e: A+ }2 @1 b) Q) I
int nPoint = 0;
, J5 e, R, n% G0 O Z; k if( m_nJob == JOB_MERCENARY )
. E7 ^3 C0 C/ |, z d nPoint += 40;' E3 h" k" Y& ?
else if( m_nJob == JOB_ACROBAT )! G$ O- Z% s. i
nPoint += 50;6 m% v; A' C" A0 c# z8 S, {5 H
else if( m_nJob == JOB_ASSIST )* Q1 s7 _2 J) A" g6 D
nPoint += 60;* b8 ~& f: O I2 p2 a& g9 R
else if( m_nJob == JOB_MAGICIAN ); R5 L; D" w; x' D
nPoint += 90;, u, o1 j$ c$ f3 ~6 p# i5 p/ [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" o! S% J7 h8 a8 I: L! s( M
nPoint += 120;
, b/ c, `6 m7 I. h& K0 S% B" h else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' B8 g6 ]$ @9 w
nPoint += 150;
6 h/ y. B3 m: s c7 ]3 f else if( m_nJob == JOB_RINGMASTER )8 G# s. j" t/ y8 n2 _
nPoint += 160;
2 U+ o7 S. Q8 m: ^. p- `! p9 O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. K; n' C, f7 w" j7 m. N2 B$ ? nPoint += 180;! _7 s1 E, G8 w+ I
else if( m_nJob == JOB_ELEMENTOR )+ |" b7 H- V" c5 G7 A6 d" D- z
nPoint += 390;9 \3 F z: I m' h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 N7 l7 M, q: o6 W6 V! y/ b$ ^ nPoint += 120;1 Q+ }8 M3 _6 y- b a# t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" A/ e5 Q1 M4 \! O+ s nPoint += 150;0 R3 d) e# @( W5 Q. Q2 f+ I( b$ m
else if( nJob == JOB_FLORIST_HERO )
; q& U7 P. \9 U nPoint += 160;
. F/ w5 J$ k p4 c6 X else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* i' X$ h* O) Q# k1 ]6 \
nPoint += 180;
% N$ ~1 K2 J# B6 U' X! ]% N2 L else if( nJob == JOB_ELEMENTORLORD_HERO )
, j; c8 t- K l& }& `% i W nPoint += 390;
) l6 R+ T% O% }" Y$ b a
+ j, ^) N$ Q H( @2 ?2 L0 M AddSkillPoint( nPoint );
; Z! c* c2 J: a$ L3 g m_nLevel = nLevel;
9 P* g" O- S% j& H% D7 M& O8 s
SetJobLevel( nLevel, nJob );# T. N+ A9 U; L( Z7 d" ?
m_nDeathLevel = nLevel;
9 t: F' R& S" |' F R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! G8 F7 K! c- U( z# e i* j- E! H+ d if(IsMaster())
! i/ @. [2 t0 E( S& s2 P {
6 s4 Y: u* C3 c2 ?% K8 m T int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 K* N5 n5 Q# ~( j; l8 B
if( nLevel > 59 && nLevel < 72 )
. ?8 A3 I) u- R: m2 _" Q% q dwTmpSkLevel = 1;
" E% _% S& K, x else if( nLevel > 71 && nLevel < 84 )
& \3 T4 d+ I. v1 M# `2 ?" Q dwTmpSkLevel = 2;$ k8 Q/ f+ K; X- y& D
else if( nLevel > 83 && nLevel < 96 )6 B$ \8 K9 ~$ ~+ z" ^. N
dwTmpSkLevel = 3;$ ^5 k# \- L4 Z+ T; A2 k
else if( nLevel > 95 && nLevel < 108 )8 n. m* n- F8 m- r, v
dwTmpSkLevel = 4;
1 J) C4 x! a$ w5 @1 p) v else if( nLevel > 107 && nLevel < 120 )
# \% z5 v" F' K dwTmpSkLevel = 5;
- P" S0 L- {' \0 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 C8 B) ~/ m6 @1 P: v g
{ : Z2 I) \9 `3 a6 ~
LPSKILL lpSkill = &(m_aJobSkill);
4 Y6 y$ i1 }$ W* W6 M( K. I if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 _! B5 |& V b+ j: y/ G {8 Q2 T/ f$ ~3 o1 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* s* k3 q- i3 Y' r4 ?& E if( pSkillProp == NULL )
7 F, i0 E! f' J% p" M+ ^8 d, @ continue;; A$ _; n+ r% |; h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 v7 f1 @( C& \9 a2 N. b
continue;
, w1 M9 n1 |8 w4 e% s1 N% d; `" T lpSkill->dwLevel = dwTmpSkLevel;) V! B- b* q/ z9 ]- B
}
; }1 N6 M/ }7 ]6 E7 G }
9 L6 @& R t" `; S5 q/ r& N }$ \6 G! Z/ g6 f
else if(IsHero())
$ F$ l' J6 e: b2 t* k# s {
# I( H7 F. u b for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; I' w: S2 }- t
{
# Z% n+ T! z _, e- T" U' ? LPSKILL lpSkill = &(m_aJobSkill);0 G, H! V( _. V v! f. ]; @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 A+ s/ {' f& q5 V$ _ {
3 W& k$ W- }4 }' I$ {* I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 h0 V! e1 W' V4 a. W0 e" h
if( pSkillProp == NULL )* y& L+ j; `7 l1 V3 P& f
continue;
& y1 ]$ |% b1 O4 [4 {: u9 ?3 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% _+ F. m, [9 C: W* b
continue;
( y8 O$ V; o+ b lpSkill->dwLevel = 5;' h3 q$ T5 C+ ^
}
" c+ A6 W$ a) }8 s, A }
+ ~$ U6 [8 y* m& y- P' u }
) B* O) c0 ~9 N$ t, V; r8 } else if(IsLegendHero())
" v/ C' }& z( [. L0 R) u9 k+ i {$ r" V/ a1 H: Z7 U1 T, O! a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ @. D! [' h f { / q& j( c7 n& t" b7 C4 D
LPSKILL lpSkill = &(m_aJobSkill);
! a x* M9 M& S' ^, }8 R if( lpSkill && lpSkill->dwSkill != NULL_ID )) C& o8 r X) }& W
{
" L9 q; d8 A. a$ q6 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( u8 Z" y& M R- t1 G if( pSkillProp == NULL )0 m( `! l7 h0 _; _7 R9 D4 e
continue;' d) v+ q* M Z/ F+ U1 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. N# M2 f3 b' o( I* d/ H continue;
' l9 U9 z& @1 A lpSkill->dwLevel = 5;3 H8 H ~; F+ Z2 i$ {1 p; |6 M8 R
}' e8 N% U) P+ K; k7 F
}6 @/ A+ f+ m7 B1 x+ _; O* W/ a
}2 n& p" t, @) g0 _" V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! \5 d l1 H: L: ^1 c: R
if( bGamma ) p5 W! O4 N$ u
{5 W# ]2 W z1 B& O8 @4 [: V
m_nExp1 = 0;
* c9 e0 w4 ] S, e5 q }
8 C# K& c; f2 u% ^( z; ]- u' \. K1 [
) }* b! O3 C" j) E- o7 N' D ( (CUser*)this )->AddSetChangeJob( nJob );
5 ^7 l) ?! ]( R" }. Z, @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 d" l3 @, |, ]7 t9 X- X* ` F7 u
1 ]1 X$ D; ~& o; o4 F
" g" z, J4 P! T; t
#if __VER >= 11 // __SYS_PLAYER_DATA, G9 f/ \- H$ E0 h5 P( [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& d- I7 P/ s; g* e$ O5 y
#else // __SYS_PLAYER_DATA$ J$ l0 n( P: F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; Q# n3 g1 ]; S/ D( f& j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 Y" c; }6 \# q2 s! B. _5 c
if( m_idGuild != 0 )" d. q3 e2 x4 R- b: t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" F, h4 Q7 T% s) i( |
#endif // __SYS_PLAYER_DATA2 K7 d1 k7 O% l3 X0 j$ s+ k2 J
SetHitPoint( GetMaxHitPoint() );
9 l3 D% D1 r: y {. B5 s2 _( t SetManaPoint( GetMaxManaPoint() );
. u9 w& x- D6 q* L( ~# u SetFatiguePoint( GetMaxFatiguePoint() );
0 D& j) |: g; [2 y$ N& b if( nJob >= 1 && nJob <= 4 )6 Y6 ? k4 T7 F8 L
{$ W' Y. C( {% N: ]; f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ q6 v) p6 b: L3 s0 j m_nRemainGP = 28;3 K5 \- T* H5 D& I6 e& h3 E& Y6 d
}
4 e7 l8 b" w& q, i5 E if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 H8 C& O$ _' v8 j9 e* ~ {
6 H) J f( a' l% P m_nRemainGP = 118;
4 k: L) e) A$ \. E ~ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& `' A( J$ l' H/ O3 s# u
m_nStr = m_nSta = m_nDex = m_nInt = 15;* C6 P( z/ ^7 M/ o& Z
}; j! ?) @/ O6 q, M7 T- |( d$ u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* x0 a* C9 B2 \' M. v% s {
q5 h4 l/ P0 D& Y- x% n9 @ CItemElem itemelem;' L l0 V$ ~$ G, a
itemelem.m_nItemNum = 1;7 g; l* N) L$ w' |* t
itemelem.m_bCharged = TRUE;
1 u1 d* q7 _- T! h1 O& l6 `. ^ BYTE nID;
; u \* a" i7 r3 R, G. A' Q
8 K" j- g; F) ^2 B- p if( nJob == JOB_MENTALIST_HERO )' C0 {6 G4 ?# c; G1 Y+ r2 o& F
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! f! L* m7 V, r. F
if( nJob == JOB_FORCEMASTER_HERO )) w2 t x! A) N, a, k9 {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- L. g) d# }! {# ^3 G
" J7 M8 K/ H0 j# e9 e
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 Q2 f3 k2 `/ G ^: U( j }
* m# G4 w3 ~, Z7 y) R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 {" ~: y" P3 S5 v9 \9 S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. W* D* o' B8 S6 J9 A ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' r+ _( g% T6 M# w- O* O' c3 L /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 M9 A( T: p+ T: S8 p6 R/ M
( (CUser*)this )->AddTaskBar();*/
4 N) V$ R- L+ d$ M% V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 l; S+ e; ]& i: U. c6 ^2 j#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* `0 Z. a/ _( I) C8 @% ~
((CUser*)this)->CheckHonorStat();/ `6 I- H* N- p& c; }, M
((CUser*)this)->AddHonorListAck();) y0 T: S+ v3 r+ o @
g_UserMng.AddHonorTitleChange( this, m_nHonor);4 u' K& V7 Z+ ?1 h5 ?( z
#endif // __HONORABLE_TITLE // ′Tà?
* l0 T( a4 P3 d% H }; w2 ]' Z, f. [# f$ f. v* |8 X$ R
#endif // __WORLDSERVER" m P' m/ ^( U% }3 ]
} : k' t( p$ j H1 k/ p/ Z t V2 o
9 z$ D6 E: m; [- Q% V2 c- J* `然后你进入functextcmd.cpp并添加以下
' a; r4 X. j1 P) d' \1 m0 v( K, |; K7 Q/ r
代码:
1 P3 S, s0 K G* z* N1 f2 a4 WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 _4 \. N% V3 }6 u
下面插入( l6 t- h; J* Y# l% w& V, j% R' {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : j9 A7 D6 f6 d# X& q* {5 L2 R
# k P t2 q! Z' B1 g ]" G$ _" [0 H; I- I) N
然后你去
3 S- F- r: X r+ F8 V- T" M# ]/ }7 Y; R' {
代码:/ M0 Q5 o1 ^) `1 ~0 B' W- c
代码( W5 h G- S7 ]: k
BOOL TextCmd_ClearPropose( CScanner & s )
6 T; p# K c% `) e/ g: |9 i- P{
) b0 F d6 E# n# U: X/ E4 t+ G#ifdef __WORLDSERVER, H7 L5 `5 \4 O; Z3 h$ \' V
CUser* pUser = (CUser*)s.dwValue;
2 q; O: X& X* h g_dpDBClient.SendClearPropose();
& l; J9 ]4 e* O" c2 `#endif // __WORLDSERVER
$ [: }; q1 ^* z0 w' Q: I* \ return TRUE;$ L7 Z/ t3 o3 m9 ~/ W5 _) |1 }
}3 s4 M' P4 o4 O# E; g
下面插入( m0 z# j. s/ {
BOOL TextCmd_rebirth( CScanner& scanner )
& c( v+ P2 r4 p4 I8 F- i( p{) D' X& _5 a( }. E3 P
#ifdef __WORLDSERVER# j {* G7 V0 W4 G
CUser *pUser;
% S' [1 |+ j3 m2 \; a0 s fpUser = (CUser*)scanner.dwValue;0 Y7 u) b" T! Q; L4 [- n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- y+ N! `0 I) V) m8 j; _; hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, \6 C; I3 O( Z/ Welse: \! ^4 v& S) M& ?! f. y% [/ n6 a
pUser->AddText("你还未达到重生条件!");8 k9 @# ~5 T! I+ N) _: y) t6 X
#endif
# w3 ~/ H# A+ m& R/ Q# n2 Kreturn TRUE; E0 ]6 {& d/ S7 ^# u5 r
} 2 |0 l/ h' w5 T9 ^2 i# h0 W
! J6 f# D: j; X5 C, s
7 f, z' C; e: X5 ^
, L% A, _ |* m t; P0 w
9 w$ a4 Y$ N) _0 \1 `3 H8 `0 T
|
|