|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 [4 @" A. K2 P/ t& m/ D8 q& w# `" X* l9 o* W p
Mover.h) Y& D" @, n F7 V2 s
代码:/ H" c+ X* F# G$ j8 q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ q$ K& _5 G0 n2 d; d F _0 z- N
8 \, F1 j) O" t/ K; a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; }+ W; A: |- E! l3 b
4 T3 }, F( h& W1 V4 {然后你去mover.cpp添加
' B- H7 u4 }. l B2 O* e. t* U' [ d% J. R/ C8 \0 A' k* N+ |7 ?% g( S
代码:8 H' l! p/ D, ~- ]. q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 u. U, a5 s" n0 R- I! q$ S
{ c' E/ T$ a7 j8 i
#ifdef __WORLDSERVER; p( G' t" ]+ w \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" X! P" W% }4 F9 ]; ? MoverProp* pProp = GetProp();
7 _/ j- I( Z* N) [/ p if( pProp )+ D1 ?7 k2 s6 I' m
{
5 {; B! ]% W& G# D5 }# Q; P if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 l. |8 X7 s/ \, B4 s
{: `5 O* v" D) C6 j3 L6 @ o
AddChangeJob( nJob );
" e4 q4 s. g5 k2 ^& n. v/ U }else{- _( U" V K' s! T: M& Q0 n
return; O5 I' A6 M; @; w# c
}0 u) `( x$ r Y% x5 k7 Q
int nPoint = 0;
! N) {6 K2 h B0 D* w/ i if( m_nJob == JOB_MERCENARY )
x* X: ]2 M5 e) m nPoint += 40;
6 H5 _/ Y2 a; I else if( m_nJob == JOB_ACROBAT ); @# \) n6 Z0 n: h
nPoint += 50;
1 e k7 w! y! q8 v else if( m_nJob == JOB_ASSIST )4 m/ h9 V, t# p3 E- Q- Y5 B5 |
nPoint += 60;
$ m3 l, ^! {5 I7 X) e( I else if( m_nJob == JOB_MAGICIAN )3 @" n3 G, [8 ]7 F/ o; H, v
nPoint += 90;
: E3 X3 e& E& b7 ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 \- y5 u6 n4 H, r! e nPoint += 120;
' H. t# u, \) \8 d2 F! R; b9 J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" n# W O" h" y( C nPoint += 150;& J$ `2 Q& V# s' J
else if( m_nJob == JOB_RINGMASTER )/ k% Y* P, t# l* A7 _& ?* n- A7 l
nPoint += 160;
. u; ]1 d! h3 u& Y* L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" N6 `) K7 \$ @ @0 C
nPoint += 180;7 x+ a9 H* s( s' E
else if( m_nJob == JOB_ELEMENTOR )
* G& n; E3 {- d4 o6 e8 K nPoint += 390;3 Q7 f2 y2 D- |$ E5 s
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" Y& p' a- _+ W! Q" H nPoint += 120;
7 V8 ?' Z2 e6 A# _$ U* Y; c1 C5 \7 i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* C% q$ n# y5 N" J
nPoint += 150;* w! J7 I6 f( Y$ }6 g9 j
else if( nJob == JOB_FLORIST_HERO )+ d& f; ^/ _& }1 F- v8 g k" i- n
nPoint += 160;! w' d9 L3 u& u4 C6 K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ `3 a9 k" L+ V' H1 u
nPoint += 180;9 p. e4 [; y; j5 k' h
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ _) T" O$ q8 m K& Z3 f nPoint += 390;
) y$ V( \ l9 Y( M5 Z+ D' ^, _. M8 B( R0 U2 E! s; Z. D& h# X
AddSkillPoint( nPoint );( {: Q; [6 n9 r/ u
m_nLevel = nLevel;
3 K- @0 r, C3 G# o/ p* V( p2 B1 E$ u
SetJobLevel( nLevel, nJob );
+ _& ]! W% {8 Z$ a% D: L; ^3 w1 V8 T m_nDeathLevel = nLevel;3 K+ P0 ^4 {4 d; r1 @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 R( c$ z6 U! q, x# d. k* h
if(IsMaster())
+ @3 n6 F; L3 K/ g V: e# S4 @" _ {
+ v9 n# W0 f- n3 K int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 O0 }" o/ \* U# i& _6 ?
if( nLevel > 59 && nLevel < 72 )
, h! q) | ^8 e: s' o dwTmpSkLevel = 1;
6 g7 x' o- u! f/ l) o else if( nLevel > 71 && nLevel < 84 )
' i6 }7 U9 {+ t4 z dwTmpSkLevel = 2;. _1 F; [4 o4 O* Y! ?5 N
else if( nLevel > 83 && nLevel < 96 )8 @0 q$ C. l8 g7 _" g: Z
dwTmpSkLevel = 3;
4 b7 I- w& T: F9 w L else if( nLevel > 95 && nLevel < 108 )! |1 a# g; W/ W) _' p+ R
dwTmpSkLevel = 4;* H8 T3 ^* _) K7 l
else if( nLevel > 107 && nLevel < 120 )" B2 { K( W3 L3 j- }! Z2 |7 y3 h
dwTmpSkLevel = 5;( {' x# E7 E- `+ k& q5 Z$ C; i/ n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 U3 [. e6 l H {
; L, k$ d' v) t0 Z1 T LPSKILL lpSkill = &(m_aJobSkill);
! {2 D7 n0 {/ D& o2 A; B if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ~/ L3 U( T1 M+ O+ ]2 S2 h {# \) W$ _4 v# E( b9 H, C o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 }, |! c, Z: I$ |) |# O
if( pSkillProp == NULL )
; a+ |$ L+ O G9 O continue;$ l: O8 x; ]5 A+ x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) c& O) d% E9 b continue;; ~4 \( K7 s/ Z" {+ T) R' ^
lpSkill->dwLevel = dwTmpSkLevel;3 [0 |; C% ?3 o+ `; o, j6 {
}
0 X6 l M1 A: J9 }: l6 O! }6 B }
0 G$ e6 {, ~6 ]; J6 z. u }( R/ N0 X, A( F5 v/ g: r1 z
else if(IsHero())2 z. m9 c) x2 P4 Q; i# R8 F, R& f
{ L" d3 t, ?4 h0 @' p1 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 I. h4 W% Y7 k5 u3 [' g6 k+ s
{
% M0 |5 r) s3 m+ a) d- s LPSKILL lpSkill = &(m_aJobSkill);( d! p7 b4 G0 l+ A, o2 x) d; P& _. Z8 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 V- t9 g* J9 q& W" D1 _' [% u9 ] {
" N d- x1 b! L2 K% N+ ~9 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 n( z* }; V2 a if( pSkillProp == NULL )+ k, K e6 f3 Q0 c: x9 |0 z6 b# f
continue;1 _7 V' C# w V! z8 p7 g! C% X7 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: B* M* h! V: _( x1 Q, l- |, O* E continue;4 V4 O/ M( L0 C. p0 R+ n
lpSkill->dwLevel = 5;
]7 U7 r: a- C, t$ y9 E- W& `# a }
3 m* `3 x) E* U( v, H( r1 O% a }% G' n/ b1 b4 x/ M, O3 B$ \/ |& u
}
; d3 B) x' K2 l: w else if(IsLegendHero())
$ a$ A/ E4 W! g {
% N% Z5 l$ P+ S- R) G5 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( t) v3 p1 M# n" v9 _; b6 L6 F
{ + f+ J/ }5 s, }% c' q" D
LPSKILL lpSkill = &(m_aJobSkill);
; `4 E- \" V% C I6 l% ]# W if( lpSkill && lpSkill->dwSkill != NULL_ID )
& N+ b x+ h1 Q4 o3 E; M7 q {
: Y" R, `: w& u& q% h9 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! s5 i1 `( z1 @ if( pSkillProp == NULL )
8 U7 \$ }4 [1 v+ M continue;
3 `5 B$ q' i. b7 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! |) E1 R( O, N/ P# N! |4 U' x
continue;" T* M, W, T& l \, ~# T( q0 ^
lpSkill->dwLevel = 5;& ^$ F* E9 C/ K: {* W
}
: ]: G O1 O9 y9 j }6 o! W( E4 k1 Z) k1 z8 B
}6 W* Y8 M5 N5 e. ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 \! {3 p* Z' E3 N& C! d! w9 | if( bGamma )( h9 Q! m) o: T3 Z K
{4 _& m% U L9 W W3 o3 J
m_nExp1 = 0;
3 V4 g1 @$ N, E$ ?* r }
0 Y/ X# i. f H! E, o0 T' }% T
& n8 k& i/ r5 g* ~ A ( (CUser*)this )->AddSetChangeJob( nJob );1 U0 W% Z, C* |; O, O6 U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; \4 ~- O. S8 Y. \ x; F! }+ _, u
; o9 d: c" a; s% `1 K9 ^; s& Q8 Q' o' W% F; K, Q3 O
#if __VER >= 11 // __SYS_PLAYER_DATA" K$ b7 y' W. d& R" t- N# C
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 d {* S$ L! X6 J3 e. y#else // __SYS_PLAYER_DATA: z6 L$ X: q; T* l. J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 h; f3 Q6 Q$ v G6 [& k# v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" C4 g9 U1 O- r% F: i: d s0 t if( m_idGuild != 0 ), `/ n" }- P: L" p1 a P A) j$ |3 |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 L6 s7 Z6 {- Q, x7 R
#endif // __SYS_PLAYER_DATA
. V5 g) w7 e/ r6 ^9 g& ?4 ^% W SetHitPoint( GetMaxHitPoint() );( M F$ h- a/ |( I) L
SetManaPoint( GetMaxManaPoint() );& g! Z$ h: o6 w" P
SetFatiguePoint( GetMaxFatiguePoint() );
& H. E8 s2 w0 C+ \! d& A7 V0 n if( nJob >= 1 && nJob <= 4 )( l6 }1 v" t3 r$ l6 C0 c, e
{
) i+ d! D1 \7 W, \7 u0 K$ z3 V- x# N m_nStr = m_nSta = m_nDex = m_nInt = 15;
! }% G5 R9 y# x- x0 }2 V4 a m_nRemainGP = 28;* y* r% N) L( r9 v1 q8 e
}6 l1 ^* V ~ ^7 M t5 g7 P3 e
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 m$ m2 N7 H) n' s {
$ ?7 ~+ f1 b t5 B" t% r8 w m_nRemainGP = 118;8 {3 ~: c! j* i7 z0 U7 R7 }- Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# x1 F5 Q7 T7 X. c m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ Z1 s% g4 C+ m( i3 C1 |4 x/ K! M }% Y; I# i8 N" z; p
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), T' d! g6 S, A& z( j* e
{
5 {3 d! |2 i9 e& L CItemElem itemelem;: t. G. R4 {- P+ \$ b
itemelem.m_nItemNum = 1;
) U2 T' n: s. V& H; N itemelem.m_bCharged = TRUE;
}2 {2 r/ J; R8 t+ M; u3 Z BYTE nID;
! D6 F& j% }$ [$ I' V3 T
& D9 Q: R* m7 J) G3 |- @ if( nJob == JOB_MENTALIST_HERO )# Y$ u$ Y8 D: b( n9 z+ M3 r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" K k0 T1 S. Q2 I$ ~4 L if( nJob == JOB_FORCEMASTER_HERO )) p3 `4 b. h5 h" t4 \! t9 K( v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; ]: Q9 K, A" y; K+ ?" n, H
5 X. @( A, ^( P0 s/ v! s ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# g5 |" V" n5 _, Z% v( N }* u T6 ~* ~' l! G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ U/ }3 e# f5 c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) q; s+ A6 }1 |/ |1 b
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. j2 `. I3 R8 ?6 y% B
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" F1 j' b' J$ |0 G) w ( (CUser*)this )->AddTaskBar();*/
Q5 @9 U# R" n% |0 K- G+ h ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- p* p8 P. A1 m5 P& y& Y; ?3 p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 [% B7 W8 O' P0 U9 c$ ? ((CUser*)this)->CheckHonorStat();
% X" V0 I$ F F0 m! |7 z. v$ Z6 @ ((CUser*)this)->AddHonorListAck();
9 ?- E5 ~# O9 {$ A g_UserMng.AddHonorTitleChange( this, m_nHonor);
. F) M) A: j" X5 \9 w8 P#endif // __HONORABLE_TITLE // ′Tà?4 I+ w5 b# X' U0 A
}
5 ~! @9 F |& ]7 X+ G) T* v#endif // __WORLDSERVER
, t; r0 O3 ?. S0 \}
) \% ^* G1 S* z8 [0 O, M8 \/ e+ @' N4 \
然后你进入functextcmd.cpp并添加以下
, S" g( H7 X- n; Y
- p+ Z4 x5 n8 U. I: A9 k代码:( V/ R9 p) b+ V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- ?8 @/ P* |1 B: g( q2 G |; b
下面插入
! P1 W0 E* |! T. tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( T( W# J! _, ~. o2 ^4 ]* [
3 ?' [; r# b! j2 f
然后你去9 M2 P l- }9 N1 c! X
5 U* v+ H6 x" s$ t! s0 _% B) E
代码:
H) U& z; m, I" s代码
5 }" u2 _ g( M4 Q0 d: j) LBOOL TextCmd_ClearPropose( CScanner & s )
5 E4 M9 a, v: a' J9 ~7 m2 B! G* Y{; A" ^: V7 d- W. t0 C
#ifdef __WORLDSERVER
& d; }0 T; Y$ H, ~7 @' t CUser* pUser = (CUser*)s.dwValue;) F$ J1 r8 K0 `" j. B
g_dpDBClient.SendClearPropose(); q3 f$ E: Q0 J
#endif // __WORLDSERVER2 `" e) { E/ e) l9 v0 `8 _
return TRUE;
) p; T) s# P6 _0 A4 S}
. e2 [! Z y& S5 h/ c, {2 G下面插入
+ ^& x, S) \/ t4 uBOOL TextCmd_rebirth( CScanner& scanner )
/ z. N F6 [' b3 R' W% P{ c- u, n/ \& a B
#ifdef __WORLDSERVER
4 j# b" \: n7 F3 o7 a; xCUser *pUser;. t" \+ _3 a e* H$ a% L4 Z( y* W
pUser = (CUser*)scanner.dwValue;4 \5 N1 S' x( [" K. r; q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& B) g% z' y& L: a- QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
?: T/ T/ T9 c5 L' Selse
- m9 t6 T4 _, W8 k- H6 S* I1 {# UpUser->AddText("你还未达到重生条件!");- @6 w4 y1 z9 s# S7 l
#endif% z( n' Q/ I( h% Q5 f3 s
return TRUE;7 P! ?. Y( j4 D' R1 S
}
1 ?" j6 n$ q# E4 x( e! p# }
0 Z- Y) L2 }4 f7 G- _% _! l% n3 k& ^* _
. t" D9 H" e1 p6 V( L( a, s+ e7 u
. F3 |+ v% Z; ]9 y |
|