|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! M8 z' `& \6 N7 ^% d4 t; _, X" B, t; w4 E3 b) P6 z6 r* S& O
Mover.h
0 G0 F+ p' l3 X# m代码:) \( B/ w: {$ b* G1 {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! h+ G' ?! M( X0 D4 ?1 d6 w( a9 D% ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % U$ G- ^8 m3 g
" j, ?0 h7 A/ v
然后你去mover.cpp添加: J0 h7 |4 f4 T7 ^+ a# j) |
& N: K& q. R6 g ?! y; n代码:8 ]. {' j8 P+ ?& b4 Y7 l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- N" y8 \3 O* U" |: g8 R V{# h6 t0 U8 l1 k u
#ifdef __WORLDSERVER
% u& b5 X; `0 ^3 A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 Z- Z4 l0 _- O S
MoverProp* pProp = GetProp();& y" B2 H% z* j7 o
if( pProp )
7 g9 d( q+ J+ v" `8 k2 K { e' a' c* E0 ~% E9 O0 q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. Q6 R/ O( y3 }; `/ s {$ V% D; I, o# @: g1 V
AddChangeJob( nJob );
* }5 i! @5 H) s! B }else{( W1 J J }) H4 `! e9 m
return;
6 e1 Z& f, ?$ W2 u% Y) w6 l }
/ \. m3 h8 |$ R) Z; w& F; w! K int nPoint = 0;( S, w ~7 A: K( D4 s; G4 K2 N, O
if( m_nJob == JOB_MERCENARY )+ l F8 X2 F. \, r) S
nPoint += 40;
: h) j( m0 Y& W8 u- Y else if( m_nJob == JOB_ACROBAT )+ J7 h: o: Z8 r+ H s
nPoint += 50;' X8 m, y+ u; g7 y8 F2 G
else if( m_nJob == JOB_ASSIST )
; o4 W3 P: j# {% J' u) [ nPoint += 60;$ R. g: o: @- i0 O1 n0 R
else if( m_nJob == JOB_MAGICIAN )! m- P2 M& @. D: \+ C
nPoint += 90;
& M; O0 t# ]7 H; q& K else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 g Q9 q2 ?+ B# t
nPoint += 120;, c0 o! W+ Z7 c0 @6 c
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ q) Q% B1 w, X nPoint += 150;- ?) K, C$ J: f* b" k& C2 O5 l
else if( m_nJob == JOB_RINGMASTER )9 e3 H% h" e; q5 d! k
nPoint += 160;
) q3 i3 Y" F6 E1 A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 V" w9 m0 V4 } }) e9 j8 A
nPoint += 180;
( d, |. H& p* d- ] else if( m_nJob == JOB_ELEMENTOR )
; q3 v7 x+ I* a2 [. x6 e nPoint += 390;- q: R- g1 F! o) a+ u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- @9 u2 H" c. O# z" T9 \0 I, O
nPoint += 120;
( x" s% `, }1 ]) T7 H0 E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" _/ N; ?; n* a5 [- Y; O nPoint += 150;3 s8 `) D t1 w+ \7 y
else if( nJob == JOB_FLORIST_HERO )7 G7 _8 _9 U) W
nPoint += 160;
- a4 z# l0 k+ z3 b- N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' {# A% p0 s9 ^# f3 f nPoint += 180;
8 n* z: v% T; ?! C0 m4 P- B) I else if( nJob == JOB_ELEMENTORLORD_HERO )' `. S: [# k; S0 o
nPoint += 390;' v5 J! S. J0 m; }: o# u, L
/ b* _. ^( R! y* v AddSkillPoint( nPoint );/ D& p0 O+ _4 g, ^5 ^! x4 W# G
m_nLevel = nLevel;4 h2 K! M, F1 [# j/ _
: K) ]3 M0 \( [( z5 t, ~* h. C SetJobLevel( nLevel, nJob );
" R4 Y6 p! z' l m_nDeathLevel = nLevel;
$ _5 ]' l0 j* N; w% V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 T3 d- l" G8 \' L1 m if(IsMaster()) r/ C4 P5 X% \' K
{
' s A R. l! N/ C int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( \2 t. x" h+ D1 Q9 e
if( nLevel > 59 && nLevel < 72 )# @3 I3 u; a" L) ]8 }! F
dwTmpSkLevel = 1;
4 F Y, t+ |9 V3 C# E else if( nLevel > 71 && nLevel < 84 )
4 [2 l: E5 p' F M1 y" h dwTmpSkLevel = 2;
4 D3 k: o* p4 I9 r O$ B else if( nLevel > 83 && nLevel < 96 )
0 `) j7 V6 Q; h# Z) Z dwTmpSkLevel = 3;
. a$ U L ]/ B+ \9 C8 L else if( nLevel > 95 && nLevel < 108 )
* m/ ?; }5 J8 i! u dwTmpSkLevel = 4;$ T- L" r: U# H) w+ n
else if( nLevel > 107 && nLevel < 120 )
5 P; U( Z0 a" P: N2 \- g" W dwTmpSkLevel = 5;. u; x6 e2 N: I8 @0 |, Y% l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " {) d6 G% R7 c1 C
{
8 u) e! G( ~ F" W4 W1 w, M LPSKILL lpSkill = &(m_aJobSkill);
. O) @7 Y. |/ a Z4 M2 l3 S if( lpSkill && lpSkill->dwSkill != NULL_ID )
- l$ G% E2 y3 @! l' E( g! Q# e {) m7 Y4 x0 O. m8 @+ ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 @" b" m* a! q1 t+ |6 k
if( pSkillProp == NULL )
# @9 \3 ?. C4 x continue;# o: a* o! `3 Z1 D" \/ ~/ f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 v6 b) @' p1 u t1 G4 g: f: ] continue;/ `# M5 x9 m7 O* z( v! b+ C
lpSkill->dwLevel = dwTmpSkLevel;
, ], T# c; @) ] }" t/ N7 Y; u- _7 ?, M) ` M
}
2 k5 g: ~( w' {2 _( ] }8 d* |/ g% F+ _' y' P4 p R4 r# G
else if(IsHero())4 p* o/ v3 d, }9 ~
{
/ s2 ~: N# _- R. g( o for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 M- D! t, @% |, V* \) Q {
% P: N* u: @( l0 n n1 t+ f" Q LPSKILL lpSkill = &(m_aJobSkill);% }7 y6 A; t, X3 f, x- \% J- q) N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! I- n1 I; Q0 z( q% {7 R1 O {
4 X3 E& e. N4 l/ T: @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 Y/ J) G7 K7 j! J9 y if( pSkillProp == NULL )' J6 A1 S5 z9 S6 i6 _9 o7 n
continue;9 C) }) _. l4 U3 Y/ Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ f; W- g- V4 e# q( W1 Y$ z continue;
5 j) }8 L3 [6 O) \( N3 D lpSkill->dwLevel = 5;
1 p. ?/ j$ ]/ D$ _1 H }
0 {4 \. j' K a' U0 k }) O& ^+ l; U) p4 e2 t o: S
}* t2 A) \/ t& M$ J) t, B
else if(IsLegendHero())- Y0 p- k! |* V% f8 q' M
{/ _3 X( U; y' y: v3 Q0 ^* Z8 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" O1 R" b1 D. X { * Q2 c& D& n( N1 b6 _+ _* B
LPSKILL lpSkill = &(m_aJobSkill); X9 K. s3 o7 Y, z4 t6 l
if( lpSkill && lpSkill->dwSkill != NULL_ID )( r' { E; X! l/ n
{
5 e1 y% A: V: }' Z2 w2 L( x1 Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # ]: } J6 a5 \- h* Y+ M# ?
if( pSkillProp == NULL )0 b' e. h: ^5 r) a0 q
continue;" L- Y6 Z9 q @9 `3 J0 w4 W: I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 i: m( o! @/ `2 e" ^+ R7 U) `9 h continue;
! y* G. t$ u6 a" z lpSkill->dwLevel = 5;- L- b n9 B' G" T
}3 R3 L7 B/ Q- z8 A6 z! [
}
/ k1 K# \: u- g1 r; j/ ] }
* t$ v7 q @$ p4 z, T1 A$ F#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: v& x: _. Z. {9 U, R9 ]' w0 C
if( bGamma )9 G# d3 Y% n/ c. N, i- k: M
{- O4 y0 P% N& s+ L, _6 S
m_nExp1 = 0;/ z$ n9 o- {# O" l+ |+ k4 p* {
}8 i [2 v, C `6 P8 ]
# S a! S0 |# N6 N8 O* a' o0 m" I ( (CUser*)this )->AddSetChangeJob( nJob );
: c& g7 d: g0 r; l) j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, T/ P% D7 f# f2 W: Q
% i- w5 p# u1 n( M$ _0 l
3 m/ t$ ~0 ^ Q; A# x#if __VER >= 11 // __SYS_PLAYER_DATA
" e* f1 _7 l6 { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( ?" A0 m6 a. c7 ^#else // __SYS_PLAYER_DATA9 [+ \. s8 m! Y8 f2 d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& {* c& v7 j7 T* o) H" a1 h4 ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% i8 |( L& W* t# @" U9 ]5 I' H
if( m_idGuild != 0 )
! ~+ y; B j1 G" }% B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 R- ]: Y& ~$ f7 V' b N0 u2 Z
#endif // __SYS_PLAYER_DATA& D! u* @1 Y K+ _' Z
SetHitPoint( GetMaxHitPoint() );( j" D! V2 \% g
SetManaPoint( GetMaxManaPoint() );8 f6 p% S) K) f+ x$ n
SetFatiguePoint( GetMaxFatiguePoint() );' L& ? k9 o9 W$ N
if( nJob >= 1 && nJob <= 4 )9 D! Z! u |& o+ s
{
5 l4 q8 Y5 M& y0 n m_nStr = m_nSta = m_nDex = m_nInt = 15;7 v. I; l9 Q, n% L& u1 s/ {/ S
m_nRemainGP = 28;
, j( Y" p7 j1 ^2 y6 B- m1 f k }" o/ b) W* m% ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) J0 H& c1 W" z. V) ~& k8 X
{' V$ ^0 a" l4 B: G' H1 v' ?' s: x
m_nRemainGP = 118;
9 P3 @: f3 i! ] `( Z. [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# H9 t' o8 m% {, V: L3 Z& ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* |" F& A. r, S( F" u }6 _' \3 Z* x; f" }! e: [* I# ?5 j
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 @( a) ^2 y0 t
{+ t7 D4 q( ]: n5 m0 s0 J8 |
CItemElem itemelem;9 i0 i. P) b9 s3 C0 ^, Z0 Q
itemelem.m_nItemNum = 1;. i! I5 ?1 g( h
itemelem.m_bCharged = TRUE;' j# M) j7 p: W3 A* ^9 m/ D
BYTE nID; r! r( U5 S, A2 u* i" y
. h( x) i, k+ i8 {! h4 I( ?2 k* I K! h if( nJob == JOB_MENTALIST_HERO )
: g, x$ y3 t' m4 p) x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ s. U$ ^4 T8 F$ Z2 [" }' Z4 f, E if( nJob == JOB_FORCEMASTER_HERO )
S- D: V& N- M itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ g$ w# |+ ?3 J( n5 u: m$ Z$ B; m: h Z, |5 z3 H% I, Y9 R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* x) k) ^. W5 [9 `$ `0 D. T! u }! H) |' s: ~: H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" ~; o& m6 d% M# o/ f# G8 x7 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! s, a& ^; j- ?1 c ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: x% G- \' ~1 r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 s& y* Y1 V7 |- c ( (CUser*)this )->AddTaskBar();*/4 H; |; g+ i2 K8 t4 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* h; b% Z/ {. w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( O) A' o% C& j/ L" o( Y } ((CUser*)this)->CheckHonorStat();
/ d: k+ `5 Y! a m& |# [ ((CUser*)this)->AddHonorListAck();
1 e5 T& H1 T' z6 b4 ?- @ g_UserMng.AddHonorTitleChange( this, m_nHonor);
* r" S+ s. _" N! t#endif // __HONORABLE_TITLE // ′Tà?0 C* y# c; O( k: [9 M$ O
}
8 q* \% l# E/ b' A" B8 ^#endif // __WORLDSERVER
6 k2 R$ u, y i0 v) J- u: @4 w}
6 s% s. W7 O4 ?5 I# G# O, l) \ k+ ?( E. d6 c5 @5 _
然后你进入functextcmd.cpp并添加以下: E8 l3 a& w/ w% h
' } m# A7 U3 a代码:
/ U0 f t* l5 E! w/ M$ ? F \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# G j+ K9 L' {) G9 @* n* m下面插入+ `9 n2 |! i* j9 w' d5 Y7 E s/ ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 E) I% J- z' s" S& y3 @! k8 U( X- x D. ]
然后你去
# }% _& G( C: p
2 v4 j. v5 q8 H. `代码:+ ^9 s" Q( r1 e8 T/ \ b) B# |8 Q
代码
& ?2 n5 U9 ^5 |5 U2 _BOOL TextCmd_ClearPropose( CScanner & s )
Z% x, Z# @1 z- W- g9 R{
! p: T/ r( C! w! {7 k4 l$ _9 S+ Y#ifdef __WORLDSERVER
1 j4 B \- n( W( ^ CUser* pUser = (CUser*)s.dwValue;; E# u/ y* ^2 \% K! x
g_dpDBClient.SendClearPropose();
' |: A- s5 g N9 z* U7 g#endif // __WORLDSERVER* }& j" x* n( g t0 U% E* F
return TRUE;
7 Z3 w, e, X6 i; Q) ~}
+ L$ Z% C& x# m. s( Z9 z' B下面插入
4 H7 k, E( k1 t9 ]. CBOOL TextCmd_rebirth( CScanner& scanner )
: V$ a$ O1 A+ H{
+ z% [' v4 n( @#ifdef __WORLDSERVER# ]+ @+ Z4 e2 _/ m, U% [
CUser *pUser;
3 z/ x6 v3 k O5 J( G TpUser = (CUser*)scanner.dwValue;
3 J$ B- w) o: g& A5 jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. h* O3 q8 e) r& X% KpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, {6 ~% ?; H# v; Aelse
; A2 h# l3 A( J3 S+ xpUser->AddText("你还未达到重生条件!");
) E' T& Q# L( R* |#endif1 m0 Q1 T% z5 }3 z) q! }$ ]6 b7 B8 l
return TRUE;
' _& A2 b# n: h- a# T4 n i9 [: e}
/ h4 z* ]- k* L4 s" r" e/ ]) R+ d/ Y
: _+ c3 W/ ~: n) q% Z4 j
+ b1 M' ?6 |* I4 |& |# M. @; z+ Y. u+ ]; Q8 [2 C
0 z% [; W9 B' V& f# P0 d5 @! m* i
|
|