|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! b4 F) ?0 d3 d. N$ c- b$ P0 C1 o% k# A" ^
Mover.h
$ E; A; u: E$ _* q! }" P代码:% A$ z- M* L: }3 u3 @5 t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 m" T2 \2 U, ~6 n# E, r
* w9 L9 U6 b) B' A4 e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 h, ]9 E' K% Y8 W
9 c' U) I9 |- n5 Y
然后你去mover.cpp添加
. w7 c W) _* w u) j) n1 v. |) E+ \5 l! g" `2 @; a. K" X& T$ d
代码:- g7 O) U5 p3 a" y/ y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. I3 z5 B' U2 f: r{
7 t2 S# |4 w0 s. p8 Z#ifdef __WORLDSERVER
! R! `: f. j3 c7 t( H( u* N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' G! z6 [( I% Y' e2 ~2 Z" v' r4 X
MoverProp* pProp = GetProp();
( m& |$ H1 e* R6 @ if( pProp )
' c, e! D0 h; F {
- }- X1 P" [: W, S& }$ ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ o/ [! ? C8 W! t
{/ J, r0 r4 n5 G: j8 M2 F7 `
AddChangeJob( nJob );
. Q: N2 j5 j5 e: N4 w& _: y }else{
+ ?. H+ P0 i2 F2 G7 V" U& A return;
6 n* m& z9 D: N$ l4 E1 w }
! ]. c; A7 X A: L" i( C int nPoint = 0;4 Z5 ~! W3 @+ U3 c
if( m_nJob == JOB_MERCENARY )
5 b7 | N8 W6 d# b) |7 O$ x nPoint += 40;
2 R ?" \+ Y, l6 u$ k3 X1 | else if( m_nJob == JOB_ACROBAT )
' ]- |" U& ^) J6 b) t8 }& V. [ nPoint += 50;
# v6 n, Q6 F& I0 v, R: W else if( m_nJob == JOB_ASSIST )
8 l; E! E* Q1 y7 E" ^- | nPoint += 60;6 P# Q/ `2 o- w- g1 I
else if( m_nJob == JOB_MAGICIAN )
3 T+ G3 W) n' A+ R nPoint += 90;. ]5 j1 g* |6 ~8 T2 `2 u' f8 ]5 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ x2 S( n- K- q O% D3 Y2 A1 n
nPoint += 120;6 u0 B3 A B3 g. W5 I5 s0 ~; I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ N2 m1 i+ Y$ b X5 g9 S6 \0 S
nPoint += 150;
2 \6 }/ b6 W3 B else if( m_nJob == JOB_RINGMASTER )+ f) r9 u$ S% i h6 T3 D
nPoint += 160;
+ D2 F5 k5 R. @ O- ?4 ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 x# q5 ~7 S8 ?& v! I
nPoint += 180;
`, Y) T4 _( W* t2 O0 F else if( m_nJob == JOB_ELEMENTOR )' h7 B+ a$ A! j3 B
nPoint += 390;( N+ c/ _; ^$ n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ s- x6 o! |# @ nPoint += 120;
9 ?* N4 t3 t6 U$ f1 n% ?* R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! O7 y* W$ ?3 j, j0 I7 M nPoint += 150;
2 N8 g+ Q, W8 w. F else if( nJob == JOB_FLORIST_HERO )" c& z6 r& v8 R9 |4 ^( p# H
nPoint += 160;
/ v+ Y) y. {( ^& T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% x' ]4 i) d6 z: D$ J y
nPoint += 180;. q3 r& d6 u, c4 L
else if( nJob == JOB_ELEMENTORLORD_HERO )2 d) H( i+ P3 V
nPoint += 390;4 m8 l$ x" \! ^0 ]5 i% G; T/ ^1 c
6 s9 n& c7 W( q4 E
AddSkillPoint( nPoint );
& G; E; T8 H* T6 c8 j m_nLevel = nLevel;& m0 {6 D$ c: A. ^
" S8 J1 u9 `: O( w2 Y9 w" Q SetJobLevel( nLevel, nJob );
' t; p% Q( h* T' I# P( m. x m_nDeathLevel = nLevel;
G, H8 T, j$ [0 O' g9 a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# C& e8 ]3 ?" n3 m' j( b- ^' z if(IsMaster()) w; x& h* R( c3 B6 t
{
9 `, L0 l. K! q4 e; T! t& x5 S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ H* w; s* R8 }0 P. I( }
if( nLevel > 59 && nLevel < 72 )
/ [: l' H8 r3 x8 N dwTmpSkLevel = 1;
- s2 B$ B) I8 |! B9 w6 J7 g1 E6 j) ? else if( nLevel > 71 && nLevel < 84 )
# r! R/ k$ R. N dwTmpSkLevel = 2;6 l: J. |2 B6 D
else if( nLevel > 83 && nLevel < 96 )' s' V3 d3 H; {; Z9 A
dwTmpSkLevel = 3;* c2 o8 J# N/ W7 |# w. t6 }" D1 ]
else if( nLevel > 95 && nLevel < 108 )
1 e* b$ E+ C" z4 h$ x, O3 b, g dwTmpSkLevel = 4;
1 g/ M$ @, N) b9 R" n0 Q else if( nLevel > 107 && nLevel < 120 )) \$ h: D- d( k# T2 u
dwTmpSkLevel = 5;* k8 w4 }& d8 Y+ k* w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( q; B7 G2 [& e% l9 p- H% j
{
; G6 p7 z& u- E- o- N' v LPSKILL lpSkill = &(m_aJobSkill);& b% E+ Q4 O1 n$ E2 l3 J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z: g }4 d% K- e+ B- a {
: h2 t9 B% {3 a: x0 W4 I% q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 Y' I, `7 j0 v, [. T: u# P) M if( pSkillProp == NULL )
- j0 B' S; M+ B& M% r continue;% X- Q: w' c& I! f# X: q( }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( m, K* _% Q3 q: o) m4 A2 O continue;& f# c# `$ M) n3 f, q) P
lpSkill->dwLevel = dwTmpSkLevel;9 f" G$ K$ I7 ~% g
}% j, W/ c' l9 v: x" Z5 L! D6 t
}' S) v& X: ~) I1 M- w( q" d( F5 |
}" G3 o0 ^6 r v! d: z, z
else if(IsHero())
& u3 V& J' V5 P) R1 \( A" s6 M {. F1 ^/ T( w& j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 j5 X+ V4 d9 H6 ?! M- U2 j* w, q
{
' \) P% [+ A/ w! H LPSKILL lpSkill = &(m_aJobSkill);
" O5 J v) z5 x9 f+ q$ o if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ _, A8 c( z c6 g" o {
+ ?4 `% \$ ]2 n1 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / x9 W7 n7 Z/ @3 ^" z' g
if( pSkillProp == NULL )
% I# m* W) B. |5 C4 c continue;' B V6 @. l" x* b' x& \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- \2 U/ a4 [8 M: {0 I. j continue;
/ z! |; D! p. v1 [ lpSkill->dwLevel = 5;
( B( j- J' A& v# \% l }
8 `" j: ?, `, H v6 U }+ E! k* N6 Z. v" |
}: H1 u7 i0 W# s& q3 J+ R+ \
else if(IsLegendHero())
/ C. ]$ Y- F3 p6 G! n {
5 U1 N! `2 c9 d# Q8 B5 y. k for( int i = 0; i < MAX_SKILL_JOB; i++ )
% M, r5 {) N. |/ u" S, ? {
0 O4 x& X" `2 T* |# Z LPSKILL lpSkill = &(m_aJobSkill);7 S% [* [. I+ n* j4 W% ?: ^/ Y
if( lpSkill && lpSkill->dwSkill != NULL_ID ) I& T4 |7 A! T i; |
{# ^9 C! D2 n, w+ G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! x, a, [$ k9 p
if( pSkillProp == NULL )& E7 R; c* K M( _ F( s
continue;
3 T: ]+ o$ [, v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- _8 |' Q8 x4 e0 e' |/ d( G
continue; F- P: U7 j8 j1 `- v5 I0 a
lpSkill->dwLevel = 5;
/ f U/ G' D2 z }4 R. P2 b9 z0 H7 X+ j% {' H7 J4 k# U
}
) w f- b- N6 B; F% y; j1 L5 w/ ~, [ } q7 l, @1 @- g- A& v
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 C; s1 X, {5 A
if( bGamma )
7 D6 K. X9 @/ o( e) ^1 { {; w! n; G" X7 Z) w; L
m_nExp1 = 0; V# [$ Y% ^2 K& \, C. z
}
9 s0 i" [- s' Z, W0 Y- q7 `- q& ?, m
5 ]$ Q, u1 [( K& y ( (CUser*)this )->AddSetChangeJob( nJob );- }( h9 _( i& S: h2 z3 Y6 B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 V2 y$ I& C2 U. Y& X9 ^
8 K/ {4 {! h; Y3 S7 M. H( {( c4 o9 N6 J% Q$ c
#if __VER >= 11 // __SYS_PLAYER_DATA
* A1 ~* Y' S2 R7 H) e8 E3 S8 ^ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 l( {, Z } c/ ^3 X% n
#else // __SYS_PLAYER_DATA( ~* d5 P( a: S8 P- K1 ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( X* E5 E* n4 S4 h& x, w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 K8 L2 R% I# p* e+ N if( m_idGuild != 0 )
7 ^) F) L8 U, z+ [# G% C# N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' M. e1 r# Z$ _9 H) T. C6 [
#endif // __SYS_PLAYER_DATA
3 f& Z, L F: q" D) ?7 A SetHitPoint( GetMaxHitPoint() );9 ^5 W b6 P2 g, W
SetManaPoint( GetMaxManaPoint() );
, u# ^/ g8 R+ ?: V5 P7 n9 G SetFatiguePoint( GetMaxFatiguePoint() );/ G' j* F9 l) }$ @- Y
if( nJob >= 1 && nJob <= 4 )
6 l8 k4 g6 {/ k" I Q {
: |5 H2 K5 L/ n! l m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 E9 m+ r. ~" V6 W m_nRemainGP = 28;" O* i% n* T' k! P
}" {' j4 y& Z; H# R9 ^; n7 T, D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 V f8 l4 N; ? F {7 y3 X+ e4 { ~* T, w+ s; _
m_nRemainGP = 118;3 U, @4 B8 F$ ^* S
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
u3 [6 I8 o) ^& z& Y/ e m_nStr = m_nSta = m_nDex = m_nInt = 15;( }7 {& i1 T6 ^: }0 K7 }! W
}/ Z* h% j: ^$ Y( [; {; t" B
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ [* ~& }8 H$ [. ~- Q {
, J$ }* d) A6 U CItemElem itemelem;
( z) M* X2 k( ~ itemelem.m_nItemNum = 1;5 I( r* A* v* h( n( |# h
itemelem.m_bCharged = TRUE;
% f# c r4 w6 ^$ e BYTE nID;
; k2 B7 W3 S9 D' B1 z0 v) J0 _# `9 _' z; V6 @5 q# X
if( nJob == JOB_MENTALIST_HERO )4 r: G7 o, T) v. \5 K0 K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; Y0 D) F$ j) B* `" E/ l* y0 w
if( nJob == JOB_FORCEMASTER_HERO ); R o9 _ u q- q _' W/ H
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( J( S% W: m) A) k% P7 }: P
( C3 n2 o2 l8 j$ o6 S9 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 Y/ R9 p# @$ J7 [$ W6 B. K+ A. f } J" i* m6 \ R/ t A
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: Y8 W' d, z* B& b3 N ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ c; M) B6 }$ r: M3 T: ~! K2 G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 u* u7 y4 M& D/ C& K( S' c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! }5 Y9 y) q; ~, Y2 X
( (CUser*)this )->AddTaskBar();*/8 x2 Q0 z! W# }0 w5 h T& D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) w3 f5 C7 B! U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 h3 _+ d; \3 t8 {$ r( k ((CUser*)this)->CheckHonorStat();: Y; y/ C) {+ O9 E* j
((CUser*)this)->AddHonorListAck();& k0 Z# V" p7 M& O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- _/ \/ M+ N" Y/ P4 Z#endif // __HONORABLE_TITLE // ′Tà?
# U) P) Y# ]7 j. w }$ c# O) F* N( t4 T
#endif // __WORLDSERVER% d. q% L3 t* {8 L$ d8 [
}
% Y0 _8 c- }- b8 s% o
* K% V) X. B8 w' |( D然后你进入functextcmd.cpp并添加以下
8 a9 q2 e+ g, Q
: a& {: v9 ]5 R9 G0 f代码:8 G8 J s) g# W& o$ {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' z& ^3 G5 J$ D下面插入
@6 t; T8 I4 K# y6 E5 W+ yON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
~8 B% {2 {% I1 X+ ]" E1 W" s
: ]3 k t& ?" j6 }" z然后你去
) k0 b* S1 Y/ ~3 i! g* M0 Q3 ?0 u0 m4 i" g4 H9 C
代码:
/ }4 k# d+ O8 c. z4 m代码+ `" Q8 t; C" L+ o0 s
BOOL TextCmd_ClearPropose( CScanner & s )
( o6 x4 v% ~' D6 G6 ^. _) B{
# R, {) L# X, t6 Z6 o, W( i V#ifdef __WORLDSERVER
; n1 i0 m% d# H" m3 _$ R CUser* pUser = (CUser*)s.dwValue;
4 C T0 Z1 n6 @. E, Y5 Z g_dpDBClient.SendClearPropose();
6 ?2 M( l* t" _' X#endif // __WORLDSERVER9 |$ C( N& [5 {# C/ Z
return TRUE; N3 V5 r0 `7 _0 r6 y
}( L8 K5 C6 S& T: ?& [" Z0 H% v3 T
下面插入6 C/ K! z( \- ^" r& Z
BOOL TextCmd_rebirth( CScanner& scanner )
8 U: N& C8 v! b& v) q0 T{/ }: o1 |4 M: c4 Y( S7 T H X
#ifdef __WORLDSERVER9 b' z. Z0 Q4 P- H
CUser *pUser;: P' c) f0 }& u% b' S, ~
pUser = (CUser*)scanner.dwValue;1 n7 {, h* t% m$ ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ x$ x* z2 l' _. Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" X* q$ u, e0 F/ Relse
3 |. e1 v& C1 t. l1 k0 ]* Z. ^# mpUser->AddText("你还未达到重生条件!");4 Q0 T. Z6 U% Z4 \" r0 Q
#endif
+ p. b) u: M, p; e5 ^# ]return TRUE;
$ C6 }7 b& K8 x: y2 ]1 P}
: ^4 c4 Y. j2 I& k. u1 G4 x$ E9 i8 l, M: Z8 w0 o
; O- }3 |* ^" `5 ~- q( @
7 r& u5 M7 g& h `* @
8 w( H' @9 D3 x8 Z' }& A# U |
|