|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ N) g1 s( O) h J6 v6 X* H( \# ?
3 Y" D6 J. W9 v1 Z( d; j a
Mover.h6 U3 j/ |' N0 F' L
代码: q% `& c% d! _' ^/ s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! P2 j7 {) f3 B: D Y4 F: v" j, M6 w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 D' V M+ P g
5 F% b- U: p8 B3 C$ G- G4 `然后你去mover.cpp添加/ {3 h' }6 S6 l4 i
1 e, j! ^- ~* n1 X, m代码:
, Q4 h$ K9 U& y2 c6 ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): ^- V! D' y: k6 p1 d
{. L' V5 \+ n9 ?7 f4 P) h
#ifdef __WORLDSERVER
& a( Z U$ k1 E) G/ z" `* }' _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: L1 U9 a7 D, w- t, _/ e/ Q
MoverProp* pProp = GetProp();& r8 {6 c: n# y2 [1 n1 A
if( pProp )
& q. x- I; W1 M {0 V$ V3 u w: I' v1 v4 M5 n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 m+ }: w. Y7 t m" j
{0 I/ E" s8 V/ |. ]5 o
AddChangeJob( nJob );
8 c: f1 v4 N4 Y* g. i1 c/ @ }else{
) [6 R) d( s( s( N* S$ x return;
9 _: I* u, i0 g5 } } {, k9 L) C) e
int nPoint = 0;
) o$ \4 [ B! q9 H if( m_nJob == JOB_MERCENARY )
' T0 H) z5 q2 ^ nPoint += 40; t0 |0 [6 t* r9 a. q/ q" n5 b
else if( m_nJob == JOB_ACROBAT )# Y+ R# G" [, R. B4 h
nPoint += 50;0 C8 a* ^, e* X) h- R+ p$ P
else if( m_nJob == JOB_ASSIST )6 A$ i8 V/ V- H) T d( I
nPoint += 60;8 W3 k9 }3 A) T% M5 [- Z* E& v5 `
else if( m_nJob == JOB_MAGICIAN )
8 x" f) G' N; l+ M6 ` nPoint += 90;
/ r+ Z0 ^5 C' ~% |& T& t, X else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% F" A. _9 {; s: d0 z5 @1 P
nPoint += 120;
! o$ u, e8 {9 G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% F7 T% I5 w" K2 v nPoint += 150;
0 U+ U' b6 J; v1 N else if( m_nJob == JOB_RINGMASTER )3 e# [7 j! P2 ~2 ]' u
nPoint += 160;( K" I' _& d: q/ A9 a, i9 h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* B( W$ `* I% D4 Z/ U1 E9 @ nPoint += 180;: ]6 l! G7 J. j( o( r D
else if( m_nJob == JOB_ELEMENTOR )- p, r# M, M( V
nPoint += 390;
4 m/ g& o" U! C0 g: Z% A1 A else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 y- d- e M, ^$ G0 x$ s6 o- N1 O
nPoint += 120;+ t# ^ b% v) {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
g% K% N, y+ }/ b, I/ ?- e nPoint += 150;! q4 V5 R) Y Z* S9 x; x, k7 u
else if( nJob == JOB_FLORIST_HERO )3 G, Y: F1 i3 F/ q( {7 O
nPoint += 160;8 \% B* X& R5 X" Y% }7 A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. S e( G3 Z% L' ^$ Z nPoint += 180;
- D5 l" F" e$ H4 k/ E else if( nJob == JOB_ELEMENTORLORD_HERO )5 z: o5 b1 r \' y8 H X
nPoint += 390;
$ z) P5 b, y6 a8 j3 |# k. U, R# D% R6 X/ H$ p: d( f3 i9 K8 H- S
AddSkillPoint( nPoint );
/ |! N7 S: W5 D$ q" y- e! x m_nLevel = nLevel;
* L( r; M; G0 b
8 | n" \ z G SetJobLevel( nLevel, nJob );
3 t: o% K' W, z, |( @ m_nDeathLevel = nLevel;7 N1 h% z0 {, j/ L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
]6 @5 l4 o7 b" _* x if(IsMaster()). u( y# t% c5 x
{
' q4 \, x4 P8 u4 h) k" g int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 }# v( Y; E) X/ M% r+ f; y! j& ^- R if( nLevel > 59 && nLevel < 72 )8 ~4 c8 D9 s$ X( {0 q- ]
dwTmpSkLevel = 1;
3 p/ _1 b3 ~- c7 z else if( nLevel > 71 && nLevel < 84 ), h1 O3 i3 a; O, ?6 M6 E: ]: \
dwTmpSkLevel = 2;
8 x; F% n9 \) @. e: a& x, Z# E+ n else if( nLevel > 83 && nLevel < 96 )
: S' y& w: l- R/ P- P. c2 d e dwTmpSkLevel = 3;
6 A# D. r7 R: X# v1 }3 H1 r$ W9 { else if( nLevel > 95 && nLevel < 108 )7 t' A$ s; K, k: L$ \
dwTmpSkLevel = 4;
" H, W2 B. ^+ g8 h$ _3 v' B else if( nLevel > 107 && nLevel < 120 )
! v, D c6 Q0 N1 i6 J3 K' F dwTmpSkLevel = 5;
# e; i. ~; `+ [7 i1 S1 S+ o9 e( H, w' h for( int i = 0; i < MAX_SKILL_JOB; i++ ) & h, p1 s) T+ b$ y0 G7 z
{
, N3 n( g) f$ W6 V5 T5 g! z* h LPSKILL lpSkill = &(m_aJobSkill);
' A' A T# @) W if( lpSkill && lpSkill->dwSkill != NULL_ID )4 V5 Z, J! b) M4 m- m
{, s5 y; _* a5 Y9 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) s T& I1 V* c if( pSkillProp == NULL )! M/ O; m, S7 h, E9 n/ \0 e
continue;
& j8 d2 L+ t7 m/ _- I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* Q |( v7 s4 n9 `; P C% b5 E
continue;
) x U& o( H- y) C7 T" w lpSkill->dwLevel = dwTmpSkLevel;# x9 K% u9 v- l
}! w: L7 B3 F% y2 S5 I; L
}# c- X$ |+ _6 W" w* o3 m7 [
}$ K1 ?- [! l2 h- y
else if(IsHero())
1 T( ~- x; h; Z( y {/ e2 D2 {1 Y9 Z7 c# t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 \7 L5 _; H( K% K1 P# W2 d {
& H. P* Y8 r0 t( X9 o LPSKILL lpSkill = &(m_aJobSkill);! I) I/ ^% [+ {5 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 R8 X8 M7 @1 v4 l6 g
{
6 L% ?# o" a; [& _& \- ^- r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . P/ e. Y7 I& b/ h" F
if( pSkillProp == NULL )
; ?7 w4 S @ p continue;
6 w2 x4 K3 j, d/ w4 j+ E; g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ ?! H8 S( k8 L$ _7 B continue;
, T* z/ M" t+ ~5 l; X1 i6 o1 R lpSkill->dwLevel = 5;: B, [2 a0 N+ T1 r8 K9 q. Z
}6 i, Z) i. a- {. l% r- a
}3 Z+ P+ Z' ~& s9 K' j
}
2 f2 |! q# O7 ~& C4 l else if(IsLegendHero())/ `/ Z1 k& N: l& ~; X
{
% w8 {3 g3 P2 c: }! K' L for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 M; t9 i" F Z8 o: K/ }. z
{
$ o; f* p& n7 D0 c, [4 N4 V$ m LPSKILL lpSkill = &(m_aJobSkill);! Q) H- u* T+ `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 n4 t( [% |; S( a* {7 a# k* i& w {* a* a* B* j; s+ O. ~9 {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 {# j1 C- J/ z# Q
if( pSkillProp == NULL )
% ^4 Q& C& o2 g9 U continue;
+ G2 D4 l2 l/ g C4 q5 Z6 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ v. D$ H, s( ^) n; Y continue;
7 r, @: b/ \' r$ n# t lpSkill->dwLevel = 5;5 ^# F1 P) P! Y8 }) c n( t
}
1 ^7 F, S; ^( g8 Q8 I. W }
4 \, \2 C n1 |8 U. D' P }
3 J& h( e: t9 U$ C6 }* }% n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, V* x4 o+ p8 s$ e. M
if( bGamma )) ^7 M" ?/ @0 y5 ~
{/ Y; A2 V# |# m5 G8 x) T$ [
m_nExp1 = 0;! B0 k7 q% n5 E1 _
}
2 D/ K1 r6 \2 _6 }
2 c, F! l5 S' O! i ( (CUser*)this )->AddSetChangeJob( nJob );! k0 Y) w% X+ |- L) n# J$ ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 ^+ r4 d& j+ s# p; }# e/ q' J6 A X I& E7 l
# k0 D6 _; e3 ~) c/ [/ n, J
#if __VER >= 11 // __SYS_PLAYER_DATA
. ]) q& M1 g8 D5 L2 d- K g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% C: \* D3 R9 x. o4 f l( r- X% V' ?! c#else // __SYS_PLAYER_DATA
; f9 D( f/ F! g% ?' { g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 v# h; d3 w6 ]& r( S) N) ]3 k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) ]* O/ m6 Q6 S- Q if( m_idGuild != 0 )! M# N4 }4 t* T' ]9 Z1 _- V/ W3 q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 J& L1 G8 q: Q' n#endif // __SYS_PLAYER_DATA! C; O7 A5 q/ ` A7 {( [! [
SetHitPoint( GetMaxHitPoint() );
4 j; L: g: ^! r SetManaPoint( GetMaxManaPoint() );. o4 \9 @: k) B( x+ }
SetFatiguePoint( GetMaxFatiguePoint() );0 d; ^9 F9 w X) q
if( nJob >= 1 && nJob <= 4 )
* ~( j. l0 X0 f+ F3 r2 j {# e W) ~2 `# k7 M* E5 B3 _
m_nStr = m_nSta = m_nDex = m_nInt = 15;- \7 w3 B4 O# }
m_nRemainGP = 28;$ i2 G: R- Z4 l. W8 f3 Q
}; i; Z t( P3 B( G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 p- u6 [; I, u+ @ {
$ U% L( B4 u D* l" O2 W5 \ m_nRemainGP = 118;
$ P; g/ J% d, R& s" V) X/ B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 r6 c. k3 W9 N" U' q; e! J m_nStr = m_nSta = m_nDex = m_nInt = 15;/ g# z$ s: G- G0 R' V9 L
}& e) M/ E5 U* _# g
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ h. \1 a" Q$ Q- \& v) F {
/ }$ Y. N" a, ?+ {- v" i1 L CItemElem itemelem;
5 Q! z! h8 ^+ J# [# U# Y itemelem.m_nItemNum = 1;
5 N3 g* l! E3 \( \) H4 T2 y% w! ? itemelem.m_bCharged = TRUE;
/ N+ e* \" B/ X6 p1 U) x1 [6 u* P/ k BYTE nID;6 Q8 k5 q1 P+ D- c% q
7 j: }' }. j0 I/ H& R" z% t8 a! E& F5 T
if( nJob == JOB_MENTALIST_HERO )9 B4 j( @* U# \" o4 q4 r& M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; _$ A: ]2 N% R8 W* a" u
if( nJob == JOB_FORCEMASTER_HERO )( t) x) U& s- ~7 H# q8 i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& r3 ]( _: d6 C# X; a, v- p
8 w2 w$ ]+ w$ I# [* [7 _
( ( CUser*)this)->CreateItem( &itemelem, &nID );/ Q! k! c! S( A& L
}
5 H$ T) L* Q0 G2 v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" t, t, y) u3 @% l( |0 [+ ?+ j9 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& ~7 M$ V/ b0 j5 e' u' l2 U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 Z0 ? t& c7 [( Z) g! m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 N0 O. {- P$ |/ y) P ( (CUser*)this )->AddTaskBar();*/
( Y; d' W6 p2 S$ J3 e* Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 l+ P/ ?0 I) Z2 p! v0 K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& P8 V2 m' t. ^7 _* r( v4 J
((CUser*)this)->CheckHonorStat();
9 [, X8 A) R; k8 V* q; M8 u5 g ((CUser*)this)->AddHonorListAck();
8 o8 c$ Z) ?: ^: J) q+ ^4 _ g_UserMng.AddHonorTitleChange( this, m_nHonor);
% H) j; k+ ~+ B6 f: j0 ]#endif // __HONORABLE_TITLE // ′Tà?
; Y, Y" E: O3 o }4 Q. v; ?8 n$ @5 a4 g" u' W
#endif // __WORLDSERVER
% _; y4 S8 A4 O" C) \* ^ D9 A) C} 7 Q0 e6 O: N) w8 O8 p( v( e0 i
' G# b x4 i# A. A1 H' ?+ N然后你进入functextcmd.cpp并添加以下
0 U1 x4 J( @( E& V! i" s6 S+ z' D$ M9 j) Z y) d7 H
代码:# x/ m7 o0 P5 j6 t# {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 k, t2 Q2 T$ r* P
下面插入! V4 f3 T: z' m6 H
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, b. b' @) i3 D/ J8 |' K# b6 X7 _) G3 M
然后你去
, | \9 E. a% c/ P( F. \5 \$ n! C1 g, ~$ F
代码:
4 Y% Q$ \2 ~1 w6 W$ ~代码% b" ]" t$ Q& l9 y
BOOL TextCmd_ClearPropose( CScanner & s )
I8 |8 X: `! c" T2 I6 E0 ^{
4 G5 }" H: _7 `5 O. L: n. w: ?5 s5 M#ifdef __WORLDSERVER0 ~& l; y, R9 |/ e' ]5 j
CUser* pUser = (CUser*)s.dwValue;& P% i8 D7 G3 S" @ ~
g_dpDBClient.SendClearPropose();
3 B7 w4 x" K; ^# M#endif // __WORLDSERVER" o8 _; F! Q8 u8 h0 j$ b) v
return TRUE;
. u ?4 T! _$ U% C( y/ Q}
1 M$ z9 Y d2 B( x# V下面插入
x6 t. _! ^9 g5 {" ]) M i( F( bBOOL TextCmd_rebirth( CScanner& scanner )# m7 M% U' c* f: X" k
{
9 I8 B/ j# F! n* t, F#ifdef __WORLDSERVER" g) X" V; b; d1 P
CUser *pUser;# d1 k5 z/ l# v% `( o( W
pUser = (CUser*)scanner.dwValue;
9 r5 z/ d0 z9 U- q' G( b( fif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 K( L6 v, z* L8 d, H- LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. H$ _" i. s) X6 @
else+ z7 I; A2 y9 ^9 w8 R5 \0 y& M
pUser->AddText("你还未达到重生条件!");) I. a2 c' r+ E2 R* v$ i
#endif
& ^; d/ {# {, w8 lreturn TRUE;
+ ^5 Z* S, C! c} + u( R4 K2 _5 b$ Q
3 R) {1 V- T, e- C! ~0 M3 U+ A$ t# W H' ^2 A& c
5 z) J: g: E9 W) m
F5 N v2 v/ u5 R( v |
|