|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' X/ r3 T" k& O/ G9 A! n" s8 a
& o& b& w7 ]8 k g2 U
Mover.h6 q0 {* i5 x! R! O/ O4 ?
代码:" G# D& \# B) O2 O& B6 v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü W9 N3 p3 j) s& `
( {2 U& B1 k4 Y9 \; E
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( m0 n" v5 C- K& N5 v) e; V, P
4 O+ q, b' i( Z* Z7 c+ r然后你去mover.cpp添加0 V6 r b" i# Z5 R5 m. Y5 d) H9 ~# q
) \# T; ~) o- B; ~3 C4 J8 Y' F
代码:
+ F7 A1 Y+ O6 S0 I0 s/ Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! J3 X2 j1 f3 |8 q; n{8 f! G: H. V; d; c# _! }
#ifdef __WORLDSERVER# q+ g& n7 @; B6 t; E; V0 @. z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 F9 Q. }1 p5 Q) b$ ^3 Q; K# H$ w4 B
MoverProp* pProp = GetProp();9 Q; l* T: O0 e
if( pProp )! p; S: X+ z& ]8 H9 W' B& _* I
{
, o1 g( w, V: K2 @3 J; E if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 b& L! V; B: ~
{. ^/ j; L1 ]6 e6 @* ]) r
AddChangeJob( nJob );
& a4 |# V( l4 T1 `+ k. g }else{- {, o* r% a7 d3 _1 m
return;$ R9 |( [6 z G' k/ g; o" i5 q
}& y( @: I, q: u: t' a7 E
int nPoint = 0;
8 @3 W0 _% \% E9 C6 K* M! Z0 O if( m_nJob == JOB_MERCENARY ) [6 }1 a) v9 ~2 h" U" Q
nPoint += 40;: H$ H# N! I! P: V
else if( m_nJob == JOB_ACROBAT )
5 |$ q# \0 V0 O" w4 H+ b" o$ }0 w nPoint += 50;! J/ y" g Q8 C* ~
else if( m_nJob == JOB_ASSIST )
" T% m2 ^" W* j9 k0 r3 h4 x nPoint += 60;; K d+ x4 D$ Z( J+ u! }
else if( m_nJob == JOB_MAGICIAN )
$ m% j5 |1 p% W. @ nPoint += 90;
* p+ h1 g- h) {1 V% Y; y* o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 e' D4 x) w, b3 n+ F h
nPoint += 120;' U7 [9 T) Y1 }3 {. b! n- `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 A& E( m/ U4 l# m, }( T
nPoint += 150;
4 H! h" N5 M# ?$ d else if( m_nJob == JOB_RINGMASTER )+ j1 w3 [3 c# \$ ~* A, Q' k
nPoint += 160;* c% G/ i( k4 B0 k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 ]9 Q v# r/ V! B" x a nPoint += 180;5 T/ ]3 j$ t4 k' L3 Q$ b3 R N- ?
else if( m_nJob == JOB_ELEMENTOR )
) e6 H: t4 ^6 Y3 v nPoint += 390;
$ H' I h% F3 z: g6 \ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 g6 i$ X& B3 q: y( {% V7 B
nPoint += 120;
q6 R; b3 ^' f else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" q! E% r, e" r nPoint += 150;
% S" X: V( m1 m% |( s else if( nJob == JOB_FLORIST_HERO )! e) L( v T1 Y+ n* i8 d Y
nPoint += 160;
6 Q2 j# W, R/ R+ [8 A- d* Z! I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ s/ v7 ]2 v) |) l! m% b/ u
nPoint += 180;
/ s; C1 @* {$ l2 ^1 q/ p) a else if( nJob == JOB_ELEMENTORLORD_HERO )+ Q0 G. G2 q$ w F! J8 D; w! o
nPoint += 390;, f* x8 \9 N6 A/ r m; V- ~
2 Q1 r" Q0 h/ J! l) K AddSkillPoint( nPoint );% f0 o' S. `9 _6 L: @$ T
m_nLevel = nLevel;' Q3 |6 l, m; w8 n# \
; ?9 y; N/ P8 d4 D
SetJobLevel( nLevel, nJob );
2 t4 U' A- ]9 u. N ^3 C m_nDeathLevel = nLevel;
# X: ]+ W, D4 G4 q8 S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, k f/ g, X; P- W# B if(IsMaster())
3 ~7 E9 n/ [- ]; M8 i3 L {
" U8 ?! D$ y% ^# ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" }9 j8 w) b4 }- G if( nLevel > 59 && nLevel < 72 )
% s' G% t# {" s7 Z1 Y- h) m dwTmpSkLevel = 1;
7 n- \+ L" I+ m else if( nLevel > 71 && nLevel < 84 )3 w$ }5 a7 F9 I* m0 x T. Z7 B. X
dwTmpSkLevel = 2;
& c7 t% D7 o9 ]( V# ?& J; j else if( nLevel > 83 && nLevel < 96 )9 u* i# Q$ V; W2 M4 _6 r( G! q
dwTmpSkLevel = 3;
2 A. H: n. q: [& h else if( nLevel > 95 && nLevel < 108 )
1 l6 m5 [* X: C6 q3 D; R dwTmpSkLevel = 4;- ^$ X3 s- Q) |# Y
else if( nLevel > 107 && nLevel < 120 )" t1 N$ s' K( L. n
dwTmpSkLevel = 5;) u2 }" a; ^8 Q1 P- p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 h1 T2 b: j, b; F" j
{ ) q, e# y% N" f
LPSKILL lpSkill = &(m_aJobSkill);
' Q/ k8 U: K; u) c if( lpSkill && lpSkill->dwSkill != NULL_ID )! @ I/ t% W. G, c
{
& W: _4 @* \% n' @6 W' h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 `- p6 ?# t& W$ ? if( pSkillProp == NULL )
3 a- E4 |# x. l! G6 t$ J8 ^- R continue;
: G' \1 P \6 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* m( Q4 x4 N/ i: O% a continue;6 d' b1 Q) U4 u9 J
lpSkill->dwLevel = dwTmpSkLevel;
2 \8 Q+ {* [! {' v* G6 B$ Y6 B1 s }8 [8 G( e( W/ B" k
}
" e( S [0 a4 I& J }7 G; d! F0 u& p. }3 n8 K
else if(IsHero())% a: n6 m0 N5 e* D9 F# o7 b
{4 A: z; M% M- J- W; R2 U: _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + u! S% e; e: e v( V$ E2 x
{
6 a. `! H/ ?# y! [ LPSKILL lpSkill = &(m_aJobSkill);
/ A+ U. X3 K* O! ^! L) ?/ X- X5 c if( lpSkill && lpSkill->dwSkill != NULL_ID )
% t# d4 Y8 `1 w; W {
7 @3 A) T. T: {* V- x+ p, [, } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ N4 {: H" Z Q3 ~ if( pSkillProp == NULL )
; y! M: g% ?: T, h% S continue;8 z3 T9 X i5 T$ m) @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). X* _) l' |# N% v& `) O
continue;- i. z" }* g: u
lpSkill->dwLevel = 5;
) O9 b$ D' T3 l6 B* |% m" o( b1 y }0 F& ^9 `3 `% k
}
6 o" Y' N$ |" _0 K }) B0 u8 J F# R
else if(IsLegendHero()). K2 c) q) j8 u, q2 w
{
; \+ X2 l+ d( B. ^: C- Q: B for( int i = 0; i < MAX_SKILL_JOB; i++ )
! g. Z7 q6 O: e9 w: o { " N W/ t4 T# P4 A0 j7 i7 U- U8 ]
LPSKILL lpSkill = &(m_aJobSkill);8 |- ^; \* ^9 ~. L7 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 B4 v) d( R _" x1 O# p% Z
{
k6 e# D+ u1 f' H1 E- Y5 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( V* D( z1 M- f# z- O8 F/ E; Z
if( pSkillProp == NULL )
+ |; e1 K3 I% m continue;
6 f% T. A5 M: j( j1 l- H$ U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 M0 ]% }* p" f, v continue;. Z0 D" @; G8 l; {) Z# u6 l
lpSkill->dwLevel = 5;
r+ J+ G, _3 r5 j, t+ E( F }) [) e+ I4 Y+ x: w; J$ f8 B% K
}7 F1 W# p: D0 t4 i3 \& G/ p2 L h
}+ J v1 |$ K6 ?/ f3 ?5 P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* v' F5 f- |* \' j4 m if( bGamma )
1 J) T5 n+ b$ y3 E2 i& h1 Q9 O9 G {
6 ] D# O$ ]: J2 D; ` m_nExp1 = 0;
M1 z4 n& r# Z9 C- {4 p }
; m$ {. f/ U& ?+ w* T0 _& B# S& l# s# w9 _
( (CUser*)this )->AddSetChangeJob( nJob );
4 d7 J8 } N5 y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
f5 b/ s* t9 g
$ i7 L* U3 |3 U' O; M* ~
: e0 N" f- |" [# i7 z2 j X' c. r#if __VER >= 11 // __SYS_PLAYER_DATA% H6 X3 V, O1 b0 a3 s' ?: @) Q8 v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) a' k1 X- F; r }3 i/ E2 u
#else // __SYS_PLAYER_DATA
& i1 J$ I- c7 L% k$ F7 Y! A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 f1 C, k; D' S% U- W) M& C
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( }: h8 U2 V0 V8 o* _/ x if( m_idGuild != 0 )6 U! {9 t: C. r% S/ p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 S# S% s) i1 A2 |* q( f% R
#endif // __SYS_PLAYER_DATA
# v+ ^( n9 I" ?+ M9 T( ?) [3 ` SetHitPoint( GetMaxHitPoint() );
2 G$ ~9 k! n8 C2 V SetManaPoint( GetMaxManaPoint() );; S3 p y* G& e& w {% V
SetFatiguePoint( GetMaxFatiguePoint() );/ G6 p/ A* }. R- J7 S3 q
if( nJob >= 1 && nJob <= 4 )& C! p( }( V! C7 l
{
. i0 m+ N4 J5 }. d; t0 \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 R! ~4 R% w9 o m_nRemainGP = 28;
3 x3 h/ i0 \/ h% ~) E* e) l }3 U5 h5 R( e) v, W6 x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 S+ d8 u3 E+ i% N
{9 E; N9 p9 }' Z# V
m_nRemainGP = 118;
' P' q' k& N' X8 t+ d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 k2 N6 ~9 ]8 y D" q4 F1 g m_nStr = m_nSta = m_nDex = m_nInt = 15;* N& u5 N( `! E: K# z* p
}
. n* x# ?+ t3 T7 `2 Y' R/ [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ z0 l+ ~, c: r5 L: ]
{( a m9 F' L3 v3 C! P3 y# s- v
CItemElem itemelem;
3 `1 d" y+ l- `! Q4 t2 b# Y+ Q itemelem.m_nItemNum = 1;7 ?, B. b& a4 f) @* Y2 z: `7 \
itemelem.m_bCharged = TRUE;
2 F- V5 h8 w$ t6 b BYTE nID;
/ r# J% E2 a5 x @" w6 S3 M7 j( [! b+ l8 ^9 M5 \
if( nJob == JOB_MENTALIST_HERO )( r; V* F: I$ o) z3 U) ] c. V" c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: U' [2 _- C: n if( nJob == JOB_FORCEMASTER_HERO )
8 K# o* o) q2 X9 o. f1 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* U* N) [2 \% J T$ C5 a- g7 k# l; N; W6 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 x/ r, R, p, ^& I5 [% d }
3 f, b) E) A( k. t b* [ }! { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 z6 _9 ?0 r5 p+ i) o$ r
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, Y9 \4 E2 g9 v+ O0 q$ d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" ^8 V3 V: B, n ~* \+ U6 S; C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) W" A' [6 X3 P; z- K ( (CUser*)this )->AddTaskBar();*/
$ J" X' T% x2 f( A8 I2 Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' j0 a; ]( B* r- R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 g/ U/ o* O1 a8 o4 I8 Q# Y
((CUser*)this)->CheckHonorStat();
- j) V1 R+ ], l1 l ((CUser*)this)->AddHonorListAck();
2 U+ D' i+ \! v6 ] g_UserMng.AddHonorTitleChange( this, m_nHonor);; m6 H3 `# k8 f ?8 w u7 c
#endif // __HONORABLE_TITLE // ′Tà?! ]. g( }; L& s1 t! [
}
: a# E$ I# H( |$ U; g9 F#endif // __WORLDSERVER* K: M. D! C9 b0 y- Y% s3 _
}
% J% M( f) S+ [# g1 N9 l6 y
7 e) v. O8 S% S+ s2 [$ T6 @6 d5 k然后你进入functextcmd.cpp并添加以下. j! d* K# O# P$ H
2 {6 o6 f d7 M
代码:
4 O; Q S# X1 g: F5 k2 {! f$ {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ C+ W# e* M& O下面插入
* K1 m, h6 v6 J4 @/ @* OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 n7 y( c" D& ]9 L# V( \4 C0 Z2 h
: S# O6 o4 i& F3 n然后你去 w# C: n3 @+ h5 p
( t0 }$ K" b7 `
代码:
U# N0 X7 X' N0 J+ \代码
6 r. x: K$ X" @& U4 ? wBOOL TextCmd_ClearPropose( CScanner & s )
' q& b8 P; X# F4 j+ b{
" Y, C' \0 o4 a8 }- s8 A#ifdef __WORLDSERVER
6 l+ R! O: w' ?6 x, M CUser* pUser = (CUser*)s.dwValue;& |2 T: `0 k9 f: G, ?
g_dpDBClient.SendClearPropose();, A) B2 y2 l( A/ e
#endif // __WORLDSERVER6 ^0 L0 x6 ]5 e5 W
return TRUE;4 ^4 H, |. V" }; r
}* i n, d% \7 S
下面插入
" p& `9 o3 b: Z4 O* V! cBOOL TextCmd_rebirth( CScanner& scanner )
" m I1 f" g k$ B. x# Y/ |/ F{
\' b: r. U4 X* S! M3 z: B8 u#ifdef __WORLDSERVER
8 z6 w) e0 K" dCUser *pUser;; s" D' V/ v6 i% d
pUser = (CUser*)scanner.dwValue;
/ w$ I; c8 y: h' W# mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ y [ X/ M8 u
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 V2 U; C9 a7 @, g& m; celse) o8 F9 R2 w6 j- V: g
pUser->AddText("你还未达到重生条件!");7 L9 z N2 Z/ y1 s/ \
#endif
7 @( g: p- t2 g+ Q# B( ?) Z3 \/ ]* A/ @( oreturn TRUE;( Z2 U( L( ?8 `
}
7 j5 U& ~- C) w8 ~, A
' p/ E. |% S9 ?6 N5 i8 a+ t8 Z. A" C
2 i' ]3 ^/ B+ I& U# n* t* w
2 K; P" U/ |# T
7 K, y: E4 c e5 J |
|