|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 u; m& D0 k' X+ ^* N# T7 l% Q
) I9 H2 `4 Y1 l9 sMover.h
' ^* D ~2 S" s: O代码:
: v. J3 J; P: r$ i0 j/ b$ u! m1 C' [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 ^" Q/ F( q8 }( L; W$ w9 g9 x* `6 a* i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! w7 S/ d/ E2 b3 e- Q* Q
0 r5 Y! c- g, @$ T9 X然后你去mover.cpp添加: I) v; l( a3 H+ y; u; l
% |+ l$ B) F$ w: A代码:
% x6 ]/ E9 }+ y r" ?- nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# U5 H6 D% J4 Q9 O/ y8 h{* ^ E( d, S0 _) y3 V% j. m
#ifdef __WORLDSERVER
: w; K9 r+ ~1 a' ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ Z$ t7 o7 ]% f7 v5 _
MoverProp* pProp = GetProp();5 a" a% B! ~2 U) A2 r. S
if( pProp )2 [# Z! G- g7 M4 w* S8 \
{
& E7 B6 q9 C- X5 h' i1 V3 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- B* U" @! |- d) b( G3 b1 Q# d4 L8 z {
- e5 |& E* V! _! k1 R AddChangeJob( nJob );6 @: l" O1 C- M4 ^
}else{
/ v/ e& V) m$ h' S& x! h return;& b- [) h* H- ^) j9 `$ T& E9 E; }
}
: J4 \, d* P' N int nPoint = 0;( r8 b! Z+ U& D7 f K8 U
if( m_nJob == JOB_MERCENARY )5 P) a5 g2 f8 V( ~, p- M
nPoint += 40;: M. j* `6 y0 l
else if( m_nJob == JOB_ACROBAT )$ C# F) C3 `' P2 D
nPoint += 50;1 P H+ ^* n. N9 F6 x+ }/ W
else if( m_nJob == JOB_ASSIST )& d* h3 `% d( f' `. ~+ C* l0 _+ y
nPoint += 60;
7 w8 W S' e2 N. Z y/ a else if( m_nJob == JOB_MAGICIAN )) r/ @: h; d& m1 n1 x4 N
nPoint += 90;( \& s: D+ Z& ?# |$ r, u3 h7 b$ A0 ~! Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* _% `6 e. P _- a
nPoint += 120;8 \/ @) g6 [3 M$ n9 \4 M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; O$ _. U7 w+ B$ u; w5 Q1 T- E nPoint += 150;$ N- j4 B: c2 a8 C* i
else if( m_nJob == JOB_RINGMASTER )/ i8 h6 V- A4 `# x9 U3 I" } ~
nPoint += 160;
: h$ a4 l) R' j( e% p8 N else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) C& f0 @. I: m2 }) s" t0 Y) \9 n nPoint += 180;
! w+ O9 U9 X; A" E else if( m_nJob == JOB_ELEMENTOR )# e2 I' b0 Y5 ]+ J: s
nPoint += 390;
5 e$ \9 y: Y; q3 z8 q0 _: z( Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" n( Y" C. o) o" ?: L/ f6 h
nPoint += 120;& V9 z6 U; s& e0 Z6 f
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 D d" O- a3 f6 F, A- v nPoint += 150;* g/ y$ W# v' t0 Q n
else if( nJob == JOB_FLORIST_HERO )3 Q8 V$ I% L' P4 y! q
nPoint += 160;2 P2 l' P+ A, K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 h2 W0 W+ N6 u9 p2 t
nPoint += 180;
Z- m) ^; b( F" }5 O else if( nJob == JOB_ELEMENTORLORD_HERO )1 B. G; a6 E4 d% T
nPoint += 390;, H( o. O& ]" Q# p' V6 N8 g
; b, B K# M! S# ^; V$ T
AddSkillPoint( nPoint );$ `9 G( Q% K# F2 B- {* B5 j
m_nLevel = nLevel;5 j; Y4 e- v+ j: A! K. O' c
& E7 e. J0 x u# Y/ S SetJobLevel( nLevel, nJob );0 M1 @ d0 I" b' `% P: ]
m_nDeathLevel = nLevel;1 Y8 p1 n1 z* T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 k. F) z* q; Y$ A2 c i
if(IsMaster())
' }. Z7 E5 V9 V; W" T {) v7 f# \* U$ M/ O1 d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 R8 i' O6 ^) h% T
if( nLevel > 59 && nLevel < 72 )
& u3 |% a6 K* i- E dwTmpSkLevel = 1;
, M$ T3 h$ [+ ^* s0 U else if( nLevel > 71 && nLevel < 84 )& L* O3 O/ D( P% c
dwTmpSkLevel = 2;
3 P3 _8 r# P! X2 j else if( nLevel > 83 && nLevel < 96 ); q' L; V9 p+ v4 h0 `. M( C
dwTmpSkLevel = 3;
v7 V: e8 ^7 ^( P- ? else if( nLevel > 95 && nLevel < 108 )1 ]* W+ e, L+ d# h. u
dwTmpSkLevel = 4;: Z1 f) w5 I0 D! f+ a4 Z
else if( nLevel > 107 && nLevel < 120 ), V7 Y3 |8 ^6 I; _3 b' v
dwTmpSkLevel = 5;
+ {# m3 K; S/ @6 ~9 i for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! N/ U, A$ I+ P3 `8 H4 e
{ " R; _+ }- C$ }0 }2 k
LPSKILL lpSkill = &(m_aJobSkill);
% `4 f$ {8 N4 o% v if( lpSkill && lpSkill->dwSkill != NULL_ID )5 ~" h8 ?) x2 h1 D4 P& W
{
7 U* \: a& U; C- q. ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& \0 G) A+ ^; K7 s3 \* H/ } if( pSkillProp == NULL )1 U0 R ]* j3 O' u- \
continue;; j6 K, \+ @- a( }( u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 a0 R" x6 s/ `$ D
continue;
( Y% u6 O8 P( N# T" T& k; {) W+ N lpSkill->dwLevel = dwTmpSkLevel;3 a. W, s" H; S4 b! C! p
}& {( S% r) h- L9 M7 q5 x0 p5 V9 J
} }$ d: c/ E, R6 z1 D, p
}
1 \# `6 S3 s; k' c else if(IsHero())9 M+ V1 j; M y: Y; F8 w w8 J
{: j# n+ f% k& R, h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, b; f5 c6 M4 }5 {0 l { * h( y8 \( V5 s! q9 E* S
LPSKILL lpSkill = &(m_aJobSkill);
/ f7 x5 Q$ G5 i9 f" i if( lpSkill && lpSkill->dwSkill != NULL_ID )" k$ b+ x9 Q K/ J& X% J) N
{
7 e! \1 \% b! B5 K; S4 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, K# W; z* c7 s$ w, G8 @& O9 Y if( pSkillProp == NULL )
4 L" {8 T% f4 }6 p continue;
/ k. t ^2 F" m3 j5 }( [5 N! a* b9 s# z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 P7 y' G0 v6 ^1 @* l8 v continue;) O: L+ S, N/ t- o% } O9 |
lpSkill->dwLevel = 5;) V4 B, w2 b3 }+ z4 [
}
& T* G4 k3 q X* j }; F, ?- c* e9 O% a" D- E
}
! y+ A+ L% F i1 `2 O else if(IsLegendHero()), u# Y. M$ I+ C2 k2 I9 m
{
- J( g, W1 Q0 v! Z7 X& m for( int i = 0; i < MAX_SKILL_JOB; i++ )
, j$ z6 e/ Y6 m1 @- Q4 h' _' F {
( C4 e- \: j5 ]6 i9 N LPSKILL lpSkill = &(m_aJobSkill);8 s" y* x( J7 L9 J9 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 V2 g1 b) h$ _/ J0 C& L
{7 D+ g3 ~4 J. b$ {8 e2 I h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 T! P/ ~# b, M' V if( pSkillProp == NULL )
% J* j& w% o4 J0 Z$ h/ o0 y continue;) M- J! L( m+ q2 c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ }( a' ^0 ^2 X% E% n3 w
continue;
2 g6 @ M8 c4 V) d! h/ e lpSkill->dwLevel = 5;
6 e/ Y: ^* w2 e a2 k9 C }7 c* T8 h; {, Z
}+ N2 j9 A# [. ], N" r& j) v- O
}; P: E+ G8 Z3 c( ~: y5 W. a5 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; V) O$ m2 j( E7 u if( bGamma )
+ L! u7 B$ R7 X9 o. ]' b3 g! ]( q! O {0 L# B# ]# A( y+ u
m_nExp1 = 0;
/ v3 Z8 w7 u& P1 b- ]. | }
$ d0 X9 Z8 d* k: m
# o C/ V! M( H: O$ v F ( (CUser*)this )->AddSetChangeJob( nJob );4 \7 |8 J4 p5 Q6 T
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 [; L2 f! y Q+ V* P' V1 `
: L3 f: E& }6 }( g- t4 \" R# Q; \: k9 ? `
#if __VER >= 11 // __SYS_PLAYER_DATA
/ m \! x8 j/ \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 O0 k6 Z' N$ g
#else // __SYS_PLAYER_DATA
" V# N4 n j+ U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* @1 {8 ^1 I1 v9 \; Y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' I" p. a4 Y r; ?
if( m_idGuild != 0 )8 w& [4 Q2 o5 F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' t" D" k! P. {, B3 d
#endif // __SYS_PLAYER_DATA
" V! w6 d; l% W5 _, _1 K0 u2 f+ ?6 Z SetHitPoint( GetMaxHitPoint() );
. g3 T; S/ t6 t SetManaPoint( GetMaxManaPoint() );, K& {" ?1 j4 a. O
SetFatiguePoint( GetMaxFatiguePoint() );/ W" f7 @% n4 e4 b0 \
if( nJob >= 1 && nJob <= 4 )( S: M. F9 f9 D1 N) Z3 W6 X
{
' g& l" {, z: C* k; o; a* I% L4 h m_nStr = m_nSta = m_nDex = m_nInt = 15;
: Z% g" y5 B# C% z0 d5 x4 f m_nRemainGP = 28;
8 X9 v# N& h- E/ d% T }
' t* i y( j8 s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* I D, e A2 @8 p, s& J; [ {3 l( _' p- K. j* {3 N
m_nRemainGP = 118;% ?5 z; ^# V7 x2 U# g8 p$ a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 |' ~ p/ r7 x! T. ]) n m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 y2 K5 [5 ~& L/ B }9 j# T( B. S7 r# K8 v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; M# Q1 H; `5 [ {
) ]/ s& H8 [) Y! E1 r7 X CItemElem itemelem;
9 S5 y: ?; y3 ]0 _( M itemelem.m_nItemNum = 1;$ V: I. F* D% j* C
itemelem.m_bCharged = TRUE;
5 \! V; w/ |* X+ q8 o BYTE nID;
0 k. R! l1 ?# M' ^; W# Y! B/ J {! }2 S" G. H! A
if( nJob == JOB_MENTALIST_HERO )( N( u, _# g2 V8 K( a: p4 S! S+ {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( t4 q" o8 o: g3 P# v1 z if( nJob == JOB_FORCEMASTER_HERO ). j' j$ }, n1 h0 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, X# D9 b! e: t: V. A" Q9 u) o
8 Y8 Y* F5 f+ z0 d% V# i- q) s+ s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% b! y! k) x& l2 o% K9 W }0 i; ?8 f: S, O8 Z6 j1 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 u F, \) O) E2 ? ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
d) J5 q7 s" }7 Y# V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( r* P: H- N+ t: M5 }' I. G /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 }" R' l6 O8 d ( (CUser*)this )->AddTaskBar();*/' p1 j% ~/ R: }3 I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 k' `* H: h! `* D. u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) i4 b2 M5 t7 p! e5 {3 h" d3 ] ((CUser*)this)->CheckHonorStat();
' a: Z* k {5 g! W0 \ ((CUser*)this)->AddHonorListAck();% e1 H$ ~! O* @! m8 p
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 H A& N/ D& n% ^" o* w
#endif // __HONORABLE_TITLE // ′Tà?/ M; s8 h5 V3 X: A3 A( T* H
}
1 U P. U$ F1 X9 ]( B9 t#endif // __WORLDSERVER- i, m# ]1 O/ J, J: N" w2 g
} - n" m; j* N) Y) _" r
; G- y, K1 X% z9 ]5 J' \; K
然后你进入functextcmd.cpp并添加以下% w6 _$ c$ i: N7 N; ` a# r+ z" |
+ q# E/ ^6 s Q/ Y代码:7 H, _1 n. @8 y5 j& i- g4 x. ^) E
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 I# v% Y- C1 \( G9 O9 I! x2 B, X$ X' z下面插入* Z9 B1 q* C1 r
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 S% Z5 q$ i3 X% U0 x
2 I6 M/ K& R8 w3 H b2 j然后你去( u$ W4 y% Z. r" f- D! z
% T6 K2 R f. S' U% c
代码:
# w4 p4 W/ F) y. R g- j7 t代码
+ `3 X& R+ \) S, y2 K sBOOL TextCmd_ClearPropose( CScanner & s )+ F8 k# O N& i+ o# \' Z
{5 |; V7 Z, {5 k# h: a+ `! x) X% D
#ifdef __WORLDSERVER
& ~6 ^3 s- e" h N* F+ i+ b: [ CUser* pUser = (CUser*)s.dwValue;
6 M9 l0 t' s) ?" x! U g_dpDBClient.SendClearPropose();
K. g$ H0 m4 E: Y#endif // __WORLDSERVER
. R4 r( t2 A U; X return TRUE;
' z0 D: U' b8 ?# `}; G1 R. `$ C+ M; p
下面插入: W: V- s- x+ K; ^$ v' _& _
BOOL TextCmd_rebirth( CScanner& scanner )4 v. c) _) Z& c: \- \4 ]
{
' @6 A0 k( M5 e#ifdef __WORLDSERVER
, e) A! A1 p' h& wCUser *pUser;
9 R: p. b7 q; k E" ]- L% R" R8 tpUser = (CUser*)scanner.dwValue;
F. X1 |, d& `9 l2 Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 L+ y9 W5 N+ z' [" t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* M+ H0 ^8 d. s, K3 H2 `else
9 e4 G2 k$ X0 NpUser->AddText("你还未达到重生条件!");
S* v% f# c+ F/ v#endif$ c9 ]5 R' Z7 C! y6 y; ?9 k
return TRUE;$ Z6 V& [7 W% X7 n5 P. _
} / ]! w8 [9 D. y0 Y3 l
9 ?+ F" m; K" u1 S# j2 h# r2 u: e5 X# L( Y2 s, w, R
" ?* V2 d( q6 z. _" |
8 d6 h) B7 U* I4 w8 G! I |
|