|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 ?! o$ u0 u K9 N1 Z7 D) T9 {
2 \# F2 H k" `/ d: J4 _% L9 vMover.h* T$ Z% J: s" I% x3 z
代码:3 [) G0 _" R& t' x, L. }( B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 J0 L; J$ f' [0 \0 J+ p# h5 U. `' A' N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 T3 c* a% r; p' V9 n; {: ?2 N, q
4 }& G" ^: O) H" ? g5 k, e" i# y然后你去mover.cpp添加
/ Y6 f- M! b# `1 _. g% V% N! x& G" q! O) H7 s, d7 x3 ?1 y
代码:
4 d" i+ x5 z! V# Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) K3 u4 }5 Q- p4 X- _$ u{( T# X O: o3 T
#ifdef __WORLDSERVER I. g8 ]4 J5 `" H! T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- R5 d( \, v( @1 } L* k MoverProp* pProp = GetProp();
- O, }5 c- D$ ?' l1 _ if( pProp )/ a2 r/ d5 J4 j. a: W8 B& V9 Z. r6 b
{6 p( | `, _ C5 o2 k, }! y$ Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )# Z. K' Q! g8 g0 v2 K) o8 k" a. \
{
+ R) \: R7 G/ R# {0 t3 L8 U& x1 U2 y AddChangeJob( nJob );
a& e$ `% `: i }else{1 N( n# R( E2 N3 T g% {
return;# \0 m4 l) M6 M; x& T6 D
}
# }) M' K# C. V; _3 V+ Q/ {/ f, b int nPoint = 0;9 q# j& q, s" t+ q
if( m_nJob == JOB_MERCENARY )
$ A" Z, @2 S" j: G: [6 s, y( }5 J nPoint += 40; t6 C/ l/ K/ I; y! Y& L, H4 G1 O
else if( m_nJob == JOB_ACROBAT )# c/ k# G) e5 e4 _, o; h! Y
nPoint += 50;" s; q% k. R, O5 e& U5 M
else if( m_nJob == JOB_ASSIST )5 a! n; f7 d0 e/ w
nPoint += 60;; r# S9 O( R' i4 T' w' X, c8 n' f
else if( m_nJob == JOB_MAGICIAN ) A; g8 Z( L4 ]8 \
nPoint += 90;
& [) O) \) @% N( G9 F; U4 b6 L else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 n# p' v) L" H: m
nPoint += 120;
" w* T. W# X9 J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" Z% e# e, T1 I6 n4 Q nPoint += 150;/ u7 {1 ^5 N7 A" e( @& `
else if( m_nJob == JOB_RINGMASTER )
6 U: p5 k$ r: R, I Y nPoint += 160;" m4 \# ~& B- ?9 C; g! ?! ]" ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' f+ n( ]* a0 U8 h# f
nPoint += 180;
+ J6 r/ ~! C3 R9 S9 v, }+ j else if( m_nJob == JOB_ELEMENTOR )
- T5 d7 p* Y) d' _6 y. [9 m# v nPoint += 390;* x0 s6 X* h5 L6 A% ]1 x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ ]/ G0 V9 {6 B- p% v4 D& w9 N
nPoint += 120;
4 E% g3 _8 z9 x8 t' _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ d: B8 p( \: c" ]% c! B$ V nPoint += 150;
T2 X% O4 H) [ else if( nJob == JOB_FLORIST_HERO )- F' c9 J! \8 J6 w
nPoint += 160;7 E& h+ A5 K( W" o, y& F+ n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
w, W) v$ p& ?, k nPoint += 180;
N! v, L/ v9 y8 m. ]; ]2 b& A" N else if( nJob == JOB_ELEMENTORLORD_HERO )& s* D! {/ q p$ y% r7 X" \$ {
nPoint += 390;, g) k, \9 t% `& b" |# k( ^
- `1 F! @3 t+ L. P* v3 F3 _& i- X AddSkillPoint( nPoint );, ]* g& Q8 n7 v$ G
m_nLevel = nLevel; ]- v( v6 x8 D! y3 T1 x& @
& Y1 u+ J6 w) ]1 q3 }% f3 | SetJobLevel( nLevel, nJob );& F( H9 W. C, C2 U1 B0 w! B2 {4 T
m_nDeathLevel = nLevel;7 D7 ?, x+ j( L6 t( H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ k; n7 H) |8 b9 N" P
if(IsMaster())
# g$ v- A8 @* L {
4 Y: ~0 Q* T. S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, r& {: Q" b; Q1 P. l$ x8 \ if( nLevel > 59 && nLevel < 72 )
N6 \. S2 j( C' s: k dwTmpSkLevel = 1;/ H7 j/ ~5 a3 r' u# A- _% y
else if( nLevel > 71 && nLevel < 84 )
) G% @9 R b, }% S& ~: s) a dwTmpSkLevel = 2;7 T0 s% d9 ~2 R0 {$ f7 @! u
else if( nLevel > 83 && nLevel < 96 )
0 p2 a' b- \1 e: m7 W dwTmpSkLevel = 3;# n" U% |. G+ [8 l8 O( z7 s2 y: H* R9 I q
else if( nLevel > 95 && nLevel < 108 )
4 v/ b$ V+ p5 { dwTmpSkLevel = 4;
- v, h0 _( c0 {) Z/ H! V9 g7 { else if( nLevel > 107 && nLevel < 120 )
* x% }9 t2 i6 y$ ]$ H# i dwTmpSkLevel = 5;
" d2 `+ V$ o4 ~% v for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 Y: x' v$ n" N {
2 j- y6 |' f$ D LPSKILL lpSkill = &(m_aJobSkill);
# h8 ~) f7 s$ | Z( i1 q if( lpSkill && lpSkill->dwSkill != NULL_ID )
. ]! E* C% O3 O! E5 b! ` {/ c% G1 W2 T s6 k9 q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & Q' Q( f! T3 w
if( pSkillProp == NULL )
9 K: [0 a# s# l5 K2 j2 j continue;6 C# z- @( X& L4 T' W+ j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ }( ~9 u' V# `& v8 b
continue;! a6 W: \# O$ W2 L/ z; O: y o+ ?: q) k/ o
lpSkill->dwLevel = dwTmpSkLevel;! t/ I* p t$ _- c S8 w/ R
}
# \* C8 h7 _ E- d- [ }
5 g0 n% t3 {# X, {3 f5 z" m }
0 U0 ]# n& B; m, a7 X) [ else if(IsHero())
- Z: M. u7 V# ] V0 i9 u {2 V2 w( o7 ?9 [; u* N/ e7 V, r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 d5 a& T3 T3 q+ g, k
{
' d7 _% E ^8 ? LPSKILL lpSkill = &(m_aJobSkill);, Y4 }6 K ]! v$ \$ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 i5 T2 s/ I, t. Y
{; M, A* i. a1 a2 c" C' M5 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: W( \) v% v& [3 t$ L: ]/ S' M if( pSkillProp == NULL )7 R6 c0 L7 w* O7 t( \, S. X
continue;
% c5 B7 c( d+ A2 G/ j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% l- |/ J4 G5 ~, R. S continue;! G8 }& k- s6 z6 Z8 B
lpSkill->dwLevel = 5;1 b9 p, S$ T3 v: g% _
}
1 M/ r+ Q6 m1 z9 S }) U" f6 E" s- ], o) M
}/ m# M1 K b; H9 e7 V! w
else if(IsLegendHero())& N/ i0 \/ [7 p t. ^8 x# ~
{
$ [8 B8 z, o9 U$ P6 F3 Y2 x. P# D for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 r6 v. ~/ S, A/ m3 H# s3 E5 S2 H' j { 8 }3 Y. V: [/ A5 q! m
LPSKILL lpSkill = &(m_aJobSkill);. W; w2 U6 u# c5 Y$ b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 d7 a2 z' t& C' ~; F* O {
& C3 t6 Q% s, K* c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # x% H; m" p, R: S- s
if( pSkillProp == NULL )8 K9 f& Y2 D Y( h
continue;7 h) c4 ~3 c, M+ \3 J; a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& Y9 m* t0 D' V; L8 n9 v1 C continue;
7 W# i" k. R# T* e" N) g lpSkill->dwLevel = 5;
8 @6 |2 C& p% t6 ? }
0 F, w$ s9 h' n' I3 p ~ }
9 [" U$ O+ f% p! n; w8 r }
5 i* m! }( i- T5 d+ y' v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! e6 k, }1 r$ B$ M; ]8 o
if( bGamma )
: e0 t& E1 }+ N1 h5 O/ e4 i {
: Y# E( f! h0 y7 ] m_nExp1 = 0;
; E0 G* k9 Q7 q2 M: u2 i }+ j, e( `8 I( i* O
2 e7 {4 A" D- v) D" p ( (CUser*)this )->AddSetChangeJob( nJob );. t* V+ Z* x% v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 a/ Q, ^9 Q" p0 O" g/ G+ H% @
& I. P3 l9 v# f
3 J9 E3 E1 V' {# H#if __VER >= 11 // __SYS_PLAYER_DATA
; q. F7 x5 V1 A8 Q5 |1 [% j" s7 s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 I/ y2 e: j) W" V- b( `#else // __SYS_PLAYER_DATA
5 i! u+ c4 P* ~; U" ` g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: f* s8 Y/ R* K) \/ z | g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: o% |/ a) y G9 c* `+ z1 q. U; n
if( m_idGuild != 0 )
: |' R/ J- W2 q+ A0 i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; v0 j" w1 M' ~) k/ L, h) F8 H#endif // __SYS_PLAYER_DATA
4 P. f4 _- c5 K; A. L SetHitPoint( GetMaxHitPoint() );
% N: ?; R- u- F4 A: R' i) F SetManaPoint( GetMaxManaPoint() );% W2 }' b- [9 j
SetFatiguePoint( GetMaxFatiguePoint() );* q1 k! P1 H" Y+ H
if( nJob >= 1 && nJob <= 4 )
/ l2 @4 u5 b: G- u2 A {- f5 J; a- G: p: I1 r" }
m_nStr = m_nSta = m_nDex = m_nInt = 15;) l' a, |% b$ ~) s% E$ S# P) p9 ]
m_nRemainGP = 28;" l# z- R3 ^% O% {
}
! d( q% p: s$ s1 C& B if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ l1 u: b; C( }0 K. d J( @
{
! W5 j/ Q5 ?9 C3 w3 R* B m_nRemainGP = 118;
# d7 ~* F w+ |7 w( B% Y% P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 F7 t/ Q+ M" U7 u+ E' j9 Y2 ~$ e m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 E2 q9 G6 {* ^9 W# k }! U; M2 X" B: t* e9 o9 o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: i# N1 X" o, N" b. [ m9 O {* R( H j" i# C$ H& S
CItemElem itemelem;
6 d/ [4 c! V) u itemelem.m_nItemNum = 1;& ~2 l" s& k n! W! p
itemelem.m_bCharged = TRUE;; X7 K! ?9 d" r. C- ]+ B z
BYTE nID;
' Q* w1 w/ ^0 m- O
% d+ a; ? {: D3 k' T. Z. O if( nJob == JOB_MENTALIST_HERO )
$ H/ D- J2 n& J: J5 I. Z# d itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 i; ?, L5 f7 ^0 M" M if( nJob == JOB_FORCEMASTER_HERO )
( i3 ~9 P3 `$ C' D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 w( U/ l( B. H
4 n8 y$ F8 l: A: \1 H6 ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
_0 T- g' E* q- d- m- g }
8 `: `7 j$ _& G) U8 h g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, X5 ^) ~1 y( V5 \9 ]+ I: {9 i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* m5 O; r, a3 \) r, A- X ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. i) S* [9 k9 K2 y6 o5 l" X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 B1 b+ z6 w0 j" d, o( x& G
( (CUser*)this )->AddTaskBar();*/# m! F4 C2 J! o5 ^* ]% R! \+ {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! P5 V* D$ I' k I8 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% J4 @3 m* h, R3 B" P4 A ((CUser*)this)->CheckHonorStat();
1 N* h9 o2 Q5 `; q: \ ((CUser*)this)->AddHonorListAck();- ?) s+ e) c0 X
g_UserMng.AddHonorTitleChange( this, m_nHonor);" z/ I. s% w) ?7 X+ _
#endif // __HONORABLE_TITLE // ′Tà?1 T1 C" b5 Y/ ]3 |
}
1 l1 y/ R8 v! p#endif // __WORLDSERVER
/ x+ L. R& w+ g3 ?; V}
. Q% k9 |: S6 X8 z- H. l9 U4 Q# C2 _# w' J- x
然后你进入functextcmd.cpp并添加以下) ~7 V" E+ J0 M+ w# [
/ W0 O! O/ }9 T" W: A* Q
代码:
& w. H% O; K$ D2 k. {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! E, o; a: p- C# D* I2 R: |, {3 f下面插入
3 y @1 {8 P- Q; a! B HON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' K- N& l* d* T. j& f, r/ T( H J- n6 K2 A- U
然后你去
# P9 s) I9 t x/ l, z. E. |# J1 s7 k1 g
代码:
6 F4 B$ w" o' _0 Q代码
4 Z! ?3 Y4 R" [9 e0 B/ \/ F! y$ ~BOOL TextCmd_ClearPropose( CScanner & s )- r* ^* f+ s; g+ W. @
{
' _5 S+ f0 p5 h( G# t4 n6 x#ifdef __WORLDSERVER# d! `5 V. u& Z# D4 P/ q
CUser* pUser = (CUser*)s.dwValue;
: w W* u& l! s7 E. r6 g3 _7 n g_dpDBClient.SendClearPropose();
1 u/ Z. E' F/ P( ?7 G( I) G* I#endif // __WORLDSERVER8 O+ ?& C: ^6 A+ x' Z4 S
return TRUE;
$ I" n: @& H% i) R}
) j$ O! L7 K3 ~" l4 o下面插入
" a- L# o' M% I- dBOOL TextCmd_rebirth( CScanner& scanner )
2 {+ b* p0 n. x( c- {7 F{
1 _5 w Q# Z: g6 s#ifdef __WORLDSERVER
. l# c) X% E0 d7 u/ }CUser *pUser;
% G' P1 \" Q+ @pUser = (CUser*)scanner.dwValue;, B* e8 S2 z/ k5 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) m( o" ~1 ~/ Z8 B( x$ e6 a: u: O9 O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: c9 _' u$ w- M, e& M- q, [% L
else
1 M& t+ M, S- S' p" apUser->AddText("你还未达到重生条件!");
" \* ?% g- Q O! C1 N, P/ h% |9 V& C#endif
. `1 @1 t5 K- B6 q% `& i$ greturn TRUE;) B2 H. m" i/ d6 ]
}
h6 U7 n/ g1 I* [
% [; J) o& n+ I G
7 w: K R5 ?' p- U1 w/ f' `( W4 ^, k3 u% h7 _; @
( Y( [- X7 U- R I% m) f |
|