|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 S6 {6 J o$ ^! N' h4 |
& K+ s5 s# M! l6 _/ j+ U0 ^8 F& jMover.h
9 N1 z B& D, c: |5 Y7 H代码:
* a0 b& q: |# u% d找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; h2 i, @. N% m5 t
3 h4 J9 J; n- x5 y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# x: n. z! \1 P+ k- f
$ }' B8 I$ y" L) k* [: V" P然后你去mover.cpp添加- ^- Q* F4 G3 Z4 }! D- s; i" e& j
1 n1 K6 [9 M% g* w2 A代码:
3 F' N0 t7 A( Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 s2 R& l# G( `& w{# Y O$ P/ J8 R3 z; }& J9 ?
#ifdef __WORLDSERVER
* K0 T' i4 u W8 B. V# W0 k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. v6 {. Q$ [* p* s! H5 b1 D MoverProp* pProp = GetProp();$ v: { h" W( c) F
if( pProp )
+ U' q' D& }! B, q2 o: h H {
+ P) b2 y* D, [( k2 D7 F# R* E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( Z$ V: p( r/ V& L c) z+ M {
6 X" s& S4 w. b3 A. A8 L AddChangeJob( nJob );
& V3 Q: m: w" f }else{: ?, |/ K/ X! Z1 R v! n2 \
return;4 l, F& n" {9 _* D
}
0 g4 q7 y5 s- ] ]* Y$ M int nPoint = 0;
5 h8 } g7 u' d" f( ^0 \8 J if( m_nJob == JOB_MERCENARY )4 f4 F6 ]/ O1 ]# J
nPoint += 40;5 I" a; t# E Y6 c% n6 J: U
else if( m_nJob == JOB_ACROBAT )
2 ?4 y% [9 r' q' p9 Y nPoint += 50;
$ x/ {, H' u7 ~/ b else if( m_nJob == JOB_ASSIST )9 I) y" d5 |. g
nPoint += 60;
3 s9 Y4 H( Z0 M3 r3 ~6 b2 L else if( m_nJob == JOB_MAGICIAN )
' X, a6 A7 D( \9 ?( v/ L nPoint += 90;: j0 J# \* T0 K, c/ q8 F7 }5 X
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 O' Q& `" I6 o( e7 I. m; F
nPoint += 120;
4 X2 S0 h. [, I! F( m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ W" x; q' \& W( |& ^9 U& R; B$ ]3 e" O2 E nPoint += 150;
9 ]& ?- Q$ M6 t$ v else if( m_nJob == JOB_RINGMASTER )
M# i$ k8 ]2 Z% d4 _ nPoint += 160;6 @: g" {: s8 F. A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* {+ @0 [& Y, T( D
nPoint += 180;
- D$ ^! {! ]/ ~$ D; M5 O- J else if( m_nJob == JOB_ELEMENTOR )$ ^2 t. J! e, o4 Z* e
nPoint += 390;
" @" r5 I6 ]% Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 ]! @! `- x8 y8 i7 H# o
nPoint += 120;$ I9 e0 ^9 x# S. E+ y. `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 U; o# ]0 o2 n% A
nPoint += 150;
! f. _( @% g( e; D6 t else if( nJob == JOB_FLORIST_HERO )' P1 p1 M7 p6 e# n5 ?' c( v& H
nPoint += 160;
0 N3 @# `2 z# c4 E else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ y. L/ _8 z. r, a N0 j; q nPoint += 180;% B) w( A8 z: {% R
else if( nJob == JOB_ELEMENTORLORD_HERO )
" _- w4 ?; p* g* | nPoint += 390;
3 e' j- k: [/ V @" Y7 }" y7 X" d/ b% G
AddSkillPoint( nPoint );- _ Z$ n7 C: {2 W ?. @
m_nLevel = nLevel;
- T# X4 ^# L* n5 h
" Q v# y: z% _7 {1 g8 W) r) ^ o SetJobLevel( nLevel, nJob );
$ w$ E+ O, U( z m_nDeathLevel = nLevel;, H- C0 f: X# V" K6 O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 ~) P" E- P" W! I9 C& Z
if(IsMaster())2 Q8 A f8 H1 \! _+ h9 [
{
3 e9 S' j5 s# d; | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ }' e5 N/ ~8 G7 w6 r8 ? if( nLevel > 59 && nLevel < 72 )
/ q$ `7 I" @: K) S5 b+ w L dwTmpSkLevel = 1;9 n1 Z f+ k, C, l# f; o
else if( nLevel > 71 && nLevel < 84 )
/ Y; G7 I* D4 u& j9 g" { dwTmpSkLevel = 2;
3 e) j& G1 L& l4 C4 {, w( y, g else if( nLevel > 83 && nLevel < 96 )6 G5 T/ c7 n K! R4 j# Y/ u
dwTmpSkLevel = 3;
" f$ E3 A% O6 l( O5 I$ @ else if( nLevel > 95 && nLevel < 108 )
$ Y6 J9 [/ W+ A$ p( t dwTmpSkLevel = 4;
2 V* k% k6 _8 i* g- V' B3 N2 b% Y else if( nLevel > 107 && nLevel < 120 )' U, q) B& A' U, \- a/ _- L& D2 o
dwTmpSkLevel = 5;
% q0 g( W6 A7 ], V" G for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 K) j+ Q) q. u y7 q+ u { ; A0 j0 O9 E. i# O7 }4 V
LPSKILL lpSkill = &(m_aJobSkill);
1 y6 E) @" L- D8 z' V if( lpSkill && lpSkill->dwSkill != NULL_ID )
^' w" p% T9 [2 ]: v( Y {
# l& g, ?$ o2 Q$ q$ C( B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) z! d2 Z R8 G. i3 y
if( pSkillProp == NULL ). d4 F' B1 {8 h& L1 u
continue;
" C8 T7 f1 O3 D' W3 A/ ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 A, h$ Y' j$ o- Y, M4 r/ x- e8 ~' _
continue;
9 p$ d y& G- p+ z- R8 ] lpSkill->dwLevel = dwTmpSkLevel;
, M9 W5 o1 R7 U, V }) Z4 ^) t, S, N4 W9 ~+ q, j* k( u
}) F+ n& z- @1 l6 k
}- G: e- _% {4 c; G# L2 k
else if(IsHero()); J( q; _/ S( Z9 B6 A
{
' r1 Z X0 \ _$ c5 d for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ l+ \4 h5 r& ^3 d, ?9 o. w { 2 H+ e/ _5 D. O. C. P* F, Q
LPSKILL lpSkill = &(m_aJobSkill);& j. Q6 R' x" v+ {- S7 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 a) ^7 K! w. j; ]8 ^ ?/ _. P0 q {
, u7 G. u7 C Y- h! S9 n \' R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : V" c6 u3 N" P4 S% f+ W: \
if( pSkillProp == NULL )% ], j/ y6 q# `' u7 f! K0 N9 P# X
continue;$ f3 ~% a$ ^# i# R0 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 M( c: A4 i. ]% ? N
continue;6 r8 x- Q1 Q; h, q) P
lpSkill->dwLevel = 5;
) y9 V1 q7 b6 M7 \0 Z }- W# y- R/ n3 s3 x# m3 z$ k; i
}, U& S, f: u( z! q2 v
}* }2 ^+ Y1 C! s& T) X; q% L
else if(IsLegendHero()), h. |+ J5 O. x: z
{+ i: O0 a! o; ?" c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & b7 v" F' [5 [& `+ \+ p& [7 J! R9 {
{
# N* Y0 J7 i. |. [0 |& q: q LPSKILL lpSkill = &(m_aJobSkill);- j) \. R6 W3 Y, b
if( lpSkill && lpSkill->dwSkill != NULL_ID )% M+ s$ g7 n4 S/ X; S
{
3 |1 U+ e6 q; k; T* G% D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' c0 E, v. F4 N+ S if( pSkillProp == NULL )% Z' `+ _: x6 L% `9 Q( ^, b
continue;
% N; m3 ^. Y0 \# h% i1 W% m8 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, S& ~ K$ n7 X9 e continue;
7 ^/ Z- j- h4 i* y$ w lpSkill->dwLevel = 5;; N7 _6 }1 w/ n! x3 q! }7 z/ ?% G
}
1 Y. R/ R/ K% n% W }
# R3 |, E! _+ g+ u4 Z2 x }( u- c5 F5 u3 O6 i
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 { b! N; [: q4 S7 S* ?& W if( bGamma )6 n4 o3 e9 ~& `- U. r6 ?
{ z$ K$ m1 d. B* p
m_nExp1 = 0;) c6 k# J$ Y: |
}% m3 D h6 E. C M: x6 v+ p
! I0 l7 }, s4 Q) k& ` ( (CUser*)this )->AddSetChangeJob( nJob );
0 f7 G }. r( j2 J5 b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ c; {. o J/ G/ O2 s7 l
2 @1 {2 K8 a$ b: g) c+ u2 \
8 G, F/ j- L7 ?1 L& L6 i. q7 F9 X
#if __VER >= 11 // __SYS_PLAYER_DATA' e( Z, \) A% x1 F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 w& h- [: m' l' t- ^; C. g$ ]
#else // __SYS_PLAYER_DATA
% c" T Z3 c c* Q4 ~/ ?$ B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 C' o4 y4 D* m6 y8 G0 m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 u5 f: c, e% s, \0 u4 @ if( m_idGuild != 0 )
^( q) t' [* R. E g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; E# s' {, ]; L/ s, _
#endif // __SYS_PLAYER_DATA
2 c* U2 h c$ _$ e SetHitPoint( GetMaxHitPoint() );/ l4 ]" f; a9 T3 O: s5 b
SetManaPoint( GetMaxManaPoint() );
) T+ J% O/ D, a4 i1 h SetFatiguePoint( GetMaxFatiguePoint() );$ ?+ m4 b. Z6 X* `1 I9 m, i
if( nJob >= 1 && nJob <= 4 )" ]# _! Z! P9 x% i
{1 Y( M5 W) Y1 O! d2 ~' Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ ?, V$ L- ~& x m_nRemainGP = 28;
+ F- m; i. o+ d( r9 q& V4 S3 ~& U }
& ?3 ^3 Y n5 @ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ a# F* f8 ^& A
{
) z$ D* \" q* l, k& q8 ~ m_nRemainGP = 118;0 @. a! f: U6 ]) r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 E! K" \) {0 K. I6 q; S0 s, q5 _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' D6 |% s5 u6 W9 y3 K: G }! H! a0 s* |4 \& M( ]( ^+ ]
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 l9 a% H% I% K- R* m" x" V$ t {
9 J& W2 B$ k2 H! D7 `" | CItemElem itemelem;) {# _ a7 b X, l9 b7 Y4 v) ?5 v
itemelem.m_nItemNum = 1;
7 ?- w8 m0 ^0 t/ i. @; S M# [ itemelem.m_bCharged = TRUE; I: ]! [4 e, @, E
BYTE nID; g1 j ^; B8 q- B+ m
: {: a- T% u' w y. J9 ~# N if( nJob == JOB_MENTALIST_HERO )
4 R ^: `' H) x- g0 L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' T# H9 @( Z( H* r6 R& d9 \
if( nJob == JOB_FORCEMASTER_HERO )
: e* ]3 n+ l8 ^% ~3 C3 i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& y& G" y1 ], e1 m8 D% X2 |
& o8 b) t% T" v ( ( CUser*)this)->CreateItem( &itemelem, &nID );
d* \1 O4 i& R5 y- z( C: z7 ?4 y }3 F8 W: R" s! l! b; ]0 j' f' s# c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 H1 K8 u# i2 T1 b1 N( V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 T/ @" {! \7 G6 X0 \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 ]) Q! S1 G% u. w9 Q. d* c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 Y1 x6 f$ R' N3 i x7 b5 R ( (CUser*)this )->AddTaskBar();*/
; Q) O2 n8 [- l8 q3 [/ f0 m ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 G: V8 H: o, B5 z3 D' k% E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 k, j) j- _: M* N% n0 ~1 c
((CUser*)this)->CheckHonorStat();
- {) M0 ^. ~/ f* a! v ((CUser*)this)->AddHonorListAck();
. _8 } `% K) L( }* m, z g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 {. C, Z4 x8 Y! q1 w#endif // __HONORABLE_TITLE // ′Tà?! K$ o2 e- {( ]
}4 a# }2 w- \, |0 i* ]! B
#endif // __WORLDSERVER
. X5 n: q5 y T, c5 o, [}
' ~) x3 F' U) D, T0 \; X8 D: H
6 |$ G& n9 l' q. l然后你进入functextcmd.cpp并添加以下: }9 F( G( M# L; K: I
9 f" J/ T* n& \" {
代码:* E+ O( }- o* r; ~* _# z- O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 ~9 L% Y" U( J0 U下面插入+ u9 M# T2 z2 K4 v. w. M3 \) ~* N7 f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 E h7 Z O1 L* P* A; @! b. @, k u9 Y
然后你去. W, q5 `" t0 R0 A% ]0 Z
4 K7 a+ }# V1 D6 o# j, D代码:+ {: m2 S; d- n- U9 N0 L
代码
$ R# ~7 L. I0 ~9 l2 IBOOL TextCmd_ClearPropose( CScanner & s )
. Z6 @3 t9 c# h `{
! v3 v8 c, u) M R#ifdef __WORLDSERVER: Y [! K- W8 U
CUser* pUser = (CUser*)s.dwValue;
: @# X7 {( q Q g_dpDBClient.SendClearPropose();
5 f5 c; E0 }0 d3 o8 r% Y( ?#endif // __WORLDSERVER1 ~9 P# }( A+ Z' i$ v8 Z
return TRUE;
' H# S3 l( j$ u}
9 `) u9 w: m5 C8 b( }下面插入. x5 Q* i( f& k1 `+ {, a
BOOL TextCmd_rebirth( CScanner& scanner )5 R- U0 r- }* y5 k2 ~
{! s9 Q) x+ i" g Q8 w
#ifdef __WORLDSERVER( d/ j/ E0 a" {0 ]3 d
CUser *pUser;
' O& M) d, U/ Z. o* Q- F0 FpUser = (CUser*)scanner.dwValue;
0 d; N5 B, c% N4 H0 ]4 z8 |. oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 A9 Z1 C' E7 y7 B! B2 R1 c* v9 K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ X1 Z( J0 X4 G7 I' L
else
1 n5 O6 {. p# c7 _pUser->AddText("你还未达到重生条件!");
1 v1 s( W6 u6 U9 o9 y5 R9 H* C* [ p#endif
d5 Z7 ^1 v8 l% I ereturn TRUE;* \" a0 T2 |% h; m7 R
}
0 Y/ ^- y! s* N z. D |" l
" d; c" C0 o4 ]- Q. U" n4 I/ N" V9 A+ j- ]8 ]/ s6 a
% g2 @& B5 Z! s: E( f' z
" O% o1 l( N x q' E |
|