|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ T! y/ }) _# C% }
3 t* _2 n# m* L. q/ p/ L2 v0 f- GMover.h
7 Y9 {+ j' N; R! j* K代码:6 R* Y/ q( m8 w. s& F& f& W
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' X4 |- [! g l/ b$ a7 s4 f: {
" @' j4 N! l% t! X! q2 c+ d [下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
~3 m1 _* Z$ M- ?( x& _- o" U$ o5 h3 t) l9 G
然后你去mover.cpp添加- |+ u; w E3 U* w* K
4 |. @# N5 F* H. K
代码:
, d+ K. m5 s J V$ bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 S1 G! N3 D, Y" g9 ~3 {: n{" X0 G9 S Z3 R7 `$ X9 u
#ifdef __WORLDSERVER
/ D+ ?$ Z) _* m( U2 f2 m! t // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 E* |+ o7 C! q( b! y
MoverProp* pProp = GetProp();& ~7 R. z/ A4 x9 ^
if( pProp )
% m9 B( ]3 R9 _5 A: f7 V; r, x m9 z$ _ {
) X2 n- J) q2 Y1 e8 } if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) \3 R1 h P# F0 c' C0 N/ m$ B {
3 g9 s8 `0 A. Q2 f" s AddChangeJob( nJob );
! A; J* u& x9 g& L }else{/ J p* V! Q& r; S) Z
return;6 c0 v" i9 q1 s) A8 z) @
}, u" }# v9 M: W% U _
int nPoint = 0;
, D. E/ p/ k2 a if( m_nJob == JOB_MERCENARY )
& R: ^; k% H4 n+ l% z nPoint += 40;
' {- z7 j" g, y" w; U$ [ else if( m_nJob == JOB_ACROBAT )& i6 g% v% ^- [$ }9 b' ^6 m8 Q# d
nPoint += 50;; e: M3 n) g, d: c. }2 E T3 c) ?, z; n
else if( m_nJob == JOB_ASSIST )/ W) z( w" t) P8 v1 B
nPoint += 60;2 L! u: n; F" J
else if( m_nJob == JOB_MAGICIAN ): b+ A3 P/ M# A% g
nPoint += 90;) G/ ?# ^4 ?! y8 V: D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! o, q5 L5 l. Y2 t" N4 _ nPoint += 120;+ b1 V# q) B- N6 P+ m( C8 d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) l' |3 v! a- q* W: U! j: z nPoint += 150;5 h7 Q3 Y7 Y' m! X7 X# W
else if( m_nJob == JOB_RINGMASTER )
$ O9 ^ ^/ k( j nPoint += 160;
# w; q) }1 b) d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). e; g y, N& U2 e
nPoint += 180;
4 J8 ?4 h8 V2 a7 f _( J/ C else if( m_nJob == JOB_ELEMENTOR )& @5 t" s* |; k7 C4 k6 T- q( i
nPoint += 390;
& X9 R3 o- S# D) p else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" ^' O/ W8 w! w$ H6 H
nPoint += 120;5 f2 p: D. ]! V) `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); I* d8 m) c- v- c1 V. Z
nPoint += 150;
2 p# W# E9 m2 s else if( nJob == JOB_FLORIST_HERO )
: `$ P% \; U) Z' ~ nPoint += 160;
& [: n/ ~5 d6 y1 {! A, V& ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 X& f4 o( q/ J5 {0 Z: L% s: m nPoint += 180;; n" P: s; {; G- A) L: g
else if( nJob == JOB_ELEMENTORLORD_HERO ): S+ c) h h q$ @2 N# b7 G$ k: b3 @
nPoint += 390;6 `' {6 g$ P Y/ Q1 J, g
* m9 o. P' x; O1 B( o6 p AddSkillPoint( nPoint );8 P ]/ a3 v2 l, X7 e+ l6 l6 b
m_nLevel = nLevel;
) P: w( S, D( [+ S' U% i2 A! |+ E- ]+ H+ G7 F+ q
SetJobLevel( nLevel, nJob );/ e! ?: i$ f9 U4 W5 i# Z: o
m_nDeathLevel = nLevel;
( `6 c1 E8 u! d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ e- y3 @+ [, \4 F if(IsMaster())3 \1 b1 u2 X6 Y
{
* z i8 f- L9 U3 i int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: ~8 ~# I) }) d; |
if( nLevel > 59 && nLevel < 72 )3 E7 w) O9 { k# v5 I9 O1 k/ N1 z1 q" b
dwTmpSkLevel = 1;
; c/ S; {7 w1 Q @5 H, i else if( nLevel > 71 && nLevel < 84 )( H9 A; K7 o# V
dwTmpSkLevel = 2;' k; r Y O' b8 K
else if( nLevel > 83 && nLevel < 96 )
9 N/ T _& s8 [4 ?. m, o0 A dwTmpSkLevel = 3;
1 e' ?1 U- b! j9 ]& v0 f else if( nLevel > 95 && nLevel < 108 )
9 `! y z/ ]& k& G: P, a( O$ Z0 b dwTmpSkLevel = 4;
. j% A7 B& ]& g3 ~ else if( nLevel > 107 && nLevel < 120 )' ~( \+ P6 H% k+ l8 }
dwTmpSkLevel = 5;
$ x, e4 [( U# B1 X2 V/ E) `3 Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) : W. e2 D3 U+ q* y7 P" U' q
{
, X& \" L) d' o8 \9 Z8 l# l8 B' c! ? LPSKILL lpSkill = &(m_aJobSkill);' U0 h+ e0 S/ b: L {2 L6 {( q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 P! U9 r8 b# @$ I# F8 F {
/ Y% N4 ~2 {! C. a+ X' o$ G1 e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: E" c4 a4 S [6 o: W. R if( pSkillProp == NULL )
$ {. g4 S: R( ]+ z* B9 D8 y- ~( t c continue;' S* y2 R! w( I& q3 U5 _$ g5 x7 n3 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 \4 J8 l% ~3 f/ k4 N! y continue;
( J7 ~% I+ f/ \) l4 h lpSkill->dwLevel = dwTmpSkLevel;
6 h J& b0 l7 V( M3 R, g }
$ _5 d- _. r: U+ ]9 M6 V3 d9 s }% c/ w( O8 V3 d) i& b9 `
}# w; ^5 x i: \' b; b8 _
else if(IsHero())
: U6 D" K% b8 ~' u) Y8 Q {
, A' r1 I9 Z& @- Z) Z$ W for( int i = 0; i < MAX_SKILL_JOB; i++ ) , h7 k' x/ \* M9 g! ]
{
# w0 f4 ~2 Y1 ~2 q LPSKILL lpSkill = &(m_aJobSkill);
Z4 t. g: t7 V8 W4 d if( lpSkill && lpSkill->dwSkill != NULL_ID ) s- v) u3 Q! v1 ^3 F
{6 e9 U/ f& ~; n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( B0 T. ~* h# e& U- n: C5 P if( pSkillProp == NULL )
' g6 g: a% j$ R- I continue;
3 X! m7 S3 k% U; t& [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* [/ k9 G k4 h, |$ D+ G, \
continue;" Q! D) Z6 e# H' m
lpSkill->dwLevel = 5;* f9 L. d5 t. `$ @- q& E
}* M8 I! V8 L" T& a! {% x
}
: z. d1 y7 b- E. C+ Z4 W }2 H$ _2 b8 l% _: z6 p- _. P
else if(IsLegendHero())6 X2 q/ h4 s7 }1 H
{
" a9 ]; O4 @! Q: D+ u1 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
' x# U2 u G+ [. _# W/ O- x { 9 u/ E3 ?/ K1 S0 j% |
LPSKILL lpSkill = &(m_aJobSkill);
. ~$ \5 u# K$ q0 H X; B if( lpSkill && lpSkill->dwSkill != NULL_ID )
( y/ i u7 J9 s {
' ~6 g" b- Y! t9 W( s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); G% t9 ^$ E& X% o% ~
if( pSkillProp == NULL )' I3 D% P* }5 V, c
continue;
( B: ^5 M1 Y& K C# w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& G+ D( [* q( D continue;
9 a( v B, e) d- Q+ O! y4 Y+ P lpSkill->dwLevel = 5;
% y8 X$ \4 U' o2 F }
- ^- C/ A0 [% }. p }# r. i, s/ s6 F5 n- N& g/ U9 D6 V0 I
}0 {3 _* S9 F# e( K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; d0 {5 w) c8 L: l" }# Q
if( bGamma )
/ d0 d4 O* _6 q7 n% G/ n4 @. U {
& o3 Z2 G- f3 r1 h# X# X0 B$ ` m_nExp1 = 0;
1 f, O3 h0 v; _. J- I' p }( P1 }" |. p# {" l! _! T o
8 v' L( O' c; }
( (CUser*)this )->AddSetChangeJob( nJob );7 z/ O) g( Y8 R2 {- e8 W2 {, V+ E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 C( n7 w, b% L6 o! T
/ m) \5 F1 U. H x0 w; M8 U* q! L
#if __VER >= 11 // __SYS_PLAYER_DATA9 `9 R6 f3 Y+ H- ~% R5 S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- a+ O5 r, |, `' f/ X2 V* K
#else // __SYS_PLAYER_DATA
# {- n& J. x$ Z0 N4 r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 @2 ~: U9 X! R; n7 Y( ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( K) o1 ~' ]" `8 l2 X1 ? {
if( m_idGuild != 0 )+ e6 o$ G p, B: z6 _: y- n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; W! r. i5 a' M! I# W( w& [
#endif // __SYS_PLAYER_DATA0 T! u- Z1 D& e" |; V# |
SetHitPoint( GetMaxHitPoint() );9 l1 w" o5 g' H) P' S
SetManaPoint( GetMaxManaPoint() );
% p8 U- N- J2 o2 u- X1 _! P: \ SetFatiguePoint( GetMaxFatiguePoint() );; A3 Z+ G) }' p! p9 O0 {
if( nJob >= 1 && nJob <= 4 )& {& f z( L5 G0 @+ L' v0 Y1 A
{% a+ G* S- J6 L4 v4 S1 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 z5 d! p/ c U* Q+ k
m_nRemainGP = 28;' k. G% f" |, H; D& j5 L. G- e' i, n4 ]
}6 T. y7 V3 O, ]3 }1 s3 n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 I' W9 q) Q; D+ x. j {
6 z6 n- F* {8 n1 P m_nRemainGP = 118;
+ D: e+ @4 G5 F J; C //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 b6 M6 g$ k7 [, u m_nStr = m_nSta = m_nDex = m_nInt = 15;
) a7 ?9 a9 `; L" ^$ w+ s. v }# F% T$ O. ~1 M$ M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# U9 [7 V$ ]( ]; ^. ~
{
. z) U* @0 [1 R. a4 K* C+ D CItemElem itemelem;
+ c- ?6 r- x- f: S5 L8 M; A q. w itemelem.m_nItemNum = 1;# B$ O {: h5 |9 r: z. W) I, w' j
itemelem.m_bCharged = TRUE;
$ Z0 _/ M; y& ^6 d BYTE nID;! c1 H2 t7 ^0 N, q7 C O5 o
9 b$ y: W' p2 b" f- q4 k. \ if( nJob == JOB_MENTALIST_HERO )+ x) E3 P$ c, }, r3 [5 v* A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 [5 M1 a- X% D' f0 f& _
if( nJob == JOB_FORCEMASTER_HERO )
# z9 |* K1 M e: } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& q4 Q8 k3 N! A2 o8 U8 d2 G! E
+ L0 J# n4 A/ C6 j/ E! [: c7 r
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 p6 {& O& V0 R, E: [- @
}8 ^8 C/ v1 ]) H; j0 s! Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) ?7 \$ u& z9 n1 b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. a5 e# s! \3 [7 g( p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 q- |5 m8 n. m N) L& ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" r8 E5 i8 m' [3 L% j ( (CUser*)this )->AddTaskBar();*/
; B; n3 R: u& O2 i5 m ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, y: }9 s" c4 I- E( m5 C7 ^! N7 B% k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ H" p8 k) u1 X3 n# g ((CUser*)this)->CheckHonorStat();' L0 B% U, }3 u% r% ]
((CUser*)this)->AddHonorListAck();
3 D0 r2 c: s; I" Z g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ y) [& g4 ]! m% D# N! J4 `) ]#endif // __HONORABLE_TITLE // ′Tà?
) ?7 t; z) y- E7 n, v# Z9 u" U1 J }6 E/ [9 [/ d4 a, D( t
#endif // __WORLDSERVER
# U, U, i) D; ~7 d} 2 c$ P" s4 l4 u6 a H
. e- m0 M3 P1 }. W, q3 ` H然后你进入functextcmd.cpp并添加以下6 ?, A0 S8 N' A& U! @( z5 S; ?
0 t6 A' q: B/ T. _' p0 K9 D7 J代码:
$ z' }: G% e* O1 b1 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: r, n( {5 j1 [- J+ \+ H下面插入
0 `8 n5 L& s0 J6 i3 D. RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 L% b% n; }1 [" K' L
+ C! h o* ~. j然后你去5 W6 C! z. h! R( b5 R2 L7 a
; _0 m0 |" f% m$ q/ N* E# [
代码:
7 E' s1 M4 s* p1 ?7 `! I代码4 A. g: s( H8 [9 g4 d3 t
BOOL TextCmd_ClearPropose( CScanner & s )
( [7 \2 x+ I/ O3 H& M i# D8 ?1 e3 A{) M, m/ T2 j+ c6 X4 c' t( z
#ifdef __WORLDSERVER
& j# _& F* R$ J$ b0 Z2 R CUser* pUser = (CUser*)s.dwValue;& d- @* t& M8 X: J, n
g_dpDBClient.SendClearPropose();
! S: W( j! M; n! j' t8 Y" n#endif // __WORLDSERVER& D, w# w9 ?6 ~$ ^
return TRUE;5 }, m5 x: `0 `' R7 R7 x
}
( \ m( `/ O1 T8 L# L2 J下面插入
9 c7 l* A* l3 ~* r- |3 V3 ]6 jBOOL TextCmd_rebirth( CScanner& scanner )* a% C- S: S8 X% e8 V
{
- o* A1 j8 e& Q e2 t6 P( d#ifdef __WORLDSERVER
4 @; z/ `4 z$ C( G) b" I% qCUser *pUser;2 S, v- `$ b, g1 A
pUser = (CUser*)scanner.dwValue;9 K5 ^* E' x- {9 y& a. m9 x
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
F' D& Q1 K/ u9 vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# [4 t/ ~; V+ c( ^' N# Yelse3 e& d) k- L) k- @4 R2 w. h
pUser->AddText("你还未达到重生条件!");
3 k9 w" } m* G6 s# _#endif
2 m: r% i) R0 _+ b8 R4 Hreturn TRUE;- d4 Y6 j" U: O
}
2 B+ {6 U2 V: x/ I# f6 J2 z5 c" u' Z. T3 K, u4 x; ^7 l
9 E: Z2 k8 L6 }/ G$ R& w' B) a! F4 [2 K( {# n
7 r% f2 y! O, M2 ~! F( m1 j
|
|