|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
N0 L6 U: Q& r! U" @; }9 _* C2 L8 a+ f) [+ q$ W, H2 g' n
Mover.h5 H* H7 w+ ^ S3 B5 \
代码:7 @) [ R y7 T: s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 P$ M7 z- z" _( f6 S2 P# X
9 h( e6 P: h( D) [下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 e1 z: p, [) g- |" [7 u. m# l- V# B: U1 \. ~( c! o
然后你去mover.cpp添加/ T/ V2 {3 N1 b( R# P4 I D
3 j. K, t2 n% G, X7 i! [0 d; e) _代码:
3 |- t( E% o0 Q W: j1 `6 Wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 K9 Q' K0 H3 i5 T" G/ |7 y1 a{1 g/ V! m$ E- N* V0 H9 a) z( R1 E& p
#ifdef __WORLDSERVER8 R: y$ V' S1 d1 E$ K2 T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( s( ?7 V; j" S* i Q6 _* [ MoverProp* pProp = GetProp();/ B g! {" c" O0 l4 P6 z3 f
if( pProp )! z0 D1 c" k$ D* F/ l
{! v% Q, k8 s* `' }
if( nJob > 0 && nJob < MAX_LEGEND_HERO ). }8 x0 i" |4 G/ w, a* G$ F2 H
{+ p W& T5 R& H# s! J: k r# z' `
AddChangeJob( nJob );
0 q8 K. ~3 V& v" t2 F2 A }else{$ {) L$ z6 Q/ @( T* C
return;3 K4 d0 \! q5 U9 l/ ?5 x4 l1 m
}
* d+ l$ N- V6 L1 w; s2 t int nPoint = 0;1 I& E1 O' I2 ^& U3 i* y5 g
if( m_nJob == JOB_MERCENARY )
* z9 z9 P( J: C1 d/ w9 T& R* Q4 p nPoint += 40;
{( g% D; r/ C" E else if( m_nJob == JOB_ACROBAT )
. N; ^& B `! L0 V3 s nPoint += 50;
1 Q& f! _( F$ U* _ else if( m_nJob == JOB_ASSIST )
6 k' _* s9 n7 m: Q1 v nPoint += 60;
: p% C: q/ I7 M' g0 _) {$ `) J* g; W else if( m_nJob == JOB_MAGICIAN ), r8 n" e/ b2 \1 R
nPoint += 90;$ |* S! G0 E# x, A. Q5 g% D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 {9 u# x' M# O: v* U: [% G& x
nPoint += 120;: e9 U& c0 o$ Q- \2 O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" l, O/ u0 G7 b4 c f4 O8 t2 _2 }1 N nPoint += 150;( R" s, ?7 ? i7 r# U9 e( \
else if( m_nJob == JOB_RINGMASTER )
- D+ k9 w2 J0 Q/ n5 c: q2 @ nPoint += 160;& w" O, K; d1 m6 v/ D2 q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ a0 E5 `: u$ j6 _0 {# ^ nPoint += 180; z& l% g! x. M2 \7 |
else if( m_nJob == JOB_ELEMENTOR ), {8 p5 x& R) g) y8 c9 K( ?$ J
nPoint += 390;
- g8 P$ `" A; g. I else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" B' o/ F6 g( M( L8 M+ V2 \ nPoint += 120;
$ l, C* p; b( i8 H& a2 F+ T: W$ i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 n4 ?6 ]) E; x* B# b. ?9 _1 p8 X nPoint += 150;
# _( L2 O4 p) A else if( nJob == JOB_FLORIST_HERO )
" @9 _- l# @$ l6 o$ W" o' Q nPoint += 160;
T$ r! d# r! u k6 i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) | {1 i0 T) `: u0 k8 } nPoint += 180;+ M7 {' Y8 K' c9 t L0 C
else if( nJob == JOB_ELEMENTORLORD_HERO )% y/ o4 }1 g( ?1 g0 o
nPoint += 390;
% h/ Q4 F( a0 G; X8 b. o
6 w1 h0 V" E) ~; O l AddSkillPoint( nPoint );
7 V5 H7 F, s" g, U' Y m_nLevel = nLevel;- @" I/ O9 N! J# ~& @
2 [4 j! A" v9 i, a& Z2 I1 ~! o SetJobLevel( nLevel, nJob );
/ p& Z- i0 f/ U1 ?/ c/ z/ K m_nDeathLevel = nLevel;
1 C1 `" T# T. r* z! g; F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; X$ K Z2 C, {& ?) L' r) l if(IsMaster())
/ c1 X, M7 p( l/ o {
7 j& V: D+ m. D4 i. S" y int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 z9 C1 Y6 }& `; L
if( nLevel > 59 && nLevel < 72 )
, U0 d( C* F* m1 U dwTmpSkLevel = 1;+ a( |$ _% {% J0 s" O
else if( nLevel > 71 && nLevel < 84 )6 D, ~6 H- E& U, T2 a+ F6 P6 ?
dwTmpSkLevel = 2;
; Q3 {1 e4 c) R& r: [+ S' Y8 n else if( nLevel > 83 && nLevel < 96 )+ P' V, i9 y5 p9 A6 G6 f" e( T
dwTmpSkLevel = 3;) E @3 Y. u+ M$ J* p8 a' M
else if( nLevel > 95 && nLevel < 108 )' ^# N, Q; x' |; Q: ]1 E- Z, V/ W' i
dwTmpSkLevel = 4;
( O1 U) k* i; b8 {* M else if( nLevel > 107 && nLevel < 120 )9 L8 b9 d, d _2 v. P. r) R; ~
dwTmpSkLevel = 5;
* S7 @* c/ U; Z/ C+ a for( int i = 0; i < MAX_SKILL_JOB; i++ ) & i( j$ a n( h1 n
{ * v. y) c) ~+ D, I
LPSKILL lpSkill = &(m_aJobSkill);0 v# [$ Y8 M5 s* X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# g6 L, |- Z! T g/ f {
4 S7 K/ m. h8 H0 c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 w( }$ z* N6 i r9 _$ A- G8 a
if( pSkillProp == NULL )
9 E' j$ @& x8 R* ?' v' O continue;) D$ v/ J" `. h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 F2 `7 P4 M$ }; Y7 F+ C continue;7 N3 ?+ z+ D# E, R8 Q( L4 V8 w
lpSkill->dwLevel = dwTmpSkLevel;4 |$ c% _* Z3 q; w& S! o
}
* ?3 j0 l0 G# m" l1 @ }0 ?8 v, Z8 D. s& }$ e7 \
}
. J' O: j/ e3 h& ~2 _# s! U else if(IsHero())3 F( u7 m1 Y# j# I7 {* z
{* ~' ` U1 B' f0 x4 x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 r5 ~: V3 Q. W0 d' U% @ {
8 }1 M# l! g- o$ w LPSKILL lpSkill = &(m_aJobSkill);
* h. e* t5 E5 e) X if( lpSkill && lpSkill->dwSkill != NULL_ID ), ]) U- O9 V% Z6 [6 b
{
; u0 P% j! U1 P& k( q8 R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! K3 `6 N% i. e: d if( pSkillProp == NULL )
4 {# q( E p3 X! m# O9 E continue;
. j" E- w1 H; K* Q/ E9 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, i J; c) w+ F% V7 L; f continue;
' s9 G, ^7 r- o, `) e6 U2 P lpSkill->dwLevel = 5;
# W! |2 a& B* N, ] }
* d+ L" R V0 H+ P9 g }6 t Q; j, O/ T7 \6 D
}
; U; |6 C+ @0 \0 x else if(IsLegendHero())
+ |$ o$ k% S4 R; v3 W( T) V( E6 X {
" }( g" V) I3 z& v* W' m8 u for( int i = 0; i < MAX_SKILL_JOB; i++ )
' m' Z& t0 A. N2 _& i) [4 u7 }+ W { / z5 ?. V) E4 w
LPSKILL lpSkill = &(m_aJobSkill);: U; r9 s. j4 T/ u
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 f9 N4 o6 `* S( f
{/ f1 Q8 c0 R# q8 O( ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & G+ t' z4 m) ^6 y7 M9 A
if( pSkillProp == NULL )3 v: Y9 \ b: l$ a5 `' w
continue;4 N7 z% ]8 F) p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# _% P# O/ S: R% L4 c/ e/ J
continue;* [6 I( {$ |8 B9 L
lpSkill->dwLevel = 5;
2 P" E2 ]* ^4 r }
0 {( y( V5 c" f1 n6 Q0 b }0 R/ |; a: c0 q) y0 {& R8 @( @
}
: @' [. G+ q" ~7 M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ H% J5 l! E& J _, Q8 Z
if( bGamma )
6 L9 u3 Q! e Q- { {
0 ]* c7 U+ C" g* I/ Z7 o m_nExp1 = 0;
0 l5 D s# z5 `5 W4 p, N1 y }
; y6 p6 ?2 L: e; ^: g" u3 B6 e
. ^. q$ i, C. `8 n: o ( (CUser*)this )->AddSetChangeJob( nJob );
* [ B/ C, U5 x$ k5 ^; z/ q) T' a g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ [ Z9 v' g2 A8 N8 U' a1 r( n# U0 Q$ o. {1 M% Q, T! x: k$ b( W
O. C4 m9 |" x5 M
#if __VER >= 11 // __SYS_PLAYER_DATA3 s' `* T o9 T2 V0 V) }5 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( S7 j# |6 }& C" f p#else // __SYS_PLAYER_DATA
- h+ v% W9 W0 b5 C; U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* i% N# S# i0 c$ i. [$ u7 M$ J3 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 N' P# e9 p% Y' V! \( r, D
if( m_idGuild != 0 )/ M; r7 S& c8 b9 W. A1 p8 s; {8 [
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ s- P2 n0 p7 Y3 z, T% f#endif // __SYS_PLAYER_DATA, l+ b% d) D; }, m( D
SetHitPoint( GetMaxHitPoint() );4 ]/ \6 k3 q5 P( K/ Y/ h
SetManaPoint( GetMaxManaPoint() );
8 v* z) Z3 ]) {6 x SetFatiguePoint( GetMaxFatiguePoint() );$ j$ L3 \$ u5 A1 b
if( nJob >= 1 && nJob <= 4 )) e4 A+ Q: ^. _* K! z$ J% D
{
8 I) S4 {$ O3 o m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ R" Q7 M. v5 p. B m_nRemainGP = 28;
; w' [9 I* `( J4 O* l }
' t" ~+ K0 x+ P8 l3 | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; h* U7 p* ?6 u3 K( }( h' c {
( f$ I N6 B- d6 ]. \ m_nRemainGP = 118;0 f8 j" A5 I+ ?+ W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
c. k$ t5 [( H9 [- Z7 D0 y m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 H8 g$ M: r( J: l }6 d, o+ n% Z/ B j1 w, s7 Z. O; Z6 k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# c m& O# C- v) ]% A3 V {# e+ F; o0 n* \% p' S8 b9 I
CItemElem itemelem;& k0 S% y8 u7 k
itemelem.m_nItemNum = 1;
U, N6 B! s4 X L# s itemelem.m_bCharged = TRUE;
" f. w3 ], ^- b: O# K5 [4 j BYTE nID;; l' X. N" `0 T3 }2 R4 T
; G; U D2 u1 s+ [* E if( nJob == JOB_MENTALIST_HERO )
. Z4 w& z9 v) F' u5 i) V/ l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 q2 f& G" ^) R; v
if( nJob == JOB_FORCEMASTER_HERO )' I4 D @% [3 K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 o1 z0 G4 z- {3 s6 w5 q: \+ s4 q( j2 {8 p5 R
( ( CUser*)this)->CreateItem( &itemelem, &nID );! D: u# `! j l( ^- @7 P
}
7 A. P0 X( f X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% D, n4 ]5 O) M& x: @# [9 _( a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; q. L3 Y& R8 L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; L8 `0 [& G: y2 S2 p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ ?8 S9 @6 _0 f ( (CUser*)this )->AddTaskBar();*/
: Y& V0 [5 n7 Q+ X9 ?& r! q6 J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% y8 B% N0 }- w1 F#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
e1 j/ @1 \- C5 V% I& Q ((CUser*)this)->CheckHonorStat();
& u- x3 g& g$ U3 D ((CUser*)this)->AddHonorListAck();/ y! L* p* h1 B; B# a. k
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ }2 s, v7 E5 ]
#endif // __HONORABLE_TITLE // ′Tà?
n% f) o+ G1 G* q }
* a& i8 r" @* s. c. r- l; ~( {#endif // __WORLDSERVER4 A5 N: g+ z4 F# I
} ' r+ ^: t) v3 D- }1 c7 c% b. U
$ I7 v R3 x: ~+ T% Y' f
然后你进入functextcmd.cpp并添加以下1 G# I2 V3 U8 I. k( y9 }# W
: V# x7 ?. ?6 e3 J! o1 o8 V代码:. E) x" @: Y; e# P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), X* [% o- V6 S! Z: d
下面插入5 o* {! Q3 `6 [" r
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & l% L( b- p' \2 h
% b" h& m$ `5 _. B2 h- l" Z: N4 U然后你去
5 m# G) d( d. ~; }: d, V2 p( ] l# h( H
代码:3 q- z% g. z$ {- |' n
代码6 p$ H5 b8 ]2 F! W/ ]1 [
BOOL TextCmd_ClearPropose( CScanner & s )
^2 j1 f# V _9 u% \7 D: C{
7 l! g% f( h+ i/ G& C#ifdef __WORLDSERVER
6 I' c/ p6 ?: K7 R( M' K CUser* pUser = (CUser*)s.dwValue;* L7 K7 C3 m6 T* w+ Q1 X2 [6 Y
g_dpDBClient.SendClearPropose();! R; }3 n/ j l
#endif // __WORLDSERVER5 R4 A% w& E9 x1 E9 G
return TRUE;# @! w5 u! w( F; o4 l/ `9 r
}6 m: ~2 l H3 w, O6 l
下面插入
3 v% y1 t6 C9 O; r2 w0 H [) Z2 l- aBOOL TextCmd_rebirth( CScanner& scanner )
" @$ s7 f# B$ h u; }{8 z8 \) O/ N/ N
#ifdef __WORLDSERVER. f/ o' X# N$ ~- J0 E# c ]
CUser *pUser;
% K" E+ l4 A6 ^, z: tpUser = (CUser*)scanner.dwValue;
* u5 ?: v& |4 P) vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. R: p6 q; k2 ]( n( DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 {& I+ k6 K" f0 H- Kelse
: `3 S' K. q6 }. Q) vpUser->AddText("你还未达到重生条件!");+ f$ x7 P" N; O. D$ U+ M) {
#endif
. Y- x, [; Q9 areturn TRUE;
e. t- \: g. e+ f}
. c# d) E5 k2 S8 H; Y, N. s+ D
: v' k' {9 P! p0 J- B
0 _! n z# P U3 ^$ w+ E9 N$ ~1 T
) g' w3 }& X+ X( `) Z) b6 O
|
|