|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. t$ `: j# w7 N1 U7 i
7 Z! {* b9 t2 {$ C9 LMover.h8 q1 y: U$ [( X0 o' Z
代码:5 g, s9 Z6 O/ m2 j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" Q7 Y$ {: B9 a$ g' n5 q
3 C% c* J6 M& ]0 n8 e$ r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 P t4 f& e1 d7 [
6 i7 m$ o5 \( I m8 w, C; \
然后你去mover.cpp添加% n7 Y) n6 p: H% e7 M# l; v
" L& D' \2 k1 i7 ^+ U) f5 R
代码:
; q6 w8 ]7 d2 f7 v, bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ K9 c! B+ S" l
{- l6 `2 A; L! r. c2 i' l
#ifdef __WORLDSERVER
0 l M' O4 G8 Q/ q+ C1 D" k8 a$ h: \1 m& e // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! O& B( W2 K' o B MoverProp* pProp = GetProp();, x* `( q) Z( @+ a3 p3 q9 B' N, v
if( pProp )' K( h3 ~$ ?3 w8 n( n
{# ~9 H0 B" J) d. l, G. J% `
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& h, M% P$ ]% r; m( W& }7 k
{
* U$ X& q9 ^9 `, y AddChangeJob( nJob );( i \: O: s; p5 c. |
}else{# a7 a3 f' c/ [" M1 c
return;
( Y- k O5 T% N6 N( t5 W }
$ E a7 L- ]/ J" L) D8 l# h) } int nPoint = 0;
: v% F% \7 y2 t; ^ if( m_nJob == JOB_MERCENARY )
7 a) z* [3 C A+ o+ Z; e2 ~ nPoint += 40;7 }) [& B/ y) t0 i! O: g% v! x
else if( m_nJob == JOB_ACROBAT )
- M/ u% k0 p8 D+ z, ` nPoint += 50;# z; e* I$ @ {/ v% ^, Y) ~* T
else if( m_nJob == JOB_ASSIST )2 L% T2 i5 G6 E+ P# n2 _7 I* ~7 K
nPoint += 60;1 n5 h6 T9 j5 K5 E3 l% {: d
else if( m_nJob == JOB_MAGICIAN ) `+ p7 [- g- K7 [3 F5 R
nPoint += 90;- @8 [/ m* y' [- f. a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ W8 L& r# Q2 o
nPoint += 120;
6 O& ?" m% t# z" X1 x/ i% V2 ~ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* k' F* w) }4 `2 _/ [* B/ g0 Z) o
nPoint += 150;* J5 M, K- L5 J; U: H* j
else if( m_nJob == JOB_RINGMASTER )$ x2 Q. }6 ]; t$ e1 [5 o+ r
nPoint += 160;6 `+ S/ k$ S/ A+ n( a* z* [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& c% J& Y4 ]! n! I# E
nPoint += 180; o; ^2 E- t% v3 E W. `8 D# G$ p1 f
else if( m_nJob == JOB_ELEMENTOR )
) D: y+ {: Y! T' V, o: e8 } nPoint += 390;- |! O7 C9 F7 E0 p- A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ ]) j1 J5 e( t: O nPoint += 120;/ V, y/ O* d: |) `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 B1 I6 ^7 A F( m0 Q, ?2 ~7 ?: x) m
nPoint += 150;
8 x, ?. J- m: p* e else if( nJob == JOB_FLORIST_HERO )
' R3 E" w2 S( N* E/ z3 o7 q nPoint += 160;3 p5 J* p. |0 D$ W+ }) L6 b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: d% z0 Y/ @. z) o: E0 r+ g$ ^; E nPoint += 180;' V5 v7 p! p+ S) [* w4 B6 \$ a9 ^
else if( nJob == JOB_ELEMENTORLORD_HERO )
' m3 Y& f d8 o% v4 r7 m _0 s/ O nPoint += 390;4 k7 ?, m3 ~9 ]* Y, E- k6 t( |
2 U. K! q5 X+ J: a! f- F; V' l! D
AddSkillPoint( nPoint );3 U2 W7 K) u C- r) A/ d5 V! F
m_nLevel = nLevel;! g/ D" @( v, b2 _* O1 c
! ?' w! N9 q* e9 N0 I5 ? SetJobLevel( nLevel, nJob );
* Z$ w' v+ [+ v" B6 G2 n2 t7 b m_nDeathLevel = nLevel;; ?3 z/ t, }+ X% k$ P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% E% |- r1 j5 f/ N
if(IsMaster())
; J* x' \) i+ H6 X! T8 U. s: a7 o$ z {
& i+ s) L6 v9 y" w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. c5 _: J) l3 w9 U2 T- w if( nLevel > 59 && nLevel < 72 )4 h7 ` N- ~2 a
dwTmpSkLevel = 1;+ T$ T% a9 P" C1 y$ r& \9 |3 Y( Q
else if( nLevel > 71 && nLevel < 84 )
6 x: |6 F# Y* F8 t! J dwTmpSkLevel = 2;
& A5 i8 ~3 E! [' L1 q. E3 O else if( nLevel > 83 && nLevel < 96 )
, c, W1 _( ~- v; Y- K( r7 `; ~ v dwTmpSkLevel = 3;
( i0 Q: o. H; _' \; q% ^1 p; l% e# ` else if( nLevel > 95 && nLevel < 108 )0 h. ^ T, c/ P+ ?3 C6 P2 i( k
dwTmpSkLevel = 4;
' R( I* t: z0 L/ K/ W else if( nLevel > 107 && nLevel < 120 )8 K5 A& b9 u4 o
dwTmpSkLevel = 5;& C- x$ `" ~# [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ D# ^5 S$ ~4 H+ g% S, q {
0 j) I; k1 X& r& P LPSKILL lpSkill = &(m_aJobSkill);
1 r2 e( I; V5 U; d, _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ w. L/ u8 X" d* { {
5 I5 I& x, u- M/ L5 A7 U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 o. g Z, o5 d/ ]- f3 l
if( pSkillProp == NULL )
6 ]$ b' R1 w' F6 ` continue;
& W5 {) ]* w& n* I+ E A6 L$ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 j( A5 h- J; v4 G/ E0 v' ` continue;
1 `+ Q4 L& s# Q0 _# e4 j lpSkill->dwLevel = dwTmpSkLevel;7 c: ^( i+ G+ W
}; t! y6 L O$ }6 e/ a
}
0 _1 W5 ]' I; e' m3 G, g. ^ }& x9 o r$ a5 I( v: X0 c3 g
else if(IsHero())9 }/ W( N, A9 {# y# P. y, Q, A
{7 M* A7 V. `5 X6 Y# _- k: R4 b7 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 J0 k+ g0 ?, m* b7 a. u { 6 W3 N) m) J9 Y
LPSKILL lpSkill = &(m_aJobSkill);
; ?. O" B, h' b6 t0 E. C! R0 m; f if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 {8 i7 Y+ C p6 \ {
/ W. M9 u% a& q9 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! C$ |- Y# s% f' }7 {. r0 f if( pSkillProp == NULL )
/ Y) C% h |4 B G Y! y% J7 R continue;9 q9 d% A& E; _* \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 C$ a# t2 p6 @* a continue;! y2 f& l( [2 T7 n3 I% A- u
lpSkill->dwLevel = 5;& z: n2 C" f9 I- L% g9 h
}
5 h; [* { S/ d0 n" b }
4 U5 X' | M+ L% E# B6 _; R } d2 V l1 ~2 M, ^7 i4 A
else if(IsLegendHero())
" W1 i1 p7 \3 y m {
4 i" a+ y# I8 x for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 ?! z4 G# n1 a$ X: }# J! @ { # f% t* j7 E) X( S& V
LPSKILL lpSkill = &(m_aJobSkill);6 z% Q- Z* u4 W: X" H* i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; @( k; F2 U9 @% A @( S, x {
) X% I# c6 L) g2 A5 H& M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! G; o# F1 ~, ^# i5 Z& {
if( pSkillProp == NULL )
% {* Z1 M% L9 p$ g continue;* e: K0 R2 f5 R0 _, q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) Y9 I) }$ j. S5 ?+ J' ]" T* M
continue;
9 A ]9 b+ J6 w* [& Q6 p9 @! g( G lpSkill->dwLevel = 5;; D! b3 G% L7 q( j
}; l- r2 T. v* d8 T! d7 F
}- l6 Z$ g# V$ N6 @) G
}
( W" Q0 n5 b) `+ `0 b1 G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. {5 R' Z4 o; c6 i if( bGamma )
! ?! Z" l& b \6 g5 w {6 j, P8 x. \- O9 {& G8 j9 _& @0 o8 X
m_nExp1 = 0;. H) J2 e8 |% t7 F
}
% w4 }9 _5 v3 E9 |1 E% Q
2 a9 \: q3 z5 c9 \/ P1 u+ |; \0 F ( (CUser*)this )->AddSetChangeJob( nJob );8 Z5 i2 E7 p" b; Z& l- B* W* a# X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. f. |( e# d* l; D. d3 a! E* K
# r. n( v W& M) M$ W L' _! E. J& \; L2 ?
#if __VER >= 11 // __SYS_PLAYER_DATA
4 x0 }/ X2 K& s' f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( {* ?* b( ?+ H: u3 _- T: C" x#else // __SYS_PLAYER_DATA
. o. q4 m- W# f/ e7 J/ X; T0 { g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* W+ T5 Y9 F" o g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" o8 y2 Q4 r: l1 _8 e if( m_idGuild != 0 )
: q- W! ^6 G: a C7 I# j# A/ z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); Q; [* T! s8 |, u7 T" h, s
#endif // __SYS_PLAYER_DATA3 E+ b/ `8 I) D0 t- k
SetHitPoint( GetMaxHitPoint() );( {6 j' `1 p9 h0 Z" f7 B
SetManaPoint( GetMaxManaPoint() );
' l1 }0 t5 Q' m6 S/ Z6 g! ]: B: v SetFatiguePoint( GetMaxFatiguePoint() );
3 @8 v. [0 k2 y( G' U( x; j if( nJob >= 1 && nJob <= 4 )1 M' H7 {( ~; e5 Y( g
{
7 d) y* ^0 P! A" {3 J u) o m_nStr = m_nSta = m_nDex = m_nInt = 15;2 g/ F- a" Q% ]0 ?8 F
m_nRemainGP = 28;2 m2 H" P! Q9 E1 J1 y4 F
}
2 T; S" l# O& L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* |3 c, Q8 T' l* {) G. n' u' u& ` {8 Z) i1 H) N% n [
m_nRemainGP = 118;8 W# e" P- [5 V3 ?; r6 n3 j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" Y+ O3 C* p _+ \% L' }' _% P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" @" q* F# E2 Q, | }' @; O' @9 f% F1 i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! p/ @- D! ~! u% K3 H% S
{& H. i2 d v( z1 q
CItemElem itemelem;/ \+ r6 s( X- ]2 h/ _, q
itemelem.m_nItemNum = 1;
$ M3 M2 V* I2 M! G, ?7 _' M. y itemelem.m_bCharged = TRUE;$ ?) o o3 K' [4 v: H' J: E: B
BYTE nID;
1 }$ K2 ^; |; i
5 ]) C5 q' ^0 f9 V if( nJob == JOB_MENTALIST_HERO )
$ w# |8 {! g: _" g3 c: Z; a2 j1 n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: M" h+ u7 j) q% |# D. s& M
if( nJob == JOB_FORCEMASTER_HERO )6 N' O+ S# o. W
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) C4 k& K2 @8 V9 L6 p( k! k2 f. ?8 a- ^. B7 l
( ( CUser*)this)->CreateItem( &itemelem, &nID );" r `' }. Z8 `! r* V3 h3 y
}8 ?2 Y8 m3 E8 g( l& t; Z7 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* Z$ v2 k' I) a1 w% K; ]7 s0 y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; C- J5 G& X( |' T( s6 d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, f9 d. h3 u9 o% d" A3 v" C- W: n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 u1 w$ d o% T/ y. O" G. F, f
( (CUser*)this )->AddTaskBar();*/! C# M7 z3 {$ t. i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ X q8 F! s% {( J: R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& F1 S) G+ u+ }& p. l8 C
((CUser*)this)->CheckHonorStat();) h m5 q) s! ~/ w$ a/ B$ C
((CUser*)this)->AddHonorListAck();. k3 q1 z% g2 ?( d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
' @6 b$ x4 [ M: P#endif // __HONORABLE_TITLE // ′Tà?
4 q1 h, z+ S" b- |2 X. t4 z% w }
1 i# f/ d; k+ _8 k#endif // __WORLDSERVER
6 o2 l e7 b6 E} s$ u' S. U# L6 f5 w6 K; f6 o
: ~8 ?7 g z7 \0 N
然后你进入functextcmd.cpp并添加以下; C" Q B1 |8 B- @ ]% y' P$ @
6 V: E/ k. \9 V0 T; ? j- A代码:
. _, m3 F* [, Q x0 h" y; E6 }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ o" ^. U: [- J6 D" j下面插入4 I1 L% V7 e1 l: u' h+ o! Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 C9 Z) c6 H5 ^+ r; w7 y5 A" w
/ T+ l1 t) |, b然后你去
8 _- l0 q( Y7 E5 p9 Y; ?) I4 n: l' h6 T: n8 Q" _8 p/ i. W! ]
代码:& o9 l# c ` s
代码* x" y& A% @( R8 t4 Q) j/ {+ j6 |
BOOL TextCmd_ClearPropose( CScanner & s )7 N0 _" w# ?, P; O' P
{& [, F* A: l6 H J
#ifdef __WORLDSERVER
1 r$ P9 A: ^0 T* O% U, O/ O CUser* pUser = (CUser*)s.dwValue;) `* J( `3 C" y/ j
g_dpDBClient.SendClearPropose();
5 R6 E5 q1 Z- B8 ^8 R#endif // __WORLDSERVER' E, [+ \ s/ }* B
return TRUE;: ? P# U* }$ a4 @
}
1 p# J A$ G) f+ |$ S& T6 l9 @. H下面插入
1 x* X6 S4 @9 f$ D9 x' R, kBOOL TextCmd_rebirth( CScanner& scanner )+ z& J2 z* l. K# g: ]9 V: S9 R- k8 a0 q
{9 S- F, x) D7 q" r, N6 o- W
#ifdef __WORLDSERVER
- n5 e+ i( [0 q* vCUser *pUser;* V, m) q# R) W; |6 R* c
pUser = (CUser*)scanner.dwValue;
8 h8 f. N, t, `! J( z j: x- ?if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 M7 ]* [! N$ }0 CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# P! l' L: Y+ Z
else
. a# E' B, X9 g) L" u% qpUser->AddText("你还未达到重生条件!");
4 M1 j, H' r5 ]( a9 q; b8 ` E#endif
6 S" H; r) i6 _. y/ u* `8 treturn TRUE; Y2 s/ B* r) s: X
}
; Y* z. L; f# O& r, u( K3 b' C
0 ^' s: S5 {# _4 w8 f! U! t( K- Y
9 V/ U+ s T5 J7 _+ _
. b3 \; s# {" j% o
|
|