|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; B- W$ E. [! P% W% z! l9 r1 Q" o# `5 Q w) H9 z
Mover.h' E9 l1 O- r8 Z
代码:) w6 G+ q, \8 b; o- [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# R/ {$ z; P4 Z" ^* C' ^# b4 c) ]' E3 d- p) O8 \* d v1 V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 X& ~8 d+ z, E# T! P
, X- N4 `# O/ q g
然后你去mover.cpp添加" W2 ^# N0 r. F+ O
! J1 E# ^: y) @2 T* R+ r代码:
! m& p6 G$ G# P% Z9 O4 q8 dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# @- x( R4 r5 H. Z
{% T# f: p3 C& V: c* @8 X
#ifdef __WORLDSERVER
; h1 T% O0 r% ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ y: w2 K/ J7 U. a MoverProp* pProp = GetProp(); p2 c# q3 v% S
if( pProp )
' K) x) ?2 Z0 s. ~% |" o9 s {, o1 z; `/ x$ h1 n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: ?7 H1 Y" k6 p% K' x {/ J1 X U; Z1 I( F
AddChangeJob( nJob );! F' H/ k* ? i' \, [
}else{
4 C+ [4 T& k) G" ]( F return;
+ Q4 e: |/ w, s8 R u- a. g; } }
* O' n9 d3 l- I0 P2 { int nPoint = 0;
3 J3 Y6 n3 M9 Y6 k if( m_nJob == JOB_MERCENARY )# o7 @! F9 _' b/ Y
nPoint += 40;3 P, M9 F7 |3 H* J; c
else if( m_nJob == JOB_ACROBAT )
! g, C [7 H: Q' E8 Z& y6 x nPoint += 50;
( ?/ K% Y1 r0 q& P else if( m_nJob == JOB_ASSIST )
2 y0 b" S- i+ o9 j3 ^ nPoint += 60;- B& \% i7 Z# ?; ^7 N" o" G: R
else if( m_nJob == JOB_MAGICIAN )
% K/ x: Y& W4 h1 x) x5 U6 W8 x nPoint += 90;
- C4 d+ B' o, X7 K0 b& { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* |6 W7 L+ k2 d( N: V
nPoint += 120;
5 F$ P3 k' {8 y6 D& n5 ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 L5 |( A) a3 e nPoint += 150;
/ q; z. C8 f$ H) | else if( m_nJob == JOB_RINGMASTER )1 b# d. i- z, |, u3 {
nPoint += 160;/ z* c4 | L- u; v9 T k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 p2 r. |2 H2 j7 ~1 b6 A5 X nPoint += 180;" b" [! _; \ u; e+ W8 q0 ~8 _1 i
else if( m_nJob == JOB_ELEMENTOR )6 K r% j- H r) S# K' F |
nPoint += 390;+ t+ I0 T$ r8 F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 q9 Z) y# u5 C0 S3 o; n nPoint += 120;# d$ R. y- a0 j6 R3 N' A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* {" m, {) @% q5 P" Y" [% B
nPoint += 150;
- f4 \. ~# h# X. n else if( nJob == JOB_FLORIST_HERO )3 T6 }3 K; E! `; c
nPoint += 160;
0 V4 d! \! h/ Y% D! n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- T" s" s3 H4 S: G, g4 a
nPoint += 180;
7 A Y+ O6 i' ]* _% ?0 }4 D! Z3 A9 o else if( nJob == JOB_ELEMENTORLORD_HERO )) `6 w& { m* @2 _# X: T
nPoint += 390;
4 F% I' l2 E% |& K, ?8 l2 R9 z1 Y) E( y/ ^. y) z
AddSkillPoint( nPoint );
6 Y$ S8 A' T' S* K m_nLevel = nLevel;! e% M2 @$ M0 S, k8 J) u% y# l J
! ~: S7 i& F2 @3 ]: z" W( U SetJobLevel( nLevel, nJob );
' M, L0 G" x% d: S, r. u m_nDeathLevel = nLevel;' [9 c2 g/ P d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 ` }" D. T7 n3 a5 w P& v
if(IsMaster())
2 F7 g4 K6 o( O W5 R$ V; M {
+ o) c7 k% R9 n" z( k' ^ F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 \" f) |. y) c
if( nLevel > 59 && nLevel < 72 )
' q) t& r* s7 m dwTmpSkLevel = 1;' S8 M4 z2 i8 K* J' B
else if( nLevel > 71 && nLevel < 84 )
! q( E+ I9 w$ x, _# i* l4 x dwTmpSkLevel = 2;
" J1 A: d5 O" l n5 v$ F else if( nLevel > 83 && nLevel < 96 )
* l" a! Y9 c) c0 I6 q+ o2 S4 c( M5 d dwTmpSkLevel = 3;
3 h6 Y: W3 B6 P5 m else if( nLevel > 95 && nLevel < 108 )
1 c* H; i" R! D dwTmpSkLevel = 4;
9 M3 {& A. e; V! m& k% W8 `$ B9 ] else if( nLevel > 107 && nLevel < 120 )
* ? _ U& O5 f+ f dwTmpSkLevel = 5;4 w( \4 w6 B }9 O F! h! H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 O$ v& f; s6 ] y) z+ g; q
{ 2 o8 O' m& {, j, N
LPSKILL lpSkill = &(m_aJobSkill);3 ^+ N6 G/ p0 d3 y5 F, W, o% R5 ?$ b
if( lpSkill && lpSkill->dwSkill != NULL_ID ); `, T4 s; @- t" t8 j* U
{
. m# S! j( ^ W/ |( V9 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, S+ U1 }2 V# j8 |/ ? if( pSkillProp == NULL )6 V- p' |4 ?; H- q/ U
continue;
3 I8 [- ^9 \: [1 F3 A, @) K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 K+ x9 D# m3 s continue;0 k( q- K2 U) V' }. @0 v
lpSkill->dwLevel = dwTmpSkLevel;
- H6 c8 ?3 L/ v: \7 p2 k }
0 p' N) `4 q4 `5 Q }" ^4 s/ @$ t& p w, ~3 R* e
}4 a3 y: s6 P) x1 C7 H% I& B
else if(IsHero()), X1 N5 z- b! W! R( G' G8 t6 ?) R8 [
{
) x3 j# ^5 q- L* U6 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
, P+ X: v j2 Z9 n1 l/ ~; ] {
2 A- o$ ^- t. C7 {3 B LPSKILL lpSkill = &(m_aJobSkill);+ r4 V# y$ V* O: }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, [4 B5 u- K. r/ L3 P {9 M$ ^8 u& l9 s; l4 Y( O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & `. n3 q3 e2 Z% S5 I2 i. I6 O! |
if( pSkillProp == NULL )
. l. Q- Y( V4 i& o$ m continue;
! r; S& F" f" f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) M! ~: d2 w1 y% T2 ` continue;
" l- a; E& q; V" `+ m+ _2 v$ ? lpSkill->dwLevel = 5;; q/ J: M' m% }; y& L: R: D
}" w+ ^+ |5 A/ J, H% s
}- H: t5 h6 q( `* I" T6 f; e
}
% ?+ z9 u, p5 d1 } else if(IsLegendHero())
( `) b [. _: @; W5 ^. P2 C% { {
' w! ?, y! F! w% w for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 P8 o, A7 x9 L6 \0 K {
; _3 L4 a' S/ r/ m& w/ d LPSKILL lpSkill = &(m_aJobSkill);4 @7 _3 o( V4 Q& [6 n# h
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 G7 t) {5 [5 F6 V- a+ U% E5 f; }
{1 B7 Y) k o' X3 ?6 g3 W q) v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 U0 ?3 A u9 h! e6 f3 Z' ^
if( pSkillProp == NULL )2 _3 X! Q$ l4 {/ h9 n
continue;
) b" O& ~9 \' x- x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% j; \, V: r% r$ a, o continue;, ^: v6 v( F# G+ |( W* ?0 [$ n! o
lpSkill->dwLevel = 5;
8 e. l. ^- K1 E: W7 L! p }
, t' p$ p! w1 j% a5 `7 \& u/ W- X+ p+ J }% {0 j1 ]& Y1 r8 \' Q9 `
}* t. @) C4 {$ {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 g2 v& y2 E4 Y! m: c* { z if( bGamma )4 P' I- G, x0 w* l
{
* ]: V. r, }9 l7 x) A+ T m_nExp1 = 0;! ^) E q$ @. c
}$ P; E* V4 E( e h
6 _, z4 P( e( J6 [- ?- w
( (CUser*)this )->AddSetChangeJob( nJob );
y4 `, U# ]8 v% P2 H+ P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* G7 c) ^$ q0 [3 J4 o
% \4 v+ S6 a0 Y% C( B6 ?8 o' Y
, D- U7 J3 y, `* O3 o9 E
#if __VER >= 11 // __SYS_PLAYER_DATA
/ C _1 U1 i$ `( s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 R$ a5 b7 [" P8 a#else // __SYS_PLAYER_DATA
1 C& ]! B9 ]- p; S+ P5 P7 h2 s! y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 x* H5 b# a; S2 _( j) u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 H1 d' h2 P9 j1 z if( m_idGuild != 0 )' ~4 r3 B9 Y1 [8 r0 }
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% g& n Q9 ]& E9 o# C1 h+ p" b#endif // __SYS_PLAYER_DATA5 Q' F8 R6 j4 K' X8 O. ]
SetHitPoint( GetMaxHitPoint() );
: ?0 Z$ B# v. `+ ] SetManaPoint( GetMaxManaPoint() );
4 r6 z; H$ p* P! [" v$ \ SetFatiguePoint( GetMaxFatiguePoint() );& w2 F/ Z" \& y* T, A
if( nJob >= 1 && nJob <= 4 )) @, d% }1 P W9 B+ `$ ~# A) |' u* Z
{
# r: O, F7 i: A( k m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 z& `9 y; e$ d9 I- |4 R I m_nRemainGP = 28;2 |( u2 |3 L0 [" ?% w4 s4 A
}. Q& r% d4 N* n' l) }! ~
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 M! ^0 p% q+ d" C: n' \* q( @9 x {
+ T9 d- c& S- g9 f0 X+ q m_nRemainGP = 118;
( d( C/ t" g5 x0 A1 X: n4 s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: {4 ~6 N' z, _7 K7 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( k; }- o( V* I/ N2 p; l- h }
3 ^) @ R5 N7 N* c2 i# \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- b! s- ^: k8 y8 ?& Y9 r! W& Y
{- p( d( [. R; S4 b5 x
CItemElem itemelem;
2 C+ b! u) l! d& D. f3 Q itemelem.m_nItemNum = 1;
* ^7 w. J% J, w; s- X& D itemelem.m_bCharged = TRUE;
% i; M! C& ?% ` BYTE nID;
$ B! t. q( @8 G$ X6 a+ t# k6 s) c! e3 h& N/ h" k8 ~# W( C
if( nJob == JOB_MENTALIST_HERO )
l8 m4 z/ B" D- V3 W& @8 |7 u( c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 H3 H8 y5 K: [. s) u2 y if( nJob == JOB_FORCEMASTER_HERO )
( }' V; W- }* z- }& A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; V: Q Z ^) v' w% y$ U4 c+ h% F
9 _- }2 @ e+ w2 J+ b
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 k1 k3 W2 T0 O" f% c' X; X
}
! E" J+ t) y" ?$ e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 x' k* Y! J& n# b6 G+ z/ s8 I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! }7 N! Q5 [2 J- U9 p2 W; ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 e* H. F* @; M2 l9 D. i /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& p: V+ l8 [( w: J! f0 j0 E3 ]& O
( (CUser*)this )->AddTaskBar();*/
. O/ H% ~. N2 m" G% i+ _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- p1 v/ f: B: T9 o- y! f- N5 P: }
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 u5 t4 l8 u0 Z' e" i$ T. S
((CUser*)this)->CheckHonorStat();% V, Z* f2 N( |5 d0 [1 j3 i
((CUser*)this)->AddHonorListAck();/ y0 ?% N% z- g& g
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& W1 z+ F' F4 L* f7 O#endif // __HONORABLE_TITLE // ′Tà?
! X+ [' Y& o: Z. p }; |! A# ^$ e x" K# M3 {. ^3 T1 n
#endif // __WORLDSERVER/ \# h; E q3 ]9 k2 {
}
, A; F2 W% j0 P+ M0 z3 ?6 ~7 |) m8 @- Q; D# q
然后你进入functextcmd.cpp并添加以下
- j5 |% j3 q5 w @( H! t1 t/ ]- R! k4 D5 K
代码:: O8 Y5 _! j! ?. L1 r6 P; n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ W0 q, C5 Z: q9 o
下面插入, d+ {1 g" \* F9 N! a; A. M# X5 O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 X/ X+ I5 _1 w
& |' I2 W* _/ c+ m# N然后你去/ F( l1 r9 a# n5 S5 P0 Q- U
7 h9 ~7 I& W; h" t# r% A代码:
& V) r- b- x( F# H/ F% c代码
1 r. F* {# v, ]/ j) J% aBOOL TextCmd_ClearPropose( CScanner & s )
6 M. P" h1 p. U2 m7 l( e{* S v1 m8 s5 J5 |. Q3 J: \) k7 t: n( P
#ifdef __WORLDSERVER
9 o$ n. L6 f6 g2 o CUser* pUser = (CUser*)s.dwValue;8 N6 C$ K: c$ C& [ N
g_dpDBClient.SendClearPropose();
2 `( `# T. t3 G/ z# J, A" I#endif // __WORLDSERVER
" ?& l) }- t* K& {4 v" J return TRUE;
Q! f& O4 N: I8 q( q- i}5 Q. s& X* V7 i) R8 r9 q7 V6 Y
下面插入
/ j; q4 c. a' u3 r3 s6 m: pBOOL TextCmd_rebirth( CScanner& scanner )
: I- @* h4 T6 _% `{/ z& |& x, a" R6 {/ @0 Z$ ^
#ifdef __WORLDSERVER+ }# c9 \; o" C3 d! J
CUser *pUser;
% l( d% n' f( v/ ^& t7 O8 j7 zpUser = (CUser*)scanner.dwValue;
: _ j: c# y1 A6 O4 L! @& ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; s3 d' b7 h/ F2 L7 d) z8 a. U3 h- c& M1 hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; X' E. t2 ` Q" E( C" @
else" M/ J% a: l' b, [6 l' o$ h
pUser->AddText("你还未达到重生条件!");
; z, Q, M- W% L9 ]- q) J9 r) q#endif
+ i$ E$ E/ C4 \return TRUE;9 F- ]& s4 j/ e' } F, z4 O: q/ {
}
6 j- b d# U1 j- [' t) R7 j* ?, d. E8 x+ [
. Y7 z. a6 Q5 g; p! a4 M
l# T0 b/ c- k. c
/ [) d; Y2 `# @$ q% `% i, ` |
|