|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) i1 k! r1 a9 H6 W; Y: A
* W- G, y5 r* M4 n! e5 S, N
Mover.h* E$ b+ ]& i! y0 |: N6 Z8 u' f- A0 X
代码:
+ k4 \/ Q% Z; m6 b8 N9 l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# A5 D7 ]5 B9 |, D) n' P
/ ~5 o4 Q6 V3 z C5 L4 p1 Y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) V# ^1 f F$ `. k e8 p# S/ e
+ j! ]% ^ a: B* G$ F. I+ w+ j
然后你去mover.cpp添加0 @/ _# j F: m! i% M( j
" M) ?1 G9 O6 [5 Z8 X2 f代码:
' P! o5 G [0 I7 T2 vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! d/ r% J5 {8 X1 h2 D5 M' a{
0 M; @- B! G; }" u+ b/ [- X#ifdef __WORLDSERVER/ ^. }9 O- n# U/ _4 P/ x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
Z* ], I& M# W5 p* w: p: ?" N' ?7 ^; R MoverProp* pProp = GetProp();
( B" s, X& R! H. @7 n: i* p5 ?$ r if( pProp )! L9 ^8 f+ `7 U6 }5 ^
{
* h: E% y9 ~1 N* Z' p9 |# \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 Q, L7 L$ O' T {
6 I9 G4 P+ R H: R/ I) ^ AddChangeJob( nJob );
' ?" b4 p5 z8 x1 G }else{! ]2 J" |* ~$ E
return;
+ b7 l$ O h+ d- r. p }7 @' s H; T+ {
int nPoint = 0;/ s6 T# ~ ~; I" k2 t$ q6 t, s
if( m_nJob == JOB_MERCENARY )$ B: ^, i$ [4 q+ C5 K* m6 z
nPoint += 40;0 I! [, I+ N! A/ }( {# X
else if( m_nJob == JOB_ACROBAT )
- {, I/ ^' U2 x# r( h/ v Z9 O nPoint += 50;
4 o) N1 Z c6 J# p& x. ^8 y& T2 Y* m else if( m_nJob == JOB_ASSIST )
9 l3 N; B0 \- E" b( U nPoint += 60;4 o5 [% W. v% g0 z7 ~2 @+ l
else if( m_nJob == JOB_MAGICIAN )$ E9 B F& m0 J7 Y4 y$ w
nPoint += 90;0 s) K0 S# ]: f( N/ T. Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 o& c: Q: v4 C. E! @% [
nPoint += 120;
4 W$ }3 g1 w' F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 J' V1 H( v5 s7 _ nPoint += 150;
4 `" k+ X" q% c% z" S% q else if( m_nJob == JOB_RINGMASTER )
R R* }! I3 q; [ nPoint += 160;
, V. [9 L: W# U5 M8 p3 ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). m0 U/ x# D$ `# ]: x) H1 d+ ^
nPoint += 180;9 S3 r+ w; S4 o& h
else if( m_nJob == JOB_ELEMENTOR )0 _+ k: t0 ^: `( L8 c, L8 {3 l7 y
nPoint += 390;$ V, M& d e* r# R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' ?% m5 h5 u$ A0 s$ ?
nPoint += 120;& O* g$ p) P% O! Y# g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); n: ]+ S& _# w7 g! \
nPoint += 150;
. n& `1 v' k# j+ d, r' \# y else if( nJob == JOB_FLORIST_HERO )9 d4 ~* r2 J8 L# m
nPoint += 160; |* b' `' ~2 l+ @7 @! T1 R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ C- N( c/ p V# Y nPoint += 180;
. j& z- \$ B% p9 i( {; Q5 X else if( nJob == JOB_ELEMENTORLORD_HERO ); n: e' E( K4 U) c- }
nPoint += 390;! ? _) K& S @0 i/ ?
) _* T E: ~& g4 q9 o2 b
AddSkillPoint( nPoint );" y7 _" l' w& k8 f. K
m_nLevel = nLevel;0 k; C" d# C0 S
% H5 c' F, @4 J" O5 e! S SetJobLevel( nLevel, nJob );
0 S9 p7 h1 i+ i" T& } b" \& z m_nDeathLevel = nLevel;4 H& a5 G! l. `3 J& I6 f: l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. b$ v: w$ B) f2 t# j
if(IsMaster())
& @, R/ E( u, z9 T {
2 h# `/ c/ Q1 v# E5 j5 ^8 X' t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; ~' S0 I' L& y" O
if( nLevel > 59 && nLevel < 72 ). Q& B5 F& ], T0 G
dwTmpSkLevel = 1;0 V8 ^+ Z& g6 F6 M, P" F, Q+ Y
else if( nLevel > 71 && nLevel < 84 ) m6 B2 o" A9 m! p2 S' k, u# K
dwTmpSkLevel = 2;
* Y, n$ b. w6 h) B! d# y! X, Q! R else if( nLevel > 83 && nLevel < 96 ) Q \8 e: X8 E% b
dwTmpSkLevel = 3;: ^* A& n- B7 Z9 B* s+ Q: l
else if( nLevel > 95 && nLevel < 108 )
( B4 K2 n |, {$ y2 e dwTmpSkLevel = 4;9 y- j0 F/ U9 n) E
else if( nLevel > 107 && nLevel < 120 ), L+ j$ |$ u6 n+ B0 i
dwTmpSkLevel = 5;3 S1 ^2 e: C2 x5 {( n2 z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 F$ l' z1 {, Y7 H) R; ^8 H
{
: u6 S1 u8 t' O. R# V* U0 N9 ] LPSKILL lpSkill = &(m_aJobSkill);5 t% J3 }5 N% p. N' \
if( lpSkill && lpSkill->dwSkill != NULL_ID )# ^- G7 h! @! a7 k/ W
{
5 [3 R+ ?$ ]) n: P/ o: A; @2 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & M- a: d3 Y8 D
if( pSkillProp == NULL )0 r3 _ p! u2 M, x# |7 }3 C- i
continue;. r' Q. X/ S$ s% y, B! [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, n; V) V+ Q9 W+ W0 @ continue;7 H) l* @8 z6 x) n* D
lpSkill->dwLevel = dwTmpSkLevel;
$ c [0 r* E w) B }
: r- F2 C' I( i! w3 q0 Z }7 s; L0 X5 |' R6 k' N0 F
}
- B8 u- z- t5 [" ?1 K2 }. u else if(IsHero())
* K. A/ `& k0 {* ~( o1 M0 S {! t4 O3 Q" y4 w: k* f! B1 G' |, y+ C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 @7 q( N/ x+ p" O% }" [, z9 k+ j+ J { . [( p% v( ?% }5 }; r4 }
LPSKILL lpSkill = &(m_aJobSkill);
4 s. f8 Q. m9 M1 K: `6 A: E$ A if( lpSkill && lpSkill->dwSkill != NULL_ID ), _; C* m* y0 U1 x1 q6 `
{0 J$ ?# n6 _- q! w# l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' ]# j( j8 y! v7 B! y
if( pSkillProp == NULL )
$ A6 ^* Q2 Q1 N2 z o, O! B continue;6 M5 ~% `; a+ N2 e- ]) Z) X+ J, r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). n7 R( b" S. M9 S) j# s3 H
continue;7 w* `. f; Y7 k4 q6 h- t- r
lpSkill->dwLevel = 5;, y( U+ i {5 d
}
) L/ t% G7 a+ R }' \% J/ E6 X& ^7 y
}
3 L) o3 x! h! O else if(IsLegendHero())
8 \, I, K2 t, ^9 Q9 v( g {0 w$ Q4 [) f) a' O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 I7 R0 I2 b% C8 ?0 S
{
" e# a, T3 }+ y( X LPSKILL lpSkill = &(m_aJobSkill);
( k& E7 w8 N$ e1 B8 G/ O* F if( lpSkill && lpSkill->dwSkill != NULL_ID )8 O5 e/ l* y% t; p) k
{
" K* L8 W' f# A/ Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) \8 M* O+ [/ \- J
if( pSkillProp == NULL )# c% o" }9 B" l0 z: C
continue;
) N( Y- Z, v1 R) g+ [ J+ C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 ?! L8 M( W5 g; b) n
continue;
4 M$ \; N4 b3 ~+ A3 a lpSkill->dwLevel = 5;
& y) Z M2 T# g, g! |/ k; ]* _; ]1 u }/ C* G2 a* Y2 w
}/ Q% @% g3 c7 c- `9 q3 {, h. X1 W
}
# O- j5 y" R% C2 g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' h$ J- Y( d9 f2 j C& b0 ^# R
if( bGamma )
% L# g0 b5 ~3 J3 F7 t) R# Y4 ` {9 }( S5 R. k4 l$ X0 |9 H" w
m_nExp1 = 0;
7 N6 N6 H+ n1 U" T }4 j8 X L" \: [( {$ j1 g" ~ A
7 n" R- z3 i) \3 T, V! ]
( (CUser*)this )->AddSetChangeJob( nJob );3 G# d# M: [' i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ L2 H: t- K- y; s5 O( c; U/ A
5 y0 `4 E' c2 F7 V6 ~
4 }4 \1 }% u6 Y#if __VER >= 11 // __SYS_PLAYER_DATA+ x2 R7 R; z! ~& m# ]$ O) U" t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. \2 g/ L7 i* S# J; D
#else // __SYS_PLAYER_DATA
; K N( Q4 q+ r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! m6 Z; H+ ?: n1 ^: r. ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: N% p/ [8 U9 @& B# S* D; F if( m_idGuild != 0 )
7 R8 A7 a& D- P6 o g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# k5 t# U3 v' f' k#endif // __SYS_PLAYER_DATA: D. K) o E/ H. L7 T1 h: U
SetHitPoint( GetMaxHitPoint() );
P9 i. N2 P$ G( J a3 p; a SetManaPoint( GetMaxManaPoint() );
W' i/ f5 d, a+ Y* N SetFatiguePoint( GetMaxFatiguePoint() );) P9 R8 x, I) H
if( nJob >= 1 && nJob <= 4 )/ I/ y6 i- J# U# | L- V
{1 O6 T9 N8 p" |, f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' S- _$ U1 D7 Y m_nRemainGP = 28;$ I& d" K5 z/ c6 I" x
}5 F6 P& G9 ], c4 `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 }& b7 W* h* y* u { G8 n; [, D$ z2 z' A0 ~; H$ {
m_nRemainGP = 118;
& l5 X" x: l1 d, g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 m$ E& o1 i7 t# E& W m_nStr = m_nSta = m_nDex = m_nInt = 15;* e' U( ?) h1 Z5 l
}: n0 ]3 h( I2 v% T# C! D( S0 }; X1 T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% U5 v( O1 w* B$ v; }3 V
{$ E3 i) y+ @1 e8 V
CItemElem itemelem;; E; H' }- [. _3 a4 s
itemelem.m_nItemNum = 1;
# t% m: X" s9 A2 Z& |% C itemelem.m_bCharged = TRUE;$ i1 U7 D9 d/ ?9 q+ u5 y
BYTE nID;9 ?" V$ E4 I! T) Y: M& e
2 Z" b; p7 t% w7 d& f+ E
if( nJob == JOB_MENTALIST_HERO )
" W4 D) e' Q' I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; u1 `3 e2 b3 O" {3 D/ t$ {& i Q if( nJob == JOB_FORCEMASTER_HERO )* _% B' S9 L; r' G; t) l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- c8 p7 \4 Y) W6 g; }1 G" t
+ P! e U0 I2 [* s2 H9 t. a, ?, F
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 H# O# |3 |7 y% m% D
}4 w; f' m0 W% c. i0 W, q; W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 U% J$ Y, t- E" l' Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: C& v6 h, M& V0 B
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
A4 i3 m6 t6 {, ]8 Q; R6 z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 O1 Z2 J) x2 `2 I0 X6 }* r$ n ( (CUser*)this )->AddTaskBar();*/
+ Y. {/ y, q# V+ g* n" ?3 C _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 E2 M( K- R' |7 W/ A; k7 T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? x% r: j2 t8 J; t
((CUser*)this)->CheckHonorStat();4 N0 Y8 e+ U( M, U3 E( M0 {
((CUser*)this)->AddHonorListAck();0 Y7 i5 Q2 e) k& Z/ t, f$ w
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 M$ o/ X- K# }
#endif // __HONORABLE_TITLE // ′Tà?9 \0 q7 t! e1 h% p: U/ j
}: f8 p' ?) G# U, e' p) I
#endif // __WORLDSERVER, ?) c- V: r4 @( K7 s* [# T
} 7 e0 I/ _8 \1 `' A) f0 i- y7 x2 p
# a, \& A! u/ I7 b然后你进入functextcmd.cpp并添加以下
2 m$ s0 g4 a2 R2 Z6 S
5 s$ n' k' y$ O) [* ]* W代码:9 y" D4 X$ m/ l. j; ?) q1 S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" E6 w; Q* m8 e% ?2 Q0 |下面插入* T3 Y6 o* ^5 B& H) ~$ |! o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " S( G+ a( `: d2 f! H0 q Y# ]5 e
( d) `9 ~8 L+ f6 h然后你去
, }( q$ V: f$ X. f
( Y- K+ G" M4 }5 l' v( d1 l代码:
8 `! q5 C2 d& k* O, [4 e代码: r3 n# h2 t, w
BOOL TextCmd_ClearPropose( CScanner & s )$ R0 X4 R5 {$ T: m
{
& X- C$ m( V* ?+ U) O5 N#ifdef __WORLDSERVER0 t Q1 C9 b* f" M& c: B
CUser* pUser = (CUser*)s.dwValue; H& N/ S( m* F, N( R$ q' V
g_dpDBClient.SendClearPropose();
0 N5 a* Z2 B* }+ I! x#endif // __WORLDSERVER
: \ E6 G3 ^4 l return TRUE;
8 E$ ^% C: A: i& h}' U+ r( a+ j4 @1 k) T
下面插入
* E5 m) I* E/ {1 `: ~( x% VBOOL TextCmd_rebirth( CScanner& scanner ): S2 _6 m) u; n4 q' d
{7 z7 n Q6 \5 \8 m% w* p
#ifdef __WORLDSERVER
0 W+ `" a: U) p0 {CUser *pUser;6 A; o( M3 y' W0 s
pUser = (CUser*)scanner.dwValue;
: f x# \) D* s1 T+ R" I# Lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 o2 L" i; j n& k& K# p3 M; N* u
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" N, o: g+ a" Qelse$ l5 U# h+ A: ~+ v( X; @2 B
pUser->AddText("你还未达到重生条件!");
, P6 a) l" r0 S3 ^4 J#endif# |- A- S9 X( I" q( ]
return TRUE;
. y5 c# X9 c2 E, m0 r}
' L; @$ A+ x" s. K4 G
8 H1 D8 f0 G G/ I! {7 t
- R4 w0 {; s5 A6 W; e( |
9 l6 o0 f4 n4 l0 q {# \! `: g- R. X% }9 O6 {
|
|