|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 V8 s+ C" b! w. P4 j2 o& Y! d
% \9 R- t% c# z! R" P: a+ ]Mover.h
( B. j3 B8 {# f0 ?% E, f代码:9 [7 z; b/ e- }' o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 K; w$ m* }# D, V! `
" u$ B! @- \3 U1 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- _9 P% {: ~6 \& s" N S3 ?' U1 x1 |5 L q+ {
然后你去mover.cpp添加
1 |, z2 J: e/ z: \/ j |; \) @. ]& X
代码:
' }& q r7 j |8 M: ~" vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 c% }* a) o/ K0 I4 K( ^1 P8 @6 ^% C{
( f1 Y$ X& h% k4 h- _#ifdef __WORLDSERVER
* g- [3 j$ O7 i; a0 C // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" d6 {; f$ |& O9 {* H
MoverProp* pProp = GetProp();0 h3 l6 S( J6 Y4 P3 z
if( pProp )" p# y$ v9 S) ~2 t& ^
{
6 x4 r7 W- y! T5 A! P if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 |4 G7 k. p4 P/ S$ M {: @' O, [; ], h- Z9 u( D. B$ p, \
AddChangeJob( nJob );
# x% E8 X) T- ?1 s @* r }else{
) u6 i) P/ a$ P$ T; p, T; C return;
2 E) [5 [4 m! A; D, s( E0 P7 G }
7 P1 l' G5 n" R6 M2 p1 ] int nPoint = 0;
+ I) v# }% O4 s0 \- {5 D3 M if( m_nJob == JOB_MERCENARY )
. B- P5 |7 S6 C3 i* ^ nPoint += 40;/ U8 ?& p0 _' a2 } I* a/ I
else if( m_nJob == JOB_ACROBAT )1 X7 n& v: ~% @
nPoint += 50;! H' V! @- w T" j) @) m
else if( m_nJob == JOB_ASSIST )1 i* b2 I9 q) h3 m) d$ v
nPoint += 60;
* S+ d( a. \% [/ v# X A# e else if( m_nJob == JOB_MAGICIAN )' H& w, V: W$ E! p! f
nPoint += 90;
- s, U. r, y/ Q, l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
\& R; R+ [+ d0 a. A3 T9 C nPoint += 120; w8 c! g* u' x+ @# y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 M4 ^' K. j) x. Q/ d- u2 B
nPoint += 150;: z& ]# j4 p3 m3 s
else if( m_nJob == JOB_RINGMASTER )! ~. @+ d( z6 w, U! a
nPoint += 160;
7 h/ M+ l! A5 B# ^% O" a else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* W \( D# W8 M1 W nPoint += 180;
7 ` ~0 e& \- k; ^- c, N5 C Q# { else if( m_nJob == JOB_ELEMENTOR )
; s" B0 n9 P4 y: b6 O8 c nPoint += 390;
& i7 U6 h! i5 M7 O" h2 U else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 Y, E& E1 o1 O
nPoint += 120;
& e1 ?/ i5 F0 u5 J$ N1 n: s! J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 S; ?% t# x- @ a7 @" {+ Q nPoint += 150;
% v v" O: T4 F* B' n) @: U3 O else if( nJob == JOB_FLORIST_HERO )) r" _6 H8 l& n& X8 [* S" W
nPoint += 160;$ ?% z3 \8 t( { l" A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 H4 H5 q* T- w3 L& l& \ t nPoint += 180;
, e+ O, B' |+ e2 i( { \ else if( nJob == JOB_ELEMENTORLORD_HERO )
! D8 c, t$ Q# a nPoint += 390;
9 t' S( {4 e* c* O% M
& b: _; r+ |% J2 Y8 g: p3 |2 X* P AddSkillPoint( nPoint );' M! V U( W/ |) J( P7 T @3 g1 F
m_nLevel = nLevel;
% v9 s7 Q( R) [* m. Y! S( n1 M a1 d* F6 m' P& ~
SetJobLevel( nLevel, nJob );! ?2 y# \! F0 g5 _1 }5 q" N
m_nDeathLevel = nLevel;
- u: f0 I d* e I# M' v! k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 ^# ]. p- E# X4 y- Y# u" Z
if(IsMaster()) {+ Q9 V) p/ b
{* y: ?+ _ T3 @
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 B$ e; q+ ^! v if( nLevel > 59 && nLevel < 72 )* ^/ C) J" S" I
dwTmpSkLevel = 1;* y. G8 n$ ]4 a- {! T, |' H
else if( nLevel > 71 && nLevel < 84 )/ H$ s8 g- k6 q: ]6 q% o& Y( E* A
dwTmpSkLevel = 2; s& W8 u' U* L7 I/ x F k, Z
else if( nLevel > 83 && nLevel < 96 )
3 T" [; S% h0 j) D7 E dwTmpSkLevel = 3;* t% x- X, s+ m+ b& _
else if( nLevel > 95 && nLevel < 108 )/ J5 n; P g* @* a5 S" a
dwTmpSkLevel = 4;" x. K, B3 G0 L8 T" U8 p4 w' a
else if( nLevel > 107 && nLevel < 120 )
, C: v9 c, ?/ u3 g% p dwTmpSkLevel = 5;9 A* l! {/ `' f/ R8 A: Q) X( B3 n2 W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # z4 n4 R+ _6 W! W }( }' w
{
; h" G4 M8 I8 z# c) Z0 z LPSKILL lpSkill = &(m_aJobSkill);, Y& h" R! s( T7 j' Y+ v. @* e2 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ v1 y: T! Y& ]5 V' T" S& s
{
+ ~6 x- c5 |# c9 X/ ]; R& w7 z2 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' _' i1 l- y8 G! }
if( pSkillProp == NULL )
! V, k; ^' ?* Q1 X$ E9 B continue;
) C+ o, ^' I! b0 u# _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. h' {! ~3 `+ B+ |) l4 } continue;* H1 v! G* E3 _9 ?$ p* R3 ^+ ~& ^8 u
lpSkill->dwLevel = dwTmpSkLevel;
: l5 a& S! \, D# {' J' z; Q }, o9 y; @; g+ u8 o
}
$ g# e- ?2 m8 l6 R3 h+ T3 W }
0 n6 y! p% N; x- M7 u, j" L else if(IsHero())& j9 O0 P4 X3 ^* U0 Q+ s! t9 p
{
B1 \$ C0 S" l for( int i = 0; i < MAX_SKILL_JOB; i++ ) . O" @& z7 ^$ N: Z( X
{ / [: L8 p! e% h& G& l, ^3 t
LPSKILL lpSkill = &(m_aJobSkill);; x+ [ k& e: _+ d5 R6 x/ u9 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 T3 A- V) G8 l: \ {% R( ]+ Q5 x1 Z# ?5 ]4 O# C0 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 P: L/ ?% Z6 B2 N6 D if( pSkillProp == NULL )
5 }& h$ @& o/ i/ ~ continue;" N6 F8 b! N. Y/ J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 _, d# n5 U+ a% ^& M7 {% V
continue;
i& B( i& S5 U lpSkill->dwLevel = 5;7 J$ U: I+ \# [6 @( R
}
% ~# o1 u0 @) b }9 v9 G8 ]% B& X
}: j1 H7 A$ ^. P$ I' A3 T; j; k: {
else if(IsLegendHero()), v/ I& \2 b5 \% U
{
: e) i Y$ L9 h1 S7 \6 Y) ~' ~; F% W for( int i = 0; i < MAX_SKILL_JOB; i++ )
. k2 h; p5 H/ J" f {
7 H3 \! K5 Y. Y5 I LPSKILL lpSkill = &(m_aJobSkill);
P1 b% u. [2 f+ e if( lpSkill && lpSkill->dwSkill != NULL_ID )- D' j4 k6 _* L0 W
{
+ X" m" ] F: u8 ^% E1 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - P- G; o+ G3 u- Y' g* c
if( pSkillProp == NULL )$ o$ V9 X, Z( W0 L3 x
continue;) w% C: N" r6 d& D+ m' O, E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 U- Z- D4 l4 ]9 T* @; R continue;
/ x4 \+ `0 \* Y5 g& R Z/ i lpSkill->dwLevel = 5;
) A7 ]+ B# W) k0 { }
4 V- }* y- v. c# m& c }: Z1 E1 Y* K L2 V
}
% L+ m# ?" _) D: v7 O' X3 m1 E8 b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ w! H8 B4 l; U* q* a( p if( bGamma )
# o2 D0 j, Z0 k4 h) [8 S {& c; D7 v; j+ J% D
m_nExp1 = 0;# u- N! X0 S0 ]3 M5 R
}
% M x8 l6 R5 D" U8 j1 R: y3 w5 B6 C+ j* k# l% U7 b3 i, c. S7 f" r
( (CUser*)this )->AddSetChangeJob( nJob );
4 y( g V; @3 f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ `) q/ K2 U/ E
% ^ y* B& X: o4 v2 r
$ g1 y& U% P, A5 X#if __VER >= 11 // __SYS_PLAYER_DATA
$ r) n* b" j% C' F% V g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, s* {' B& G. S2 O
#else // __SYS_PLAYER_DATA4 k2 d$ X# q8 |5 ]4 q! c5 E1 d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* e' z- ~3 P. {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, }: Q O" E( z, l if( m_idGuild != 0 )
! s' l/ a4 V% @1 |3 f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 t; h: V. x, O
#endif // __SYS_PLAYER_DATA8 X7 C+ e5 _6 e% I
SetHitPoint( GetMaxHitPoint() );
! R' \2 k( B# A" P SetManaPoint( GetMaxManaPoint() );
7 Y9 v4 e0 p' a1 i( x SetFatiguePoint( GetMaxFatiguePoint() );; T6 h& \. K9 ]$ Y+ b) E
if( nJob >= 1 && nJob <= 4 )
7 ?% g# n# _- H0 X {
- y: {. M* F9 [7 t2 o3 b- y( l m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 Y h" L4 i5 i/ m# o" Y m_nRemainGP = 28;
- ?! ?( D1 h5 ^3 f }
2 c9 s. G3 P, L1 L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 @" m3 x% n. Z L$ U6 Q
{1 S' l5 E5 u4 x$ i- R! p# I/ G
m_nRemainGP = 118;
- s! |+ w: Z; [' L, S j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 o4 o1 K! y3 m ?7 H, W9 w' P$ B
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 s, z* U4 j( q7 i
}: a* i; |4 @. |' K4 C( b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) k' z- e8 f- k/ ~. @8 b {
& y1 j3 u. {# ~+ @ CItemElem itemelem;8 x: w: g3 w+ e' R9 I
itemelem.m_nItemNum = 1; R' ~$ t# z8 I5 _& ]8 B- _% w4 k$ M
itemelem.m_bCharged = TRUE;5 L7 ?* x2 M( F% C* [
BYTE nID;
+ w8 Y: `" c4 `3 q2 [! Q$ E0 o% s7 w, o0 f4 d; W$ t0 R# I
if( nJob == JOB_MENTALIST_HERO )
7 i& k/ Q1 s" L- f) G0 s, C t itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# Q H8 G* V8 t) \8 [ if( nJob == JOB_FORCEMASTER_HERO )
|7 Q& w+ }' Z3 i& y1 n5 l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) l) V2 n/ o3 N9 a* N6 T
, p, j) d g/ U ( ( CUser*)this)->CreateItem( &itemelem, &nID );& c8 e# H0 Q. |6 `- ?8 }$ P
}: i8 o; q" Z% y4 a
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ Z/ O+ o$ H* W+ M% x2 i- h: V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. Q0 f; Y! N% r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 N: y$ j. y, _7 b" X# ?/ O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* z3 L/ W. A; Z# B) a# ? ( (CUser*)this )->AddTaskBar();*/
& W6 f d" `. p+ z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 {* M. n6 J" A* F
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 V( |( [/ C' h+ e! z
((CUser*)this)->CheckHonorStat();* E, o9 K. ?. o v4 V9 K( H# f, m
((CUser*)this)->AddHonorListAck();3 X; C, K/ y( \
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& F* n; h. M0 P#endif // __HONORABLE_TITLE // ′Tà?
9 s5 |. W" o1 b6 y% X$ E+ m }
. ]) F8 X% }/ t. _#endif // __WORLDSERVER2 X' d! h" _+ {; Z# Z) G8 V; C5 _
} " R! k4 V2 k* c6 Z2 z
8 D- v, U# W! `8 W' H然后你进入functextcmd.cpp并添加以下# d+ J. p; R" z1 X
8 q( j) w/ O0 z E( `
代码:* ]( ~- ?1 R! H g
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 _0 a; k4 Y! |( n9 @8 G# w下面插入4 R7 I+ S; a$ b& O$ J l/ b) w2 U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% N' s% L! Q1 ?: Y8 @+ |
/ f; \9 E/ b0 [9 f5 k然后你去
( w" R2 j8 q$ Y$ N3 n
: \/ ]% c. Q/ s! `9 Z3 }$ N# }代码:# B9 v$ d+ ~! h) n/ q: [
代码, R1 A, b( D6 ?
BOOL TextCmd_ClearPropose( CScanner & s )
7 ^: I6 B! v3 K4 t7 { g1 `{
+ \9 y& N1 [" r2 q#ifdef __WORLDSERVER; W2 p4 Q, Q; q P$ J+ s
CUser* pUser = (CUser*)s.dwValue;
- }, A* t; W% S6 P4 a g_dpDBClient.SendClearPropose();
3 M1 p& l' ~6 S/ p0 P; {4 J#endif // __WORLDSERVER
6 k3 y/ Y1 Q8 ^, Y. n r' A return TRUE;
# \ i& c2 |% r# m2 F( R}
+ }$ t; Q* |. z下面插入8 ?! {" s5 {7 i& N3 b( x
BOOL TextCmd_rebirth( CScanner& scanner )
?/ K: B) l# J: q- @: B0 V{
; ^% `' ~( |- y: k3 \9 x#ifdef __WORLDSERVER
0 e, |& C0 k/ j. x* ~+ {) O: z d- DCUser *pUser;
1 g ~7 x: k2 XpUser = (CUser*)scanner.dwValue;& c" z' B2 W! W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) }5 Y$ o9 g2 I0 Y; NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 U$ j. l9 C/ W9 U& K$ O' ^& Q' d+ }
else
* x. }5 [. l: N# BpUser->AddText("你还未达到重生条件!");
/ v1 z. ^( ], U8 {! K4 I4 {#endif
4 L& r- V) O+ h4 \- Y9 K9 Treturn TRUE;
3 k1 `" P& \$ P' \5 x4 B+ F} * t4 P$ [/ W2 R' ?6 x
' K6 i/ z1 Y. V; \- k2 e5 ~0 C
Y( r7 C7 y0 O: Y& e6 B& l. B4 b; q( D8 e9 ]
+ h- A$ B1 `' {" b. s/ d3 T
|
|