|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 h6 X/ I( v) F; h
P) [) R4 D4 S- J
Mover.h
0 r4 g" I8 B- W代码:' E& N+ f. {9 W' y9 {' Q# m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& \9 o& l' s5 R+ U5 i: }
y) t Q3 W4 F1 R: D' o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 R" O8 J3 B. W3 u* o3 R! x
6 U. A8 ^9 a" G N然后你去mover.cpp添加
; O ~2 h- F5 ~# `3 s. _: Y' t* f
代码:+ f5 v$ L6 ]. T3 j" y3 ^0 {6 W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 q9 X q* O w) ]! ]- E{
# Y5 g, x0 F2 O+ V#ifdef __WORLDSERVER7 ^% N9 u$ W0 D# t+ M( D1 O, _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 l$ X, U$ \5 h7 v
MoverProp* pProp = GetProp();1 I& B7 z' y7 C- a: q/ O
if( pProp )+ m2 f5 P2 q- b
{
0 n9 f3 ~1 Y4 `1 ]! N$ u% c2 u if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; o. W% v# u0 P" ]( C. \5 Z8 M; } {
) M C) ]! a6 Z5 ^ i3 M AddChangeJob( nJob );
! E! j. s1 p. K: X& a2 C, n }else{$ g2 M* N/ \# J1 m/ @$ T
return;. @& X* X: ]0 g# d* K" [
}
1 m# d3 A* T+ q3 o! g( [: g2 W2 p int nPoint = 0;) O ~* l( G6 i, E5 X
if( m_nJob == JOB_MERCENARY )
- t0 r8 m z- x/ w1 [ nPoint += 40;
8 m7 Z3 W, U! G4 C1 @. e+ ^( { else if( m_nJob == JOB_ACROBAT )
6 Q) E* k( y) O9 i0 S6 S nPoint += 50;$ @# {( P" M7 h/ [+ e, }
else if( m_nJob == JOB_ASSIST )
" p. u6 I! N; I% U nPoint += 60;
+ o2 g! S, _! E( G! r0 D8 k$ {! F else if( m_nJob == JOB_MAGICIAN )
# T3 U% A) O: N, n+ y# U& L. P2 s nPoint += 90;+ D7 F" B/ ^5 z1 K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 N; l1 z- U I4 w' f
nPoint += 120;- Z7 Q1 O' T/ g8 }! M6 u6 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 H2 g* l5 o; Y& |2 L' B nPoint += 150;
8 }$ P4 D8 m; S else if( m_nJob == JOB_RINGMASTER )" L1 k0 q+ l! Z1 l' b5 H
nPoint += 160;$ C4 v+ M: V! S/ j- G/ D) o, ~( L
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); U# x$ B! R/ d$ n0 J. w5 c/ f
nPoint += 180;5 W* ^( Z9 O2 z5 F. U- X3 M
else if( m_nJob == JOB_ELEMENTOR ), M4 x1 k# S6 ~5 X0 ]& @
nPoint += 390;
& v& O: k" u0 n* Q1 _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& c2 H" ]. s1 q& m nPoint += 120;7 h( @6 T, N. T/ B9 F
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ A) I6 |% [9 J6 ?' n4 O u
nPoint += 150;7 Y* p) I, Q5 l! y6 ]% O3 [ M
else if( nJob == JOB_FLORIST_HERO )& x( g5 p$ Z1 U4 Y, v- A! v- D
nPoint += 160;
. {, j6 m; O- n# d5 F else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 m6 B1 e$ ~1 l! k& Z% V! X nPoint += 180;, U/ R) T2 p: |# E8 Y4 ]
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 ]5 Z' M3 A: L6 j# q9 x nPoint += 390;! b" C2 J* k& S. _( h
5 A* N* m( Q5 u0 a S
AddSkillPoint( nPoint );
* e1 O+ e1 E/ l# E; _ m_nLevel = nLevel;, I }( ?! J/ `7 T
* d* }# a7 Q. D+ l/ r+ u8 t4 W/ o SetJobLevel( nLevel, nJob );! Q8 G! `* D; }: ]/ A9 e
m_nDeathLevel = nLevel; n1 B' L) V: @ h. |) E
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
C$ O& M1 z3 B4 C; ?' d$ u' F if(IsMaster())
T4 Y* d `8 r L. Z4 N {
7 Y' @$ R n3 T# X/ B% F8 u int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* Z C- T3 w H8 m
if( nLevel > 59 && nLevel < 72 )6 S ]: {) P5 r9 S# {; V% p
dwTmpSkLevel = 1;. S% ~/ n- @3 C
else if( nLevel > 71 && nLevel < 84 ). S: q/ i7 I- w- ?+ S3 @. Q' ^' w% i
dwTmpSkLevel = 2;$ k- p7 `" U m2 F, \* ?- T
else if( nLevel > 83 && nLevel < 96 )
5 r' {# }, }% Q, | dwTmpSkLevel = 3;
: B8 m) Y& w, a& I' s else if( nLevel > 95 && nLevel < 108 )
/ S/ z! h3 B8 r* L dwTmpSkLevel = 4;9 u& A& A' X5 ?
else if( nLevel > 107 && nLevel < 120 ): K$ ~) W5 {, {7 x: s C) U, B
dwTmpSkLevel = 5;$ b: F8 ?& |+ j- w8 }" v7 _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 d5 @2 B( G7 A( D6 F4 u
{
. t; [/ k* T" T7 f/ F# b LPSKILL lpSkill = &(m_aJobSkill);
8 c( ^$ \0 \# r$ v$ G5 v if( lpSkill && lpSkill->dwSkill != NULL_ID )
& D0 J7 [. @4 P! c {6 k6 ^" f1 b2 V2 H* ?% |) n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 Q# T) G, P. C( }+ I if( pSkillProp == NULL )/ ^4 U# b, T6 |4 D2 i/ ^! d
continue;
; a* C( {# s% n8 g6 E4 g; q% P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 M5 z; o0 ]3 K7 e9 X
continue;
( g0 b x; F, \. n2 U+ z lpSkill->dwLevel = dwTmpSkLevel;
- |7 p* b+ G4 h( B- l7 c) i* f5 l7 @ }
2 Z* x8 D4 x, B* s% ~ }, r, ?# h/ I1 z) R$ J
}
! j: Q5 E6 M7 X0 ] else if(IsHero())! \' g% {; W) Z
{* R2 K/ W+ O/ g- n5 p' l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ], P; ]2 g4 J4 W
{ % k+ f4 o: k+ e
LPSKILL lpSkill = &(m_aJobSkill);
6 Y4 R: [: x+ f if( lpSkill && lpSkill->dwSkill != NULL_ID )$ A9 V: `- R. M$ g
{: d; Z7 ~: o W- C2 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( v% G5 M2 Y4 u% |6 }3 x if( pSkillProp == NULL )
$ C5 |7 ~+ y# ]: r$ J continue;
# @# [" }- }" M6 O( q) Q5 J" f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( n* a1 l/ J) ^ continue;% }- n9 d$ l! X. @( g
lpSkill->dwLevel = 5;$ l# S4 S3 G/ X3 l- S2 y
}
: D9 e# M/ g. H* H }
- B% ]2 ]6 w" l: l$ o! U }+ ^2 L( A+ z- S0 K
else if(IsLegendHero()): i3 }1 y2 ^& c" o0 E1 @
{
8 H- F3 l4 a* M5 Q6 | for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 t# W' ]1 I ]7 f. ~
{ . G' u5 r, T) [" G$ j7 ~
LPSKILL lpSkill = &(m_aJobSkill);
% u* [4 H; R3 m1 j& N: }! P3 E if( lpSkill && lpSkill->dwSkill != NULL_ID )7 X: ~7 g$ q5 I$ X4 S7 V
{
% W% _3 w; h. Z- O/ k7 K% V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : X; {1 l: l- N _4 C0 V
if( pSkillProp == NULL ). |" S |# p2 Q# G* c& f
continue;
2 d' i; Q& t) ~" @4 w7 k& {" S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ D& z# e! H; t3 m, @ continue;
\9 q+ o3 F* Z1 v @& e" \ lpSkill->dwLevel = 5;
3 `+ Q( \& M0 s$ c4 i a }" M! ?. E* w# w
}4 k! N P+ |4 K
}
+ L) ?1 U, |+ h- z; V: U/ m" C- n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ |/ J5 _4 Y7 M0 l, w
if( bGamma )3 Y1 v! F+ f' W. e: U9 j
{# Q: o6 Q( M: h) p
m_nExp1 = 0;
4 Y8 f3 \3 B& A9 e }
( S/ d1 D4 ?0 y2 M
& U/ o( m) }7 g% V ( (CUser*)this )->AddSetChangeJob( nJob );- H. D t8 F7 q5 s" j8 ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ V, U: k3 |* p- s! y! I6 D$ U" a7 t) B! S% t/ s4 y- | e
; F- u8 U+ o9 w#if __VER >= 11 // __SYS_PLAYER_DATA0 t3 [0 i% N: j- C7 \+ g: D
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ |& O7 \% s8 q. X ] r; X% h#else // __SYS_PLAYER_DATA: t( x! z; |' v( F0 }. y z( J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 t! r% M3 S4 O7 O3 m0 {5 x
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ v. W# X8 p+ J2 E# G' g$ O4 W( T0 l if( m_idGuild != 0 )
! j+ [( D8 @9 z" E, L5 S1 W g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: t9 D, `1 n( W0 o% x. K9 U#endif // __SYS_PLAYER_DATA$ |- w5 B+ Z$ D' ?% W6 `
SetHitPoint( GetMaxHitPoint() );, Z, U% T. Q# P* s2 K
SetManaPoint( GetMaxManaPoint() );. R, O& E5 q+ }
SetFatiguePoint( GetMaxFatiguePoint() );% M6 Z# S( v0 `8 D5 W) a
if( nJob >= 1 && nJob <= 4 )+ T3 W% l/ `8 J O _
{
3 Y( S6 i( }# @. t$ m9 d m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 ?8 h$ u' y* A# E m_nRemainGP = 28;* a; U+ {, P2 S/ I+ P& R9 e
}
7 S1 y, N; Q' |0 J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 M& ]! K1 [9 J; f6 J {
+ K+ u1 [& k9 |4 X; p( x m_nRemainGP = 118;
. N) R) L! |( k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( G# ~: \/ T) N$ y1 Y: t( A5 O m_nStr = m_nSta = m_nDex = m_nInt = 15;& J2 x$ B5 V. Q( M3 G b
} e6 x, Y) c a2 S1 @, ?! ?+ \; A
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 e, C. H/ C- V$ ^ {
. _% n8 x& Q% l- t6 Z1 K$ u CItemElem itemelem;
9 v, f& v7 F; s9 k! V1 G itemelem.m_nItemNum = 1;7 N: C1 V+ j V! f. B+ M7 t2 c
itemelem.m_bCharged = TRUE;" [- J0 R& U" k% ~, i2 C. n9 H7 C
BYTE nID;4 Z$ |5 q, {( Y. c
( Q9 p* q6 \; \ if( nJob == JOB_MENTALIST_HERO )3 ]+ Z2 F5 O) S
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' k c) S* H, l5 \$ a8 b/ E w if( nJob == JOB_FORCEMASTER_HERO )
7 C! c/ y1 ^9 q/ x: z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' S2 W$ e) U6 L. J4 }& j5 `: s
8 v9 b6 T& B: L' e$ h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* U% K! }) x% R' ], Q$ U& R6 s& H, B }# I5 w+ m" [+ ]3 W2 [( O) Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 P6 w9 s- s+ p @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 m/ \/ Z3 {- n# O; Y+ Q% o& X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 `" f8 {' n W8 J6 Y7 m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& Q" v1 U1 s) U" Z) n9 _4 ` ( (CUser*)this )->AddTaskBar();*/' W& ]' _7 L$ o4 U, K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' ?* A" P* V" w& M/ r#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: L( k& L; H) R1 c7 Y! i. n
((CUser*)this)->CheckHonorStat();( M' @) w) G; F: c' I/ ?# n
((CUser*)this)->AddHonorListAck();
$ W7 z: Y# b/ f+ S' D g_UserMng.AddHonorTitleChange( this, m_nHonor);/ }$ p8 W8 i3 V+ w+ X
#endif // __HONORABLE_TITLE // ′Tà?3 U5 n/ `6 m1 o& p
}
8 q( l5 A ]% i- V6 e#endif // __WORLDSERVER
% V" n5 ] y5 }% @$ t( M4 m, |}
& O4 R, S6 a5 w) w
# k; _1 I( Q+ R( [然后你进入functextcmd.cpp并添加以下
& ]2 T% ?+ ^# B! k) G
2 \( Z' T( D0 V# W7 V7 Z. t代码:5 W6 x/ a: P8 Q1 w' `! ? Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 U% k5 E+ N3 Z; i- K2 H$ [下面插入% I* S) c, w; \& @. a- h0 D+ p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ L1 _& e( x* {
) e0 u A4 x% h! d8 W+ k* M
然后你去
( u4 b: H; a. c$ |1 e
, p4 {- O7 V; Q3 O) V5 z$ E代码:3 M1 [' V3 n9 F5 y0 `# N, G8 N
代码
; D: B) _( d" R& P8 T* k) Y& W0 gBOOL TextCmd_ClearPropose( CScanner & s ). _; l9 d, d- i5 T" l D2 v$ W
{
/ Q/ C0 m" E8 o3 m#ifdef __WORLDSERVER- j- t1 C# m& N' k5 s# s
CUser* pUser = (CUser*)s.dwValue;- \: J. h" ?% u! }1 D% u
g_dpDBClient.SendClearPropose();
* h9 c' k7 {& d" {9 K#endif // __WORLDSERVER
# H& n$ x# I" x- z2 k/ l- h0 H return TRUE;
& |& N) c) Q) z}
7 E8 _$ s2 x, _, D下面插入
! T9 T9 W" g8 X+ aBOOL TextCmd_rebirth( CScanner& scanner )
# `! J" O- Y& y, P: ]{ N( X. P/ [7 J% L& p( S0 V" n
#ifdef __WORLDSERVER& o+ S2 V3 K: t* R' c
CUser *pUser;( L \/ ~% ^; n! U: L
pUser = (CUser*)scanner.dwValue;
1 l- e+ p4 {: K* U: rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 V. D1 _* u! C/ o, M0 O1 Q9 YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% N3 E* K5 f; ?, ^' s& D
else$ f$ I" B. p% @4 _/ U
pUser->AddText("你还未达到重生条件!");8 X8 z6 c j; y& P- [' ~. B
#endif
7 |; z' x& }) V$ l3 Q8 m; vreturn TRUE;
2 D9 T3 \) b) V6 v2 P, u}
+ s- h ]# y. t- d f b+ Y+ v R6 @
4 T M4 d6 Y: j: ]: I* [7 C5 c$ q
6 j3 a- A6 ~, U/ R# w8 g+ S6 U( \. C4 H$ ]/ s3 a0 j7 y( Z4 s2 B5 m
|
|