|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# m8 [: H( v+ _6 K; O+ R
1 c4 g8 s* W* ~' r2 X
Mover.h: n B: D, G" G' q
代码:3 T2 }/ ~ u/ N
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* q* E& U* [1 r" F8 u
5 e' X$ M( E% v9 ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" D# ~) {. m& c$ s) V0 M. E2 J0 {& [$ t0 @5 O# ~) _% C
然后你去mover.cpp添加6 x9 Z7 B9 k: v: _" p
3 ^2 J& Q/ T5 v0 t2 z$ G, S代码:5 Y. y9 y# ]; Z4 I" n3 ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 d' v9 f# Y2 v8 G8 I% y) d, B7 r{
+ u) \4 k/ z# n/ m1 T0 h$ y#ifdef __WORLDSERVER& \1 y6 G! P9 E* _; U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' d! s" T4 k4 `: b MoverProp* pProp = GetProp();! N( ?) J+ C4 y: u- c, W3 O$ x _
if( pProp )
) J: L! \- k' n5 N: @ {
# x! L* d3 V. d8 | L/ z( J2 @0 s, L if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# F, E& |% P( T- g. D! }& T% } {7 r# }7 E" y, m6 ?% r; H
AddChangeJob( nJob );
% x7 ?! c; k8 A @4 Y1 ~$ J) e! d }else{
2 |; Z$ ?: [4 F8 n) r/ Z- h/ [ return;8 k/ ~* |" h1 n. A4 `1 Y" D* P# o
}
: R) U$ p9 j0 f' D int nPoint = 0;8 g' c2 R7 @0 f. Z
if( m_nJob == JOB_MERCENARY )3 W$ r2 s- h9 D* u. N* v1 F
nPoint += 40;
* _; J; }4 a3 ?& y8 k! J else if( m_nJob == JOB_ACROBAT )
4 Y h" b @" G0 Q3 V3 y- w nPoint += 50;- G7 b3 Y% E: V
else if( m_nJob == JOB_ASSIST )0 p9 f& F9 ]% E$ I
nPoint += 60;1 i5 q% W. L1 i! P C
else if( m_nJob == JOB_MAGICIAN )+ i! x# i) }7 m6 |0 ]$ g
nPoint += 90;
% o4 C1 A. ^( M else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 f* Z# W1 j$ l$ O7 l3 J nPoint += 120;+ L# m7 ?5 T0 `, i( R; |0 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) O) G1 _" a- ~0 w \ nPoint += 150;3 J, S# g/ @ i6 D
else if( m_nJob == JOB_RINGMASTER )
. j; c+ V/ b$ O" ~ nPoint += 160;
- C9 n" l3 K8 s8 J4 F' P else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! y G+ R5 u% K7 R: u, M
nPoint += 180;, ?2 |) v5 h6 y7 N
else if( m_nJob == JOB_ELEMENTOR )
% |4 g8 c x' d; e nPoint += 390;
2 p0 [3 u1 p3 x7 w q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% y# s# S4 J4 M nPoint += 120;
+ b* H4 r: s) f, Q% q/ t& U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ a, z1 s% @! y9 M( a+ _- ^0 Q
nPoint += 150;
^9 _+ G; N; d else if( nJob == JOB_FLORIST_HERO )4 b7 \' Y7 U5 t I* ^# k! x! c
nPoint += 160;
% V9 K5 I- } ^& }. `3 O" F else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, N6 O# L ?1 H) a8 E nPoint += 180;
5 V5 c/ z- D; Y9 p3 a' R; x& ]6 w else if( nJob == JOB_ELEMENTORLORD_HERO )
$ W" g: k5 R8 [* U% N$ u" ` nPoint += 390;
2 l1 T, @4 M: ]. @3 f5 \
4 y; w1 M& b* ?- g' t/ r0 i AddSkillPoint( nPoint );
Q; {' [# {9 C% G$ | m_nLevel = nLevel;
f! u) y ~; R2 P+ Y
- @, J \! l7 J: ~' z* y SetJobLevel( nLevel, nJob );3 S' d5 l9 R! M6 i2 ~8 p
m_nDeathLevel = nLevel;
, R" J( }; l* d9 m4 c! e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 }, n4 `( e Y* [
if(IsMaster())3 e: g e+ w) C9 K' b" m5 r4 l9 p
{1 x9 H% z. M8 f# i0 j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; ^/ T: [( P# O4 W9 o5 h3 E. I/ M
if( nLevel > 59 && nLevel < 72 )
* y% _% \1 g% ~5 u7 w* m" i dwTmpSkLevel = 1;2 O- y9 h7 r8 t/ ]/ X, z. |
else if( nLevel > 71 && nLevel < 84 )
3 ~: ]% q" k P, Q) O. O dwTmpSkLevel = 2;
! W) D$ h/ q8 N7 Y5 I5 K& T else if( nLevel > 83 && nLevel < 96 )
2 ]2 y ]0 J2 ~: D: R. B$ `- P' C dwTmpSkLevel = 3;
# j& s* Y& H: X D2 s0 g else if( nLevel > 95 && nLevel < 108 )
* G; E" T& j1 z0 s dwTmpSkLevel = 4;
7 f1 c: h) r5 l) j else if( nLevel > 107 && nLevel < 120 )0 }: L& G8 X- e$ ~8 c; ^# V
dwTmpSkLevel = 5;
6 L/ _' K: _9 X; O7 }9 o/ M for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 m' N( Q; S& H: o {
5 ^* n0 K% x' M& e: @! ] LPSKILL lpSkill = &(m_aJobSkill);$ x, a+ K# v1 Y# d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( Z) `2 c& W! u, q2 `: z {
, [, v* d1 i1 m' r1 u1 K( D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ U. F- o( H* Q1 F if( pSkillProp == NULL )" ]0 G; x+ e, o( Y5 S
continue;
& G. J$ x6 G+ {7 ]0 R. U E) y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) C( s, M ?' @8 c) P continue;# H$ y9 J, P, H) ?& F% Q
lpSkill->dwLevel = dwTmpSkLevel;
( U( M+ v0 }% z, h" f! B0 e }0 Y" u% h4 d+ j- w, E0 z
}& |" w! A+ J m5 U) u
}. @( t+ a+ Q. t3 L$ Z
else if(IsHero())
; M/ v% O* s8 M; L# O {
1 R: L0 _$ B* H( p1 w+ ?- ]. r for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 r; r$ ]( j. A9 }1 k; c) F% y
{ . i& N9 X% V2 h- C: ]+ y$ m
LPSKILL lpSkill = &(m_aJobSkill);: d# K. L! }6 M0 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 @! c& P, _, _3 p. {
{
b4 ^7 d% n/ f. A h* T- [) H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- o% s! r2 [/ v2 V if( pSkillProp == NULL )
" J* K& |; r1 L0 D/ M0 a8 \ continue;! \2 ?9 r2 F2 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 D0 E" p4 n$ ?
continue;
- q9 H! U' h# d2 k2 ~ lpSkill->dwLevel = 5;
0 |2 O7 }0 ?' k6 S }
/ J9 V8 q5 [' j) j# E }
) Z9 Y* S6 X" u+ m8 T4 L3 [ }! t8 i$ ~, @1 b1 f6 s$ C/ f5 E9 |+ i
else if(IsLegendHero())
3 a- Z K$ H9 P6 R1 ?, \ {- `2 ]% a& J: k% L* r8 m6 a; ~9 K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; S& f2 D) F6 Y) g k z# F) | { # u+ c4 j6 G f- q
LPSKILL lpSkill = &(m_aJobSkill);
" \% m$ n( G1 t5 e# | if( lpSkill && lpSkill->dwSkill != NULL_ID )
, E/ N$ s4 N, b2 J5 i { q. K$ o- V( Q# U5 p$ L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( n- j p6 P) u) W# U
if( pSkillProp == NULL )& ]0 d7 o9 C! g& m
continue;
3 w- b7 c! u# V9 m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% r O( X+ B# y. T$ |& d6 _ continue;: }8 X1 P$ d8 R7 x+ O
lpSkill->dwLevel = 5;
0 O# I8 J$ h4 O% J }( a6 g% t& |0 y$ Z8 [, e+ s6 H% |9 Q
}
9 y, s4 t; W* E% p1 k+ h/ R }
" S; R+ E$ B2 r0 r6 ?! L: a0 Y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- g' B' [ w$ c" ]( j1 j
if( bGamma )
$ C4 D* B0 J; ] K0 k {! v9 s3 @' n! y5 I
m_nExp1 = 0;3 \, E2 [5 f2 Q- r) P9 {; q. p
}$ x1 }3 ?$ D: a9 T8 H, W
7 x; u6 V' ^& J+ d8 h4 f
( (CUser*)this )->AddSetChangeJob( nJob );3 }- l% P6 S/ v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 P8 o. m) R, T1 `& n
' C- R, j. z: I+ Y g. ]/ F; @
x$ Y. F. }: n3 `: Z7 o/ q, @#if __VER >= 11 // __SYS_PLAYER_DATA
1 R6 G5 @! \' A8 W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 v8 {. j9 S% M) e#else // __SYS_PLAYER_DATA
7 k/ B) ?& K! d# e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 T3 a- K+ t3 G- c$ ]; A! E8 o+ d g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); h0 J- _9 h1 U# X! Y
if( m_idGuild != 0 )
' U4 R$ f9 i& `# F+ i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 [+ I) l3 ]0 `9 r0 w
#endif // __SYS_PLAYER_DATA$ w% u* ]8 E4 l" r5 s8 c, t! F/ V
SetHitPoint( GetMaxHitPoint() );1 T6 h* @ I1 C' q$ ^5 S4 F
SetManaPoint( GetMaxManaPoint() );, M' A/ Q6 ~% L5 H1 H) ^
SetFatiguePoint( GetMaxFatiguePoint() );% E" p* @0 Y; @# A9 h ]0 N
if( nJob >= 1 && nJob <= 4 )+ ]2 Z2 d( e! G
{, D& `! k- o1 t5 H4 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 S6 S. E2 T( j* S7 l. h& S; P. C m_nRemainGP = 28;
+ h+ b+ {( \9 J o% W; a }! d: k: E- u8 R s. \' x8 A2 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 l6 M; c6 }% ~7 U% \# | {. r; }# b2 i# x' ^3 Z
m_nRemainGP = 118;
9 O% |) O6 r& K8 l4 s: a H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, w8 u9 {+ M: R1 R) i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 P4 Q. X( D; R( a9 d8 w; ~0 u }
, L0 M) m% t: D4 V! D- W: n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); i6 F8 g2 \% A% j
{3 t* Y1 g3 J8 V( i% R1 |9 ^# U
CItemElem itemelem;
* u6 u& `. c1 X& j" Z6 f itemelem.m_nItemNum = 1;) i$ s+ ?- N6 ^6 D3 S/ m" v
itemelem.m_bCharged = TRUE;0 n8 b+ }, Z( ~4 S4 I
BYTE nID;
6 p& Z2 q) Y( s1 H# U- B9 K; f! ^2 @/ f, O" b! G* q
if( nJob == JOB_MENTALIST_HERO )6 Q0 \( o7 _# R7 n, Y9 [& w$ ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ E' d- x% b' }5 T, K2 B
if( nJob == JOB_FORCEMASTER_HERO )7 H% B/ F) m! C2 ~! d& n6 C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! Z( _* n3 f4 t/ K# ]6 |: C8 V7 D$ l7 j" ~: Y# f" A
( ( CUser*)this)->CreateItem( &itemelem, &nID );0 l5 ~% G/ O. P& Z, G9 ^
}
% S+ e& M% U8 { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 c4 B4 A4 H( k" w$ d8 _ M% I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: V* x3 T9 S; C- w4 n# o& \ C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 @( t$ p5 u# W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" T3 V- f& e0 W8 ~) `/ Z$ m
( (CUser*)this )->AddTaskBar();*/
, ^) c; \2 [7 K/ T# K2 E9 F/ K ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" p$ L' B7 o8 W. b3 Z+ L) O5 F5 q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 a1 {9 b i0 W2 K5 K( I; [
((CUser*)this)->CheckHonorStat();' d7 Q* E1 v" o! d4 y
((CUser*)this)->AddHonorListAck();. P ~9 @* v: i" _+ | |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ z: l5 H4 O" C& l3 c- F#endif // __HONORABLE_TITLE // ′Tà?
% `5 F. L- i: Z }
9 }) u7 o7 G8 L#endif // __WORLDSERVER* x- d, U% X( b3 `# X3 y5 q
} ( O+ R& K, u3 X5 }+ B7 _* I
6 Z1 @( O1 M( X" t6 B然后你进入functextcmd.cpp并添加以下
* @" _; X8 z# |- V: W; s6 z! N( \1 \/ n8 A* q e
代码:
0 S) f7 C, N4 t6 QON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( u2 D+ s L0 l6 s2 V下面插入" C1 z* [/ m. F. J# z9 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; J6 w2 V4 y! F9 X% }) F4 A
4 o5 D3 V) z6 x% |1 c6 [# I然后你去
) c) q0 N2 i; Z/ ~7 h5 C
" ^ S7 e, X l ]7 h- e代码:
1 u8 e+ c- s; d* [代码
: n+ N& q# M& ^7 w. _# WBOOL TextCmd_ClearPropose( CScanner & s )
$ [9 _. `3 z0 Q8 h; }{, W8 `# ^0 P3 G! @2 s& _: c
#ifdef __WORLDSERVER
- E( x% k6 o) k4 m0 O1 @6 A CUser* pUser = (CUser*)s.dwValue;
6 {8 h5 l4 y" v! y) r g_dpDBClient.SendClearPropose();! s! G5 c& d5 g
#endif // __WORLDSERVER! e1 K* v9 G# ]7 @, o) J
return TRUE;; R$ b2 v: c2 r& d( l
}
7 y6 G! {* f/ I下面插入
0 b' u' ]: f' c* ^BOOL TextCmd_rebirth( CScanner& scanner )
. _- t! c+ Z8 k: U( u+ I- G{4 S6 v0 D1 Z* Z( L) X& w
#ifdef __WORLDSERVER5 m" `+ l4 h7 K1 ?' M
CUser *pUser;
2 O$ w7 H1 Y5 J/ f5 W) ipUser = (CUser*)scanner.dwValue;
' v/ V; C0 s; k( L# x8 Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! ?2 S6 X$ m3 _: ?7 r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% b; _% b7 e0 X" K1 Q/ `0 ?else
# W# @3 N0 J/ j% y' x- T. opUser->AddText("你还未达到重生条件!");6 P- l% z) H" W/ H, x5 t
#endif
/ ^+ {7 V; _2 U( i( I+ o5 d% c4 ^7 sreturn TRUE;
% I8 Y& Z& O( Y8 H0 n}
0 v9 K3 {7 M/ v; |( a- V
; i& X9 @/ _ ?+ g* m) i x" ~) J
4 H" w3 J: ~# o+ B' l0 j5 N& o7 e/ A* N
) M* a5 ?! L" F6 ?2 A |
|