|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ I! h! g. r+ r( E8 t$ T$ V. i+ m n2 `( h0 C3 M% N6 r2 h
Mover.h
5 K4 Y+ o7 {2 ]; M9 m代码:
6 j" ]9 \* u T4 @6 }) k; C4 @6 q, ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! H9 ?" f) A7 x6 I& H
9 {1 A1 H" G4 ~+ e9 @2 t3 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 u2 F1 w1 z. T
; ^: M) Q! H( F0 x, ~% N然后你去mover.cpp添加" m/ y" m; ^- o1 b" }
1 Y" E) q I6 W1 s4 C, t$ R/ O
代码:
8 i7 b6 G2 D5 v v, p3 E. _) H, o5 evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# D* f6 p7 g& F. M$ Y/ M$ s9 M
{
/ ]& F2 @' M& X2 Q$ n#ifdef __WORLDSERVER
: d4 ^/ R4 m) B+ j6 m J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 U( R- F# {' d/ R& E2 Q
MoverProp* pProp = GetProp();
3 }1 S3 } q2 E% X: N if( pProp )# `- T8 ^+ f$ b) j+ k2 D0 f
{
* m% p* [, ^" Z1 J4 R+ x" D0 G# r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# }3 q; z1 h9 ?' w; K+ A5 y- m6 l {' ~9 _/ i- h6 i8 ~9 G
AddChangeJob( nJob );7 I1 H. T& h( o! D: i
}else{
' b: e' @( h/ z G# P; w, l1 S return;, Z) Y% u: t# q9 g
}
. y2 ?) X* ]4 r5 K1 h0 I! m int nPoint = 0;6 Q" L% n/ I' Z: ^
if( m_nJob == JOB_MERCENARY )/ n% G0 J; ^; ^& R; A
nPoint += 40;5 E- b0 m& S* V3 e) U8 @, l% X( J
else if( m_nJob == JOB_ACROBAT )2 i$ v, F2 k" o R- k6 r
nPoint += 50;$ N/ A) h& W7 C/ x' d) O5 S. E
else if( m_nJob == JOB_ASSIST )
5 a$ r* ~. c& J9 M nPoint += 60;! H! U! v" B: u
else if( m_nJob == JOB_MAGICIAN )
$ }0 D) L( K! Y- {* F% k- [ nPoint += 90; n9 T% [$ U- s, p& ?- y+ v& O
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); F$ h {4 y& y/ ^; M4 l
nPoint += 120;
7 z$ K0 ?/ B. d, @" Y3 t: ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( T2 t$ f# D4 h- Y% N- B nPoint += 150;3 h- }" x: Q9 \: x9 x/ l$ F
else if( m_nJob == JOB_RINGMASTER )
) u7 U3 y, g4 J G nPoint += 160;0 @& N! j& N: o$ G
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ W: s2 u) u- E: w+ P nPoint += 180;1 J9 | F+ N, X* s) h
else if( m_nJob == JOB_ELEMENTOR )
$ P9 j* r1 p) L* u$ Y# W! f9 M nPoint += 390;. I$ }2 e0 e3 Z4 R2 D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 J; r; }# P" S& W F0 n p! [ nPoint += 120;
, P d* n: ]/ S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- _/ L3 T( s' d' x$ g
nPoint += 150;
' g1 z5 Q" g% i7 J0 w else if( nJob == JOB_FLORIST_HERO )& h7 K- s6 H. t4 f* O. D# i% F
nPoint += 160;
8 V9 n; U9 u' [1 V7 K1 N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( m" V& F1 O! a/ C( m2 m
nPoint += 180;
4 {* t9 L& A- |: D/ p' b( e6 L4 n else if( nJob == JOB_ELEMENTORLORD_HERO )7 z' E E* k, \
nPoint += 390;
3 }: s5 x% H) h' t6 f3 v2 y% k
9 Q; C- W7 d6 j) t AddSkillPoint( nPoint );
1 U1 y% d0 G7 x, y m_nLevel = nLevel;, O% R( l/ R! O8 a9 U6 T& D. M
. L3 W4 }, P$ t! D; k! V' `: J, [6 y
SetJobLevel( nLevel, nJob );
4 Y. j9 E d$ {8 s5 Q1 [7 U" z# n m_nDeathLevel = nLevel;" `5 P( \0 D7 F6 Q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- u. x" W' Q r9 F9 R* ~ if(IsMaster())
- A7 G _+ e l: q {, V [. \0 {* F: c4 t- \ k; I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 a0 W K3 X2 N
if( nLevel > 59 && nLevel < 72 )
& d4 n! H0 @ R" G dwTmpSkLevel = 1;
, x5 l; Y) @$ R" ^# _5 Y& E else if( nLevel > 71 && nLevel < 84 )5 g& E2 U, ^) d6 M2 G
dwTmpSkLevel = 2; V& D. j8 F+ `5 D6 u
else if( nLevel > 83 && nLevel < 96 )
, V3 ~0 y. `7 R D4 A dwTmpSkLevel = 3;
! w' L$ Y# [2 b else if( nLevel > 95 && nLevel < 108 )
6 R9 n0 J1 Z& `! V, [. } S dwTmpSkLevel = 4;- A0 _) H# E- `& u; _
else if( nLevel > 107 && nLevel < 120 )
) I) w- k& y! t! ], X dwTmpSkLevel = 5;( S! e7 v0 c3 H: f$ s% _- d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! }& w5 q: v' T, Q
{ 3 h' `2 G, w9 P9 n' p! d2 u$ s
LPSKILL lpSkill = &(m_aJobSkill);1 z0 ]5 k4 g. Q' c& _0 U& c5 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )- _2 t! a1 j$ d- T' O! k( E
{
+ |# F% b/ T9 `, K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); w- r5 [7 y- }' O
if( pSkillProp == NULL )
3 ~, R* ^; J' C n* @ continue;
' {# q$ X8 t+ h" u9 }' U$ n+ q/ M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 S7 ^" x, D! [# m/ _ continue;* }1 @7 B' H) M6 q7 T
lpSkill->dwLevel = dwTmpSkLevel;* G+ O; W5 n4 _8 @% X9 n
}; P- @/ z3 r5 Y0 x) ^% D
}+ d3 w% q/ I/ d% |
}( U4 ~( Q( y+ I% W/ z
else if(IsHero())3 \8 {" Y% y. q8 d+ S
{
. S# p" r; h: m) N& h for( int i = 0; i < MAX_SKILL_JOB; i++ ) & Q* H) v6 W7 q0 g! g9 o3 a
{
3 m( f n k& W% @ LPSKILL lpSkill = &(m_aJobSkill);
3 Y! M" _7 A+ n/ V7 D if( lpSkill && lpSkill->dwSkill != NULL_ID )1 a- _4 f0 @" K
{* H/ `" ^& Q4 u2 d' d8 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) E$ C( J8 |; }
if( pSkillProp == NULL )
/ }# H, |4 W/ Q7 U1 a, ~0 u7 `% L continue; a. o5 Q3 ]; P; O; v; K) s; n/ y! M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, h, i. k: r: J continue;8 F$ \9 h3 u9 R) C! h" H4 D( ]
lpSkill->dwLevel = 5;, M8 V6 I3 P! z; _5 ^$ b2 Z8 z+ K
}
1 |/ I3 F: |" G, h* h }
. {' W% n% y$ T) {5 K# X }3 \+ ^ [% {/ ~/ ], A, M! `$ c3 f
else if(IsLegendHero())
- G) ]1 o0 |9 S2 ?3 p {
3 m- @8 K* m$ S5 @1 j for( int i = 0; i < MAX_SKILL_JOB; i++ ) * Y* P4 M) Q! U6 s( e
{ 9 f4 H7 L6 k. z
LPSKILL lpSkill = &(m_aJobSkill);
3 p2 k1 x" P7 \& Y7 l if( lpSkill && lpSkill->dwSkill != NULL_ID )
( l# h6 ]$ C( A- ] {' R5 }9 r( I6 h& Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ ]! @% J; E5 M8 Q4 g if( pSkillProp == NULL )
* o) o. z' x( ?; M9 Y continue;
0 v$ P/ j0 H3 P. w1 p# w9 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! a$ C2 j. K) T: E, v
continue;3 w1 [' f: V P: ^/ }# Y1 M
lpSkill->dwLevel = 5;; F/ |; z: Y! l$ M T/ ~
}/ \* ]/ P4 v8 O3 N" h& n" [
}
+ Y* m$ a( I, {6 B }
8 v% q" v8 K2 ^5 k) H# ]& a: i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans }% B' y X8 q! i7 g5 V
if( bGamma )9 b; T" P, z6 X! `8 v
{- d" l. ]% i: A
m_nExp1 = 0;( H/ W7 @3 h+ S- D
}+ c8 A, p+ p. p6 R
" u% h" R' ?4 R$ w. q0 B" h: E ( (CUser*)this )->AddSetChangeJob( nJob );
4 U9 W% q+ [& _- |" ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. I# F$ N- X' ~: M4 o& T
/ M+ q. M: F$ h, X0 A6 @& n M3 u) b, X
#if __VER >= 11 // __SYS_PLAYER_DATA
7 {) i, D* d1 u+ G* ~6 |! m/ d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% p; c4 A ]) M6 Z#else // __SYS_PLAYER_DATA
! D; m4 G: Z2 r6 Y. y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% @( Q. n0 d$ `/ M! N g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* \: V6 i& r+ y# ^4 ?
if( m_idGuild != 0 )
( ^3 A& L! S; y& b+ K. ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 k) `/ F4 i# i9 l4 g#endif // __SYS_PLAYER_DATA! B. y$ v/ A; ~% M5 c/ k5 Z3 A: p
SetHitPoint( GetMaxHitPoint() );8 i+ n/ c8 }, A# m+ j a' ?3 F5 m
SetManaPoint( GetMaxManaPoint() );
- {# x( T$ [, S% n: j2 a! r1 v SetFatiguePoint( GetMaxFatiguePoint() );
0 F' z# R- P6 n; ^" B if( nJob >= 1 && nJob <= 4 )
0 i! M" s- T) Z/ K9 Z' T {. _/ L% \: `( {6 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& L! L2 M% |1 I% b! e! B m_nRemainGP = 28;. o5 z4 s) Z8 T7 P/ U0 q: ^
}' ?3 M! O: ^* M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# V9 B# x( H/ o# F; d/ d6 `3 X {
c3 ~! s: i1 s% I" R3 G# f% s6 F m_nRemainGP = 118;! `4 K4 T& p, E( t! P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 |7 V7 ]! ?: x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 \$ R- _ y1 M( [ }
; y& X8 J6 ~ J if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! ?; K9 L# @0 V
{; ?- G9 F( M' R4 R8 i+ l
CItemElem itemelem;7 A) r# ^5 S- o/ e" I/ {, n# c1 L
itemelem.m_nItemNum = 1;2 r8 L& B' s# U* C
itemelem.m_bCharged = TRUE;
) M2 p& r9 e' F! a+ i- }. K BYTE nID;! l8 {% k V1 `. H4 L7 K0 l+ Z
- l+ \* O4 Z/ x5 f' q8 p- f4 w, k
if( nJob == JOB_MENTALIST_HERO )/ A3 a+ v$ W& Y: i F2 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 ~, p9 j3 X% b$ b6 x if( nJob == JOB_FORCEMASTER_HERO )9 | M Q" K. o& ?6 m' O4 d' O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 k7 D/ |2 P/ F- \
- K n9 C! `) ]# r1 P7 L0 l ( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 ^9 J5 L3 K7 p6 n# Y }
' E1 R: q8 Y T3 Z2 a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 H, H5 s4 v( G5 Z6 z4 P; Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, y: |% m4 j! e# s1 G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: S) U) @- D2 T$ ~) E/ D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; s* i$ b \- d. T! T" R
( (CUser*)this )->AddTaskBar();*/) D V6 D/ D0 K: G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ S) W. z" q9 S+ f0 D2 [( Z ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 r/ l, y" ]1 p$ e. K
((CUser*)this)->CheckHonorStat();
8 a9 Z/ e9 X/ n, _* n9 y# I2 v* S/ W8 U ((CUser*)this)->AddHonorListAck();
3 E$ [: Z/ x7 `' v3 ` g_UserMng.AddHonorTitleChange( this, m_nHonor);6 [* I7 o( i: ^: m' h1 g
#endif // __HONORABLE_TITLE // ′Tà?
( y3 |2 } ]' |- A9 J3 f0 Z }, W; S- l! @6 K& w; d* E
#endif // __WORLDSERVER
% ^5 x& l. @/ ]4 T( E. k' g0 T8 J} 6 T! v! e5 K2 D" a
2 o5 m2 B; a* O4 `9 Q然后你进入functextcmd.cpp并添加以下
9 T5 v) M/ \/ t* J/ q! r. k- L& }0 O# p) h) |0 U
代码:
' g* {+ A& l6 O D) KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 W( y* w2 K! N" C$ E6 i" v0 d下面插入 N3 O9 m) _- ^" J' g4 ?9 K
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; V" d( r" @- M3 d# Y. f) ?2 H% E E, y6 c0 k: w" a6 v
然后你去
# p' `( T) k5 Q4 M2 J2 X, V4 E: s
* J& E. w* P+ m$ l. z. B% g代码:+ d% T# _( M F7 e
代码, G, |5 z5 w1 X! d+ f# d$ L
BOOL TextCmd_ClearPropose( CScanner & s )
; P9 M: l8 p% F) S8 m# \{" A- @: f! w- ^: W$ {2 K" t
#ifdef __WORLDSERVER
) D$ \' i7 @! R& N CUser* pUser = (CUser*)s.dwValue;) E! H; V( u: ]! u
g_dpDBClient.SendClearPropose();: H# M' d" V( q G1 `( B$ ?9 z
#endif // __WORLDSERVER3 _0 ?' ?: g* B2 E) t- U( p6 H
return TRUE;. Y( k' b' ~6 y1 o8 }
}+ D: d' r6 K( Z& `
下面插入
& E8 H i5 Q/ t, _4 cBOOL TextCmd_rebirth( CScanner& scanner )
) [* k- _+ \5 x/ G5 f5 X: P{
; }5 [1 z9 d6 [5 C+ h#ifdef __WORLDSERVER
& e. b1 I) v$ P: ]* a; k$ ]CUser *pUser;% Z4 \" I6 q7 |* [! |1 T
pUser = (CUser*)scanner.dwValue;
p0 f) W: n" m: p0 i: ^" Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), ~7 \0 s7 ^& P: ^& J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- H8 W% G6 k2 Y K( `4 }( k$ oelse
@" y) j% u+ U3 }. S7 T, ypUser->AddText("你还未达到重生条件!");
r' r. D# {- H! \#endif
! N$ o' R p) J, ureturn TRUE;
$ r% h- a; G% e& `. f8 H7 Z3 f H}
& A5 Q4 i8 S& i! V0 i
9 ?$ o" I8 a% E% i( T
) a8 s9 ~- b! T! |2 X; c; z- J' ]% n) C0 t- F# U
. S5 Q4 y; Y1 ] |
|