|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 i. _- j6 a. d: V- E
1 ]' Q( m) a* D0 Y6 j- OMover.h$ e- s2 \; H! `" u4 F
代码:) ?3 w) C4 {0 S' p( S0 l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 X7 g6 p2 y; H/ C2 D) t$ }+ w+ F
4 z1 K5 E3 N. w% u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) k% C$ [/ p. e5 W, {6 b3 }
_( U; M) D3 t5 {, y' B4 r2 t
然后你去mover.cpp添加. C" n1 _; F/ y5 J' N3 U
, n/ x+ t$ c, ?: E& e; M
代码:
4 r( o9 K9 C. {8 o1 Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). c' P+ \3 i4 L+ A/ G' x3 m) ~( M
{: v6 }: P/ w7 o" e b; n8 [
#ifdef __WORLDSERVER3 ]# y( K5 I! \8 V; [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 b K7 F- }8 A; E( y0 ~" t MoverProp* pProp = GetProp();3 I- \- ?! U4 m$ g& m! H E' j1 S
if( pProp )7 c2 u% x) n( b" Z, Z( f
{
9 H ~6 Y. y8 y: g6 x- P if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 L6 V. E2 e$ u0 o ^3 U( r+ K4 X4 C {! ?( ]! O6 P& t% ~# x
AddChangeJob( nJob );5 y0 I# c5 B- T$ \5 G/ o
}else{# X- s6 ^8 J+ I& y
return;
D, S7 T C) `, S }6 V, T6 j. A% E* s6 F
int nPoint = 0;
8 O$ b$ O9 z$ P. G% }( X6 D6 V! s if( m_nJob == JOB_MERCENARY )
1 P# F5 V4 |% R- ` nPoint += 40;
p$ c ]/ q/ f- y9 d% Y' b else if( m_nJob == JOB_ACROBAT )
1 H* _- ^1 t& K9 S nPoint += 50;& {" x& g1 z I- B& j
else if( m_nJob == JOB_ASSIST )
/ h; X1 @* A8 o! l) Y nPoint += 60;
0 G# B4 ?6 M% m$ Y else if( m_nJob == JOB_MAGICIAN )! C0 R) [0 y5 ^- W
nPoint += 90;: b% ^- w# W, {) [' w0 s e' _% D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( X- V3 G* n0 f" h+ B' B
nPoint += 120;2 K1 @# Z# u, d( X! Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! h- \5 E% o; |" v) ^( { nPoint += 150;4 W0 j S5 B3 }3 t" A4 Q# p$ a
else if( m_nJob == JOB_RINGMASTER )( |. K/ S2 t- _( G) ]1 i3 H
nPoint += 160;- ^* {+ P ^- f$ M1 l- r# q( C
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% z) x/ M* A4 O& u/ \" j nPoint += 180;
/ t8 C. u: a( k* ~$ o! c. G4 Q else if( m_nJob == JOB_ELEMENTOR )
1 q2 ~+ Z6 c/ m6 R$ l2 v nPoint += 390;
1 d; h6 A2 j* ^& C; |# g o+ A* l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), q# C) h4 n; \0 {1 p
nPoint += 120;8 a3 A1 B/ p& W* l% Z) s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); _7 I: O: s( S; r
nPoint += 150;/ O; K3 A. a( x- s$ T5 B# O9 \
else if( nJob == JOB_FLORIST_HERO )
8 b# _/ n2 Y/ P1 s nPoint += 160;
/ U- n. y* W9 ?+ E( `# L else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" E* a8 M0 c, `& |6 F) y nPoint += 180;; c% x! a8 W; r$ d" m. } o- M) g
else if( nJob == JOB_ELEMENTORLORD_HERO )
& _1 ?& ~; ]1 {. M nPoint += 390;& n7 x: ?- r1 b/ Z# q3 A$ w3 e
% t2 ^1 T# v$ b, ]- F AddSkillPoint( nPoint );+ M* y3 W' ]7 i' W/ V4 v3 g' @
m_nLevel = nLevel;- m* i# n! _; \+ a5 I2 E- e( E6 K
) U1 |2 f8 F4 E5 G
SetJobLevel( nLevel, nJob );
# U( y: s$ Y2 d/ V9 i4 F" ]* m m_nDeathLevel = nLevel;$ A8 D& |7 t4 U. S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# q# {/ |; |3 L+ ]$ j; G
if(IsMaster())
( N9 M; U/ z% U$ J) {; I {4 \# o. }4 f6 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 S# C+ }, b5 |0 v2 p0 s% d- k9 J9 q/ a if( nLevel > 59 && nLevel < 72 )6 c8 E! ~0 E; i$ q
dwTmpSkLevel = 1;% h. x1 }2 D$ h( f& Y% j
else if( nLevel > 71 && nLevel < 84 )# W9 A' f2 S4 d2 I
dwTmpSkLevel = 2;
4 L2 K5 v; J" y% S, _ else if( nLevel > 83 && nLevel < 96 )) F! R) ?6 u) q6 w5 ~+ O$ o
dwTmpSkLevel = 3;
5 y( g6 v/ _& D1 L. A else if( nLevel > 95 && nLevel < 108 )
3 a$ ]& B; s# n. N8 r dwTmpSkLevel = 4;
5 ^% {+ c; N% y8 h$ ^) y5 y else if( nLevel > 107 && nLevel < 120 )
2 k @0 ]' z2 s9 K( W0 z2 X dwTmpSkLevel = 5;
5 W( f0 I$ `! ^8 ?5 y+ I for( int i = 0; i < MAX_SKILL_JOB; i++ )
' F, E7 {7 ~- h8 Y {
. W, Z) H0 d* q LPSKILL lpSkill = &(m_aJobSkill);
, R" H; u$ X7 p: l/ U5 c if( lpSkill && lpSkill->dwSkill != NULL_ID )" R( E% @" ]) e# n9 B9 ^
{
7 a [0 \7 r$ i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' S. a7 Q3 \1 k# i
if( pSkillProp == NULL )4 R$ W t+ T8 w8 G
continue;5 L3 G8 Y- T7 w O3 U& Z& Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ D/ N# `. E& L2 A7 s continue;& k, O, V4 n4 M
lpSkill->dwLevel = dwTmpSkLevel;
$ M# c" L' d+ D3 }) a }
9 p/ C' f* _5 ?" X/ \! t. H }# E+ w: l* W" T, Z$ ?0 w3 p
}
8 }. u: Q$ O2 V, B& } else if(IsHero())* ^3 H& t: d0 ?- N
{
& x6 N( v3 e, G4 ?) C for( int i = 0; i < MAX_SKILL_JOB; i++ )
: W* g' }! `- [% T4 Q2 z# { { $ o& k& D3 d9 x' h7 y J. J
LPSKILL lpSkill = &(m_aJobSkill);# P; @6 e% {. Q3 I, v" Z& O
if( lpSkill && lpSkill->dwSkill != NULL_ID )% A4 J p; V! I' D. V: ~, r/ {' ]
{
9 F6 [( M: X% y+ H( |! r2 }! m6 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( o0 t" B ~( s6 z if( pSkillProp == NULL ). R1 H! p5 O3 P, z
continue;
2 B$ V6 j. i$ d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ N6 D" a: m5 e continue;6 R# `7 Q1 f& l4 A
lpSkill->dwLevel = 5;
- w3 e4 r# L" E# w' t }- d% ~3 ]/ _; r- G( O3 w
}) [/ @: n4 K( ^" q$ i1 s
}
& r4 l, R0 \0 Y8 _# G: E else if(IsLegendHero())
8 T. h7 P5 U4 i" X# ^7 { {0 A" ?" t }+ E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; p+ u7 m6 l0 M- H0 V7 G { $ S9 M2 c# ?' D& b0 {- j" o
LPSKILL lpSkill = &(m_aJobSkill);
, R5 i/ i1 ?& ]$ p6 Z+ f if( lpSkill && lpSkill->dwSkill != NULL_ID )
; ~$ F; `1 O- g6 Q8 D {% Q4 n4 ?4 N, O3 u" ]: {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 `! O* R8 u$ u
if( pSkillProp == NULL )
. b# e! I# ?: @6 { continue;
% y* s E8 e. A0 S3 S# y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 p; `, A7 v7 X7 h continue;6 q: G/ ?8 @7 h( R1 U
lpSkill->dwLevel = 5;% m5 ?7 j* N( C6 }6 t$ }( y
}
; w% k) j! ]: [& T; H) |* j/ } }
8 W% W' y2 w2 g C }# L3 @; u& s( j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" i0 K) ~2 w: } if( bGamma )! y1 W" G2 u2 s) w* @5 G
{2 D4 D( x; s4 u/ m/ b
m_nExp1 = 0;2 p- J6 u0 m7 v4 D6 c
}% |0 T' F) P7 d( P/ ^
' N& ~' {* b6 D
( (CUser*)this )->AddSetChangeJob( nJob );
1 l; @+ c( p I1 r0 ^3 l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# ^: `& X7 }1 H* j- w7 D
7 n5 X4 D- x' F: ]' B- i, u# l* y& t% r, s
#if __VER >= 11 // __SYS_PLAYER_DATA" E$ Q' k7 O& C4 F$ [9 M- Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& c4 s6 V4 Y+ k/ c& c
#else // __SYS_PLAYER_DATA
9 o! K/ U. \+ S) H, x5 V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- ~. d: Z: [' P9 H! K1 i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& m: u4 j+ O" H if( m_idGuild != 0 )
. u/ Y7 v2 g( {0 v5 F9 ?& { g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 h8 Y5 H( E7 [; Q0 Z
#endif // __SYS_PLAYER_DATA9 _( v* ]9 F. i! ^0 J+ p& i
SetHitPoint( GetMaxHitPoint() );
. G3 q7 a7 Y' l& R s7 O3 B% j4 { SetManaPoint( GetMaxManaPoint() );
% g) c w4 J( \# g+ P2 U SetFatiguePoint( GetMaxFatiguePoint() ); q: ?5 T+ K4 b* X+ @
if( nJob >= 1 && nJob <= 4 )
; J1 |5 k, f4 Q! M/ ~% _: F2 m {- y% R5 t/ O) ?5 C0 ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 N" O9 S+ E) [; Y- l
m_nRemainGP = 28;+ H7 e" S: U) _, m0 w; T2 E2 t
}! T/ s3 n9 B2 O2 Q' e* Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" H$ B# x9 h q0 U {
6 z+ G- |% ^; M( E, y m_nRemainGP = 118;
! w8 `: v% q i$ |0 k3 Q8 w4 b //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! G5 O1 z- F0 D, S$ O6 }' s9 v
m_nStr = m_nSta = m_nDex = m_nInt = 15; j3 N5 h* {: x. ^
}$ h5 p+ ^. N$ o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 `4 ?2 M! {7 u A+ A
{
0 L# u$ ]: F) p2 g& l8 ?& S CItemElem itemelem;
0 \2 U+ W. W& x0 `; _+ m itemelem.m_nItemNum = 1;
6 K* L" x9 j1 p( B2 S itemelem.m_bCharged = TRUE;
4 w- V& i! A6 q/ U, H! O BYTE nID;7 r N) A+ d$ h. q4 N% | i
0 z/ V' o4 a' k2 }" W if( nJob == JOB_MENTALIST_HERO )
) ~5 v$ C+ F* u! o( m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, W; q* f, v2 P1 h. F& k
if( nJob == JOB_FORCEMASTER_HERO )' C2 l' e/ I0 t; D4 s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 Z% Z) J5 R6 `4 b: t0 a [
1 n7 [& C6 U) K ( ( CUser*)this)->CreateItem( &itemelem, &nID );; E2 F( w( _9 \/ N
}/ }; }/ [* B7 Q) {! k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 O" o$ n5 ~5 d6 {+ {, Y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 |. j6 P; F) n. D* U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# @7 ~) U! q0 U- F, V" M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. h- I2 A# v2 M$ o( f! A
( (CUser*)this )->AddTaskBar();*/
% |8 h8 Q3 q/ v, {! `. ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: |' k2 J+ F( n; Q, H& v. b#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 s. Q4 q) u8 `' a U7 | ((CUser*)this)->CheckHonorStat();' x, e* w+ N1 B
((CUser*)this)->AddHonorListAck();* v6 A& l! p" [( S! Y" l
g_UserMng.AddHonorTitleChange( this, m_nHonor); X y1 X3 C/ z. L9 V
#endif // __HONORABLE_TITLE // ′Tà?8 Q$ I% j) F0 M4 @
}
- \9 x" {" @! p5 _2 B#endif // __WORLDSERVER
: z8 A9 Q5 X% o9 T w0 O2 \}
+ \ k* h9 ~9 d$ a; u1 {4 j3 q& ` m9 K
然后你进入functextcmd.cpp并添加以下
) D5 F3 f4 o# J/ F, s+ B! J p# |
代码:
. n" i( S& l5 [: T' @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 S. L7 ~8 c4 U# C0 S下面插入: J' x: M. l/ i; M$ x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % x& y/ D$ h# E0 F
$ a' L4 I& D% J+ H
然后你去8 r8 g! e: d9 a2 p* s! E
_) t1 @% J8 `& f7 f7 _, J+ F1 e
代码:
3 P! Q- D# M( k9 R% T代码. i* D2 r; Z! i2 t* A" U$ m
BOOL TextCmd_ClearPropose( CScanner & s ): v, C8 ?/ U" B" x% C9 ]
{
& @6 Z9 J: b+ Z& `; v3 `& f#ifdef __WORLDSERVER. w( s4 d0 m3 i; _4 A0 V
CUser* pUser = (CUser*)s.dwValue;
0 O1 {" S; \0 Y0 n4 _" i$ H g_dpDBClient.SendClearPropose();
- y) S% n) N$ H5 p#endif // __WORLDSERVER
+ Y9 W9 m- G3 w B return TRUE;
9 }7 l7 j( M$ _4 T" d( u}( a/ u" @/ i. a6 o
下面插入
. I& A5 y1 R) r0 `BOOL TextCmd_rebirth( CScanner& scanner )( G% H- j- |7 U1 w( B
{
2 |& L* G* O$ D3 Y+ M#ifdef __WORLDSERVER' ]4 {7 s5 e1 a+ V* @, r
CUser *pUser;
6 [2 @4 I+ ^& h, t$ rpUser = (CUser*)scanner.dwValue;
+ f9 ^7 z' L' o: K/ H, Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 ~7 ^5 M! H* e" n' K& q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! ^: {: X, y( r
else
0 Q2 K4 {$ e" IpUser->AddText("你还未达到重生条件!"); E$ D/ p" f( u% v
#endif
$ Y# @: F5 ~/ m0 w; rreturn TRUE;% y. r" _+ z+ w1 X( ?$ N G
}
- u W6 J h: @$ _$ W
$ I2 H! l9 c0 Y% }
7 b( I# c1 p) K% X# V' ~- @3 w Z7 }
y7 Z _; G" _( _, M" v8 k
|
|