|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 }2 J8 X1 K# L# v9 x! F R
# m9 h3 S- f0 l! O9 l: |Mover.h, j- h+ \! m+ v( y: u
代码:
- C* w! r( T( c找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 ^2 T, g0 l' {/ W6 s
2 \1 t- v, X0 A7 M6 r3 ?' ~下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# \2 ]! Y6 w( U, M1 @
b2 r1 A( Y+ O" S- }" @& u然后你去mover.cpp添加3 f* ^* J J4 C) X
. `+ C7 P& W; {5 S: w代码:
1 i, O9 O0 z7 `2 a6 H0 I lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( z @3 B) d8 z( n! w; i$ H* _{
7 a8 N; i* h1 n3 m7 h( C% L#ifdef __WORLDSERVER
: h- M$ L# g" U# i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) J; ^# B* v8 k8 P MoverProp* pProp = GetProp();6 y9 l9 T3 S! |: u
if( pProp )) l7 p# t$ s, X7 V, X% L; I
{
' L) h: o0 P$ }8 |' m% g' L if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 v' w( q% _6 Z
{
, M8 ]+ V2 P: `6 i% A/ R) Q. C AddChangeJob( nJob );) I2 R, Q9 v* s! C* U, h4 j
}else{- @/ h5 D/ @. C0 w3 y* A [
return;8 x( p2 i2 ]2 F1 P7 R
}/ |, f3 P! q; K" p
int nPoint = 0;
" w8 U% O) f( D) H0 a if( m_nJob == JOB_MERCENARY )+ w5 I* ~$ v6 Z( @1 p: c [2 c
nPoint += 40;: K, U5 P2 @4 k2 i E V
else if( m_nJob == JOB_ACROBAT )
/ t F3 ?2 c6 c2 V! J nPoint += 50;
, a/ D) n" \3 @% z. U% ~6 ?* y else if( m_nJob == JOB_ASSIST )0 K' h* ?% @! w1 ~& D& [) t
nPoint += 60;0 v% x) a1 L1 C H& W1 s! J
else if( m_nJob == JOB_MAGICIAN )3 T* L# p0 o/ u. d
nPoint += 90;
* e( U O# \$ m1 v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# P Y g; a2 O4 `8 @/ t' I nPoint += 120;
3 @$ v7 c- ~) V6 l3 i5 @/ j7 G% } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 A( E. N) j9 I0 D$ M9 _ nPoint += 150;% w: J U s5 A! f5 I; V
else if( m_nJob == JOB_RINGMASTER ): D2 q- D& E- C
nPoint += 160;
% L4 F. P1 ]6 i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 a& v# u2 v) s
nPoint += 180;" v p B5 T) E' d1 b% A. P4 K# p4 D& ]
else if( m_nJob == JOB_ELEMENTOR )( ]3 p B% R9 [: p# q5 T
nPoint += 390;; Z& b7 P6 G- w" \( D& Q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 x3 n$ S# b. b1 U& C3 _2 t/ H. Q nPoint += 120;/ z" I8 i! z1 Q: U& C; d' N1 F1 O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# R, ?5 a- m" [5 b7 p nPoint += 150;
* W7 e$ n+ P% b: x) M8 I else if( nJob == JOB_FLORIST_HERO )
9 M4 U5 B' `! y nPoint += 160;& Z2 P1 z+ p3 ?2 a5 c& r5 w
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) [2 n" c/ Z& \( X- N8 }/ J
nPoint += 180;
% }2 B. e$ ], K9 m5 p else if( nJob == JOB_ELEMENTORLORD_HERO )
: A1 X1 S' r2 O* \ nPoint += 390;+ f5 M" Z7 W+ L. V- Z( [
3 c* r& d& r7 j. W4 | AddSkillPoint( nPoint );! u, X* I+ v' l/ j1 N
m_nLevel = nLevel;
8 q! i: W9 e* R4 k- T
F5 q* i+ r+ K* A5 E1 v( ^ SetJobLevel( nLevel, nJob );
" }1 T5 T( ^+ O7 B6 G6 N: `' p$ b U( B m_nDeathLevel = nLevel;1 }1 q, L# P* w5 N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& f3 p9 D- D- R+ g5 m& y7 _
if(IsMaster())) q/ u' X8 F' I% x. ~8 i& l
{
. G4 h- G7 P, |: i; x0 i# _$ X int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 A" C! O3 \" d
if( nLevel > 59 && nLevel < 72 )
: F. |+ ~: W! e2 v5 q. b2 J dwTmpSkLevel = 1;
; p% L$ Z, L4 Z+ k0 u else if( nLevel > 71 && nLevel < 84 )
& e4 V0 t* ?7 [: r dwTmpSkLevel = 2;
9 j" U& `( U% u* r# E' A8 T else if( nLevel > 83 && nLevel < 96 )
; q4 L+ y7 ^0 }; b- x dwTmpSkLevel = 3;
5 j0 E. G& k& Z& S else if( nLevel > 95 && nLevel < 108 )& t3 a1 {. \$ `7 o+ I; o9 `
dwTmpSkLevel = 4;$ h! a1 b/ f4 u6 ~6 M" J
else if( nLevel > 107 && nLevel < 120 )
+ v: @; Q9 O. t6 V+ S% u* l dwTmpSkLevel = 5;
- `, [. Y+ }7 ~; m5 i for( int i = 0; i < MAX_SKILL_JOB; i++ )
; \2 L& z# D$ D! w { - D; [7 D: p- u2 F
LPSKILL lpSkill = &(m_aJobSkill);+ t- S2 c; s A4 T" e3 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 Q9 T5 f: a& A: O2 F
{
$ [6 x( X! u" U* x- r/ P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( f' W% T: o; L, R if( pSkillProp == NULL ), X# `7 c/ i2 C/ y& D+ `
continue;
+ D5 o- M# s6 F9 m* c. W) ~! @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 I, f1 \ ~1 T3 {8 u0 O' j continue;0 ]. {2 K' j: Y- l# b& r, ~
lpSkill->dwLevel = dwTmpSkLevel;
; S& Z9 R1 U5 p: p @, p: z) v- d }4 B7 g" Q, R; n# x; s
}
# F0 _, ^: G [( f P+ A& f }1 B' X. l; b/ b8 p. D; J, J8 k: H, k
else if(IsHero())
7 x/ n, R, j4 ^% ] n/ T {
8 T) y* W& T+ o9 E for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 x. t/ I R: y- I7 N( G { 8 i7 E. f9 t1 x1 n0 q/ z1 M
LPSKILL lpSkill = &(m_aJobSkill);
1 S8 m. d( C/ z0 F2 O if( lpSkill && lpSkill->dwSkill != NULL_ID )5 }# S$ j [4 t7 k. d( A; I
{* e F) N: ?5 u$ h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& y7 k$ q J" `: ]" P& z: f* _' @! s if( pSkillProp == NULL )
2 ?" b4 k: W/ G8 ?9 E% x4 n continue;: |8 r L6 m r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& B) W! s' b* ~2 X0 ` continue;
5 [ m5 w; ~/ Q( t- O c lpSkill->dwLevel = 5;8 Y# ^: t% x% F) B% z: }% [
}
* _! n( I9 \6 X& b" Y5 d }* v; c* J% K4 |3 a7 X
}
( `* R$ p; t& @ else if(IsLegendHero())) f4 P0 Z- p& d7 `' f9 W
{
% w% \# h# R! m% @" } for( int i = 0; i < MAX_SKILL_JOB; i++ )
- S1 `9 H* U( r, I {
( x& d( }$ g8 [: y LPSKILL lpSkill = &(m_aJobSkill);
7 d4 ~( }8 V; z+ D9 } if( lpSkill && lpSkill->dwSkill != NULL_ID )& T8 n) K& i7 z$ c0 b
{
% Z: `( k! ?/ p2 }" D6 t+ Z' v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 V4 Y$ @! k% d$ p5 Q& b if( pSkillProp == NULL )5 V' w& f, W& o
continue;
# R, l6 o2 r9 _' n4 E* z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ M- d' U" t1 U- h* V( w" {6 K P continue;
, y; f$ |9 G, ]) H lpSkill->dwLevel = 5;
( z4 G; _: g4 P) | D }. U+ {0 z: c+ k# ~% _* r+ Z# ?
}
1 E$ |+ e+ w1 \3 ? }
! M+ W# W; y' h, {1 B- T! a! @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: w+ y$ F( p& Y( ?: B+ u if( bGamma )0 E$ J; v3 c7 ~3 i4 t. G( e$ F6 M
{- A: ]+ F3 Q4 l" [
m_nExp1 = 0;
$ {1 h9 x% W. B( X }) F# {4 b3 z! j) V! z# K
/ N1 b" |2 T3 B1 N9 e) T# A
( (CUser*)this )->AddSetChangeJob( nJob );( x r, l) Z# B( ^ p
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" E7 g( N6 R r0 m' x2 }9 p; U6 x Z p( q# w8 u
7 J% {0 r, `+ ]( Z; Y- b& X {2 M% e
#if __VER >= 11 // __SYS_PLAYER_DATA
5 }1 Y- T6 q. d/ }* D g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 O! _; S8 D7 U7 X#else // __SYS_PLAYER_DATA- k" G4 h2 R8 u9 I4 B8 s
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, o! ?7 \8 C2 g4 t/ S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- n8 T/ F6 N6 _% N if( m_idGuild != 0 )5 |' @- M: b8 t, y/ v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 W: z7 S9 r) X1 f) g5 J
#endif // __SYS_PLAYER_DATA1 r! P# p h, V' R( u
SetHitPoint( GetMaxHitPoint() );6 K8 b1 I+ Y: \! Y7 q7 d. z3 s4 b
SetManaPoint( GetMaxManaPoint() );
" M( ~, M, b0 t6 \1 r* r SetFatiguePoint( GetMaxFatiguePoint() );+ J0 h4 l: r9 X: Y* S
if( nJob >= 1 && nJob <= 4 )% I" m1 S" G5 R3 }& R6 w
{
( E& C6 Q& E) Q m_nStr = m_nSta = m_nDex = m_nInt = 15;( E4 M2 Y) \6 I( }$ }( f+ A
m_nRemainGP = 28;
, Y: W, U! e: v1 J }# m8 D2 h3 w% q1 I
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 H8 E* n3 p1 d! {7 s6 Y b3 m {* `8 l5 b R7 T. ], g p
m_nRemainGP = 118;' Y7 E1 Y! \1 V& n$ e7 C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 I! v8 y+ D: v
m_nStr = m_nSta = m_nDex = m_nInt = 15;; p: t6 r# |' j$ S# t5 p; [9 \
}
" m- E; X* J) E3 e5 U7 K% u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 I) T8 `3 H' W" g& r/ q8 N, `) p1 o {
4 z6 b2 W$ q1 k/ X2 M0 Z CItemElem itemelem;1 c; N1 ^! d" C {1 m
itemelem.m_nItemNum = 1;
2 Y6 _& s: H) Y+ E0 { c0 W/ N itemelem.m_bCharged = TRUE;' C+ G. A: E! l( o8 q) b4 I. j
BYTE nID;3 u) ~, Z- q' C) R% m/ a' _
+ V; i: P. B# V7 g! m, ` if( nJob == JOB_MENTALIST_HERO )2 O9 `: q% P8 s* U, ?$ J& H7 g, J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
K+ r- q. m! C4 s# `: u1 W) q9 \ if( nJob == JOB_FORCEMASTER_HERO )
# a I* w) X- U7 N2 J# z& F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; ^. Y. v. \2 W8 o4 W$ ~$ k
1 x' x; I$ o: M) R6 d# I8 u' Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 H) i* M3 g0 {
}+ K# }! a- z6 R' r2 N! J" n7 r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% y1 t/ {) m. I- ~' ?* z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 h: N" \6 o" Y! W: s: A/ z* k ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, D# |/ c( n/ I1 n$ G4 E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; M1 h+ \4 s0 c' Z* U: [
( (CUser*)this )->AddTaskBar();*/3 M8 j& w7 n \% l) y p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" Z( {6 X% A6 Q9 U$ C9 K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 D1 x3 U1 h1 R8 @1 B3 W: I) j. Y ((CUser*)this)->CheckHonorStat();' U+ U& ]" X) J
((CUser*)this)->AddHonorListAck();. z. X, _# g( ]; a7 g5 F1 P. [
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 U; n& L7 ^1 S! Z
#endif // __HONORABLE_TITLE // ′Tà?
/ H- w) X8 q m, G }/ G" Z# [" e6 h
#endif // __WORLDSERVER
3 m2 _' ]; H. g; D5 v8 a7 c* Z}
% p' W; ?5 m2 [2 r4 n0 F3 t: E0 w. ~& ~) D) S4 v
然后你进入functextcmd.cpp并添加以下
! v# u3 X3 V7 \
4 Q; I- T, @5 V" `0 U$ V代码:$ J8 [: F; }3 V) x# o0 q& N1 Z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: l+ ~3 S/ H9 `2 z9 Y! u" p x9 i下面插入! w3 O$ c, d- Y7 D6 T1 p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # j1 B0 U* Q" b" B
7 j) w) I! C: P1 y9 j* E/ S8 `
然后你去
* l/ E6 I) X- i( ]! _. f5 O5 F0 q& ^) C+ E. T8 k( A4 t
代码:& k3 }* h) {3 K! Z
代码# F/ ~* v; K5 X+ B4 s
BOOL TextCmd_ClearPropose( CScanner & s ), {% }3 a" P( S5 y
{8 q* X0 x: o! j* B& @
#ifdef __WORLDSERVER
) P' n; I5 a6 ? CUser* pUser = (CUser*)s.dwValue;
& Q0 |! D+ `- f" u ?' D g_dpDBClient.SendClearPropose();4 |" q) ~ c9 V
#endif // __WORLDSERVER4 K- j% s1 N# S3 T# r1 I
return TRUE;" \: w! o- P* L8 G+ M0 c
}5 I$ m2 a4 l+ x# Q! l) ]% K
下面插入$ w7 {3 ]2 T- s" Z
BOOL TextCmd_rebirth( CScanner& scanner )
# Y! }7 e7 Y$ |, `/ k7 p: L( n{, ?* I$ K5 Z! h y' A' S: \
#ifdef __WORLDSERVER
+ Z- W; N3 m& I1 C8 Y9 QCUser *pUser;& M, n$ b) q) R
pUser = (CUser*)scanner.dwValue;1 R" i! A6 o3 W# b `' {* k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 |/ |! V+ b9 BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 E$ h% z$ E+ n. a3 felse1 E- s5 g) m# O! t/ H4 S# ^
pUser->AddText("你还未达到重生条件!");
. j, o+ W6 C6 L, B6 }, ^& h#endif+ Z, J& P; e* W+ C' {8 Y
return TRUE;
& y4 o v. t1 d/ ]" v}
) u( X, \ B. X/ T- } ?& A, M6 R6 }, L8 r3 \
& b0 K! ^0 K" A6 o) k6 M
O' V7 E8 H# h! k; g+ y
, t0 T5 h" w* V/ Q
|
|