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

【Weiss】技術的なスレ

10661:2003/03/27(木) 00:09 ID:EEa73J2Q
EoRの方にも上げておきましたが
場所指定&範囲魔法(TS アーススパイク ヘブンズドライブ)の草案です
余計な拡張を行わず現在のものに影響を与えない様に直してみました

//ここから 現在の設定のまま拡張を要さない形のソース
//------------------------------------------------------------------------------


//スキル発動
if MTarget = 0 then begin
//場所対象
case MSkill of
21,90,91: //サンダーストーム,アーススパイク,ヘブンドライブ
begin

xy.X := tc.MPoint.X;//スキル詠唱時指定したX座標を計算の中心に設定
xy.Y := tc.MPoint.Y;//スキル詠唱時指定したY座標を計算の中心に設定
DecSP(tc, tc.MSkill, tc.MUseLV);//スキル使用分SPを減らす

//ダメージ算出
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;
if (abs(ts1.Point.X - xy.X) <= tl.Range2) and (abs(ts1.Point.Y - xy.Y) <= tl.Range2) then begin
dmg[0] := MATK1 + Random(MATK2 - MATK1 + 1) * MATKFix div 100 * tl.Data1[tc.MUseLV] div 100;
dmg[0] := dmg[0] * (100 - ts1.Data.MDEF) div 100; //MDEF%
dmg[0] := dmg[0] - ts1.Data.Param[3]; //MDEF-
if dmg[0] < 1 then dmg[0] := 1;
dmg[0] := dmg[0] * ElementTable[tl.Element][ts1.Data.Element] div 100;
dmg[0] := dmg[0] * tl.Data2[tc.MUseLV];
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
//パケ送信
SendCSkillAtk(tm, tc, ts1, Tick, dmg[0], tl.Data2[tc.MUseLV]);
//ダメージ処理
DamageProcess1(tm, tc, ts1, dmg[0], Tick);
end;
if ts1.HP <> 0 then Inc(k1);
end;
end;
end;
SkillProcessType := 0;
end;

//-------------------------------------------------------------------------------
//ここまで

初心者が書いたコードを組みこむのはそれだけで苦痛でしょうから
しばらくは他の部分への影響が少ないところを探してみますね


新着レスの表示


名前: E-mail(省略可)

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

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

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

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