|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ o4 \" @ [* I1 @& I% |0 d8 G, K9 ]- N1 r% A8 L! o0 `
Mover.h. t, v' V e' |
代码:) l( L# |+ ^1 R7 H1 O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
o }8 Q6 H9 L, l8 N8 G3 C: \( D; x: ~; A& E' ?+ G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 }8 K- b- C8 |" A0 A
6 H, B4 |3 r) ?! ?. ^' m0 ^然后你去mover.cpp添加3 F: x s- P! x6 s0 c
8 h/ `1 I: o: B7 M: G, p7 N0 ~
代码:
- X% W1 [2 z* r( Y) nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' a% @! z8 ^5 E: t{2 }9 v& L" ]7 g. f7 R$ E- h* G
#ifdef __WORLDSERVER
% v ?6 z. p9 X% f7 W$ Q p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 m; `0 a! R5 c& {1 `$ ~+ I+ u
MoverProp* pProp = GetProp();! K( F- U2 w7 E4 B& {" ~
if( pProp )
1 H3 [- x* u% { {) e9 c$ E! ~: C% u
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); n& D# G+ y" P8 K$ c6 \" u
{! `" O; Q1 l' @2 H( u4 g
AddChangeJob( nJob );
5 G1 i+ Q$ ]" w5 p$ c }else{
8 t( ~" w9 m _1 R8 b return;- w! V7 V# t2 ~6 I2 n
}% v+ b3 n% f& V" R$ H& K
int nPoint = 0;6 k# g1 N7 o6 y* _" g$ m& E
if( m_nJob == JOB_MERCENARY )
; D4 c- s n% q+ B. j% Q ^8 i nPoint += 40;, B9 u, }: B6 Q2 m! ?8 I8 J
else if( m_nJob == JOB_ACROBAT )5 J( |8 q* J% _
nPoint += 50;
0 D. f) J, [* a" {$ [ else if( m_nJob == JOB_ASSIST )4 n! x" Y" L; \! }5 ?1 M. i
nPoint += 60;6 N# ?3 u V6 Z8 e- y
else if( m_nJob == JOB_MAGICIAN )
) ~9 w+ ^8 H, V% { nPoint += 90;- R; e4 b( {" f( P; A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). D# R" r; t8 _) X' W O7 u
nPoint += 120;
3 W8 I5 B$ ~4 W$ L9 K else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), d& G* C# n4 g: q0 y
nPoint += 150;/ g/ d/ K# P' V, J5 S/ B. K
else if( m_nJob == JOB_RINGMASTER )% g; y' O, Z: [. o( e
nPoint += 160;
+ j4 F- p e4 o4 K# D else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' W/ I" Z- {- C" g+ p5 \
nPoint += 180;
9 U- _+ I" B: E( ` else if( m_nJob == JOB_ELEMENTOR )
5 `' ~. N$ C3 Z) s; l/ D' l nPoint += 390;; J$ J! I8 i3 A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! d' t2 x, q' q: _ nPoint += 120;
8 ?7 j# ~- }% Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& A( z: ^ o s) j0 ~) l
nPoint += 150;
( o4 _5 M8 C/ W+ Y+ F else if( nJob == JOB_FLORIST_HERO ). [* O# ~% B, V& L( c. v
nPoint += 160;& p' E- a1 o, U
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ f/ V( `+ b! X+ o
nPoint += 180;
/ g+ B8 u, `% F0 }& z9 T% j: i else if( nJob == JOB_ELEMENTORLORD_HERO )
" P' Y# }6 I% k7 s4 J R nPoint += 390;7 W' W2 g! F4 L9 X6 D8 M* Y
4 e+ I5 _$ b. j AddSkillPoint( nPoint ); t4 x& s: w) s& N/ J% U! D
m_nLevel = nLevel;
* p1 ?# J( E5 S
9 @) ?( r2 c; z; U, |) T: p4 L SetJobLevel( nLevel, nJob );
8 X/ ~9 }% `* _1 e m_nDeathLevel = nLevel;
. Z0 J- D# V R8 b: j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" e& }/ Z6 c. H$ Z: t if(IsMaster())# }' j& k2 I+ W% P8 O
{
- n1 P# q0 }4 ~3 a, m int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 L8 d1 @% u V3 q$ z
if( nLevel > 59 && nLevel < 72 )
0 H( l; s/ O0 c! Y, V dwTmpSkLevel = 1;
' Z% J6 |' [9 v0 n# q v. l else if( nLevel > 71 && nLevel < 84 ), j# w# C$ m, {" E
dwTmpSkLevel = 2;
$ u \- B( z& C8 F& @ else if( nLevel > 83 && nLevel < 96 )
, M D: n6 o7 }5 I" s dwTmpSkLevel = 3;& @' p/ _& b8 M' i% \1 R1 c2 j
else if( nLevel > 95 && nLevel < 108 )
3 K1 U5 [- C6 e) |2 ]8 U dwTmpSkLevel = 4;
6 _( i J' }9 j* M/ V else if( nLevel > 107 && nLevel < 120 )
* E, P2 v7 y& a) h dwTmpSkLevel = 5;
" \' q4 s; o1 E for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 D7 \- N! ^2 N8 g* M2 u$ D7 x
{
( V& u. x' J; g+ M+ {/ Y LPSKILL lpSkill = &(m_aJobSkill);
4 _# u( H% S2 V0 W if( lpSkill && lpSkill->dwSkill != NULL_ID )
" V# Z9 l- D1 s' i* W {3 t$ y( T. h7 |% O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' \: o L) q, [' u: l2 Q/ k if( pSkillProp == NULL ); b @7 U* f( G
continue;
% H8 R! }# x- |4 P0 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, o8 u6 P% M4 p& p* t; C continue;
. M2 c3 s H: u$ \* Y lpSkill->dwLevel = dwTmpSkLevel;
1 j; _! z5 H5 ?. r/ O }7 V+ R# P8 t% p! Y; B' ^
}% z4 |* J2 ^- ~* I
}1 {9 j9 D9 z Y4 F
else if(IsHero())
2 f+ p3 _5 d0 y7 V3 q {& H, ?2 M3 Z1 @- x0 f9 ~5 W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 _1 z2 [# {% L) O6 w { , D* }' z- k, X" N
LPSKILL lpSkill = &(m_aJobSkill);
% ^- N, u4 d% r if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 E! X4 {, h4 E! H {
9 B6 { l9 p% z9 h) w; b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# Y. r7 Z* G7 J% W8 }1 H, B if( pSkillProp == NULL )
3 ~+ e# E% m2 G continue;. O2 a+ q1 j' O" H, d; g) K" U0 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. Z7 C- A5 p) @9 S, W6 w* S continue;
. y" _4 R% J3 v; W/ F/ U5 o2 ^ lpSkill->dwLevel = 5;' L# e( u& q Q2 _
}0 `& z& U! {* l+ b
}! d0 C3 j7 [1 w, d
}8 v: Z/ h4 J4 ]
else if(IsLegendHero()). K1 m6 I6 w' K; Z+ b$ |9 O3 _
{6 g3 D+ i& O$ \- g# p6 o% R6 V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 C* ]: M! Q# C' }! X. F
{
- B5 \6 M% B" g3 P* J O LPSKILL lpSkill = &(m_aJobSkill);
9 G# u& q; R* d. g, J! l* ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 r8 m* [6 p! _6 j {
! O! z; c/ x4 g& L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - C; r' w$ g8 A" i: b, M: j. Z
if( pSkillProp == NULL )
/ H( |: u C" k: j- q, o- h: C continue;5 T3 J. Y# d2 z6 ~1 s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 C* R1 S; W& H" t continue;" c2 M$ d/ B5 t9 Y+ ]9 e
lpSkill->dwLevel = 5;, n- r0 z) a5 F! Z7 Z9 Q* l
}5 A0 P5 j/ k6 E1 F$ r
}$ h+ `2 o0 U, F( L* u8 R E
}
: [* V, p+ p5 V H9 G0 d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- `' `* B, s! ~& L! q9 i+ Q$ N
if( bGamma )4 t" ~) h3 y* f
{. f1 e# J+ z- l
m_nExp1 = 0;
* M4 c8 y+ z) {/ k+ t7 V: K* M }5 S" o, L' z7 t
6 O$ z: u6 I7 F5 t- O4 Z ( (CUser*)this )->AddSetChangeJob( nJob );2 n' X8 M& R4 j, p8 t2 t, E, R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 b. J- [! k* ] P! ~) p. v: K8 v, a/ r: T' A9 b1 f
* E$ A3 o3 d7 o% r#if __VER >= 11 // __SYS_PLAYER_DATA3 A% n) K1 k" g. `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 I, u/ {) \. u1 g#else // __SYS_PLAYER_DATA
7 N/ j0 J/ {( f; } A+ ], [- G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ W) P* I2 F. b& ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 ~: d; f' |9 ?. v' b! j: _ if( m_idGuild != 0 )4 A( {0 r+ W0 b4 s0 Z$ }* Y7 |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" K& j2 v! L7 s% F6 c
#endif // __SYS_PLAYER_DATA) W6 G2 e' y0 k3 w
SetHitPoint( GetMaxHitPoint() );
* S" ?6 i5 s" s" e5 B+ t. r1 t% @ SetManaPoint( GetMaxManaPoint() );( U0 [9 G: T0 U% C3 h! Z
SetFatiguePoint( GetMaxFatiguePoint() );4 B! X0 ^8 a$ N4 L+ n
if( nJob >= 1 && nJob <= 4 )
& c; U* r4 O* O6 ? {
5 g; B2 A& g- N l9 P! U5 u# H& n m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ _6 g9 R8 G" y8 @# u3 D m_nRemainGP = 28;
9 [+ A, P& z) \0 Q: O }
. k. `% d: J$ j" w; U1 u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" w( N; r, ]& [ C
{6 K' h% n4 r7 o7 s. F# |
m_nRemainGP = 118;) n3 w! U1 `1 t5 k* F
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! N& [9 \, ^* }! V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) m- C9 Q/ i/ Z0 n2 X, }% e }
1 I* X W- z: }, | if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( ?) J0 _: w9 ~% j& U- P3 T
{0 u+ I' @0 s+ b2 [0 h, @/ |0 J
CItemElem itemelem;# I$ D( \' R5 T0 C7 z- E
itemelem.m_nItemNum = 1;
6 O0 j5 U; C9 U; i z) K2 p9 | itemelem.m_bCharged = TRUE;% M) j: e' T" F* n8 `
BYTE nID;
/ ` ~9 q8 W8 x, ^5 a
! a) N% l+ P: T3 ~ if( nJob == JOB_MENTALIST_HERO )
4 [( f- P J8 D% T3 M u8 U- I' j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& [. O5 M. ^& M0 r3 K8 e1 W
if( nJob == JOB_FORCEMASTER_HERO )
* R$ r5 Z+ {. @ O7 Z$ k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 u$ _: B9 t4 H3 F6 X
/ N2 X: j, l; t+ A& d ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, P9 P6 z0 r; y4 C }
: e2 I4 z4 Y9 O- C6 { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 N8 z7 A( ~( U! i1 i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
M; h) s" I2 O! A ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( z- l- g! k. X' b /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
V3 F0 T7 {& N ( (CUser*)this )->AddTaskBar();*/
/ g0 _ {: l2 J9 \5 J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 R2 R; h2 W# r4 V* |- q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& `" i1 r# g0 P2 q; n1 I9 ` ((CUser*)this)->CheckHonorStat();
/ W K1 H; F2 d. V+ w; a ((CUser*)this)->AddHonorListAck();4 a7 d5 V6 H) U. c' y6 C0 M
g_UserMng.AddHonorTitleChange( this, m_nHonor);. V; R3 X. b. [
#endif // __HONORABLE_TITLE // ′Tà?
e( g' |# h$ H' Y; V }. w7 d. R6 z4 L
#endif // __WORLDSERVER: s" m. ^2 i6 j( I2 s f. m5 g
}
# ~5 x6 ?# E; f1 f% s1 @( D
! c) G2 }1 a' Y( r. U* Q# J4 J然后你进入functextcmd.cpp并添加以下3 d# m/ L' q# ?/ I
9 M" ^$ Q) k9 \代码:
; F$ j! w; D: U$ BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 L- m5 }( b2 Z
下面插入
. _' m% [6 V7 z a& mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , w* h% S* q6 A1 X4 w7 V2 x
. `9 r! g( ^* u! Z
然后你去+ A0 t& G; U; K# [0 M9 J% X9 T3 ]
. q' g6 J; L, D0 G3 z" c/ Q8 }代码:: k, K4 _: t3 }6 H+ x
代码
4 y( w4 h9 l" ^2 K& ~+ |BOOL TextCmd_ClearPropose( CScanner & s )
- I1 H# B: c- y2 F$ M{: s% C: M. h+ k5 X0 m
#ifdef __WORLDSERVER
& v3 |, n h3 o2 W9 N. w CUser* pUser = (CUser*)s.dwValue;: s% ]/ ]) X1 n7 B( l/ u" S( K
g_dpDBClient.SendClearPropose();+ {; i# |1 {+ c
#endif // __WORLDSERVER
) {) K1 h( p7 C! e8 V. z: z) C$ l return TRUE;. d* ~ C' t4 c% R* u& M
}8 ?4 y( @' n5 B3 Z% g7 K
下面插入$ W# i; K# g* B2 |) ?. I+ u
BOOL TextCmd_rebirth( CScanner& scanner )1 d& g& Q) T% O7 q) i4 v
{
1 b1 d1 {; l4 ]8 ^#ifdef __WORLDSERVER
) a; I: A& p) I7 s" zCUser *pUser;* u5 O9 k# _" u3 e+ b* Y
pUser = (CUser*)scanner.dwValue;
5 r/ K* c% x3 R1 O! I$ Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 M$ p6 }* } S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# \# v; n e* s3 _* U! r) ^else
6 [) R3 `( r, ^0 W; x6 l5 W; ppUser->AddText("你还未达到重生条件!");3 R2 {0 l8 r4 g. u6 }
#endif
7 g1 S. G3 G) N b% {return TRUE;
6 u9 X; N! n# Y( d9 C}
8 R0 u0 l: A/ @0 L( h p
1 A8 k) j6 R$ g6 L# Y+ ?5 ]% S
' g( `5 O% G% {# e. V& E z, j N4 v0 Y! i0 T7 g+ x
: z* g/ t5 o: }" w |
|