|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 h, h5 _1 q- s2 W/ A
! K! x! S4 r( A, |
Mover.h
6 q3 C* {" n8 ~2 k3 E代码:3 D1 }7 G6 a2 x1 t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! E( `6 t( C% J! H( C, W
+ Y! v5 L$ _3 W: G8 U' H5 X3 p b8 {/ o' y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # p* M+ t/ h4 h, l: [& H; R0 @; m
$ F7 T3 g$ z* I& l- i
然后你去mover.cpp添加4 ~9 K$ S. w0 M% L" H# o
' u" H+ p5 r, M6 } x) L
代码:3 A6 d8 H0 U# P" c, H3 D ~
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) Y" m# |$ _, }. D2 y{
& T% M# o2 Y% f# R! q#ifdef __WORLDSERVER
. j' y: s2 @" h; Q/ l. O1 Z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ M+ | q0 I; J0 ?' J MoverProp* pProp = GetProp();
+ k- F# w( B" B! Q1 p( Q: H% ^ if( pProp )
: j; Y3 Z9 f6 G% P+ S {) j6 j, W: `; a, }: ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ o. K$ y, d3 I- C* q
{; z" W7 D2 o* |% Y" ^- d
AddChangeJob( nJob );* g$ U2 D) ^) r" K
}else{
3 g! s, u; C/ e0 m' m return;6 @, d1 G/ T% C
}% a# B# B6 ~+ b& H
int nPoint = 0;
a' d: f$ _5 B/ G @ if( m_nJob == JOB_MERCENARY ): Y5 q$ p& E& ^" U0 L) X5 f9 w% ~
nPoint += 40;/ y+ ^4 a U! X+ Z! D
else if( m_nJob == JOB_ACROBAT )
- C6 K# ^5 F+ B h6 C, m nPoint += 50;
3 W t/ h1 R5 u$ | else if( m_nJob == JOB_ASSIST )
; W: V0 E a0 p) j( _9 ?' f1 [3 k nPoint += 60;
3 H% |4 M" o3 }0 b" I6 X# R else if( m_nJob == JOB_MAGICIAN )
; }3 d9 Z6 H% L- x nPoint += 90;
4 X+ x5 _9 u, M/ [ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 d! @4 z# k8 K0 ^. C nPoint += 120; ]( ~ d/ u9 Y( a% \2 J: B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ l" r2 h! v" p. r& Y% j# ?
nPoint += 150;
2 \- s0 Q+ W" o- F else if( m_nJob == JOB_RINGMASTER )
# x2 A0 U. U$ a- |/ ` nPoint += 160;
1 B7 V" G6 j1 ?3 ^! } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- w) ]* I9 u5 q: A5 A; K9 J
nPoint += 180;
; J! P# M2 C% ]) H else if( m_nJob == JOB_ELEMENTOR )) @: J7 a! l& z9 J0 J
nPoint += 390;
$ s; m* u* k' K4 J5 f else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! w- }* F' `/ c/ i# ]( A( [
nPoint += 120;
% P1 t9 n: W- L4 ]5 D" _) S- E: V else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 V' Q+ S6 h0 C% X, ?, l# K* Z
nPoint += 150;' w% u0 n/ p2 l: w- T- n4 s
else if( nJob == JOB_FLORIST_HERO ), W1 j4 g* ~; `. ~- ]% I
nPoint += 160;: j) U1 B6 f5 P- \, d1 z6 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 f5 M3 v" A6 y# d
nPoint += 180;, A$ v( }: B5 D* K: X. f+ _
else if( nJob == JOB_ELEMENTORLORD_HERO )4 H. G# J0 T+ K. f- W
nPoint += 390;
/ A: [5 D4 x1 Z" r, S4 l' Q* E7 X8 j$ P' \
AddSkillPoint( nPoint );. I p M: F& `' C- s2 V
m_nLevel = nLevel;, ~' u( b8 k0 V6 y( c* y. X
1 `: _( C) m* w( r C8 e
SetJobLevel( nLevel, nJob );4 F# {* C$ q5 W! \8 O- X1 ~
m_nDeathLevel = nLevel;
1 s; s# c, l4 w9 J: g( e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 N' N8 q! m+ t+ E& C if(IsMaster())4 ?7 x6 m! o7 \6 t# G# ?. t( f* ?' w( W
{
4 X) L* g3 t) @ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 o' F: o! @- E4 c" ?
if( nLevel > 59 && nLevel < 72 )
2 g. P& b! p; J6 Y dwTmpSkLevel = 1;+ J% J2 ^. z6 N/ e n, ?9 T* U
else if( nLevel > 71 && nLevel < 84 )
9 W0 x0 h# e: z dwTmpSkLevel = 2;6 E3 c1 C) }3 A
else if( nLevel > 83 && nLevel < 96 )
) C. A7 ~4 ]" k. a$ @ dwTmpSkLevel = 3;
1 g( I" o* h3 i% |, Q else if( nLevel > 95 && nLevel < 108 )
8 r7 D' G) K( _0 X. ^ dwTmpSkLevel = 4;/ h+ }+ G# ~, _
else if( nLevel > 107 && nLevel < 120 )
, }) `: J/ k0 [" `- a; l3 O, m dwTmpSkLevel = 5;! n* v/ k% i: e4 K% b3 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. K% b/ q$ N, U {
; I1 H( p. p7 }# m$ z. q5 ] LPSKILL lpSkill = &(m_aJobSkill);& g5 _8 Q* e$ N) F& q7 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )- r' _. m( y1 I' O$ O/ {
{' [* K( V9 e: _' j/ }7 R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 z) c: ~& e/ \* E# T/ \% W" d
if( pSkillProp == NULL )
4 F4 Y1 J6 L5 \3 w' a9 I continue;
' J8 ?( a) C- N) s0 w& l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ H4 A- u' j0 L) `+ S; W, ?9 w& a
continue;% e( H, `1 |3 H! p0 R
lpSkill->dwLevel = dwTmpSkLevel;
7 S& F$ r( u, q) b% I& j }
" T) ]5 a9 I0 v }
7 R' H$ b) d) z2 r3 S$ Y& ~ }- g. j, m0 X# \2 _
else if(IsHero())* ?) ]) L3 m! u, ~6 \4 _+ M
{
- a. `8 N( M, t5 J4 W# j for( int i = 0; i < MAX_SKILL_JOB; i++ ) % x; \- v7 t# G
{
$ B' {9 a: |0 c3 k/ V" ` LPSKILL lpSkill = &(m_aJobSkill);
9 |; C$ \4 p9 E, d& q' B q! _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
- M+ r1 C/ g: K7 m {
' a! K' Q7 c0 Q, r5 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # x# A& c& m& O& I- k! F+ s% Z7 Q
if( pSkillProp == NULL )3 x7 X& U( d" U9 f' Q
continue;
N; y; C9 F6 u C9 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, @: [4 i3 l, w' }4 k& W continue;
; `) h: ?# |% f+ y. s9 z# Z lpSkill->dwLevel = 5;
/ M2 \3 c" ~ \% ~ }
. d, g9 [8 M2 R! f }
4 s/ t; q5 t; y% y1 U }3 l0 v5 K, C& ?5 H* e3 H0 b
else if(IsLegendHero())$ ^! s) j [6 h8 q
{
! V9 J S6 A* n" e for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 H' h6 B% c ]9 ]! J1 @
{ ; s4 X# {: E3 l* Y% X7 @; H
LPSKILL lpSkill = &(m_aJobSkill);
7 y& T, q/ u. D# h: { if( lpSkill && lpSkill->dwSkill != NULL_ID )
! w, }+ x! x9 d. j5 e7 L/ H {& N1 Y8 |6 x/ w+ D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ W8 |3 K* ^) J3 F if( pSkillProp == NULL )
- X5 T7 W* r% h continue;
, S* R2 |% R3 J% b6 b$ @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER) t4 E# _4 [4 l; m+ y
continue;) V6 `# Y" E4 v+ P+ ?2 Z: \
lpSkill->dwLevel = 5;: j1 \( Y/ W$ p" E$ g$ h6 c5 \
}/ ~; p: v6 X+ C( y8 g
}
/ L$ \/ \( b3 c' p9 a }1 M8 Q; g9 g/ Q& S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 K d& L z" I4 C! }
if( bGamma )& q- {) {8 e5 L2 M# r
{
; G& v0 |9 j+ ~' D0 Q# K m_nExp1 = 0;
# R! ?' {. S, O l5 q }5 p; g0 l0 G, u/ D& O. w
W4 l; m) f6 R9 U ( (CUser*)this )->AddSetChangeJob( nJob );
/ f3 w7 F& n" Z3 O: `4 z# X g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 n3 Z7 g, m" _- ]5 A5 u4 ^9 D* y* Q( z
: `0 y5 `! U/ e* x#if __VER >= 11 // __SYS_PLAYER_DATA
' j: T7 `" n m5 r, b! J" ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% f: }( F, |& q5 y3 |% h: X
#else // __SYS_PLAYER_DATA
& O# a: _. X: I0 J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
r& P' [0 p2 E: m+ { F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* N; H! c& l- f# E3 X% {$ m
if( m_idGuild != 0 )
- \6 _# `, w$ f8 i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. X {; ^$ a1 j6 ^" b1 b/ j#endif // __SYS_PLAYER_DATA4 ^" }7 u. J" \( a+ d! S# C2 [
SetHitPoint( GetMaxHitPoint() );& o0 C8 t9 g7 m C$ D# J
SetManaPoint( GetMaxManaPoint() );
0 B8 r# G8 t0 a/ p! r0 q" M1 Y4 K SetFatiguePoint( GetMaxFatiguePoint() );. L7 d Y+ I) |( W+ O- T7 V0 i
if( nJob >= 1 && nJob <= 4 ) T3 R* V# Z; R& S# m3 A; L, E
{
2 F2 e' n) n& `' C0 ?' R: z m_nStr = m_nSta = m_nDex = m_nInt = 15;
( {" k+ O v' R* n' k+ o6 ~2 C9 y m_nRemainGP = 28;: O- t6 w- w# V) w$ o3 t. _8 {
}- b& q7 v# q l& \% Z H8 A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 p9 Z! H% [. G1 ? {2 n# Y6 T; X+ t P. x
m_nRemainGP = 118;
6 v* @. R9 m7 E* ]: M9 b //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. _: n0 M/ s2 W m_nStr = m_nSta = m_nDex = m_nInt = 15;( [' j& I2 R# ~6 N+ g
}
( z$ l6 d" Q1 j. C if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" b b0 R3 z: B
{0 p! y& W, a( U F& S) _
CItemElem itemelem;
: [+ p3 p) a! [ itemelem.m_nItemNum = 1;/ G1 I& \7 g+ ?) n% t% d
itemelem.m_bCharged = TRUE;
' N# V- ?' {# O+ E) [# @& x1 L8 S1 @ BYTE nID;* B: w n$ U1 r. C' L0 |3 k
3 K9 x3 |% U/ T/ [% D6 a* [ if( nJob == JOB_MENTALIST_HERO )! H+ `' F" R1 M( P: }; u! a* w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" s- u; E0 h- u& P; E0 j if( nJob == JOB_FORCEMASTER_HERO )
. N) H- H" b: s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. M j+ A' c, M0 G# h
) L* q3 s- r0 U3 g ( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 I& \( s# f$ l! D3 w }
5 j0 P, t* H, ~ A2 u4 X( v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 T& d2 p/ i- m' n2 C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 X4 D; h5 a( o- ^* O
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. S+ B- G8 R; Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );1 Q- |" g" p/ F' Y9 U5 a
( (CUser*)this )->AddTaskBar();*/
+ c+ f- v! K# L: |5 \, Y5 ^# F8 S ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 q* ~# E# \; ?) H/ E& D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) V: H0 v5 V; M# V- Y5 k# H ((CUser*)this)->CheckHonorStat();+ |0 D9 j- _/ c/ Z* h
((CUser*)this)->AddHonorListAck();9 Q/ E `( a3 v# H" K+ q3 q( {
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# \; C! @( c$ n S( W#endif // __HONORABLE_TITLE // ′Tà?
5 m* T3 \( D: k( H }
4 d8 M& x( j, m2 z/ t2 F#endif // __WORLDSERVER0 E/ |' W% n. z0 i3 ]
} 6 X4 V$ l& e4 S! `
% [9 `7 l- w7 _. `9 f4 M# Y
然后你进入functextcmd.cpp并添加以下4 ?1 A% J2 Z6 l, q6 r
9 M2 M' n9 [1 @: P! ^: y3 ^- a# d) L
代码: C9 W7 v+ \9 A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 E( B% L5 y6 b) A8 W9 `下面插入5 `2 ^7 u9 g, {7 l0 a- a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 q) Q' l% y. d( I0 t& J, F, `/ R% Z: f9 M1 e: I, J( e) v8 K1 W
然后你去
, p* w# ]& `% l7 Y0 A( s
8 k' d" A$ G3 d代码:
4 c. v: V) n1 |代码! Y# O9 t$ E c: b: T7 p* {
BOOL TextCmd_ClearPropose( CScanner & s ); W r: z5 b1 Z
{
0 e9 i' |3 Q: s' {#ifdef __WORLDSERVER
. F1 w! A( ~7 W$ m$ o CUser* pUser = (CUser*)s.dwValue;+ V* z' J5 r# s0 L* C7 v: I u9 c
g_dpDBClient.SendClearPropose();
$ V ]0 N: x- k# d# D1 k3 |#endif // __WORLDSERVER
3 T- W6 ~8 I$ I6 O8 q" S return TRUE;
6 ^9 G' ^! ?% |$ c. g}0 E* C& e+ m, T& m
下面插入
5 u R8 y4 h4 J! z* Y" `BOOL TextCmd_rebirth( CScanner& scanner )
+ s F& Z/ V/ s. B. @{
8 z7 v8 W, R' E#ifdef __WORLDSERVER% Q8 d! M7 l& k
CUser *pUser;9 F" ]3 E( w: a% Y2 c- E3 `( J" O
pUser = (CUser*)scanner.dwValue;
9 F4 u2 d6 [ w' K0 M# Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* |/ ]3 h) D# C7 F d! }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 Y& S' |; a1 l3 x. J. V k: Z) Z
else
$ ^8 O4 ^. B' i/ h: S( }pUser->AddText("你还未达到重生条件!");& x! }+ S+ e$ V) x& y
#endif
, d: Z* o# {; O5 u" u8 U4 Dreturn TRUE;
' ^; m( T# e. A) o$ c5 G} * I+ Y) b. I; n m+ L
/ s. r8 l8 m, F5 p9 f
6 S, ]3 G" Q& A2 K3 x. _0 {1 S4 U# p2 d3 ]% h
6 A: k. d% f" o* P m, ]5 ?7 m |
|