|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: d8 ]9 R% V6 T3 A* U
* g0 m. g% I$ h7 A4 \$ i: hMover.h
% B3 t* i% [ r. w. o! v代码:
" `+ J/ E" O9 Z) o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) n8 R. ~! x" u5 t/ [
6 t4 X8 v" H5 |( H! x& r- P. F! ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ I/ g# y- n, q% f1 b+ C6 d: p) N- S
然后你去mover.cpp添加! L2 g/ N% {9 Q' o3 a4 B# S4 c, N
: Z; [& }: q; {7 n8 D& ^
代码:6 \- R, I+ R# _1 [" z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 b$ k$ s/ {' u
{5 O' y0 k1 m; h! M
#ifdef __WORLDSERVER% n/ Q1 A8 M5 y9 D- W, q% S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 G# B/ ^/ S2 F
MoverProp* pProp = GetProp();$ \0 g3 [. l3 x. A/ B0 O7 E5 x
if( pProp )
4 M) L+ G- C8 b3 F! z e$ D {5 ~2 E8 K6 p+ F5 ^# N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! Z9 I" _* d) n- ~+ t2 [
{
2 Y; Y( K2 B* S" @9 V' P AddChangeJob( nJob );) `0 Q$ A7 F/ x7 J, |% p( K) H
}else{
* q; L* W2 V4 t! X) [: t return;$ q2 Y5 U8 f% _3 [
}
4 n/ C- ~/ W7 U& S8 k- C$ q int nPoint = 0;& D) n0 g1 Z& l5 t r8 ^
if( m_nJob == JOB_MERCENARY )3 |3 {: ?4 }, r9 R1 ^
nPoint += 40;
6 j& t; Z. R1 D7 v+ `8 o else if( m_nJob == JOB_ACROBAT )/ ?$ ~8 p# x' R# l
nPoint += 50;
; R9 ]( W1 ], ]! A: K else if( m_nJob == JOB_ASSIST )0 F# v8 J8 ]' h# \" a. a2 E
nPoint += 60;
; o# a8 r: @6 x1 y; g2 J, c else if( m_nJob == JOB_MAGICIAN ), d1 N; ~+ j1 P1 u) V* I( p% h
nPoint += 90;0 i. {9 O' |; N, A3 B
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 t- |* i: s, r2 @
nPoint += 120;/ g; d( @+ b1 X% }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 L a5 _4 q1 m: l8 O: d f( e1 v. M nPoint += 150;
! k1 x: h" s# G, W8 `( } else if( m_nJob == JOB_RINGMASTER )' O1 [; G1 ?7 c1 v+ z
nPoint += 160;
3 b( a7 e# m3 s' m* }! T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; I4 Q! M3 n) r. I nPoint += 180;4 s1 |3 G, H$ T% ^
else if( m_nJob == JOB_ELEMENTOR )
. p" `5 m! A7 W% K# {, | nPoint += 390;
, R6 M, K Z6 }: ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! s% @5 I) l# B9 k/ n
nPoint += 120;
" z+ d& S( \" {# A0 C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ s& H0 G! v' I8 h nPoint += 150;4 x! {) H' b x# l
else if( nJob == JOB_FLORIST_HERO )$ I2 ?, }0 O' F
nPoint += 160;/ e+ ?. E; T# V5 m' }
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 ?9 g' d3 {' L, c0 b; [$ T5 Q8 w$ v nPoint += 180;4 o7 r" o6 v) D3 }* M
else if( nJob == JOB_ELEMENTORLORD_HERO )0 d: _5 o" q( i6 Z7 @* ]5 ?, O; W
nPoint += 390;
2 D- O% n! h: ^, r( _% l3 X' p8 l' Y& O9 i* y' i
AddSkillPoint( nPoint );
7 |% E* t' E9 ~9 P0 J m_nLevel = nLevel;2 U% n( H g; s8 r7 }
: g4 T1 ?% V6 V+ G; F% a2 U
SetJobLevel( nLevel, nJob );
. W5 L+ z* f/ }! {3 J m_nDeathLevel = nLevel;7 @4 d) T7 l. j4 P9 o3 K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 y8 h" l) W/ t8 m+ i o if(IsMaster())8 e) F' t# ]. T/ x! u( ~
{( n; M5 D, P8 G( D
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# v9 K6 K. c9 u: o$ _" ~ if( nLevel > 59 && nLevel < 72 )' x- k% t; j% }4 o2 W" X
dwTmpSkLevel = 1;8 p$ b- j* J( P/ R$ L, y
else if( nLevel > 71 && nLevel < 84 )
6 p/ C6 p- e/ Q. Y dwTmpSkLevel = 2;- G) Y- q4 v; y1 |! r- w: I
else if( nLevel > 83 && nLevel < 96 )
7 p/ U. _' V o' j* _1 | dwTmpSkLevel = 3;
$ W" `4 f/ i' d# y' S) C5 d else if( nLevel > 95 && nLevel < 108 )
6 o0 Q6 D/ d6 U$ G dwTmpSkLevel = 4;2 r! B' m: ^# X- b. i, I
else if( nLevel > 107 && nLevel < 120 ) l( `( E# o1 F4 t2 a) }
dwTmpSkLevel = 5;
9 I; Y* ~+ L8 @7 d, j; ]7 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 f) W( x9 @3 u% Q H! g1 w) w" { {
4 l6 c! n* n$ `9 y' { LPSKILL lpSkill = &(m_aJobSkill);
: ]) A9 }3 q3 e, c1 o. D if( lpSkill && lpSkill->dwSkill != NULL_ID )" N4 R% o6 L0 W
{
; o3 Y- G: [% j8 A4 l7 ]. m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / o$ e U# K# n/ G( J' o5 m
if( pSkillProp == NULL )1 U9 o+ @/ Y! ~0 ?# E# x
continue;
1 i, U; H- J5 g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ Z6 y* k4 m8 {5 y% c' V" v: d continue;+ @% F+ R* ?: |: J5 W
lpSkill->dwLevel = dwTmpSkLevel;; e' a. x; ?0 l: m2 z6 s; Q2 M
}! n2 J' Z o& ]: |1 r/ F6 R
}
8 H$ i& W3 N: Q5 `: d$ A }; F% z0 |7 ?: \
else if(IsHero())
5 Y+ l1 d) r- B" V# n {4 i) @' c) ~3 ? x" R& y4 L1 N/ w2 k) I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 ] A% [5 A- H- q8 _) r8 K4 E: O
{
$ @0 l- v! T! @ l A LPSKILL lpSkill = &(m_aJobSkill);
4 v5 u% e {' K I/ Y9 H3 G, a if( lpSkill && lpSkill->dwSkill != NULL_ID ) D7 L3 G: _ C) V$ U
{
0 q3 h a6 L& x. z8 r" u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" F" I+ ]' H+ T& j! m6 F& O/ s$ e if( pSkillProp == NULL )
$ t- n. Q, F( Q continue;9 Z0 r$ i/ }4 d! @* {; ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 ?- _, y" Y* B
continue;
" r F3 N6 v+ P; r: q/ u2 u lpSkill->dwLevel = 5;: j/ `' V* {- K
}6 k0 ]+ S4 ?- A. p
}
" o3 r) u0 q" z9 |; l7 H( f }
7 l* b: T+ b" n( o* ^3 C9 z9 I- v else if(IsLegendHero())
3 G/ G" J$ C: d3 @ {' k l* v9 O7 ]9 J0 }; W* W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ n# C) S8 w& ]3 K
{ . r3 i6 J. c2 y" b$ O; g
LPSKILL lpSkill = &(m_aJobSkill);
4 M* x2 F W5 r- H if( lpSkill && lpSkill->dwSkill != NULL_ID )" z# h. S [( z/ \
{
, w/ F" `8 y3 h, M5 G; p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " n- t4 l2 _- X' N
if( pSkillProp == NULL )
. V: Y$ `, z8 z- M) e continue;
- _+ t$ | S( J1 |& o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 u3 C3 z+ n, Y3 x# A continue;
9 H; T8 ? F! I" P3 o/ }0 H lpSkill->dwLevel = 5;
5 x) u0 i# ^: e1 W: n: { \8 F }. |, K( |7 j; C4 @2 i
}
/ z9 j7 @* s& L }
: k% U" i" F$ z. l% V) V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 v5 n+ @6 p A
if( bGamma )
( J" t, J& M1 o {0 R2 e( q' `" ~5 \
m_nExp1 = 0;# H: z& A3 H2 q6 z4 Z
}
# A( H5 z, c$ f) r) ]
2 _; z3 z, G% J% B0 B. g# | ( (CUser*)this )->AddSetChangeJob( nJob );$ s7 q4 e7 S% y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 B/ u& O5 j* A; S* s. Z7 ?7 J* H
1 p9 \4 @5 O% V0 Y6 Q: y9 e+ ]
v/ ?5 F5 L0 x6 I; g( T$ i5 ~
#if __VER >= 11 // __SYS_PLAYER_DATA
0 x+ K+ B& N }0 a3 { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ z1 G& o' r4 u6 c' B8 |& `
#else // __SYS_PLAYER_DATA
I3 F. b$ ^( W _2 I$ |$ L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 X" G( J, p: w+ p# ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' ]) [$ o8 C0 T if( m_idGuild != 0 )
. ?& K* u: _* o# f Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- I+ N" V. ]$ U W9 H: s
#endif // __SYS_PLAYER_DATA8 P4 W7 e# i) W
SetHitPoint( GetMaxHitPoint() );/ F! y: a# K9 Y# P p" @1 b
SetManaPoint( GetMaxManaPoint() );( B. C& n _9 s C5 \& u
SetFatiguePoint( GetMaxFatiguePoint() );* H0 j+ q9 a, r9 B$ k7 ^" C
if( nJob >= 1 && nJob <= 4 )
2 h3 [# [. }4 q- c! ` {
. }/ \& D7 A; X+ Y* v m_nStr = m_nSta = m_nDex = m_nInt = 15;* F: ~# g6 ^0 e5 J
m_nRemainGP = 28;
" B( s; H% U+ T: b7 V k5 E9 {' O }
/ j. V6 {( T( n ~0 D* y3 Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 d7 _9 L7 `8 l; s% f
{
* `3 @9 |' |; M, u! ?/ C m_nRemainGP = 118;0 H, O' t' W- l5 p* ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; m) F4 J* q" M$ v2 E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 N/ W/ ~7 a# r* m6 @# [; }, N, S }
- N; }* L7 m0 p! a$ u0 M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 K% \ r% j3 g5 z x; X: w
{( x9 s* T' D6 ?
CItemElem itemelem;" Y3 b4 @8 K4 b# |
itemelem.m_nItemNum = 1;
; K* _( c% Y5 Y1 K9 b itemelem.m_bCharged = TRUE;
: s, e) ]) B0 R) l6 _% N/ D BYTE nID;
/ ?+ g) f5 n2 G. F+ y# W& }. A, G! q
if( nJob == JOB_MENTALIST_HERO )
3 s3 ?; p) {4 ]- ~& ^ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( Z" Z! z ~6 H$ F! a! J
if( nJob == JOB_FORCEMASTER_HERO )9 e! c" {4 D$ O r' [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ P. \2 e$ s- Y' t4 H4 h- Q* T
/ \; W4 I% x( g# w1 E ( ( CUser*)this)->CreateItem( &itemelem, &nID );) ^# O+ E; A3 b- x; @) Y
}
0 |; n. G, [$ g, b4 K" ~ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. t! I f& q( q: X1 } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 J8 B4 A* P7 k ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' {; h9 L; ~% _; E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ }5 Q9 w( V, B8 L5 m6 I" R
( (CUser*)this )->AddTaskBar();*/
/ Q$ g1 U+ {' E5 x5 I3 | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 p1 q) N8 b) L: G#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: B7 F& A2 A5 [# Q$ ?8 H X ((CUser*)this)->CheckHonorStat();
7 w+ N2 C6 k* X( z ((CUser*)this)->AddHonorListAck();
6 v5 W$ {# z) E: r8 T4 M, K g_UserMng.AddHonorTitleChange( this, m_nHonor);/ K1 P& P( g; p0 {. W& j
#endif // __HONORABLE_TITLE // ′Tà?. d! ?8 Q# I" n k# }. Z
}
$ L2 S& _# A' U5 x7 @5 r- i#endif // __WORLDSERVER; y3 l- k$ {2 o) {
} % v* c/ g$ l) l& e6 k
5 C9 L2 s$ t9 J m) f& H& @然后你进入functextcmd.cpp并添加以下4 E6 [9 X# f G8 j7 l
; R( A {& i8 \代码:
1 M/ I8 {" v1 J7 j! zON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 u' |! S* a! X: o' v3 ]/ M
下面插入
$ h4 T7 f7 H& sON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ d/ R8 g. X4 C' N1 a" i& ~1 ^" n, \ M
然后你去1 _1 x( k+ M* N& h
# p3 {% }9 |# x代码:
, i' B. D _6 N! Q d代码
2 {6 s c/ O) _1 z7 U0 mBOOL TextCmd_ClearPropose( CScanner & s )
6 a+ @+ `' i* ]. D{, s2 _: a2 x2 a
#ifdef __WORLDSERVER
( {! x4 k. O6 Q4 s9 H CUser* pUser = (CUser*)s.dwValue;8 L C% l( \# Y$ D9 a
g_dpDBClient.SendClearPropose();2 Z8 ?1 S5 K% j; l/ V4 t
#endif // __WORLDSERVER
# ~ v1 c$ {. b2 D1 u, k& M return TRUE;
! e6 m, G7 n7 i. m% d7 q2 E}
% N* e7 b$ N# C下面插入
' K' A' C" T1 w9 EBOOL TextCmd_rebirth( CScanner& scanner )
, j# }$ j- r7 f, p{
! k& ~, z/ @5 \* |1 A, H& W- \#ifdef __WORLDSERVER
! F9 ?8 k5 [ RCUser *pUser;* [2 W/ ?% R; P1 ]; S
pUser = (CUser*)scanner.dwValue;
" E o6 X" L j+ b- K( W8 Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: _3 {+ y- p' w2 m8 `0 Q: QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: L. g1 z& r7 k. _+ L+ qelse- p0 K# Q7 r& W4 C7 E5 p, Q
pUser->AddText("你还未达到重生条件!");
- F3 I8 c0 ^- x1 [8 z, h#endif
: X5 ?! w8 W6 P6 M6 @, w! o1 Areturn TRUE;! m7 i* k1 B. |, l! n
}
4 G) `1 r0 l) w2 H6 O* m# o
4 ?/ F( }1 u: I' r+ T% S: Y
9 B+ m! I8 E1 q+ a9 O
; b. i* ~/ S$ U) c- g k& B' j
5 w9 v" M6 C' O* T3 `) Z2 X g |
|