|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! N) l8 Z/ v' s" R* b) h3 A N. {; M" z! S7 C
Mover.h) i; Y/ M6 P& T- ^, v
代码:
# A x0 l0 H! K. }3 E3 l1 |' q+ C找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 W1 ] I1 X3 `. m
: W" V; m( ?) P/ j2 c4 N9 H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / Q5 e1 g6 w! Z/ n# R- W
* v- z' z7 W) ]: S然后你去mover.cpp添加0 f6 a" ?# N, j8 X
) H5 R' O2 Q( f+ E
代码:
4 n" Q8 ~) e$ z% Q7 {0 q7 Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" n }3 F7 `$ f/ Y [" H{
' {- L& ]3 R2 \0 U#ifdef __WORLDSERVER
5 {5 n9 u" I* J# D& [ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' |. `0 f( n$ U5 d, \ MoverProp* pProp = GetProp();# n `, }9 J; N( _- O4 {# O
if( pProp )3 W; y& w- m l* u; z6 U+ w6 s1 f
{( o4 V/ }0 w2 y. Y2 a, g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( n, f. e7 z! s3 `' R* g& h
{* m: ?! k1 g3 k3 B7 Q0 l0 y
AddChangeJob( nJob );
- I6 B0 T* w7 E/ l: r }else{
l4 q, N7 o/ d( G! L$ r return;
! n2 S. G" _2 L0 z9 R: d8 ` ] }
* k' h- r+ P# E4 j) T int nPoint = 0;1 ], R5 f7 @1 n0 V& M# r q* K
if( m_nJob == JOB_MERCENARY )$ G, `" r. ^) S# `$ U p, W
nPoint += 40;1 G; m# P1 d7 F" |
else if( m_nJob == JOB_ACROBAT )6 A, b8 R1 G) Y- V2 z' r
nPoint += 50;
9 I3 L1 D0 J1 @6 V; B& V6 ]8 p else if( m_nJob == JOB_ASSIST )
7 @! ]% ]6 U/ @5 h nPoint += 60;
, y3 @' p n5 e else if( m_nJob == JOB_MAGICIAN )* \3 w3 e3 c% F3 H
nPoint += 90;
4 w2 n4 R! |6 A9 Y- A% @7 ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ \# `0 r7 N, {8 V- R3 ~, v nPoint += 120;7 [& k- S- J" i: F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 N4 z( s) ~: m* s: L
nPoint += 150;
( s( d5 F; T7 i- w' V" P# Z& l else if( m_nJob == JOB_RINGMASTER )
% l% W6 r$ O! p( n( k; k nPoint += 160;
3 n3 [( y$ \- O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ S, n" N( `0 e4 l8 h0 O4 }* e nPoint += 180;, j* S+ S% R/ l: d
else if( m_nJob == JOB_ELEMENTOR )9 y `. R- {& D- r5 y& I
nPoint += 390;0 ]" I+ n# \, d! O6 {7 b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: h. E- v5 _* G; ?) c. L nPoint += 120;
* c& b( t' y* \' l else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 m* M# L; o1 e) y, m# b
nPoint += 150;- e- M% r8 o5 |1 d
else if( nJob == JOB_FLORIST_HERO )
4 R, w; l9 l2 g. I9 e. {# K# g nPoint += 160;+ _; D+ u% ~2 K2 Y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: N1 w! w) j: z3 Y5 S( h nPoint += 180;" W+ x- N3 C2 P5 r
else if( nJob == JOB_ELEMENTORLORD_HERO )) l4 @; L" ?- X2 Z, v3 ^7 p
nPoint += 390;8 \ D) b7 A! ]2 \$ A/ |' y0 q
. V- a0 q$ I: z: c
AddSkillPoint( nPoint );" A9 {! @" O" L) K0 \& C& e
m_nLevel = nLevel;8 p% Q; W' ~0 q! v* |8 I( F$ S
6 f1 G9 ~0 N) f8 T" r2 ^5 N8 L
SetJobLevel( nLevel, nJob );. @6 @9 g4 o# F$ X' p
m_nDeathLevel = nLevel;' ^7 W }' S* R3 `: t3 G3 n- @. `- l7 o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ v: N; r, v; e) }7 i T h9 P- F+ T if(IsMaster())
9 {% n! \, v) J c5 s+ ^2 I {+ ~; ~7 r& e! u: S/ ^& b9 O, l
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* Z/ ]; a1 [7 [& w9 C
if( nLevel > 59 && nLevel < 72 )
) [- A1 G. b- n" @0 n8 g- F dwTmpSkLevel = 1;
0 q% i) R& v7 U" m else if( nLevel > 71 && nLevel < 84 )
2 i4 r, G; `' S. Z' b" p+ D dwTmpSkLevel = 2;
/ A" ?0 {, M4 c7 t' A else if( nLevel > 83 && nLevel < 96 )
& N+ D% d' ]- Q) L. l6 Y dwTmpSkLevel = 3;" O$ w4 a' B: A8 S2 b; ?; t/ X
else if( nLevel > 95 && nLevel < 108 )
& @" w/ J5 \9 y6 Y" m4 f dwTmpSkLevel = 4;
- T) B P, q" K else if( nLevel > 107 && nLevel < 120 )
+ T# y6 v% P1 a9 b dwTmpSkLevel = 5;( w! i( p& ?1 ~7 v! X# w( r) i( ~* z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' j9 B! ]7 Z* V5 j' c* U {
2 |' }' N0 X: O6 ] ?5 Q/ o LPSKILL lpSkill = &(m_aJobSkill);
1 B% [8 o3 q, G3 l5 s) @( U, w( k6 }* d if( lpSkill && lpSkill->dwSkill != NULL_ID )
K1 a) O- ^% U, y6 `% h {4 O5 s. W9 U" _' d; U6 G8 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 l" | q% x0 Z$ ?; a if( pSkillProp == NULL )& x/ ~0 I7 [, Z
continue;
* x, ~7 s2 D R1 F' Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ?1 w5 ^5 ^9 c. I continue;
+ V! F8 i" L8 n5 g! h lpSkill->dwLevel = dwTmpSkLevel;
2 ?1 }/ a; L8 `; \6 `2 m( Z+ T' K }4 I: P" ?, n8 h/ U1 N% N2 D+ L4 T
}9 S* t' C9 W* N: q$ ]' Z m1 G
}; ], M7 S$ N* p9 H$ S: ]. O6 a
else if(IsHero())
- Y3 g: L+ \) H, R I {
( m7 B2 d0 u% l* ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
; c" U& d& W" K p) D" F { & u- k( Q3 E; L8 z* N f
LPSKILL lpSkill = &(m_aJobSkill);3 Z; X' p$ z9 R" M, N8 P) i
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 E: E% O: U# b" k
{
$ h8 o0 s+ Y+ X8 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ @6 c8 z' C: n1 [
if( pSkillProp == NULL ); ]4 h0 y$ I3 ]" u2 f
continue;
$ E# w* T/ g6 i# Z. j1 u8 h% g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! X7 ?- I/ `* j# \7 H; H
continue;1 T6 m+ s# F9 `# w; S$ X% s, @; L; D
lpSkill->dwLevel = 5;
' A0 B0 v) z. M }8 F4 r( Z5 c4 [
}& V7 ^$ Y; ?* }
}6 n% }, y5 P* e
else if(IsLegendHero())2 k- Z& r/ S. E3 V
{! ]" I* P, A1 N; z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % V6 q7 v1 k7 X8 |% _/ y% r! R$ N
{
/ _) G3 S \. d( Q5 ]: s LPSKILL lpSkill = &(m_aJobSkill);9 a. X- o0 z! n9 }. C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# G$ b' ~7 w% [ {& A: g. |4 ?' }$ a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 `# ]. L% ^' G& h- ~9 z6 y
if( pSkillProp == NULL )0 i/ G! G f9 c
continue;
2 y& K+ h, C6 w* f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, J ?& H4 `% j: e* v continue;
) V5 i% F5 ^% p: \ lpSkill->dwLevel = 5;/ ]6 j( U( ~$ r- _6 N4 [) j
}5 z. ]1 J, z1 x* e1 W5 L
}9 k# K: S6 W% \$ s" e$ y5 X3 }
}: r, ^: {/ J/ ^% x; z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, ?4 R+ ^* c* g6 q- I; r
if( bGamma )4 e3 {! ]1 e4 Q5 C& @ i
{4 X0 g, A9 s& t6 d+ J3 }
m_nExp1 = 0;% H! L' E" N2 l1 j( O- g
}8 A/ n: ?. o. N5 ^3 n" G7 }& D v
- S+ Z, p2 k% D+ ? Q4 I4 A ( (CUser*)this )->AddSetChangeJob( nJob );/ N ~* O- S3 Q/ M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 B2 r; B. A2 A. k8 h: u+ V6 L6 b' I4 U5 y4 _7 k% z
. ~1 a8 b2 \; F
#if __VER >= 11 // __SYS_PLAYER_DATA
- {7 t& i5 r% Z* m" ~# m/ r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- t$ s. R$ |7 J% d! |
#else // __SYS_PLAYER_DATA
1 f. ^2 ?8 u5 L# p6 X4 M" ~ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) S# e& H2 c+ U `0 A4 m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ U( u/ Z; @, l# d; Y y- n1 E if( m_idGuild != 0 )# P, s3 W2 E. L9 @. Y1 g* C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 p8 {+ F: m# b3 h$ P
#endif // __SYS_PLAYER_DATA) t7 O. e* n, y
SetHitPoint( GetMaxHitPoint() );
$ U8 J- \8 }, \- T0 }' \/ g% w SetManaPoint( GetMaxManaPoint() );& N9 R, G, L7 U
SetFatiguePoint( GetMaxFatiguePoint() );9 z2 Z: _# ^* e( A7 g/ m
if( nJob >= 1 && nJob <= 4 )
4 G3 r. x7 L4 I8 M D, v" y9 |5 T {) r( j0 g. `9 w9 B0 r! {! H7 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 F3 v* y3 ?$ u7 a* r m_nRemainGP = 28;
# w# F5 [/ W [7 j8 y }+ m% G+ G$ }. U6 ?1 [# Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ _, G d$ X$ ~ h# V
{ m% P: M7 ]: t7 s+ k
m_nRemainGP = 118;
4 v- x4 P& y& A1 t' ^6 \ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: G8 p. o% u; }- g% Z& p9 j* c: @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
p# g2 I- k! C) K' K5 w5 } }
8 b$ q% L+ W8 e& |, F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) U2 X5 i3 T$ \( ~ v' Q. h/ ~
{
1 z: h( j: k# p6 V& x CItemElem itemelem;
4 d: u7 S8 b( v itemelem.m_nItemNum = 1;
( w1 p+ W% c# R itemelem.m_bCharged = TRUE;, G1 Z* }. [ O+ P% \
BYTE nID;8 I$ ^* r3 `% e4 a4 M( o, f0 l
4 Z5 {9 l' J' q" M4 ] if( nJob == JOB_MENTALIST_HERO ). r& ]$ E* i! j h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 W3 w2 T* u: B: w; u if( nJob == JOB_FORCEMASTER_HERO )
2 S$ f: T$ |$ N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 t# \- a& c, i! Y3 B( {
" Y& K1 B0 c; ^1 C
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 a; H; |* k }8 a) H9 D
}
- c1 l* q+ s! I( a7 K; K' M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* O6 b2 s2 x B* Q, D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- J1 v5 g) X6 T4 l1 x ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) g4 t* r7 x: |) ?! t7 P% Z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& [: Q* Q8 a3 d+ H
( (CUser*)this )->AddTaskBar();*/
. I2 g8 l5 H* Y5 N2 f7 M$ j) S ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, {8 x, S" Z+ N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% I- G) K9 z+ |9 i+ } ((CUser*)this)->CheckHonorStat();, x7 I6 I" p1 a! e- h: a9 U
((CUser*)this)->AddHonorListAck();
& U+ W3 F" S( V4 R" K g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 g1 W5 ~+ X3 D#endif // __HONORABLE_TITLE // ′Tà?
6 G* \9 J- C* R8 Y2 X& m }: e/ p& y# d% @7 }; T) l8 F
#endif // __WORLDSERVER
: U" E% P% O( r}
1 N/ t' C4 S! ~; l Q) s7 f# ~9 c5 a& h4 D9 H6 W. K
然后你进入functextcmd.cpp并添加以下
. H" \) W8 Q+ l8 h" B0 m, z2 W( X
7 `8 q8 L2 }* R' d! k* {代码:
, p- l" X* \7 Y1 }9 I3 SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% j; x8 n6 w5 O( G* b. w, g5 O
下面插入
4 n* O2 w5 Y& _2 n* a& Z' LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# `0 A1 [/ j6 F" H) W# C- q
) K9 ^5 P) F& ^& u然后你去: R! V, C3 C A0 j0 a: c$ R" {
2 `6 I0 q/ S: N# H3 n
代码:
: @- k9 m3 V5 @+ V4 M* O8 H代码2 T" s. i7 u a; `
BOOL TextCmd_ClearPropose( CScanner & s )
- x* ^7 R! r: a3 A7 E1 K{. i( x& m2 I M& J- `2 u8 A
#ifdef __WORLDSERVER# ^( e5 z5 W. S. E
CUser* pUser = (CUser*)s.dwValue;- ], m6 v& P. B0 H
g_dpDBClient.SendClearPropose();: a: W8 }+ p% w: d7 ]
#endif // __WORLDSERVER7 S f# k% g9 F8 g. z
return TRUE;- G/ D. k- @) F3 ~
}
( G+ R& d& ^, U8 }% A; n( x下面插入! Z" v* w0 q- A7 \# D
BOOL TextCmd_rebirth( CScanner& scanner )
* _% u5 i- f! O l6 z; J{ P) b+ w$ b* {4 h! O7 F; `
#ifdef __WORLDSERVER' p% E' v' n. C3 s# H1 W
CUser *pUser;5 o8 O* F# L9 F9 y. m
pUser = (CUser*)scanner.dwValue;
# m2 T, T3 @: W; r2 J; Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. {, v# F! W, \" y7 [pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% k$ O2 N% m2 }1 E% v: \9 ~/ @else
/ C+ X3 G7 I9 F; hpUser->AddText("你还未达到重生条件!");! ^' [# ^- P( t0 F
#endif. ]' |( Y, L( M3 r( y& M
return TRUE;) \. l; M- b! {4 I$ F4 @9 g4 p
} : {. b+ H3 B$ ^* m& g6 p' e8 u. D
' Q* e7 c/ U/ z( Y) q' {
6 P/ }/ E/ [, w
; ~4 y' {, o3 K4 J4 ]; B, r& L/ `" c/ W# r! D
|
|