|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* h9 A" X9 k/ M \6 G" B, h7 O3 S
6 E1 d- R8 V) S9 `Mover.h
$ x" n6 \; Q5 y u* O5 t$ ^2 c1 J代码:
: r+ m3 @3 k0 k- [9 X; \1 ]0 c找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( B" L0 z* m0 u0 r
r s9 G0 q7 ?8 a }/ S9 ?9 M& K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , b9 I+ r/ I [0 T9 }. ~+ n
3 L! F! |. Q5 ~然后你去mover.cpp添加/ P" B; ?- L6 _# I
" ^- r- K7 W" k& @
代码:
. D+ {% R6 w" }3 Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): {& W/ Y, y, `6 z- t! Z
{' X# O% x( i" N5 J
#ifdef __WORLDSERVER
! ?3 i! H& Y2 s. g4 x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# ~: s7 h0 O% F9 H2 i; S4 u: J
MoverProp* pProp = GetProp();
% j' u2 V; M5 L, S# [3 p3 u if( pProp )+ g; f" H+ D( L! _
{
: E$ V% I; G5 X8 d) c, x' H/ V if( nJob > 0 && nJob < MAX_LEGEND_HERO )# f P8 i5 |1 ]
{9 t0 x6 D2 }0 Z" d' b+ e0 x
AddChangeJob( nJob );( F& I7 b/ L0 c6 S7 n( C3 U1 `
}else{
, }( z! z! u" d( x' Q return;
2 ~9 f% Q4 B" g" g( x, { B6 I' a' F) Q, c }9 l$ M) M* @. {$ c
int nPoint = 0;
2 J7 V+ ~6 {- { if( m_nJob == JOB_MERCENARY ) `- N8 x7 K2 _ g9 M0 i
nPoint += 40;
& E$ U1 S8 R& a0 ^0 A8 s else if( m_nJob == JOB_ACROBAT )& M& s# i7 }& a# E
nPoint += 50;3 U9 Z( s# S6 }
else if( m_nJob == JOB_ASSIST )
- f8 ?, X4 d9 L- K. n nPoint += 60;
5 k y8 q7 E# k else if( m_nJob == JOB_MAGICIAN )# K' q- V& F L" `: d; M
nPoint += 90;
7 m7 y6 q7 _' Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( m, d9 c3 u$ m5 ?5 }- ]1 z- Z- s
nPoint += 120;" z; u3 D) P+ {5 u8 c
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! x( k/ N! g! f
nPoint += 150;3 }) \9 Y1 x5 F1 y! _2 z( A
else if( m_nJob == JOB_RINGMASTER )
9 d. ^3 v4 Y! N, C L2 o" ^% k nPoint += 160;- c$ x" l+ x2 n% V. G# _3 b. d1 l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 Y2 [$ _0 ]; h) x9 |
nPoint += 180;; J' H ?: M, {8 E
else if( m_nJob == JOB_ELEMENTOR )
, u# E* V! @; _3 E1 `& \ nPoint += 390;1 I- |! o: T: [/ p8 @7 @ o0 a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. ` D1 E- d$ N- S nPoint += 120;: v9 D$ L( `' V# s7 |$ t' e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 b! v. B+ Q C. f( e
nPoint += 150;
7 c$ V3 L( e7 o/ C2 l else if( nJob == JOB_FLORIST_HERO ): @ e' `/ L5 Y5 ^
nPoint += 160;# r0 V+ ?- {& ~9 |( Q. H; ~6 U
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 H. E* Z+ f5 x+ J nPoint += 180;* L) }& H( D( c. _! y' E
else if( nJob == JOB_ELEMENTORLORD_HERO )
" W% _4 v" J. ~, ?; r/ ^" c4 _& | nPoint += 390;
, A G7 n# ~) l! H! k
' P( ~ h- a6 R* B l; A, V AddSkillPoint( nPoint );- V+ ~. Y- I' U y
m_nLevel = nLevel;% h/ m1 j+ b) G$ s( q- c
4 D. z: I8 J8 f% C% {5 g
SetJobLevel( nLevel, nJob );
! f6 V: P" K8 w' J9 } m_nDeathLevel = nLevel;
( a, R f# p, o) {; i; H" S1 l) s#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! g4 a# A+ L8 G! r u7 V" H; O if(IsMaster())+ n1 C H) T2 t3 [' t8 ~: S
{
2 U& ]7 e A1 V7 C int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( o" B) J6 x) n; d
if( nLevel > 59 && nLevel < 72 )
% Q3 ^. A3 P( G( P4 F dwTmpSkLevel = 1; I7 x& s v \
else if( nLevel > 71 && nLevel < 84 )" m$ U( \2 f; n5 h; z' q/ p
dwTmpSkLevel = 2;
@/ f9 p! @% @4 n1 y( [2 ?2 I else if( nLevel > 83 && nLevel < 96 )
/ ?! P/ l' r! d5 H, J. }" L dwTmpSkLevel = 3;0 S8 i! q+ P V; ^
else if( nLevel > 95 && nLevel < 108 )
7 r0 X$ `8 ^2 ^% ] dwTmpSkLevel = 4;
7 a) e4 Z! c; m else if( nLevel > 107 && nLevel < 120 )
/ A5 L9 ~: z: U, A4 ` dwTmpSkLevel = 5;" g% Z0 _9 d6 M% ?! y+ Y" [$ s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- I' T* X/ C4 C* B' S% R {
W" d" E/ j s8 d5 ^ X1 a- @ LPSKILL lpSkill = &(m_aJobSkill);! f, _ Y8 Z0 m( f! }& U2 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( E* d, i' d! ^. a5 A {
* b& }/ K7 l' Y5 f) l j3 s! q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + `6 G% ]: J$ Y' r8 {
if( pSkillProp == NULL )
/ p$ u; {/ c1 s# O1 a/ K* s continue;
8 b" \" \' q# P7 ?3 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& l( e; I! P$ X4 q$ q+ ]$ _ continue;" D' Y: ~% z. @! O/ K: r
lpSkill->dwLevel = dwTmpSkLevel;
- l. x1 L5 D8 R6 T& G2 A K; { }
% E- t2 g3 M+ v' J0 S }9 ~# M" M( i, J) Z
}9 y9 v% |/ c6 U1 B, u ~
else if(IsHero())
0 f" {7 z4 D4 x* B) r" T {1 V. g6 K3 m: A. d" g" E3 M7 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 v: v) D* ^ _( J, a& ?. R Y1 J {
& C: [% z a2 q( K& ?5 X' E- z LPSKILL lpSkill = &(m_aJobSkill);1 Q, U% T Z4 n! ~8 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. C5 C$ I* {8 H0 z {, Q0 G8 e* z' h6 u J, K8 z- j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* a' r, I, `1 [% ?$ Z if( pSkillProp == NULL )) G; @1 ?. C1 E- y6 |. ]
continue;, I5 i* y/ ~& n5 P( M$ m' T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 B+ d/ ?, O' @7 d continue;" @8 N% I/ m, X% m0 B6 Q: Q
lpSkill->dwLevel = 5;0 i1 ^/ P+ j' B; {
}
* x% J4 U, {+ L" y% S }& N' A7 n1 X4 ~: e$ Y9 A' N
}9 j0 C \2 `) e: m, y" D
else if(IsLegendHero())3 E0 E7 O; Q# a, y& w8 s. t
{) t: z0 g5 j0 P: i$ }; T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# W; V/ D3 K( R4 o3 E9 s7 ]1 k { O8 u+ t. ]7 Y, e* O7 A
LPSKILL lpSkill = &(m_aJobSkill);+ R6 r; u, j ]1 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 O% R% V# u* s, N+ S% {. e
{8 `2 N3 I; p" | o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 n& d4 u7 o8 ~2 G& R' D
if( pSkillProp == NULL )
- g |1 _9 G/ [8 Q- s continue;
7 `% i6 P3 C* X; m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 Q5 Y- B' H3 L3 ~8 e" c
continue;
5 r2 t4 F, A7 a: W) X lpSkill->dwLevel = 5;, u0 T+ x8 J( I( Y
}
/ Y- [7 T- _4 [) Q9 Y; y- W0 w }! ?: ? }4 h. F: l* R* C1 _) y0 `5 p
}
1 E6 X: w6 q8 V$ a) Q/ g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 b8 W5 [ Q6 {- \ if( bGamma )
) n, Q5 d% U4 X; ` {
|$ Z3 w, o0 @4 q: J2 I" a9 [# ] m_nExp1 = 0;
) _. y0 A1 m f, c- {! V n% i+ V* n# s }: T7 G, N. T/ V( @3 P6 P5 O
: u! X+ Q) J8 M6 c( g, X7 o& Q/ r ( (CUser*)this )->AddSetChangeJob( nJob );
+ @2 Y! R H/ N1 n6 r9 y- e g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 z; _- G; A, B1 H0 I
7 H& B& b9 A7 E0 U
# o2 F# z$ u. m/ H#if __VER >= 11 // __SYS_PLAYER_DATA
" Q5 w( i& m5 m+ v m) I g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 ?$ k: `9 v% A% G/ v
#else // __SYS_PLAYER_DATA
8 K$ H* u! Q, y7 q( s$ |0 d3 f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- h# U9 v4 I3 Y n7 A2 u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 l& I9 U9 ~, t2 P3 F' h; i1 V
if( m_idGuild != 0 )4 [$ E! A! ~4 g* c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% L& Q8 r7 K# x, @4 D#endif // __SYS_PLAYER_DATA
! B+ c" j1 ?7 P7 _0 {0 ?5 E Y SetHitPoint( GetMaxHitPoint() );
" N5 d# i7 w6 S1 j SetManaPoint( GetMaxManaPoint() );
3 d' K- `' Q) J; U' k SetFatiguePoint( GetMaxFatiguePoint() );, V$ n3 l: V. R' X ?# h
if( nJob >= 1 && nJob <= 4 )/ `# q: ~+ Y2 X+ i' r
{
5 m3 S6 F, e4 i5 V* L m_nStr = m_nSta = m_nDex = m_nInt = 15;6 m, m$ ~' k0 N' f \
m_nRemainGP = 28;
! k# P+ d1 J% o }
* L- `% A7 g( q2 ~3 I( Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# g8 d* m1 ]% j, j
{! D( T( W# B2 _( ?$ |* v" z7 p
m_nRemainGP = 118;
2 Y/ o' ]* e% Q4 k$ D; G& Q1 M& W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& x! l; o+ h" F! B N, f' P# ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;5 w8 D" M8 x- q' v
}9 p- H, K# \4 p# p9 t5 W, X, P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 R7 @# F. |# [ {
6 _2 f* q9 }# ^- Q3 F9 X CItemElem itemelem;, P* n* P9 T, |$ Z7 e9 h% w d
itemelem.m_nItemNum = 1;) F0 u1 O0 I/ C6 {" Y
itemelem.m_bCharged = TRUE;
# r! J" S0 W# X6 c* m BYTE nID;8 D z9 R5 W3 v2 V! \% J) D$ A0 L3 ?
" s* k7 ~: |4 @/ l1 ]/ O: T# q
if( nJob == JOB_MENTALIST_HERO )
8 D, U4 u3 Q2 e itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' \+ W6 Z7 n% S( c$ |! z; \% Y
if( nJob == JOB_FORCEMASTER_HERO )
! ^. a; U3 j' A: } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 F& ^4 [7 R* ]' _ u
0 y" |* t7 H+ ]6 C% S2 C1 b3 M
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% w& m3 M9 Y. ?# B% j0 @1 l7 U6 S) ` } h( g- [ W9 B/ Q! q; ~9 \% P- p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: [: l. H% v3 }6 Y+ q% I+ W2 P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, T. t+ L& D$ x# I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 _: O' I2 ^# m: ? /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- ^; e! ^ r; { J% a; v ( (CUser*)this )->AddTaskBar();*/. b5 }* v J1 ^4 C% d1 N, b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; d" D* m. Q1 K3 e4 ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* L, x: m* w7 H% g4 m* @9 v8 Y
((CUser*)this)->CheckHonorStat();: e5 W) y% K" F' d
((CUser*)this)->AddHonorListAck();
5 n" Y3 b, n+ \( U5 R" q% X g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 _/ ~7 L; i6 G8 r) j% \#endif // __HONORABLE_TITLE // ′Tà?
- T+ X' O3 ]& \9 {6 X& {% Q. S }
3 |; @. b4 \! Q#endif // __WORLDSERVER1 o. X. u( y4 u
}
; Y: e0 f& Q6 Z5 a1 _* }( x. r6 |" H1 ?" v& d
然后你进入functextcmd.cpp并添加以下! L. _7 r1 U; i4 S) i7 Z
/ V/ H. `0 X! q+ [" }9 u- o7 S2 J) c& I
代码: b, J) A! ?# {7 j1 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( u+ A/ s& R& ?9 X0 }
下面插入
2 @0 m9 W( l8 k/ T- _ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 C/ E* v5 Z7 l+ Z/ L
3 T) M1 P- U* b. _5 i( }' B" s然后你去1 N/ T" A& {* a: a% w( t
7 r1 d5 h3 M( Z0 O3 e
代码:8 l9 I( `9 U: y# ]
代码
$ ?2 ]9 e5 i( U- U0 {BOOL TextCmd_ClearPropose( CScanner & s )
) y: _* u/ i* I{
" [- J( J. h& \9 @. ^% _#ifdef __WORLDSERVER
* L( P5 [" f' m CUser* pUser = (CUser*)s.dwValue;
5 Y5 L3 \4 \/ \% v: c8 u g_dpDBClient.SendClearPropose();
) u& k7 D. f) O* U( A* P' L#endif // __WORLDSERVER8 g E, W/ X h3 k2 D
return TRUE;# H# {8 j, e, R! Z
}5 ]8 A5 I8 ^7 @; W4 L% h: K9 O0 A5 m* E
下面插入, { o' \# v; c
BOOL TextCmd_rebirth( CScanner& scanner ): h- Q& r$ k- k5 y0 C- l
{
) s! Y& z0 G& h) U! Q' n' [#ifdef __WORLDSERVER
2 K7 t, I5 f3 }/ |% bCUser *pUser;2 M; @0 g! V) p! E
pUser = (CUser*)scanner.dwValue;: c' t, a) w7 r& I4 H! s
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# h, q/ v/ ^# B: X# NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 c+ k* [3 Y( |6 o) g
else s5 a* \5 ]" l2 [3 u9 P
pUser->AddText("你还未达到重生条件!");
5 S- I+ I" k% H+ m$ _#endif
* I4 h" p+ |# l; I- L1 O% \. q) Preturn TRUE;) y3 H' } a" ]9 j8 i# M" \- F# i
}
# d0 }% e: P, Y4 n! O5 Z/ O. m$ ]; V5 U; l+ E( |. H
k1 o: G% o0 u1 |3 r2 o4 @
. @6 Z; a% z3 Y1 Z5 {
, _% V8 E! d0 E2 D( E2 n
|
|