|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 ?; u; ?( B2 s* O
) b% X/ L. l4 {Mover.h
) w8 `+ u. y, `# U代码:* S0 p2 G1 ~, F" }
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 Q. z9 v4 d+ [! Q- L1 ^
* M2 p& P% E# _* M0 ]. h" n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & [2 b4 @ ]( I2 _+ G8 L. W
% c; n6 e1 d9 G2 I7 v
然后你去mover.cpp添加/ `$ `3 p4 s7 U/ s6 @, j* R
# l0 E: D; m# O
代码:
, e, D$ s0 e% Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ O. I8 |2 K7 N{
; w( E* z: b7 H+ e, V#ifdef __WORLDSERVER
0 ~0 F4 j( E8 H( f4 ^: o/ z9 s( J8 {8 p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 e n9 k$ W& L6 m. ]$ F7 a
MoverProp* pProp = GetProp();
6 Q1 ~" L4 P- q9 T if( pProp )/ C4 s3 c+ I$ U
{* A% i S7 Y4 a: |
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), u% y. F2 R. n/ y" z5 g
{
& B4 g3 g* Y6 I0 D9 Z- k, Z+ R+ t( J AddChangeJob( nJob );, h! F0 j* d6 R5 T% w) l' K4 ]
}else{( G9 ~7 \, R! c+ Z
return;! c7 @. M2 U" U6 @4 T
}
! F9 M# X& l% m* a4 ?5 ^ int nPoint = 0;/ I5 m) w9 x# W/ H. m1 w; B
if( m_nJob == JOB_MERCENARY )
. I- B* L B9 b J l# t/ w nPoint += 40;, U( c. [* R1 j2 V1 T. a
else if( m_nJob == JOB_ACROBAT )
, s4 X) j" I5 z x/ r8 ?% ] nPoint += 50;* g& U$ ^6 x7 J& }
else if( m_nJob == JOB_ASSIST )
9 b! ?0 p/ z; x$ O nPoint += 60;
) d8 D# V3 g) y else if( m_nJob == JOB_MAGICIAN )) H; N3 x, X" b: e% ]3 z5 o
nPoint += 90;, m0 V2 X6 S; i6 u1 F) A5 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! q5 f! f; z, F- g
nPoint += 120; g8 S, J( P% R. J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 b' F- W, S. R+ Z7 ]' o _
nPoint += 150;
6 H; C2 V; W- I6 J$ f+ `7 ] else if( m_nJob == JOB_RINGMASTER )
% g2 e( B1 U5 E nPoint += 160;
) [! y4 V% u$ w3 r# i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* H& @6 ?( \% m- o" c nPoint += 180;
! v+ }; Z! t" U: Q$ u7 v- R2 r else if( m_nJob == JOB_ELEMENTOR ): p- X; R% |7 t9 Z8 W
nPoint += 390;
" \& C; D+ J; w; d+ ?( q' ?. y5 H& Y' [ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! W, k" O1 a! x2 {/ G+ z, ~+ n2 H
nPoint += 120;
9 Z' S$ y3 m; J x1 E- r4 q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 o5 b) o( c. h" W1 ~! }
nPoint += 150;+ S7 ~& [5 z- J# G0 }
else if( nJob == JOB_FLORIST_HERO )
) J: s% F2 [0 R; N2 m/ s5 ]7 @ nPoint += 160;' {" d; ~9 V% D. }2 L7 n0 O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( m/ o' E( U4 E2 w* Q' y0 l
nPoint += 180;, l9 t4 Z4 W" k: ~" @- g! b
else if( nJob == JOB_ELEMENTORLORD_HERO ): W" |' J9 l9 p/ Q5 U' S) \
nPoint += 390;/ |" W! \) q$ ?( l# e
5 Q$ F4 C7 d; {% D. l6 p7 X AddSkillPoint( nPoint );
7 @: C8 K7 o# k+ k, a6 z* ~5 Y m_nLevel = nLevel;" u' J8 Q( f* r9 S( {; ` j& e3 K
. t8 y: t6 [) k" C
SetJobLevel( nLevel, nJob );
) j! \7 `6 p9 P' W0 ~, W m_nDeathLevel = nLevel;9 t3 h s T/ K0 y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' k# H# U4 u$ K6 k
if(IsMaster())9 [! R1 ^9 r/ E+ h- Z# B" {
{
1 \5 y4 s- n& r* G! }' q9 ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! m7 y- g3 e! i! ^
if( nLevel > 59 && nLevel < 72 )/ ^- x" W% {/ _# y: ^) M- ]
dwTmpSkLevel = 1;4 |$ C8 h1 C$ r- T4 g
else if( nLevel > 71 && nLevel < 84 )
" S# `- k5 ^" f, e2 ` dwTmpSkLevel = 2;
3 _; x+ ~4 [) @& G d6 G/ c1 [/ K else if( nLevel > 83 && nLevel < 96 )6 R7 `; Z# b4 K g7 t
dwTmpSkLevel = 3;7 r* ?' y2 B- q3 a( Y- A+ e
else if( nLevel > 95 && nLevel < 108 )9 M9 s+ e6 `7 V
dwTmpSkLevel = 4;
. y; X; o) B% y3 I& c else if( nLevel > 107 && nLevel < 120 )
) r1 s9 J7 m' R dwTmpSkLevel = 5;
" L. y# S- U0 L: A) j+ T$ ~) Q for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ w2 B+ T6 R! N { : l5 @) g) }4 U3 E2 e; P
LPSKILL lpSkill = &(m_aJobSkill);
/ z9 ]: e+ f* K/ U+ \4 J if( lpSkill && lpSkill->dwSkill != NULL_ID )1 r4 T2 ~: v, O6 e& j+ C9 |! v
{% X! C4 h# d$ N* Y7 T4 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) X4 H- }% _8 ]# [) d) u. {, P
if( pSkillProp == NULL )8 @1 N( O: \! W3 Y+ m8 L8 T6 U# d, N
continue;/ [6 y" X5 r- `- ^7 X3 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. L: ]! a# j# W' @8 J {7 p7 G continue;
2 ?5 }' E; f1 R } A lpSkill->dwLevel = dwTmpSkLevel;
3 x% [! a. b" `, ]$ n' L }& ^# b* ~; i. \0 x
}3 z5 z9 Q J p8 D: n# F0 H
}+ H- I* V7 ~6 f1 P; g& ~0 a; @6 D
else if(IsHero())1 H1 y |3 q( q+ N( h
{
) {6 [% Y6 ^5 K& J/ m for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ d6 {, E- p5 o! o3 P. M2 d { . U9 F" B9 C9 J7 s; p/ t6 w
LPSKILL lpSkill = &(m_aJobSkill);* R4 j) W7 M. ~; I( m
if( lpSkill && lpSkill->dwSkill != NULL_ID ), n7 d/ S4 k. _
{
: T' T: v- O; |5 p/ A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 X& ^, y2 `, K ^5 j5 n# N: k
if( pSkillProp == NULL )
2 v ^( I$ B! N" e continue;
% U6 P1 N7 S+ L2 |8 U2 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; Z3 P3 Z0 b* o) t; o. S: N continue;
' a+ v! {# R2 r3 f) F0 X lpSkill->dwLevel = 5;) p4 F( {8 l$ x' D- h y! Q# ?4 t( J
}
O" ~. \6 ^7 Q. L8 \7 W' B }
8 C) _3 N* D' z# w: W2 D d8 J m" s }
P; m S( x# w5 q# E else if(IsLegendHero())
! H8 l' r4 \- _8 ~$ F {" O( `% V9 w, \2 G x( c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- D* E$ j8 a0 ` {
' L+ H" t3 F2 ^& m LPSKILL lpSkill = &(m_aJobSkill);
) w J- C& x; u& G( R2 n4 j6 I if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 w! I4 c! K9 b$ N" k; B {# a) g. l: }+ J: R; R% T6 O d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ l8 f! n+ J2 A if( pSkillProp == NULL )
" h7 e8 E# I& A$ {1 _ continue;
. z) U' S- d2 k) m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! N7 i, X# W. E4 I9 h
continue;
9 k$ y, c6 B% P K7 T8 R. {0 h lpSkill->dwLevel = 5;4 t/ Q9 _5 c$ y9 w( Z8 G6 A! g2 J
}% ]# F6 `' }: Y Y' r |5 T
}
2 o5 B9 i9 ~1 t }
V6 Y5 N O* Z' r) L$ C8 p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& r) L6 `$ d: N+ I7 o+ Y
if( bGamma )
; J7 Y2 g2 S5 l* E8 V4 h6 I7 l {, j; W% d7 P1 P5 V/ T2 A7 {
m_nExp1 = 0;
4 K. R6 F) e( Z a' N. F* j }
7 y/ t" m1 _$ H+ [1 j: H- X8 S/ L, t* q8 `4 G
( (CUser*)this )->AddSetChangeJob( nJob );+ M, A; C& }, B# \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 J7 |- E9 O7 S# M$ _( J; O; S2 M4 ]3 b3 \* E2 R
& A- s3 K' |/ z0 p4 I
#if __VER >= 11 // __SYS_PLAYER_DATA
% f' z+ U7 Q/ c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: {+ J' }2 H4 T9 C( V7 b+ z
#else // __SYS_PLAYER_DATA. V+ q7 s9 c" M8 ?# ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 Q' }4 f, j; I: `" T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 j1 Z" u( w1 s. h0 W if( m_idGuild != 0 )* \, U! q* E0 p* X; g/ T
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 `5 \& Y# o4 P5 x, s3 Q$ z* ~#endif // __SYS_PLAYER_DATA
: s4 R+ n8 B5 p6 d: i SetHitPoint( GetMaxHitPoint() );9 \3 g# M' e- H" z% N
SetManaPoint( GetMaxManaPoint() );
0 i+ S9 f4 h4 _5 ?1 D SetFatiguePoint( GetMaxFatiguePoint() );9 H( e0 D; Z3 |1 w
if( nJob >= 1 && nJob <= 4 )
( N# e1 e6 H5 I% n7 u {. P2 e1 W; D) E0 X6 ~/ q, f8 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' A0 E% H1 W, |; T m_nRemainGP = 28;
) @6 p, `& D- C- J; T1 A. q }
; w8 E. F/ G: P* j8 }6 ` if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ m, U0 s% c7 A" |$ v* V
{! [6 D. |: J! d
m_nRemainGP = 118;
5 j" V, T% t! S- F //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' \2 u. t" ?9 w! @ m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 \0 i8 Q2 o0 e- i! W }
" v8 T5 o' D* T6 l& w, [$ K5 ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): K* m* h% I' B. P
{
4 y$ o% L3 y4 P) b1 i4 g7 K( ` CItemElem itemelem;
$ N% [6 r2 b6 U& X% A itemelem.m_nItemNum = 1;
" X7 g I: X; A; O$ i- S itemelem.m_bCharged = TRUE;* w* Y+ n) g9 d( Y" L7 J3 l
BYTE nID;
$ o5 g2 d& l) ]+ J' ]' F1 ]* w; {$ p
if( nJob == JOB_MENTALIST_HERO )
; b9 ]* q9 R1 }; ~, g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% E6 b8 ~" G: `0 F2 X* Y if( nJob == JOB_FORCEMASTER_HERO )3 ]9 f. C8 l, ]- P/ W @8 w- L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* I n' ]# J U& W& k) w1 ~
+ o# E8 g0 X: e" B# n
( ( CUser*)this)->CreateItem( &itemelem, &nID );* ]5 q& E( P, q" w
}
# b* b; A" q% h; d6 o; b' D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 ` [( \; H1 d; w3 |- S& N8 `6 Q* c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& {3 B/ {& N; ?! T5 _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 i; \( j# c: \9 i' n% Q s* t* u /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ F& V6 B. m5 u, [0 i ( (CUser*)this )->AddTaskBar();*/8 L& B% f Y6 O/ j8 w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. J# u% ]4 V a( u; i5 B% k#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! j+ |* @7 F+ z/ J
((CUser*)this)->CheckHonorStat();# z& U! K9 [ J5 |, j
((CUser*)this)->AddHonorListAck();
- d! i, \! S" x- ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);! R* T- i7 Q; @- C4 @( Y4 ^
#endif // __HONORABLE_TITLE // ′Tà?
, N. u7 @, w5 P7 @, }8 M }: i; o+ F1 m! S* K" J: _ G
#endif // __WORLDSERVER
+ h3 E2 g0 P% ?} 8 C E1 i$ [$ F; r1 B' n
* X9 n" \/ q4 X7 \9 G O
然后你进入functextcmd.cpp并添加以下, _" v" N: M& o! q- Q! y
! U% B& F k% _, t6 p% x8 x( ^
代码:
" G J& [1 N: q4 U" O2 e, }9 d* }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), n) N! A2 o' |" T( k- z/ A! N4 @) Z
下面插入
$ `" G* `( P5 s2 d0 q9 C4 }( tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" F+ l1 b* [% b1 Q9 z1 x% [4 k& ?6 R; T9 Y
然后你去
' Q, P: I2 }+ ~ r# w0 K4 Y3 p4 ]) W$ g$ V% C
代码:
$ o8 K: \- S4 ~1 u6 q: h; i代码) f* ^, h6 E3 f4 G3 w i8 R% u
BOOL TextCmd_ClearPropose( CScanner & s )0 j9 U1 i- i/ t- p; W4 k
{* P" u; o; [ l" w
#ifdef __WORLDSERVER* g. w1 q) v2 q; S0 M; v& [
CUser* pUser = (CUser*)s.dwValue;
, M, P, }0 A7 ~. h) u) L g_dpDBClient.SendClearPropose();$ c: W1 |3 n' A& N: {6 n1 j
#endif // __WORLDSERVER- {4 M& n w: S0 D; S4 J |
return TRUE;- y+ z! { t7 S5 a! r
}5 V, e) o5 D2 z, j; F7 b
下面插入( K0 K. O% I) k( x |8 w
BOOL TextCmd_rebirth( CScanner& scanner )
2 n- h1 E9 }( k$ O- R. T{1 p7 r5 e. z+ Q% {8 q$ c% O/ V
#ifdef __WORLDSERVER6 e! S0 A j2 P Q5 n& Z7 w
CUser *pUser;
% k2 Q5 k1 ^4 R% }" v+ S" ] ppUser = (CUser*)scanner.dwValue;* q+ W8 u% L: Z( n0 b5 V# H; ^* k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) e* n g6 j# T4 ]7 qpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); f5 f4 x2 ^8 f0 o) _1 \: X7 m' O2 C
else( p3 y1 i1 }! X2 I* m0 d) v
pUser->AddText("你还未达到重生条件!");4 \3 W0 V; P4 ~# o! }* f4 a, ~$ s
#endif
/ a5 Z0 h0 e& }; rreturn TRUE;
/ o# m5 _1 z5 w} ' Q# u" {, _2 s# M A' k! f
( i' O5 z8 s+ O) K) ]( C1 U
1 r7 }* ]* y/ l8 R
! m& p/ H' U9 ?9 y1 v, e( l- {
8 c! T4 K- G% p! Q7 g) d$ s- K |
|