|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 A; D5 T( }* b! L8 G9 W7 y8 k! _+ H6 f" q% M
Mover.h
; |% @& l+ u8 H U代码:
# ^1 f; q2 ?0 z) v, N! G找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 Q$ Z/ [5 I9 Z O6 j! T
6 A' J S( \# O' E+ `7 \: L8 k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 j& a) B( j a+ ]$ l; m& I/ X8 Q M0 U
2 p7 `+ g/ o% M9 L8 u然后你去mover.cpp添加3 D* `& z' M2 }- U" J+ d4 J* u
( u9 c7 _: z$ D: r- ^( ]代码:
W" c. I) Y- ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- K: y/ L \0 g/ a, A: X{
# ~+ R7 ?7 G$ m#ifdef __WORLDSERVER
9 j* } e7 X3 |! d- w# I c( @! \7 }5 I // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 S; J' ^2 U( Q' m+ k/ h
MoverProp* pProp = GetProp();
/ I- B; w. Y; c* V if( pProp )
/ ?$ O: |; T6 q. j {
) A1 X5 r) m& M9 z% Q! F if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 g4 ^# `' I3 U' Z
{
; Z. B" R8 E% {: u6 p) o AddChangeJob( nJob );
, T3 f( c2 [/ k% T }else{
7 H6 J! H# }& |& j# Q return;
% N L" n4 R& D }
3 d4 q) t9 Q4 v0 G. F int nPoint = 0;
% a7 m) L M6 O if( m_nJob == JOB_MERCENARY )
. `, w- @ h" M' h1 K) E nPoint += 40;
8 B/ p2 o* W% W/ {; g0 J else if( m_nJob == JOB_ACROBAT )
4 n/ x- k* V# X) K nPoint += 50;3 o/ ?3 v1 H6 u1 R- ^4 G; H
else if( m_nJob == JOB_ASSIST )
4 T- Y1 h( ^: F% A% x2 C nPoint += 60;
( W% Z% X5 ^2 q! j% A else if( m_nJob == JOB_MAGICIAN )! m' y; w+ R! {6 t9 R$ y: ?
nPoint += 90;+ c4 ?3 e) c* c, V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- n) f0 ^& B# p) B& e \7 R- R2 N
nPoint += 120;
% j; n+ R/ d; Z: K0 a else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 M& Y; m# A& R2 Z% A/ [ g( r, { nPoint += 150;
9 f, X: `- f/ J* \; X( W1 s7 B5 @9 A else if( m_nJob == JOB_RINGMASTER )
9 ~* t& i1 K! ]& X( N2 K nPoint += 160;
& b+ Z. \) F8 Y. I% {$ s% w# A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 l$ S; w, |% {' k4 o nPoint += 180;$ s5 @5 d2 P8 Q8 q
else if( m_nJob == JOB_ELEMENTOR )0 e' z# ~1 s4 |4 W6 X8 o( @
nPoint += 390;: j: c: K: y& m" }7 o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# L" e, }- A9 y
nPoint += 120;
P) o3 f2 F: x4 Z+ t; E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 P' ]+ {* n1 \6 s2 a$ ~ nPoint += 150;
4 u# j3 |% t; Q& @: L5 y else if( nJob == JOB_FLORIST_HERO )1 M( H% I5 b9 T7 U, K/ `8 d4 k
nPoint += 160;2 ?! y) l2 |% m2 C& ? n2 N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 v# J3 e8 d0 b- D; b- v nPoint += 180; h, o, \1 ]" `' N0 A
else if( nJob == JOB_ELEMENTORLORD_HERO )* `/ g; A* n3 U1 C
nPoint += 390;
3 w- P5 j$ |9 C/ X7 a& f8 g* h6 `" w: a6 f2 M, m
AddSkillPoint( nPoint );% s7 E4 r) d9 d$ @" ]
m_nLevel = nLevel;
( Z7 G+ Q$ D L
: X* P2 O; X/ j. @9 s$ r SetJobLevel( nLevel, nJob ); {- _) H9 i1 A* s( t
m_nDeathLevel = nLevel;
0 m" O1 X3 y9 ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' \/ @8 j7 j( W+ } if(IsMaster())2 b" W: L! @- V. I9 ]) s
{
; C7 Z& C- w7 p) Q( X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 _" S; `8 O& N3 b2 g( j, m if( nLevel > 59 && nLevel < 72 )
3 u7 k5 h3 W& y7 k$ k! a dwTmpSkLevel = 1;
6 @6 e9 r- G) A4 X1 h else if( nLevel > 71 && nLevel < 84 )* B7 p" q8 R: M6 @; m
dwTmpSkLevel = 2;# \, |/ j$ W) [. A: J" K* J
else if( nLevel > 83 && nLevel < 96 )0 q7 a: L) v/ k/ |
dwTmpSkLevel = 3;
+ o9 q. f0 N$ O1 d else if( nLevel > 95 && nLevel < 108 )* s( K+ S8 o! r. `
dwTmpSkLevel = 4;
+ `# K. m/ O9 i+ h else if( nLevel > 107 && nLevel < 120 )
, X& W3 F3 Q; [1 U( `' d8 J/ z dwTmpSkLevel = 5;
0 W. u3 @' K# H8 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 X/ [: M1 t! x2 S/ f0 @4 t5 ^
{ ( @5 C0 b. k! x' x* M# _' T5 ~! E
LPSKILL lpSkill = &(m_aJobSkill);
1 h* t( F. W/ K$ w7 j' r# n1 s$ j* @ if( lpSkill && lpSkill->dwSkill != NULL_ID )3 K% ^" {1 s1 n/ C& C! U/ R& h7 Z
{1 y2 Q1 B. i4 K$ U8 C3 F2 u$ i* \' V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % i+ G, v" y/ Z! n
if( pSkillProp == NULL )
3 M/ `/ k. h) M) A8 d continue;2 Z. {; R# [0 r4 A( T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) c ]! x9 }5 D+ [ c continue;
; _8 N" K& N/ D8 A2 ?; E- _% C lpSkill->dwLevel = dwTmpSkLevel;
7 @; [9 W8 i8 \' H& X6 }. I }1 b: q$ W/ p% G7 i9 |0 {
}1 l- \5 y! B |" v
}9 l% l `# g- u$ j$ i0 {
else if(IsHero())7 I$ _% P/ M8 Z$ @" z% G
{+ {) |" {* @# K( {, W. ?- Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ^ L7 A% e: B/ I7 {! B; {5 l7 V {
+ o. l& I, S3 e+ W LPSKILL lpSkill = &(m_aJobSkill);
8 i9 Y* V7 f3 y: Z* e9 {0 T if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 Y2 f& @3 U5 c9 f {
: u+ D: h/ o! O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 B8 V$ R% P+ L if( pSkillProp == NULL )
- E6 Q5 ~( ^, P& ` continue;! A* _( ]# A6 A! o. a6 B! X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" q9 G# H- X% R# H& ^/ ~: B2 v
continue;% c7 p" I6 g* l% @5 j$ O
lpSkill->dwLevel = 5;) S5 T4 J) D; c
}
0 D' j2 _3 D' ? }% B' n7 s7 b) K8 Q3 U* k
}
' ?8 q0 ^/ J( _; G/ h6 \ else if(IsLegendHero())% a7 R: F. W$ \6 {; o9 j C
{
9 T4 E1 }! D; }3 ~$ w! F for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ V) m$ h6 J5 }% D {
6 d2 I# i3 H! S LPSKILL lpSkill = &(m_aJobSkill);
( h6 G1 g0 c& @$ J K3 h7 c. ^" ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
, {3 b; H) \8 [" K! f {8 f/ `% r# A6 C! N- K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " y Z1 W- y0 V- F" ?5 U
if( pSkillProp == NULL )
2 h9 @ ?4 M4 Q, y continue;
9 g1 h- s( p# v7 }* F) e1 W! n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 l* |' W# H1 f! Z3 {8 O continue;
2 w. a" Z" l9 P; i5 |5 E* Y: y4 F; M lpSkill->dwLevel = 5;4 k6 R# h* `3 O/ [! J; I3 \' }
}
, ~$ ~; q7 z+ ]" u' r: Z }) G2 C7 @3 }* l
}
% }: J0 ?1 W: y: W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" `+ Y+ F" `. u' L+ L: _9 M
if( bGamma )( }$ d# W, a' R+ h. Q
{ i" }! L, X& \5 ?6 o
m_nExp1 = 0;
3 s" c2 J% Z* D/ U+ P" v) u }5 C n- _- h. ?, V0 W5 m
. w( A2 K j7 V! f ( (CUser*)this )->AddSetChangeJob( nJob );
7 [/ f! I3 ~) J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 ?/ q$ k0 e6 j( U. s/ }* d
% B) i* g3 I2 [; E6 e9 c1 H
( M) W. d/ W5 l: d e#if __VER >= 11 // __SYS_PLAYER_DATA) f! g- O8 H5 c$ b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. F% x4 P5 [7 V( {/ _5 `#else // __SYS_PLAYER_DATA
5 I# S/ E8 f5 j+ p8 [" \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 M. A* S7 ~3 T; w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* ~- s- q& B' N9 g! S9 i' t$ Y1 \' |$ K if( m_idGuild != 0 )
: }5 y+ F+ l, i: _' x1 c) T6 ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 u! Z. F2 _. n7 C
#endif // __SYS_PLAYER_DATA: v, f$ Q; H% c6 }/ m; d6 G+ |
SetHitPoint( GetMaxHitPoint() );) g- j8 G1 V% |$ D9 Z% M6 ?# w9 z
SetManaPoint( GetMaxManaPoint() );8 ]( V; W" ^ | J8 \- S% r$ I5 x
SetFatiguePoint( GetMaxFatiguePoint() );7 G" ?' t( D0 N \) `, ?, ~$ L2 |
if( nJob >= 1 && nJob <= 4 )
4 f/ y/ Z3 |5 w7 I. I' g8 N {
2 C; B1 L2 r! b; _# F% b m_nStr = m_nSta = m_nDex = m_nInt = 15;% ?* R& ?! Z [' A
m_nRemainGP = 28;
* Q" F( Y$ M* U! o c' j. O }
' X* R- _) @) z6 W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. y+ v2 I, l! x0 d# c2 \ {3 |" A3 O5 \ \. x/ Q
m_nRemainGP = 118;0 V' E7 d- K; L O4 A% I ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, C0 W. s' [6 {# v8 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;% k; W& K3 H% z, S6 X( ]
}
" X5 S5 x6 j1 T: O" N5 h. |' l if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 K: @; f0 D: U" J {/ U+ ]# G! d1 h+ `3 q( k
CItemElem itemelem;
6 n. B) f- `8 n itemelem.m_nItemNum = 1;2 i" _6 a' Q0 A1 p0 i
itemelem.m_bCharged = TRUE;
9 Q1 }4 {; Q, c8 G8 A8 d6 | BYTE nID;' f: N1 i E' a$ Q
/ `- T8 p) E3 \) \ if( nJob == JOB_MENTALIST_HERO )
& j6 ]8 `7 Z( h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 S; v" b5 z. \8 q/ G! U3 t4 W/ ]
if( nJob == JOB_FORCEMASTER_HERO )- o8 q# d8 f3 Y3 ~. b P' C* R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# C( H, b, F* c
) }9 y/ S* a' U' Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );, q" e. U6 d0 }: C2 e& J
}
4 m& N) t) [7 m% j2 l1 B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ [0 c% L/ Q/ k2 v4 y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! _8 d0 z2 d( D& k" h5 j7 m ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 L" {" @3 B7 q! W! P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: u/ I" V( h5 m$ }: i
( (CUser*)this )->AddTaskBar();*/
. Z% G* H" j% \3 n2 g4 p- `9 g ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' Z t: I" G) R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) \3 @+ V+ K( ^& A8 l) _/ W
((CUser*)this)->CheckHonorStat();) X1 z3 z/ T$ [& K0 m. e6 }
((CUser*)this)->AddHonorListAck();
# t. |; T$ [" \4 }0 t, N" ~* [4 @ g_UserMng.AddHonorTitleChange( this, m_nHonor);# a# z( G9 m" F: O, q( ~0 r: @
#endif // __HONORABLE_TITLE // ′Tà?
% ~5 }& x% Q9 a- d E. \( I) y }
) w7 o" K" j B1 [4 D#endif // __WORLDSERVER/ g7 Z6 A7 a/ c/ [$ M
}
7 b0 x- d9 K: }
5 c& M* D5 m8 c6 E8 c3 p' [- \然后你进入functextcmd.cpp并添加以下
' p3 U: v l5 l. L" S2 r9 U7 [% c# V! B, M
代码:. j5 A; a5 P7 l/ _9 z" A; W& t) Y& K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ k' U4 I: q) t0 |; ` F" r5 @
下面插入
1 P$ F2 }; T9 h* I3 i& X6 f) b+ rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, P$ q) s# z- K" w8 T
" w: T" I9 v# Y) n& `9 I然后你去
+ u; |6 A/ R3 f+ A0 T( _5 p
3 B2 h; D' Q! b8 O* u# h& r代码:. v3 B# t* t: L; L. y0 n) I* \
代码
! |& N* l2 U8 P, zBOOL TextCmd_ClearPropose( CScanner & s )& S0 D3 x- U4 T0 H( m9 d
{$ I+ S6 S$ u" \* G( n- `1 z6 \4 m, O
#ifdef __WORLDSERVER& m3 ]7 b8 f' i- C8 ~
CUser* pUser = (CUser*)s.dwValue;
$ u' k/ v# R; z5 u/ d% l3 Q. t g_dpDBClient.SendClearPropose();2 ?+ x9 J/ e: K0 m) G
#endif // __WORLDSERVER
1 l& Y. k2 Q, R return TRUE;
6 K4 f9 G" u. |7 ]1 \}
( T% H. t$ f. ~# Q6 g; K [! _* C下面插入% b! a/ \8 }! |3 O7 f
BOOL TextCmd_rebirth( CScanner& scanner ); n4 r. ?) D$ b, \+ c* C0 [
{6 S! w2 W' C7 y) d/ W: x* [
#ifdef __WORLDSERVER' t$ W0 L+ s, E+ O. J1 k" z
CUser *pUser;
7 g- m% Y9 C. k+ [, o2 g- npUser = (CUser*)scanner.dwValue;
- P" Z. t4 o" k9 Q& {if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& L/ K g, M3 f1 C7 P' bpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( [/ R4 J! F. Z$ q: U$ ~5 F
else
; _( S" X; H4 D# o0 ], kpUser->AddText("你还未达到重生条件!");
0 N/ `: b* L! R# v8 C' p#endif( S ^+ i% _5 \- V' x$ v3 j; t' ^
return TRUE;
+ H' b( o( l6 m& m' b+ p$ I} : C& b- F9 y! V! D' f# c* `- H4 Z
/ ?( {, V3 v6 {0 H+ l
* s! z4 }# p; |0 n
7 J: d; O9 a8 `! @' C2 [
7 c4 Q) m! r2 a; x1 e, U. o
|
|