|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* h' l" {1 r6 A+ s4 o
: s4 T0 r7 W! }" @
Mover.h0 I) I& o/ p* E g
代码:
1 J+ D ~2 M& u- i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, B" t" f1 j) Q4 P4 @# o& O5 K# Q+ E/ v; @: m m7 a J5 B* A, T4 O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : P& E5 `. L8 e0 p! Y
3 v' g5 o& j& `0 X然后你去mover.cpp添加
3 K. i2 }" W* H; N* r5 W
' e4 M5 A9 M2 g代码:6 [( ~1 @5 m8 U6 K4 S5 V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 N% V, B1 {( D; M
{
1 |* t6 h0 D4 `0 P2 A$ n) L#ifdef __WORLDSERVER, s y1 f- [! O2 j. ^8 O( ]+ ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- p& B' S( a4 ~7 ^, @
MoverProp* pProp = GetProp();
3 e. q+ J! j( e, b0 o if( pProp )
- o; P+ ?0 a5 c2 U {; o: O% y6 }1 Z9 ^7 G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 Y* a% w% h# u7 Y5 F
{
! g( G w$ @4 x1 g: V- O; v AddChangeJob( nJob );4 ^! `# Z- b% X7 ]" G- k
}else{
' N. B7 s* ?2 j" ^" Z3 M4 }; K return;% s. K5 K" M1 T" o/ K/ u/ t4 f8 L# I
}2 c2 H1 W4 J7 j( q8 I4 r
int nPoint = 0;6 X% s9 O2 \, R
if( m_nJob == JOB_MERCENARY )0 V, A8 P1 r$ Q+ I& @
nPoint += 40;
0 Z+ @. n' S7 }- U else if( m_nJob == JOB_ACROBAT )* f5 q7 S5 v8 r* F8 ~) H
nPoint += 50;7 |5 U \% I6 K; }7 `0 X
else if( m_nJob == JOB_ASSIST )
* H7 \+ A" x5 \4 ~" A5 `4 b nPoint += 60;2 y9 a( L/ n5 w8 U# S
else if( m_nJob == JOB_MAGICIAN )( i7 Z1 z1 v) r) @$ [5 G2 u
nPoint += 90;
& [- L1 j$ [ n- M8 g' b" {+ Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 M% Z7 W; X; b1 }& x nPoint += 120;5 o3 K/ o9 X7 T4 s8 q# V( J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, O$ s# M. @/ E% l. e+ ^ nPoint += 150;% x9 H# N2 e* `, f* g. I2 l
else if( m_nJob == JOB_RINGMASTER )& u& W( Y. u& V% v( H" Q$ i
nPoint += 160;6 e! o3 U4 U/ O" L! R; ^5 ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 A* h- a+ `9 H3 ?, ~3 \# a nPoint += 180;
+ `6 z* d L7 \& B else if( m_nJob == JOB_ELEMENTOR )% \* v8 q" t8 P7 C" v+ s( Q
nPoint += 390;
9 M. D5 C, {+ h- Z. I( I else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' t/ _ r6 H; O+ I, o- i$ d2 J" Q
nPoint += 120;
2 w" F0 b' _+ o# F1 [# Y, m3 s, p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) y* A3 S" c3 w2 K5 i9 [9 Q
nPoint += 150;
! U/ x0 }, Q* A/ d2 g else if( nJob == JOB_FLORIST_HERO ) @& ?# R0 f5 K1 Z( _, G1 D4 z+ V2 i
nPoint += 160;: u" Y- c1 v$ ?7 {+ }+ D' P8 I5 B6 N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) k8 B6 F5 m/ L T [5 |
nPoint += 180;
( \( V) q8 T& J" k else if( nJob == JOB_ELEMENTORLORD_HERO )
6 U* O$ [4 I7 g$ ~# P+ H nPoint += 390;
8 y/ b1 I2 H2 ^0 [$ c! Z, u, G* S. H q
AddSkillPoint( nPoint );
+ ?+ j1 T0 ^# b9 g6 T m_nLevel = nLevel;
+ C- Q) S" o) q6 p1 n0 @, a8 `' v) C" _9 x4 q) Z' n
SetJobLevel( nLevel, nJob );- `: {* _5 Y/ S9 W' U4 c! v$ h9 V
m_nDeathLevel = nLevel;
6 P1 K5 H+ m @3 P. `# X% ?3 t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 J1 B' d3 S9 w$ K if(IsMaster())% d: O% X6 @. Q
{
( y4 ^6 w* y5 v) L: G, \/ O2 z r int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 Q _, v. `5 z: L& }0 N
if( nLevel > 59 && nLevel < 72 )
2 a% S/ p7 b! g; Y dwTmpSkLevel = 1;! W* h& T/ F- `2 @, I+ [
else if( nLevel > 71 && nLevel < 84 )0 B# p) k3 J# U: x3 Z
dwTmpSkLevel = 2;
) k% C9 ~, h! j0 H9 H& Q! B b else if( nLevel > 83 && nLevel < 96 )
: m& G: x! p4 R+ T2 y/ P* t dwTmpSkLevel = 3;
8 l- n& f; r) ~ else if( nLevel > 95 && nLevel < 108 )
4 @2 T0 o7 h% @ dwTmpSkLevel = 4; H! B4 s& x' v# X
else if( nLevel > 107 && nLevel < 120 )# c- ]0 W' F+ L5 o/ m
dwTmpSkLevel = 5;
4 F! c! j6 F' w3 T. w% x for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 N. v4 m7 X" s. K$ g: n4 X. s { * u. Z7 G0 ?7 w9 m2 G$ }4 B
LPSKILL lpSkill = &(m_aJobSkill);1 ] _* N( N0 l' s( V2 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )
B! \4 s1 }9 w6 H0 `: q {7 D6 Q7 K1 F. V' q2 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ Q- L* |2 S& G! ? if( pSkillProp == NULL )5 Y% [5 j0 S( x( [
continue;% s7 {# R# x8 I& A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); X5 z# s- ]: }/ h2 d
continue;$ V" ~' X$ c Y# y" U
lpSkill->dwLevel = dwTmpSkLevel;
9 c& V+ u4 o0 m- I2 m }) F, |' C* W Z- T x/ t% Y- c- J
}- b- I* X( t* D2 U) |# g+ ^
}: N& n. n c( |$ L p {3 ], |. D
else if(IsHero())
4 f6 ]1 R2 x+ I7 N$ w, W5 {1 f {
8 R- D, w% `# t/ b6 h r for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ b V* G; u9 s1 ? { 4 j3 f4 O3 r' X Z
LPSKILL lpSkill = &(m_aJobSkill);
& n, ~ [. h, u9 C if( lpSkill && lpSkill->dwSkill != NULL_ID )
& ?3 o6 {% A' { {: \' n( s' a0 [5 E7 S- Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* Z6 s: l' ]$ {# m, C if( pSkillProp == NULL ). c9 ?) }# k! Z, l
continue;
5 A1 }! W' v7 ?5 c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 q$ S' K7 h0 q3 {' c; e. o
continue;
3 a: h9 ]; G/ U" B+ {# t% F lpSkill->dwLevel = 5;8 }6 R+ H% e; ?2 v3 t* C N) ~
}& t4 y6 h( w/ k" A3 Z1 k
}( k( `, {5 Z0 ~6 k# n* S& n
}
+ F% ]) ]0 s+ d6 O else if(IsLegendHero())
; M5 E: e* X2 q. G; c {
! C7 P0 r* ]. u5 ^5 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
# o; g6 u; p/ g { ) I; B, f- X" a4 N" z
LPSKILL lpSkill = &(m_aJobSkill);
1 L9 j1 N: z9 P if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 y. z, o6 @/ x9 f {
' O6 z) M2 T. N2 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 R$ `% k6 V6 j' k& H- [& w if( pSkillProp == NULL )' J! _$ o$ G( ?" M ^+ Z; W% b
continue;8 R" V* V8 h5 _' G, F9 l3 z8 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- e$ @9 U' b9 Y continue;, z0 S6 Q" K# v, f, N
lpSkill->dwLevel = 5;
/ S$ A, u6 T5 A: W& [% m }
* F6 T! x% P7 W" r1 A } x2 d# w- }! X* M" q! a* O
}' z2 v( u7 m, o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) w7 f. ^4 |/ P4 _$ [- W/ s
if( bGamma )2 g8 F8 J) D. c0 L7 k, O: m/ W& J3 `2 E
{$ u- v1 G2 N- S
m_nExp1 = 0;& n! C5 F1 d- Y2 [6 M4 _4 C
}
% y: ^% p1 Q( v( T: v" n9 ^9 w2 C6 D/ i5 V) a
( (CUser*)this )->AddSetChangeJob( nJob );
6 r( P: H' Q) }8 @* y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 {" P. e" b: x& N- C( {
" k' d1 ~( H: N( ^' e9 N: r1 {$ m ?; {9 \
#if __VER >= 11 // __SYS_PLAYER_DATA7 f9 f0 O8 O; `: h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 R5 x& c6 o- W# a0 w8 a$ N
#else // __SYS_PLAYER_DATA
( n0 R& A. U, G1 b) W v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 c- W3 O9 S0 V9 O2 \) R( S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ a8 G- p6 _( |- S if( m_idGuild != 0 )& E/ {0 Y. s/ G$ c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 I/ C7 Q! k/ a( W) p
#endif // __SYS_PLAYER_DATA
: ]- N5 Y3 S: S9 z0 x3 {) F; g0 l SetHitPoint( GetMaxHitPoint() );: {; i, g" U! ]) b V
SetManaPoint( GetMaxManaPoint() );; M Q7 S) x l, f' L, ^+ g" E. ^
SetFatiguePoint( GetMaxFatiguePoint() );
! X6 ^6 V& `3 P X$ A! q if( nJob >= 1 && nJob <= 4 )3 K% ~; z7 i4 z$ Y
{' p8 |+ l6 q ^. }
m_nStr = m_nSta = m_nDex = m_nInt = 15;& r& `0 _! x' P1 V( @* l, A1 P
m_nRemainGP = 28;/ [8 ]! I; C' N+ ]2 Y; B
}
+ O# e# I( y/ _3 }3 l# S$ }1 [# t7 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 E: ]' q$ C" @0 z {
; A. Y' ~ u! `2 ` m_nRemainGP = 118;9 f& o* W7 \7 S8 ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" `; s4 E+ E- p7 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 |: e5 u+ [7 i# \
}
. [; F! t- w7 v8 J1 l4 A* P, V1 O if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). _9 r B2 w9 h; w9 x; x
{
8 z8 ` N h! f1 N/ @. @8 M. Z- q CItemElem itemelem;# C- T! ?! G: e5 w% F& Y# }; E7 u
itemelem.m_nItemNum = 1;6 ]) H( x7 b8 t; [+ A. g
itemelem.m_bCharged = TRUE;
6 o/ L! [& S& t+ p5 P$ z BYTE nID;
& m, D8 z9 z2 X1 K% c Q e( P1 u' ?# j! w6 g
if( nJob == JOB_MENTALIST_HERO )7 {5 t# F Q- ^8 g. J/ _4 O$ {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: C; x% b+ l/ Z* {: r if( nJob == JOB_FORCEMASTER_HERO )' X1 P$ w' Q1 ]* m
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 o8 c* O8 X' A% y
) P: K* M& e7 k4 g$ x! s ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, ~- x3 Z+ _ [ w }7 ]% ^" n! g3 @. T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" @" f5 x; ~5 r' p7 K [2 N ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) ~- I; F2 Y( e% S* [( E1 K) C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 n4 J0 o# z5 H8 F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# B3 t. ~ ]$ [8 E ( (CUser*)this )->AddTaskBar();*/$ S% l: w1 V2 a% H& [# G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 t& r" |) I" f4 f; W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; {7 c& d3 ]7 L+ Z ((CUser*)this)->CheckHonorStat();1 ^. O+ `4 Z! H3 ~
((CUser*)this)->AddHonorListAck();
" [3 |3 @6 O- a: k g_UserMng.AddHonorTitleChange( this, m_nHonor);* Y, y* ^' K. |; M, o
#endif // __HONORABLE_TITLE // ′Tà?
) ~0 r1 C/ v/ a$ }! ]4 n- C }
5 i) |! Q. o4 f$ ~& K) x3 h! Q#endif // __WORLDSERVER
5 h7 T; ?8 t4 I: n}
6 Z. R& H3 w5 Q' Y0 W& b X( `& C6 M; z: Q6 }! j
然后你进入functextcmd.cpp并添加以下1 I7 Q0 ]5 a" Q6 y+ F2 H/ C
/ u: v: g% r/ `3 q% t! ]1 j5 e
代码:( Y7 q& }* w- N; z9 A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 {" D5 `! W R0 G3 g下面插入
- `. S% D" ^0 R: y) g+ MON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! K. X+ [ W9 q- m7 r! a
1 U2 Y: K5 \. H然后你去
3 l, U: {& S+ P. x* E0 `+ D9 y
) _ g9 R! X3 r X5 J: S& q$ ]代码:
$ [/ R+ m" V+ H- \3 f! w代码
6 q9 v5 U7 y& }% i4 |BOOL TextCmd_ClearPropose( CScanner & s )9 b6 @9 v3 a- h) O- I: }
{
# T) B; [" y+ v0 b6 M- s#ifdef __WORLDSERVER- N8 Y. I4 R8 T
CUser* pUser = (CUser*)s.dwValue;9 v6 S: A% }% o2 I
g_dpDBClient.SendClearPropose();
: h( Z/ I6 J0 A: `% G( s2 h#endif // __WORLDSERVER
& ^- {: _3 `0 V8 a; \ return TRUE;
9 m8 d, {) F* K0 a0 R! e}% i2 C' @) S# w: k- K1 M- i6 f2 Y
下面插入* X) V* Z0 e6 H: f7 `- s
BOOL TextCmd_rebirth( CScanner& scanner )6 m( w8 w8 D9 c0 s# b5 ]
{ Y2 t: G0 j, @; w5 [
#ifdef __WORLDSERVER
- }2 {! A, T! i( zCUser *pUser; @* R3 P7 b6 Z- p# ^ W: C
pUser = (CUser*)scanner.dwValue;
, G# A/ Q/ D& `; v6 oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): r' A! w8 {; v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 n, T1 g. ]7 \& j. s/ N
else
- c3 e- E2 ?4 W3 S( p G4 u7 ppUser->AddText("你还未达到重生条件!");
) r+ y5 k7 `. m; E7 o" {#endif( j: g9 }. Y/ p$ Q# `0 W: [
return TRUE;
0 ?# n) B& {8 S9 J: D( i" v} 1 l+ G! [ ]& ~" g0 G
( m* T+ w7 c# `! u/ Q4 I& ~( d# E# E: f7 J, t9 {
$ m! H6 Z' U/ R
5 p+ }; M7 l* [$ l! R/ Z% Y! B |
|