|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& h# m# \' n2 z" X9 c2 f
d1 H9 U5 R0 z
Mover.h3 R2 m# _2 b8 G; \
代码:
9 F; t6 b) K& J. K0 E" C4 |6 @找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü t" R$ N! }7 L2 d, v
6 B# ]* A: h& T! g* c# n& u下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 m) n; _. e8 A0 n2 p
! H0 p2 b8 x8 y+ `1 I. j( j然后你去mover.cpp添加# R5 F5 m4 @2 u) [
3 g+ x4 ~2 W3 o6 M- X6 o- c
代码:
' b: U& p6 U9 r. I# E; v* ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); ~& T7 {! @2 ~( B7 `# U
{
! T1 h& m( ?9 `/ _: n _#ifdef __WORLDSERVER
/ R$ V* C- y. x" n" i4 E // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 Q3 ?- _# Q. U" E0 S MoverProp* pProp = GetProp();
9 x4 {+ K) D4 t- q0 [ if( pProp )
+ e! D7 U5 g3 |! O. a& K {- J4 d1 d5 _# @; L) E; ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ F8 K: p/ ?2 v+ Z% F {" t$ k; }! s& d
AddChangeJob( nJob );8 V2 e* W/ l- K! j `2 M1 e
}else{
$ D" z0 n( Y! B, P return;% |* U# I; c5 C. R' s
}
( i7 e: I) c9 S& D int nPoint = 0;
: C$ v* Q& B7 y" K( w if( m_nJob == JOB_MERCENARY )7 {( E" `7 S: @# x
nPoint += 40;
0 k$ e {6 |) T% ^% j% L else if( m_nJob == JOB_ACROBAT )
+ W% q3 @$ ~$ |" x% m nPoint += 50;
- X# E& R' Q8 _: F! z/ d8 N/ j else if( m_nJob == JOB_ASSIST )! U6 \; Z$ l2 g* l
nPoint += 60;
/ g/ h8 d) T/ P! O3 P0 P% i* u+ _ else if( m_nJob == JOB_MAGICIAN )
2 \8 y S( } p, e8 S nPoint += 90;3 |! j$ K* Z2 K# [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 a F7 K8 T R. H
nPoint += 120;' @' U _; k- T: q6 \& a7 X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) B5 j: ?& Z3 T3 `2 Q
nPoint += 150;
- [5 {0 V1 ~4 D# S: M else if( m_nJob == JOB_RINGMASTER )
0 X: t) x! G% z' } nPoint += 160;* b v" u$ n0 R6 ^& x5 P) i+ D
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 m, ^% u7 I$ C7 `& o nPoint += 180;
% u* h9 A! p: J* Y( @) J else if( m_nJob == JOB_ELEMENTOR )+ {3 ?; C6 u! h( U; e2 h$ I: J
nPoint += 390;2 d: n: {6 s$ p5 G" u/ ?# F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 _! Z4 Z4 O9 @# ^0 y
nPoint += 120;, Z6 p2 f% M6 P9 Y6 K3 T8 k6 z8 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 T% A0 f+ c0 r: @1 f2 O nPoint += 150;7 X. X+ R+ A& \( W
else if( nJob == JOB_FLORIST_HERO )
2 B' \+ m( p1 t- t$ N$ C nPoint += 160;8 }. b0 X* k3 y; Z% U: _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# @$ X& ^$ x, O+ j) o1 s9 I nPoint += 180;1 y# c3 i& z! D+ c6 h# c y
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 a! I4 w5 v- Z; V* C) ^ l nPoint += 390;+ \: N0 w+ y* K* b4 D# J3 z
9 X |+ l% L9 E. O4 [+ o AddSkillPoint( nPoint );
B; J0 ^6 E2 \) Y m_nLevel = nLevel;
% a7 h N& ^9 D7 ]/ t7 A4 D) \+ I% C' ]8 ^- A
SetJobLevel( nLevel, nJob );
5 A! x0 o3 e, n m_nDeathLevel = nLevel;
% ^: w' H7 p" u J#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
F$ K* {# Y8 y( w" N& f if(IsMaster())7 {( g: W3 q+ U" \
{
# ~- h$ }( w1 y: P, u$ d0 N& Z- T, v8 L int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 H3 m) v' e) F+ x+ k5 e! k if( nLevel > 59 && nLevel < 72 )* v* X$ A% m" V$ a1 _! g
dwTmpSkLevel = 1;
% E$ O5 U7 n5 a$ T. x else if( nLevel > 71 && nLevel < 84 )
* P0 {1 B* J& |3 u |; {! \ dwTmpSkLevel = 2;3 @3 G7 y5 S: z. W3 q9 Q. u. v; W
else if( nLevel > 83 && nLevel < 96 ), R. ?$ z" R# B- \% c+ m0 X6 e: f
dwTmpSkLevel = 3;" D( \8 X0 P6 Y+ y
else if( nLevel > 95 && nLevel < 108 )8 t8 @* H4 C0 {
dwTmpSkLevel = 4;
) t y& z/ n( z( P! b' J7 Z$ ~ else if( nLevel > 107 && nLevel < 120 )
( M9 P0 l" Q+ m9 G( n dwTmpSkLevel = 5;) C8 ~/ ?3 E9 |" c$ ]6 d( Z/ a. R4 V. M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 O h( j" K. f# G% b
{ ' v8 F! h' U% N4 Z* Z0 N1 ?
LPSKILL lpSkill = &(m_aJobSkill);1 I" S5 u3 b4 z& M6 i) q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 j& }" j% O. _. ]6 S' T {
& M+ M; o: Z: D! u' r W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& b. s x* X* J' @ if( pSkillProp == NULL )( R8 D0 ~) J. X V1 G: a
continue;
' L5 ~5 e0 k1 P+ v" g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 }( r6 y9 t, ]% w/ {
continue;
+ i3 L/ N: K( ]6 \+ U lpSkill->dwLevel = dwTmpSkLevel;3 i) G: ?4 q( B7 _8 J3 v: E" D3 q
} E1 ]7 H* M0 v
}
: ]" a7 g* j' S" {( S8 O9 Q/ q }
# L$ `2 u: a1 e [& O1 A3 L% G else if(IsHero())
8 B( }( q+ t9 X$ n1 @ {
8 J* N" p) `+ Z( l% A% Q3 m8 Z0 j! R; j( u for( int i = 0; i < MAX_SKILL_JOB; i++ ) # J1 E( @/ W2 y3 o0 `2 [" N3 [# @
{
2 x. B/ n; E& \% A1 j LPSKILL lpSkill = &(m_aJobSkill);
& C1 ^' L; J0 P- Y$ V if( lpSkill && lpSkill->dwSkill != NULL_ID ); ~$ _9 x: m( c0 A" t# z
{7 T) F1 C# u& }8 W2 b, V3 m3 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& C# r p Q9 G0 d _ if( pSkillProp == NULL )
+ j1 T Q; b ^& S$ U: C' X( E continue;) d4 w e2 T2 ~4 T; P* k* r7 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ o: N& H/ i! q: i- d5 ~( w% @7 m5 f
continue;
8 ~, O: A+ p' Z+ g1 r1 L- ~ lpSkill->dwLevel = 5;" E0 J0 R8 o" g' Q6 U) `
}
9 X$ Z7 x! ^1 k e! Z4 M/ g }
6 J( Q1 l% `; b }
7 w0 `. x5 w9 C M' C else if(IsLegendHero()): y# y9 \/ k% G* {! l- G! ]& a' h) q
{
8 ~9 w }4 [! I ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 y& k( k" g, ]9 p {
+ g6 z: d+ S8 P. ^5 O) p LPSKILL lpSkill = &(m_aJobSkill);: ~0 y" b4 @+ w+ a
if( lpSkill && lpSkill->dwSkill != NULL_ID )' b! ~5 p" t. }% l
{
9 d( k6 {' R3 e1 X, R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 d$ ^( k* W$ m6 n if( pSkillProp == NULL )
) A# c- e! o2 p continue;
" Z5 j2 l) R( H [1 x# ]7 ^1 G. G" b' K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. v! L4 k* K& d- @+ D* J5 s4 ? continue;6 m+ \! W/ U2 f; h/ V! `
lpSkill->dwLevel = 5;2 U) ]. S5 z! l/ g, j
}9 h5 Z9 \2 v$ R% \
}- Y( i( y+ D& Q6 i
}
8 i, k" N- r. x- ~#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ o8 l6 {, l: f6 L4 s" W: A" ]1 w if( bGamma ), S& o# a4 H& O4 u
{
$ V$ Y* P( {) `, H3 p- A0 R* C m_nExp1 = 0;) j0 s5 S; }: Q+ j: K# Q
}0 M; ?$ W. p6 b q
0 y! `! a. q& h* g: D; R g9 [
( (CUser*)this )->AddSetChangeJob( nJob );
, {* I* W. P+ G) y8 J- B5 g9 P+ f' E g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 q' T7 I) K7 u1 J
( }5 F5 S0 ~* ]( g6 | j) Z5 i% V
5 K# L2 P2 b6 J: O/ G#if __VER >= 11 // __SYS_PLAYER_DATA
) N+ U1 p' Y, Z" Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( W# R7 w( x# T2 \, ` T: B
#else // __SYS_PLAYER_DATA
, E2 b+ \) _0 T. \/ f1 e/ V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
G7 t; w8 @& z+ a+ l; l+ W g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 [! r! T% |5 K+ z# ]
if( m_idGuild != 0 )
' [; k) u6 L3 F9 P* |% r$ V8 p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' [& U% U$ F) t, u: `#endif // __SYS_PLAYER_DATA4 B1 b5 U5 [5 l& t! F7 y. r
SetHitPoint( GetMaxHitPoint() );8 X j9 A+ Z: E+ B, q, v
SetManaPoint( GetMaxManaPoint() );
- z8 \9 L( R5 U6 @) g* T SetFatiguePoint( GetMaxFatiguePoint() );
8 [+ j' t5 c# I. K- F if( nJob >= 1 && nJob <= 4 )6 C+ i8 Y8 L, J w+ `* A6 K" [
{! p; W ]# ?% F8 ^9 G5 y. f
m_nStr = m_nSta = m_nDex = m_nInt = 15;% C {7 r7 x# V
m_nRemainGP = 28;
# _- U" w- }1 {0 D# o }
! n& D* h: m( F8 g; Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 l! z3 q" N9 Z& f$ U
{
" v8 y7 r- s1 _ O/ l m_nRemainGP = 118;
+ e1 Y) q, z! S M, y0 U- I8 u //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! u) C" \* b5 h" b3 T) s. g. N- g
m_nStr = m_nSta = m_nDex = m_nInt = 15;* E3 J- t5 S" m
}/ U" U. d( [9 p" y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 W; J4 p$ { \0 c' {
{
9 c" {( @$ U$ t' {) a% {: D6 d CItemElem itemelem;( b% W* h/ o$ o" C
itemelem.m_nItemNum = 1;
* @6 T1 ?) k8 O, J v! F8 N itemelem.m_bCharged = TRUE;
+ u1 J& z- R* @8 E BYTE nID;
! k, [; [* `' R7 [3 j3 U2 R# P' k" `- A1 t
if( nJob == JOB_MENTALIST_HERO )
. V8 q$ y x/ ?- n, g. O1 R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. k: w8 e4 A2 Y+ L: E7 p+ \ if( nJob == JOB_FORCEMASTER_HERO )
- o" ~% p4 V* b: x2 ^ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 J3 B) a9 |7 x& l# G: x
& O4 S/ s2 {7 y* r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' {" ^. e& h- V }
1 e/ G I: s* ~: o* p v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& ~. q3 z7 t7 g" W* J+ }
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; w& x" B v* G# w8 x/ h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 @6 u- b2 Y. \6 ~4 ^7 |* k/ y$ z1 X/ S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- P7 v1 ?" m4 o3 C0 U ( (CUser*)this )->AddTaskBar();*/
- t' N! n/ l) j0 E ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- k& q A1 f8 D- f9 B3 C8 w ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% h6 R; A: m3 N. L' @) @
((CUser*)this)->CheckHonorStat();
9 D0 H. E! n. i2 J+ G* j ((CUser*)this)->AddHonorListAck();' R4 y0 [ X+ `& t, k A) B8 ~6 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);" W/ Z* |5 t9 b" Z& z
#endif // __HONORABLE_TITLE // ′Tà?
5 b2 v8 Z: E) @( e2 ~ }5 h7 B. E# \- u! W0 j
#endif // __WORLDSERVER
3 N! I+ V3 u8 u}
) {; m5 h4 P4 W2 F7 C0 l
' T# k2 q2 q; w: C2 J然后你进入functextcmd.cpp并添加以下
; C1 x3 q$ ~/ }) H$ D
/ N' E4 @% B) k; f6 F代码:
+ }% V$ S- L0 r9 s. RON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ s6 j; p3 M1 L! W- R下面插入
) @. k4 v/ ]2 @' ION_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - r4 k; X; c8 ^( p( G! N
- P: ^% m& x% s/ O) \
然后你去
/ o2 U$ w/ m& p. I6 {9 ^7 b7 M4 q/ T2 G9 a8 B- v
代码:
% M5 w% C4 f7 z! ?2 v3 b) V" F代码& ^5 h1 ~* Q' c: [# P% m5 }
BOOL TextCmd_ClearPropose( CScanner & s )/ l0 Z! ]. r/ `& b& N
{1 ~% u3 Q7 R/ W I8 h9 B1 E
#ifdef __WORLDSERVER- |3 U7 S9 z( s; r) A
CUser* pUser = (CUser*)s.dwValue;1 h( k) N9 O+ X6 A- a4 k" T
g_dpDBClient.SendClearPropose();, Z7 a% V7 ?8 I9 B
#endif // __WORLDSERVER" }# N4 T v0 ?8 S3 I, y/ Y
return TRUE;, N3 Z4 T- [! ?" `6 X. _( ^% [8 X
}
6 n% Y* T$ P+ v. P下面插入
4 R. k! D9 A. A# a( T; lBOOL TextCmd_rebirth( CScanner& scanner )8 N" G6 c2 q! L9 ]
{& O* K b& d T) E
#ifdef __WORLDSERVER5 c( x$ R/ E- s- W+ b5 ]) a) f
CUser *pUser;6 B2 l, H" @9 q( y
pUser = (CUser*)scanner.dwValue;% R. @# A+ @8 L- s
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ e U$ v; O* c* N1 a$ l" QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 `$ Y, m3 N6 zelse
+ O" a( x, ]7 n; P1 }4 ~: _pUser->AddText("你还未达到重生条件!");
, t5 g" E' W+ `+ w; }#endif9 G( E) ?( a' d% |
return TRUE;
" S% h7 V9 j" @: O# Y: X' N} 3 W& j* M Q4 t O2 F+ \1 v- ]
" w1 }* ]3 N3 E! @& T$ k) t. t+ _$ w( D
: a' M( F2 _2 j9 }# E# k$ C
/ L- U: `& x2 {! \4 `( u4 m* c
' g, ^" v: n2 z7 R! B% d |
|