|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& P# }0 z! {' e7 S2 S4 i
. x1 U4 A: T0 r! L' A4 j
Mover.h; h- E& M" o4 L' o2 J
代码:! j% [9 l' \, ~- b! M
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# L2 k7 [, z3 }( O) B' }
) h9 `0 O) e3 Z. N( A3 j q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , H3 [" C+ Z5 E/ j# {
" D+ g& C- V# R! ^* s然后你去mover.cpp添加
2 L% Z! B* V4 L1 H+ F* V+ E8 @: W) M' H( N
代码:
4 h) e3 s" S3 F) {% C3 }( Wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, ?# x. r3 w5 p{2 f4 t) N6 _1 A! A/ u" R5 L& N
#ifdef __WORLDSERVER& E# Y6 {1 p# R" p$ J* @' _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& H. O5 I0 Z* F9 T! P# |& e5 g% [ MoverProp* pProp = GetProp();7 A+ X! J3 _& C
if( pProp )& v1 @* ]8 P3 w8 H3 }' C
{
5 _& G; |4 |$ P5 ?( [# { if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 C( ] a& o4 G+ q7 z1 h4 r" i
{
1 i( g' Q- h) o) k4 E$ K5 V AddChangeJob( nJob );
; V8 | p4 G, A, a }else{2 C( s& \% y5 |
return;
, X7 j7 I; C/ D# o }
M4 P7 \% X2 ?# b. c! i int nPoint = 0;
9 W7 {, W0 I' M if( m_nJob == JOB_MERCENARY ): K3 U5 `7 f6 F B
nPoint += 40;) v6 F( e2 ]; ^$ @' E
else if( m_nJob == JOB_ACROBAT )- { `0 R7 F* a2 o
nPoint += 50;
, N2 Z1 ~8 t# l else if( m_nJob == JOB_ASSIST )6 }$ e4 S1 p4 u' {
nPoint += 60;. w+ j: @' k' B, ~( M6 }
else if( m_nJob == JOB_MAGICIAN ), j% O n, q+ W* F
nPoint += 90;( f/ Q) ?+ B A7 O' j' d6 ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). ~) g0 L* e- r2 T
nPoint += 120;
' J" Z& [7 j1 Y/ r% k e else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ b( y, L1 E' Y& O/ { nPoint += 150;
# _" N6 m" Z0 R* b/ C5 [ else if( m_nJob == JOB_RINGMASTER )
! R. p* c9 q3 F }- Z7 G" y nPoint += 160;
F9 p/ S3 i' v1 a7 T7 \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) @+ w" s! ^- {4 i$ Y( P4 G7 g
nPoint += 180;$ {& R# g s: O* ?" @
else if( m_nJob == JOB_ELEMENTOR )
& G( ?0 d* U$ X* q nPoint += 390;
3 {2 L2 {0 I3 n4 J3 o& H& z$ J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, \4 I! X9 }& P4 g nPoint += 120;2 m) \4 \$ Z6 V7 l8 ^! K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ ~! i! P5 ]" {; O" f6 Y( E
nPoint += 150;
% t/ f+ G9 T M( u* L else if( nJob == JOB_FLORIST_HERO )
% X) t7 j* O% W* S nPoint += 160;! [6 _9 X$ z5 b: O6 H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ v) r2 S4 ~ i/ H: `& [
nPoint += 180;+ V# u' ~" Y' V9 t3 w' V
else if( nJob == JOB_ELEMENTORLORD_HERO )
& k2 @0 q4 @* Y0 G7 f nPoint += 390;5 x' I9 n; a" K+ J) |
/ @6 Y4 M2 q D( i$ Q2 s! X; x AddSkillPoint( nPoint );1 m( Y6 M/ ~4 R" Q4 H
m_nLevel = nLevel;7 \7 @8 i' `% k
, p" X4 K* t+ w SetJobLevel( nLevel, nJob );
% H& m/ P2 a0 I m_nDeathLevel = nLevel;1 f0 r! W5 E. ~% o0 g# m3 d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 |' e& O9 R" d1 M) L4 {. _
if(IsMaster())
s: Q" r8 _# ?. k# a$ q {
( I) f" v+ _' l5 ?# Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 j8 ]5 H; X, e- S& y if( nLevel > 59 && nLevel < 72 )2 r8 Y! g6 Y X
dwTmpSkLevel = 1;
# ~- v8 K/ N Y% }. x) R else if( nLevel > 71 && nLevel < 84 )
( F* ]* u- p; d$ s& D+ r0 M dwTmpSkLevel = 2;, M7 T: W% `$ N, {
else if( nLevel > 83 && nLevel < 96 )
7 l& ]5 `- ?/ k, a; i# n% {% q dwTmpSkLevel = 3;9 n# P6 J5 ?1 w. r' \( J
else if( nLevel > 95 && nLevel < 108 )/ h! R# x7 j# q2 \( ~3 p
dwTmpSkLevel = 4;
( C0 X8 N v- f) y) c: `6 K' E& E else if( nLevel > 107 && nLevel < 120 )
2 H) h6 S) |* c* s2 e/ o& Z6 f( G dwTmpSkLevel = 5;
) E& `2 j/ H. m for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' B4 a6 I- h: Q0 z5 `
{
" f( O9 k7 K1 t) o/ ?/ A LPSKILL lpSkill = &(m_aJobSkill);/ s @5 U* |7 ~* g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 F2 f9 Y& M# }8 V8 ^0 j: l9 x {
# o5 t- F0 A6 t5 _+ j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 } }. \7 h* h3 m! b if( pSkillProp == NULL )
9 I- Y# p8 }0 f+ w2 ?2 X continue;
, T b: |. U& ]3 |: a) I" h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 e2 ?+ J2 r4 B2 E% X6 _ continue;
$ b6 V+ m# a8 D% _ lpSkill->dwLevel = dwTmpSkLevel;' N$ E5 u! d$ t) P
}. M6 @( Z0 v& Z9 W! h- s
}
, M, N, g4 n( @" ? }
8 f) e+ |( l3 k( z/ Q else if(IsHero())
i ^* @0 }1 N# v; D {
9 q l. P5 ]/ c& F. z v. F+ i for( int i = 0; i < MAX_SKILL_JOB; i++ )
r# a; k8 |( P/ A+ n! J {
4 s7 e) O8 j+ H+ j. } LPSKILL lpSkill = &(m_aJobSkill);
: P8 c0 n% K( R* `8 C if( lpSkill && lpSkill->dwSkill != NULL_ID )
% g) b+ h. U7 R) l" _3 K {) Y7 p! l. ?; D" Q1 f4 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , a2 i% q5 h( B3 S
if( pSkillProp == NULL ) q; F5 n( U+ h8 r" T$ z
continue; H/ f0 p4 i) g( g) n, z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# c( P- @3 D, S, F7 D
continue; Q' N) {0 T, h" [" v4 E6 y. `+ W
lpSkill->dwLevel = 5;
) |& Z) _9 C5 t6 L3 A }
! j' i5 _- \. K% T& q: I: o4 o5 L" P }
$ d+ y: u' \( u }
1 D! M% h8 C( J' i2 _ else if(IsLegendHero())
* D' M! k+ j; B% C& H4 w1 q2 Q {
/ H. z2 ?) {$ f5 u- m3 c5 Y, ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
' O4 U, n$ n9 \' r { 1 k% S, a& F6 f1 ?/ }4 B0 P% E3 Z
LPSKILL lpSkill = &(m_aJobSkill);! c1 X$ G- O- _) `# ^. Y. O& y1 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ b0 b) w0 ~, A2 A2 X( W. B2 W
{
! Y7 K6 c; t2 c2 ^ K2 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , G) l+ Z2 ^/ a+ ]& F
if( pSkillProp == NULL )8 r+ C4 F: i D
continue;
! \; [/ V$ V# y# d+ G if( pSkillProp->dwItemKind1 != JTYPE_MASTER): {( Y/ o0 r' X" ^5 }
continue;; k0 N$ t. }( d/ y s- l( o _6 Z
lpSkill->dwLevel = 5;4 g+ u' d9 o4 V8 R5 c% @ J) L
}9 W+ R+ |; x. t
}# p/ l+ | ?! z3 {) S b* M: M$ m3 |
}5 F5 J l1 B" L! b0 A
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' E7 F/ _$ I m7 q/ z; z8 r2 G if( bGamma )0 y; F; m; A6 ]% n+ ` t) D+ J
{0 \7 I# T8 K3 P2 E j: N; x- p6 X
m_nExp1 = 0;
& o8 [$ ~! ? z% O' c# b* K5 j( Z }
# D6 e" ^) _7 {5 @/ Y4 G- S9 i/ b
( (CUser*)this )->AddSetChangeJob( nJob );
% Y- ], h; ?. s+ ]* y$ f1 D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
L9 s; \* `8 G! |
9 W! R& ^8 Y6 {# a6 \5 a/ w8 w6 I$ x `: H9 [
#if __VER >= 11 // __SYS_PLAYER_DATA
7 n- Q+ h* Y% V: g, C j/ X+ { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 Q' o+ H6 F# L A- B- c
#else // __SYS_PLAYER_DATA
" G$ i: ^6 M6 X; t d: T- h/ \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 T% H! T4 W) [# a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 S r# O; K3 ]
if( m_idGuild != 0 )3 H# C' T" |( J$ C6 e' m; J0 c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 A+ b8 f9 W7 z
#endif // __SYS_PLAYER_DATA
V2 T. U& l5 ^, K/ a SetHitPoint( GetMaxHitPoint() );
0 g' K7 C. s p3 r' ]; V SetManaPoint( GetMaxManaPoint() );
8 ?. d0 Q$ ~/ }1 A; P SetFatiguePoint( GetMaxFatiguePoint() );0 `, V- ]& @, W: A. l" o
if( nJob >= 1 && nJob <= 4 )
$ H: w% w7 \; Q5 s9 V) X/ l4 R {+ F- P3 m6 I0 h* Z$ @" e' K" n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
r/ ^" Q$ \ B m_nRemainGP = 28;
1 w @7 S, v" K j& h) ~; G }1 }; X, N3 K/ T$ J( I
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 t: n- `3 G0 d# @, S7 T% j# B1 x {2 Z5 X8 ~: f( g# G+ ~5 M3 R
m_nRemainGP = 118;: V1 O4 f* ?. E( s; l6 a! g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 O" {# b- @: I9 V# g) Q: ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
) l' r6 @4 R4 S) c- o3 } }: g- O4 b) J$ e1 t' \/ X: l. E2 o2 s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, h7 ?/ O+ Q) O1 n9 m- a& V {
7 f6 _$ B1 z$ W" a! T _' w CItemElem itemelem;
7 t& i7 R) i" P4 M7 ^ itemelem.m_nItemNum = 1;
. j% ] s/ H+ p( F3 ~0 L6 m itemelem.m_bCharged = TRUE;0 z0 D, [& @( ?4 O3 |6 G
BYTE nID;( m- k4 n" u* @: a7 o1 w* z M
# u4 q* [* v$ S) b- J if( nJob == JOB_MENTALIST_HERO )
7 @' y9 h! Q( q' s7 k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 r' h' {: ]& ~+ v1 a) x: |) p1 k
if( nJob == JOB_FORCEMASTER_HERO )
* F$ r% ^9 W; G0 U: M' f itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 G \5 b5 X) O# a; b
' \; B! M3 R" ?1 l$ k4 i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# n# p7 j3 I5 t# @) q }$ u+ M) L+ I! l6 L* H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( ~* k/ k. E+ D8 P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 J. f9 U/ C5 d/ ~( t ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. s3 Q. ]/ V7 ?" Q; A) H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" x* z _0 L+ m, |3 F3 i ( (CUser*)this )->AddTaskBar();*/5 a0 P; q' D& X! r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& X; X5 B% a3 G' G% u$ T/ \; S
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 P& H* D9 R" } ((CUser*)this)->CheckHonorStat();
* M3 ~# P, p4 K3 ^* y* |( n6 A) ^ ((CUser*)this)->AddHonorListAck();$ y( i' j% l& v# G( u& |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
? |8 u9 F2 y' H; F#endif // __HONORABLE_TITLE // ′Tà?
9 p1 o1 Q" O; T: C) S }" {9 `8 v* r8 A9 J/ v9 N5 Q) f
#endif // __WORLDSERVER; I1 H; {: ~" e. b$ f' |; T3 J
}
1 S" g) F, V! g1 p4 J
3 I P0 u# f0 y, @; |/ }然后你进入functextcmd.cpp并添加以下 w) e, B- f( h) T# v+ F, @
- {- L9 V$ G, |1 ^# Y2 y" d6 s( I
代码:- N) b% Q" l" s: W# n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' ~0 G0 J& {6 q" h. @
下面插入
3 E2 l5 {- Q0 K* [( e k1 i" WON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + K/ y- A; y; {$ U
: Z# c7 z) n# |- f; Z5 y
然后你去2 d6 s# k ^3 ]. [- }' e7 c
2 Y- j5 {" B5 s, m& D代码:
& D6 ?* x3 z3 h代码) n( j. g$ v! U( w1 W
BOOL TextCmd_ClearPropose( CScanner & s )
: \; [# N" D9 I8 j& g; L{9 O5 {, U s& R; g' o
#ifdef __WORLDSERVER
4 a* H: ^% N; d4 o3 K4 } CUser* pUser = (CUser*)s.dwValue;# N; o# o* _- ~
g_dpDBClient.SendClearPropose();
4 Y( ?$ K7 V' j/ l( P#endif // __WORLDSERVER4 B# p$ S! Y* W8 g% X) ~; y
return TRUE;* z+ s, Y, i0 e* F: y" P
}; I: ]! U; L8 b: g: ^1 u
下面插入
+ e6 d3 O0 V, M: a' k' \8 V2 VBOOL TextCmd_rebirth( CScanner& scanner )
. a3 s2 g7 F: W! X# a |. J{1 C# U5 w; K& i
#ifdef __WORLDSERVER
% U4 n6 A0 ^: k( b" fCUser *pUser;
: ] N) G, T$ o! o* q+ K4 ppUser = (CUser*)scanner.dwValue;
8 ~7 h# r+ O& U. Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& T" _, k8 G/ m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 n; t# F# d+ t# o
else0 B: N+ r) L# @ R2 i+ F6 r
pUser->AddText("你还未达到重生条件!");
7 ]1 y. M! Z y, X* c# P#endif
3 z2 |/ U7 v$ R# d% Treturn TRUE;/ F1 k5 Z2 E. l! g! a6 _
} ' m, [& k7 e( d$ x
. C3 p( }. w( T2 o4 c$ \) ]) l7 ?% l+ ?6 M3 ]9 S" X8 T
! B8 }+ q2 b0 q/ N
" A+ o% q' ]& M1 C h. b- m
|
|