|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ ]: i7 o$ Y: f) ]7 \+ }/ G
7 b7 K1 `* K# V2 xMover.h# S) l ]+ p: D0 a
代码:
! m' X \+ h, G& q6 M3 \找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ G, G# j5 u8 o" e3 w; B
- O* Z& F8 {, u% e. Z9 o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' g' Q- A# p) u( K" _( H/ ^4 L4 z8 R+ \* K3 |- G
然后你去mover.cpp添加
& ^$ H' \" x* t. b: Y' i. E
* \' m. C+ R3 |: n/ f/ ~ C( m9 _代码:
3 Y1 A3 Z6 u5 b6 s) {; S$ \void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), T; o' b7 V$ Z
{
2 y! Q3 |( r& t7 i) a#ifdef __WORLDSERVER( P6 g) g; ~! I8 t$ e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, w+ A. D& O8 ?- R8 x
MoverProp* pProp = GetProp();
/ |: u6 R! Z3 w) D; J$ @' @ if( pProp )
: u3 }2 G9 X' q8 u) i7 Z {, g! z# v, \5 P0 ]4 j
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 y. _6 z& A+ s5 z9 Z0 }7 A {
5 Z! F: h$ h% E9 F' f; ^ AddChangeJob( nJob );. _9 I! `9 I2 |. J
}else{
$ n& u# x6 S) `$ M$ z9 l return;
: b& Y$ ^5 W2 e- T$ z7 W }% Q+ J6 L! ^6 M1 g; O" N) \- o6 M
int nPoint = 0;
M' u& f0 H% f+ R& ]" \( J if( m_nJob == JOB_MERCENARY )
: T& U: z. N, r. J! g- k- l nPoint += 40;8 E3 o5 `" C! E5 Y( b' g! [2 i5 A
else if( m_nJob == JOB_ACROBAT ) R/ F8 z. \9 |. B$ r5 h% g
nPoint += 50;
; W U2 G8 U3 V+ U else if( m_nJob == JOB_ASSIST )4 u# N7 P I3 i" {
nPoint += 60;; N: I0 b9 g/ f& C/ k
else if( m_nJob == JOB_MAGICIAN )7 m; i- ?0 ^6 t' C! V+ J
nPoint += 90;
+ W+ a' `0 u9 G3 o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 j* |; E# s9 a4 w% i
nPoint += 120;
; ?: H$ {% w+ O1 B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
Y- P9 W% B# y, F5 M. k0 [1 H nPoint += 150;
" w5 C9 W; Y4 r0 C0 x else if( m_nJob == JOB_RINGMASTER )
& ?8 `/ s4 _. E0 s" _" f0 l nPoint += 160;1 d& X& X2 j# [ e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 G- k1 s% G/ h% M nPoint += 180;
7 A# k; u% W/ q1 ? else if( m_nJob == JOB_ELEMENTOR )/ L! c6 m- p! g+ ^
nPoint += 390;7 x2 ?; A! o* U, ]! R' [. ], i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); q% B. g6 o; T" c0 R! |" }3 p
nPoint += 120;
5 L% D2 `- |$ _3 u, K2 D' P else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ Z- X7 ]5 e+ _
nPoint += 150;
; d( r, v% Q4 z else if( nJob == JOB_FLORIST_HERO )
2 E1 g5 L( ^& E3 _3 u nPoint += 160;
' \& a% m5 }: D3 _3 w0 }* b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& y# `! P9 `4 K; Z/ k: ]( d nPoint += 180;9 P9 u( t; W1 C! H2 l2 f4 w+ A
else if( nJob == JOB_ELEMENTORLORD_HERO )) c( G; }+ n1 J* b
nPoint += 390;8 O, C( U k: x! g' e; |
. U! x8 O7 k2 M! c' r' C% R0 T- Y AddSkillPoint( nPoint );
; q% z/ S" D7 ?8 W6 t; x$ O m_nLevel = nLevel;$ g+ M' H# ~9 z3 I- S& ]3 G
3 f4 w% j7 k/ N" M0 ~
SetJobLevel( nLevel, nJob );
! w& E. W& Y1 X+ _1 a" \, g m_nDeathLevel = nLevel;$ I6 W! K. C8 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% b) p% Q" ^' E$ M/ a if(IsMaster())* @; z. f1 l% {8 p1 p% e6 F6 |: z M
{
; |; W# U" I; c& C& p( ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( S$ {! N1 Z b7 X4 D: |+ R7 X if( nLevel > 59 && nLevel < 72 )
- A# l( h. K* z8 j/ W" L z dwTmpSkLevel = 1;6 D9 p& ]7 s% O' o, g
else if( nLevel > 71 && nLevel < 84 )
; f# w- ^4 V# g) {; k! l4 k dwTmpSkLevel = 2;; t# u/ E1 u# w* S" g! u. ?
else if( nLevel > 83 && nLevel < 96 ); P. N, E2 q8 s4 `) U( P8 h" X, T' A
dwTmpSkLevel = 3;% X0 l( i( c; }6 X
else if( nLevel > 95 && nLevel < 108 )
* e2 w( X2 x! h% i, a% w5 ]) e dwTmpSkLevel = 4;+ S0 u$ P! \! I/ R/ t( C
else if( nLevel > 107 && nLevel < 120 )9 `7 H0 G( R5 g
dwTmpSkLevel = 5;: y% @0 z% X+ }' c- h8 A6 x. ~1 u3 f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ P p" E. y2 H { ; M H) g2 V5 t* E
LPSKILL lpSkill = &(m_aJobSkill);
1 l8 O9 Q. Y+ M7 _/ c3 e4 ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )" t$ F0 z2 E2 J; D1 m
{
8 s; E' U" R% D+ _3 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ A$ Y; ?, P* n$ g1 S if( pSkillProp == NULL )
# U# `: ^: M: [9 J6 I$ P- }' _ continue;, ]9 A8 | z, K* j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 o5 }* h0 M2 R* f$ d! q continue;. D2 U! L5 A: D$ z/ ~
lpSkill->dwLevel = dwTmpSkLevel;
- j' d& V/ j5 R" g G }
% |1 a' c+ Y" @, m8 C& ?4 r }8 i( T# v# H* x' ]' o* j! w. p
}
' {: {8 @2 C8 b$ C1 P else if(IsHero())
& [6 Y) w/ c8 z {) t [* w; E6 t" `9 A4 W3 F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 `% R# r: ]4 b4 _. D+ l+ R2 v {
$ x% X" X2 A: d* i" k: \ LPSKILL lpSkill = &(m_aJobSkill);
2 }* c9 v0 p( H6 O. @1 S if( lpSkill && lpSkill->dwSkill != NULL_ID )' n7 K! i! v/ x
{8 c8 }! C6 [' d1 [* I) e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # `4 ^6 F7 P5 ]* v S( H& G" o
if( pSkillProp == NULL )
. W& a2 L6 H+ r g6 z9 A continue;
9 M9 h: U M1 \2 L- k# H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 @- Y/ s: `& ?, M1 X, K8 B6 @$ f3 X continue;% m' {/ l4 `3 t0 G
lpSkill->dwLevel = 5;9 t; E" B3 k( l* C0 [( ^
}9 b- D) J' p9 O$ E( Z0 h
}3 k, d; g$ r$ q
}; f/ g% J* X7 O# V$ g+ B
else if(IsLegendHero())+ }. E; |+ v8 [) h# \- c5 a! D c
{& @# a3 X, X. J9 j) u, |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 q2 Q" i1 {- `+ o0 @' e { . q, V; Y8 q( F0 l2 R8 O
LPSKILL lpSkill = &(m_aJobSkill);: r) S4 g& F' Z- l. I2 C1 n8 }+ M
if( lpSkill && lpSkill->dwSkill != NULL_ID ). a; U2 P3 l' K2 c' e+ Y; |, u
{; a5 @. Y2 f+ X F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); a: y. p% R) N }
if( pSkillProp == NULL )8 Y5 u2 o& f7 ?9 q; m& h3 h
continue;
5 r* s2 C" s- \. {# O! o% L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! b# @2 ]. b7 }% N4 I8 L: n9 {0 F- a
continue;6 L+ r6 n8 x$ V% H. G
lpSkill->dwLevel = 5;
, }7 Y2 x- U: R& \* p6 v }
/ F; w8 g/ e/ R& ] }
, V- N1 Z' g' a6 d8 I+ D }
0 Q1 U) _7 g' d( p$ B#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; w5 P3 c2 D5 H X* s0 x) Q if( bGamma ); m' ~" G: A' X% G1 c
{9 i, E' t# V# D) m
m_nExp1 = 0;7 N% R6 B! k9 v+ k$ i* a) |
} K' o: `. A9 y6 [2 A
2 @, b) T4 G; b. |4 `8 @
( (CUser*)this )->AddSetChangeJob( nJob );1 z4 I! m8 F, ^" B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 t. @) }: \9 P& D7 R
8 M) E3 q$ ]4 N1 M
" ]6 i" H7 v( R( v2 f& T
#if __VER >= 11 // __SYS_PLAYER_DATA6 |3 [/ |2 x0 j0 O
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) A8 y1 R5 p; U! |) S. D/ j! e
#else // __SYS_PLAYER_DATA* Y% U2 d: _& D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( S1 d! K, k# v) [% U1 ]; r g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 F: \4 M4 u! ~$ a k& b if( m_idGuild != 0 )
" i; q9 `/ l2 z3 L4 p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- u% ^( D! [& C7 T. K2 w4 e
#endif // __SYS_PLAYER_DATA3 r" k9 z7 H+ W! }4 m
SetHitPoint( GetMaxHitPoint() );
0 D2 f% \+ O( P8 R, H4 V SetManaPoint( GetMaxManaPoint() );
: n* \0 H: @! b SetFatiguePoint( GetMaxFatiguePoint() );
9 r) M2 `! n1 M7 ]6 f6 U X* K if( nJob >= 1 && nJob <= 4 )
' I Y3 R9 I; [, r. a {6 I5 B' n$ B# s* F! b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 q1 N+ S, j1 B+ j m_nRemainGP = 28;# q' A8 Z# h% I
}
2 q' \4 v" v5 J# \# n- Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 U3 w5 {' h" S8 s {
5 _" W" u5 V' s2 C3 F' z) P m_nRemainGP = 118;3 ]: u& y; h% }5 @7 g: ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ H5 U- H! \0 F5 ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 a: M1 S( B9 O& z
}$ \7 U7 }7 G! h) I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* p1 D U, {8 b) ] {/ X7 j& W* Q7 A0 \4 {" w! }
CItemElem itemelem;
- p5 g. b, H+ ^ itemelem.m_nItemNum = 1;0 \2 R8 L- | u. C
itemelem.m_bCharged = TRUE;
0 _# I( Y$ Y# P8 r0 Q BYTE nID;5 J' M( E, v. S9 w5 [( D
( A# x; H$ R- K5 L
if( nJob == JOB_MENTALIST_HERO )
% K0 C4 Q, [1 i4 j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ N, s% F4 k! U& Y7 w if( nJob == JOB_FORCEMASTER_HERO )
# h+ |- M% h5 r2 w itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; ?- W( i1 l( d' K; l
" l) D4 a' D* G$ G/ [+ C Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 H3 v9 ]: J8 ~/ h }
6 c6 W' n1 H7 j6 X; R! h g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 x% S, X& d6 D' g @4 t! X0 R3 G4 F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 [; z8 P; N5 `+ X! v
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, j0 C, O! P6 f% f+ c; e8 y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- q- j& T* g; t; O ( (CUser*)this )->AddTaskBar();*/8 R7 z9 U8 s, l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, m3 O1 Q. j) X8 {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# l& F( D- q- N7 p ((CUser*)this)->CheckHonorStat();
# W; B2 ?$ |( R Y/ U I! G8 Z+ S ((CUser*)this)->AddHonorListAck();
/ X3 h% U( u- W q8 \0 S1 t g_UserMng.AddHonorTitleChange( this, m_nHonor);$ H; p( Z& n8 R
#endif // __HONORABLE_TITLE // ′Tà?
& w' Q2 v p4 p: T }3 P, B# s7 Q1 f5 k7 F$ d
#endif // __WORLDSERVER }% e1 ?2 z2 S2 k0 N! R! U
}
$ P6 Y$ S) b/ z0 Q6 e+ N/ x, r& ?# ^: J# s5 u
然后你进入functextcmd.cpp并添加以下) r5 {. G% R- G' X. v
' \ S, r! g8 s x/ X* ^( u+ O" b
代码:4 Y1 i8 R) F$ U. f! N, I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 g' M% m) f& x' U下面插入
1 k2 T. b4 b% g) k9 U. ZON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* P" g, J9 t: G# g" x* @0 d+ F" ^1 V |' K
然后你去7 N. N: L0 Y5 ]& |1 \4 |/ B9 F
2 ~0 q$ a- _1 }& B
代码:
' W( L3 F M; z; m z5 z" W代码' Z! @0 I$ u- Y, b
BOOL TextCmd_ClearPropose( CScanner & s )
( s6 W) W" o5 N" C4 k4 W, n# _5 a4 h{0 w( z: D9 W' M3 K+ N
#ifdef __WORLDSERVER, Z# \! H$ q4 S2 D$ \6 [; O
CUser* pUser = (CUser*)s.dwValue;& G$ G6 a& i4 p) L/ {1 B$ u, X
g_dpDBClient.SendClearPropose();- J1 E' n, c5 C7 N* B3 T
#endif // __WORLDSERVER2 ]0 l, ^" |- u! N
return TRUE;
7 y5 J) ~: P5 p Z6 u3 {7 J}6 w8 T2 t) o, K
下面插入
/ W! D* H2 w$ e" O2 \( ZBOOL TextCmd_rebirth( CScanner& scanner )
; t, U1 C7 t" T{5 X5 ?9 r$ L0 H
#ifdef __WORLDSERVER
% _5 @3 r0 y" z3 Y) U+ Q" B qCUser *pUser;
, Q5 q! @0 `9 lpUser = (CUser*)scanner.dwValue;
1 A( H' h- Z9 `+ T: O) s0 Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 V4 z9 ^. u6 X4 k& G6 W& v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);- Y+ j: J4 i" W1 ]7 `) v- O
else; D- K* q1 w2 B ]& c5 s
pUser->AddText("你还未达到重生条件!");
# P, B- A, Q! ?. o2 q- h3 u5 t; t#endif" @2 C1 r$ m3 P
return TRUE;
- u O4 `% b, u1 Q( q}
5 |& j+ K% y S
1 Z5 \( \% m, {# [
! F; p# y; R6 W% }6 }3 l) C, {, E! O" w
; i$ b" O6 a( M) ^) e0 j9 r+ h |
|