したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【独自】Weiss妄想スッドレ【仕様】

129名無しさん:2003/07/03(木) 10:41 ID:xocft5Qg
新2次職とかDB書き換えないといけないようなスキルの実装は妄想でいいですよね?

ということで、Delphi初心者ですがクルセイダーのホーリークロスなぞを
下記のように追加してみました。

main.pasのモンス情報の次くらいに入れれば動くかと

{激しく追加 ここから}
253: //ホーリークロス(暫定)
begin
if MTargetType = 1 then begin
MMode := 0;
Exit; //PK不可
end;
//ダメージ算出1
DamageCalc1(tm, tc, ts, Tick, 0, tl.Data1[MUseLV], tl.Element, tl.Data1[MUseLV]);
if dmg[0] < 0 then dmg[0] := 0; //属性攻撃での回復は未実装
//パケ送信
SendCSkillAtk1(tm, tc, ts, Tick, dmg[0], 1);
SkillProcessType := 1;
{追加}StateCalc1(tm, tc, ts, Tick);
xy := ts.Point;
//ダメージ算出
for j1 := xy.Y div 8 - 2 to xy.Y div 8 + 2 do begin
for i1 := xy.X div 8 - 2 to xy.X div 8 + 2 do begin
//for k1 := 0 to tm.Block[i1][j1].Mob.Count - 1 do begin
k1 := 0;
while (k1 >= 0) and (k1 < tm.Block[i1][j1].Mob.Count) do begin
ts1 := tm.Block[i1][j1].Mob.Objects[k1] as TMob;
//十字の計算 xが一致してyが範囲内か、yが一致してxが範囲内
if (ts <> ts1) and
( ((abs(ts1.Point.X - xy.X) = 0) and (abs(ts1.Point.Y - xy.Y) <= tl.Range2))
or ((abs(ts1.Point.X - xy.X) <= tl.Range2) and (abs(ts1.Point.Y - xy.Y) = 0)) ) then begin
DamageCalc1(tm, tc, ts1, Tick, 0, tl.Data1[MUseLV], tl.Element, tl.Data2[MUseLV]);
if dmg[0] < 0 then dmg[0] := 0; //属性攻撃での回復は未実装
//パケ送信 ホーリークロスは2連撃らしい
SendCSkillAtk1(tm, tc, ts1, Tick, dmg[0], 2);
//ダメージ処理
DamageProcess1(tm, tc, ts1, dmg[0], Tick);
{追加}StateCalc1(tm, tc, ts1, Tick);
end;
if ts1.HP <> 0 then Inc(k1);
end;
end;
end;
end;
{激しく追加 ここまで}

-------
んで、当然DBの方も変更が必要です。

253,CR_HOLYCROSS,ホーリークロス,1,10,1,14,16,18,20,22,24,26,28,30,,,,,,1,0,130,160,190,220,250,280,310,340,370,400,10,10,10,10,10,20,20,20,20,20,3,,16384,248,7,,,,,,,,,,,,,,,,,,,

激しくバッシュとかMB辺りからのパクリになってます。

十字部分の処理とかあんなんでいいのかとか、
モンでいただけるとありがたいです。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板