|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. N W4 M7 g* J1 e( S1 h$ m$ q
0 `6 a* K# V1 u' h8 UMover.h9 F: X' ]5 A& }, ?' C
代码:4 l% m; b9 A9 o' e2 X( O9 T& U3 x
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 T8 \+ y: v; N7 [ q" C; r n6 x( E4 E& |: [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 @, C& P% l9 D; H/ l
- V% C$ n- K- d7 W/ s' Z7 t% R然后你去mover.cpp添加
- H- p" V+ y) b7 z* V; O- n) ^, _0 G8 H+ e% J
代码:
2 W) V6 `0 K. A+ l8 k. ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 {2 n/ D' x3 m5 S5 y- k{4 n3 \; q# r, Y( v+ h9 c' y7 ?
#ifdef __WORLDSERVER" @4 T" p$ @) a, Q- u* p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 P: q9 B% H' j5 f# P MoverProp* pProp = GetProp();
* R1 M2 c0 c7 {' j& _$ n5 @: T9 _ if( pProp )
5 }2 P V% N4 }, z! Q, S {
9 b9 M+ F' |" V) f5 I. D- }3 v if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 L5 c+ `: i' A {
5 I& o o' M% Y9 c/ o! T5 F; Z AddChangeJob( nJob );
; L1 r( ^1 e9 T- q+ w V }else{
+ W" T ?9 {3 n: e6 J0 b: o return;
# D" R0 w' P5 a, r; B& { }
8 c; C% N% }* C, j int nPoint = 0;' D0 \- F/ _* ~) U% ]4 g6 M4 P
if( m_nJob == JOB_MERCENARY )4 l! c4 S$ \5 V5 N+ Q" Y8 [
nPoint += 40;
- o0 h3 T7 q9 b3 } else if( m_nJob == JOB_ACROBAT )$ Y5 U8 |( c5 z0 J; b {
nPoint += 50;
# D) c p* C; u( J+ q$ J+ Z0 N else if( m_nJob == JOB_ASSIST ) n. J# E M) s& Z" ^6 w, b' E
nPoint += 60;( G- A* h8 g' {) h
else if( m_nJob == JOB_MAGICIAN )7 A' ?/ Y u. Y n$ h9 Q* a. I
nPoint += 90;
) _+ ]" y7 C4 a& {9 c# T9 d else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* \" u# |, s+ P1 x( r7 M L nPoint += 120;
( p$ D# x. Z5 C* s" ~5 { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). h" t" G1 w, d2 R0 G
nPoint += 150;+ Z i e# G7 t' E
else if( m_nJob == JOB_RINGMASTER )* C7 T6 h: w5 G! x/ j
nPoint += 160;
3 c! K. R* F8 Y1 r, X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- m+ G$ k+ t6 c# L
nPoint += 180;
/ w- q' C! f( ~ else if( m_nJob == JOB_ELEMENTOR )
/ T% O# p; F9 ?; F, {$ p nPoint += 390;( D; V( l. ]0 F* v+ g; h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ b+ o# J- B$ z7 k4 Q nPoint += 120;$ M% M5 h& H; G. I# s! t6 J8 n# `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& c4 E* K7 _0 F$ M
nPoint += 150;
% m: Y- R7 Z: d0 g ~. Q else if( nJob == JOB_FLORIST_HERO )9 R) z" g8 {6 `9 [+ d. V2 T' N: \ M; |
nPoint += 160;0 t8 L$ d; }6 S# c* |- \3 y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& V9 d" Q) U2 }0 f/ R
nPoint += 180;
& t f$ Z/ N& d. `( i5 _5 \/ l else if( nJob == JOB_ELEMENTORLORD_HERO )
1 U0 X4 C) k; L5 M+ e2 y; l nPoint += 390;
' V/ a3 P6 I4 p8 b7 P0 K- h7 v; X% x" {1 }; s& j! z+ t
AddSkillPoint( nPoint );
' ~0 X. F( q( a' B) w$ p m_nLevel = nLevel;/ E' }9 u8 u" f' }, x
2 {8 o9 t: e: a3 t3 ]* c! O SetJobLevel( nLevel, nJob );5 L" n8 S! y f) P
m_nDeathLevel = nLevel;8 L. X+ ]* Y: n, F; t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 m( J, @7 ^* l* r0 _ _ if(IsMaster())
: ^& J( _+ M: t' t {
! `* s) e: s+ |% _# f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" L9 _2 i& c; p5 |$ ?) m if( nLevel > 59 && nLevel < 72 )2 c& V6 Y( I2 ^; W* o7 b
dwTmpSkLevel = 1;5 J8 d! q+ U% p0 s
else if( nLevel > 71 && nLevel < 84 )
- i: I( E, g% s5 \) h4 e& C. w dwTmpSkLevel = 2;: X: k6 s: T' V& ~8 \" v
else if( nLevel > 83 && nLevel < 96 ) i; P9 \$ Y9 L2 [. t. C0 g
dwTmpSkLevel = 3;
& e. \$ l& q& ], v2 E! g else if( nLevel > 95 && nLevel < 108 )
+ R) o# a- }/ y6 a7 `, A dwTmpSkLevel = 4;
6 }: V4 [- G. j else if( nLevel > 107 && nLevel < 120 )# `4 n( ^, }0 z# M* E
dwTmpSkLevel = 5;8 L9 b, E- y5 f1 G" G& T' J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) b: o9 _, Y. v& O' \( f# t; C { 7 o, p( H! `6 J/ g8 p# S( `
LPSKILL lpSkill = &(m_aJobSkill);
6 W2 a: p9 B, V% F if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 a! C5 U7 g5 o# ^ {
; c- L/ n: G F) S5 M% Z6 a: \$ J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - _5 Z% e* t; ~2 ^
if( pSkillProp == NULL )
: ~5 U. K& s) |3 \, n3 F& f6 \ continue;
- t! p4 {0 X. D5 H- ?7 x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ p$ d5 \# `8 S5 H# j6 [& {- j' o continue;
+ U `+ V7 O- J6 d x lpSkill->dwLevel = dwTmpSkLevel;
- G6 v" K9 w; O1 K }4 F2 L, H3 ^7 n6 w$ F
}5 k8 w" ^* q; p
}1 v& c V, X2 T
else if(IsHero())
9 K" o- |1 U% H# p% `& o5 e2 E {( x- v( }$ q2 U; r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 ~ D; }5 w& {! @4 N7 F. \
{
" c" b3 S; y1 c6 \+ f. Y+ N& k LPSKILL lpSkill = &(m_aJobSkill);- k2 G. S% X2 w* u+ C
if( lpSkill && lpSkill->dwSkill != NULL_ID )* J r8 }1 y; t
{
# w8 j% y0 A8 g, j. y% U+ \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * o W+ d- u0 {4 x
if( pSkillProp == NULL )4 \2 ]& Y" D% ^; w' d) q- f
continue;3 J) {# ~ {2 y, E; G: v5 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" C7 c/ A/ J" O6 Q- o3 s continue;( }, n* H& r% c; s4 S0 D- e
lpSkill->dwLevel = 5;1 z8 j, H2 B4 I& E6 ]# O$ u5 Q
}
6 o' e( k) q* T. P0 z$ r } V+ X6 I% q+ Q$ |- Q
}2 }. k! v& l' j& @# R' n
else if(IsLegendHero())
9 B: a* I8 ~9 m7 A+ P0 s {9 ?3 u' _" Z# d6 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, F, g& J& p1 T: i: c4 x# a5 l { 6 l1 C4 k) r* }/ v
LPSKILL lpSkill = &(m_aJobSkill);0 a) t. v. w1 [% w6 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )& T1 q6 N% s4 B
{, Y2 Q* Z+ M+ d$ a* b" U- U) W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 j+ E# C: D4 `" [
if( pSkillProp == NULL )
9 G$ |7 G- V6 C continue;
. m4 [' n' V8 i) u: L3 I0 m6 L. _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 n% a; {* K, [ continue;3 U. X o% H, v! t
lpSkill->dwLevel = 5;; s1 x5 G7 ^; e$ H j2 B
}
' d5 v) Y; P! S4 a }
, M/ U8 K& @ \& _# O. U }& N8 D* h* r; q E N% V9 [( i
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 Y3 i5 _2 N* e+ C, r
if( bGamma )
: h5 l. _4 I! H, A0 Z5 O/ H {; E' U. m5 Q& K- {+ a; G W( o% I O& ^9 B
m_nExp1 = 0;. O$ z# t8 y8 \% [; l5 N
}
4 H& W. `9 M V+ R# ]& R1 ]4 _; F4 t* p1 }
( (CUser*)this )->AddSetChangeJob( nJob );& T: I' P; ~) V t# S) o4 _/ F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 C/ ]$ r) n j& }& F
3 y9 v5 K! |6 J
* @; A, E3 A5 ]' T. S5 D/ K- G
#if __VER >= 11 // __SYS_PLAYER_DATA
, `4 E& J3 q2 y: [: S3 `. u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% l4 C# K$ q4 y! N
#else // __SYS_PLAYER_DATA ^8 |1 ~! c! n) {; B* g. K4 y( c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 e* H3 K! g* J( |* v$ l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, m# Y# v% u3 x$ B
if( m_idGuild != 0 )3 X2 y7 r3 F6 o% g, Q& Q, P4 j Y( N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 Z3 `2 t5 C7 `; `0 G
#endif // __SYS_PLAYER_DATA
4 N2 X9 F; i) i& z" ^ SetHitPoint( GetMaxHitPoint() );. z& P" e& N- a3 {# T
SetManaPoint( GetMaxManaPoint() );# \3 }! V( x; n/ Q4 }4 s" ~
SetFatiguePoint( GetMaxFatiguePoint() );6 \& f& J4 o7 s/ M% m. i
if( nJob >= 1 && nJob <= 4 ) V8 }0 o7 R8 ~
{
* |0 O0 y: g, Z m_nStr = m_nSta = m_nDex = m_nInt = 15;/ \( l2 k- B7 A6 h0 s: V: n3 ?
m_nRemainGP = 28;
; Z* k) f4 t7 C" u }
& B7 G! j2 q! K" o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 q" z, Y o2 W9 H. \$ ?) u. ~8 ` {% d" g3 F0 a! o
m_nRemainGP = 118;7 g1 F5 k, O9 {8 C5 H' V) C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: b, ^/ a* K: v& l9 h$ f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
h( O, h) a2 h- J! l/ a }
! Y7 x$ k2 ^5 u/ \: K: W! W9 n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- C! o% ~$ c4 o) L1 L
{+ r& r2 g" n+ P" F: {5 O
CItemElem itemelem;5 j f% N* r$ T, J- g
itemelem.m_nItemNum = 1;* u- [, |# s! B3 u* o% y% o
itemelem.m_bCharged = TRUE;' \7 z! T! _9 ]
BYTE nID; G! T. A) G7 n$ j5 n8 F( C( Q
' O; I. f( K) r: b t; K% ~1 z if( nJob == JOB_MENTALIST_HERO )
$ L; J! F$ F) C, D+ g( g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& }' C9 c% c7 A+ s* U' f
if( nJob == JOB_FORCEMASTER_HERO )
3 }# _6 J4 R+ C7 d, t0 q, O0 Y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( z/ W: R1 K0 K3 R: x
, d; [5 e6 _4 m m% N ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 X* M8 L* x. t0 o
}
4 f+ M, }/ z8 z- _ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 x3 `+ \7 `; u/ ^ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ B6 h$ m% ^0 h# w% L& ^2 n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 U+ I0 {: m5 r, ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 o& D- G( Y7 Y( h/ A ( (CUser*)this )->AddTaskBar();*/( S/ \9 @/ a5 s' l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 O v1 [ D* D7 C( b* P) P9 H1 H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& O/ ]1 ~1 X8 m% A4 Z6 p ((CUser*)this)->CheckHonorStat();. ]" a& m$ L5 h$ G5 E
((CUser*)this)->AddHonorListAck();& J1 ?% q, s4 t2 n O: e4 @; @7 Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);% c+ a' q7 I# P9 h
#endif // __HONORABLE_TITLE // ′Tà?
: Y: P E( m4 Q% e# Y }- I2 l2 W0 P! ~5 [
#endif // __WORLDSERVER
, Z& @/ t) t" Q6 n% c$ W}
$ Q7 m( q$ S( X5 D d8 m' e1 y1 o# f6 [6 T
然后你进入functextcmd.cpp并添加以下* C* p' W$ x) w, D. b! j4 Q5 M& L
6 O" R- Z/ I1 H3 d* N" K/ ?
代码:) G3 S- f3 T9 v* [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 C. U2 [4 \/ k, d/ N! P ?7 u
下面插入# `" r7 b d9 n, t c. t( v. R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( H+ I3 f: T) k! F: b
" K5 x6 N* o0 T
然后你去
4 `4 y9 b* G4 K1 }# u4 P4 [/ J; }2 _: z& m0 x7 j7 t
代码:
- m6 V1 `/ R/ i2 K: J代码
0 [' l& m6 y% v* H( ~8 b( l4 Z8 qBOOL TextCmd_ClearPropose( CScanner & s ), Q) c1 z$ L4 h1 a% |- K& i
{
, v+ G% ~! h! D( ?#ifdef __WORLDSERVER7 P, |; T. b: C9 L1 b; q
CUser* pUser = (CUser*)s.dwValue;
, U2 T$ w5 b, { g_dpDBClient.SendClearPropose();5 C) a+ Y# m4 u
#endif // __WORLDSERVER! H5 t e7 a5 F6 B
return TRUE;
; T0 n) T' ~5 T" R6 L' I}( M3 C" Y4 l, s' Y2 d! O: ^
下面插入* E; g1 h$ F0 P2 G4 h- t
BOOL TextCmd_rebirth( CScanner& scanner )# [% W! o' L G H
{' @3 ^0 X. U' f) A5 K8 [
#ifdef __WORLDSERVER
& [" ?" m9 b0 LCUser *pUser;
+ M. _! \, G: \8 F: k3 _4 q$ spUser = (CUser*)scanner.dwValue;) e4 O4 I- A4 B+ a' j
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 q s/ ?( P# F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) k# h+ j# j6 T2 }$ J
else
) ?+ ]2 N' V! U: O) zpUser->AddText("你还未达到重生条件!");# a7 H* m2 e( u+ a! F
#endif0 }* m6 W2 [9 I, a }9 W" a
return TRUE;
1 _/ e$ |# K5 {* S& z}
8 C4 H2 l5 k3 ?) \* ^% O& } V" ~1 d% G Z c+ K' M
; I6 X [( x3 [: ?0 [1 E
5 ?& P# E4 ^+ ~
v/ w$ ?6 q* \6 \1 i7 {3 W
|
|