アスペルシオ修正しました
68: //アスペルシオ
begin
if MTargetType = 0 then begin
MMode := 0;
Exit;
end;
if tc1 = tc then begin
MMode := 0;
Exit;
end;
SkillProcessType := 3;
end;
と
Common.pasに
//アスペルシオ
if Skill[68].Tick > Tick then begin
WElement[0] := 6;
WElement[1] := 6;
end;
でアスペルシオです
これでPTであれば属性武器なしでウィスパー倒せます♪
結局よくわからなくてムダのあるソースになってしまいましたが
157: //エネルギーコート
begin
tc1 := tc;
ProcessType := 3;
end;
と
反撃ダメージの
//攻撃命中
if dmg[0] <> 0 then begin
のあとに
if tc.Skill[157].Tick > Tick then begin //エネルギーコート
if (tc.SP * 100 / tc.MAXSP) < 1 then tc.SP := 0;
if tc.SP > 0 then begin
i := 1;
if (tc.SP * 100 / tc.MAXSP) > 20 then i := 2;
if (tc.SP * 100 / tc.MAXSP) > 40 then i := 3;
if (tc.SP * 100 / tc.MAXSP) > 60 then i := 4;
if (tc.SP * 100 / tc.MAXSP) > 80 then i := 5;
dmg[0] := dmg[0] - ((dmg[0] * i * 6) div 100);
tc.SP := tc.SP - (tc.MAXSP * (i + 1) * 5) div 1000;
end else tc.Skill[157].Tick := Tick;
SendCStat1(tc, 0, 7, tc.SP);
end;
追加でエネルギーコートが出ます
エネルギーコートではアイコンが出ないのでしょうか・・・
スクリプトが実装されたので
バッシュ、メマー〜のところの
//パケ送信
SendCSkillAtk1(tm, tc, ts, Tick, dmg[0], j);
のあとに
if (Skill[145].Lv <> 0) and (MSkill = 5) and (MUseLV >5) then begin //急所突き
if Random(1000) < Skill[145].Data.Data1[MUseLV] * 10 then begin
if (ts.Stat1 <> 3) then begin
ts.nStat := 3;
ts.BodyTick := Tick + tc.aMotion;
end else ts.BodyTick := ts.BodyTick + 30000;
end;
end;
で急所突き追加です
ちょっと処理が違うかもしれませんが
148: //チャージ_アロー
begin
//とばす方向決定処理
//FWからのパクリ
xy.X := ts.Point.X - Point.X;
xy.Y := ts.Point.Y - Point.Y;
if abs(xy.X) > abs(xy.Y) * 3 then begin
//横向き
if xy.X > 0 then b := 6 else b := 2;
end else if abs(xy.Y) > abs(xy.X) * 3 then begin
//縦向き
if xy.Y > 0 then b := 0 else b := 4;
end else begin
if xy.X > 0 then begin
if xy.Y > 0 then b := 7 else b := 5;
end else begin
if xy.Y > 0 then b := 1 else b := 3;
end;
end;
//ノックバック処理
if (dmg[0] > 0) then begin
SetLength(bb, 4);
bb[0] := 4;
xy := ts.Point;
DirMove(tm, ts.Point, b, bb);
//ブロック移動
if (xy.X div 8 <> ts.Point.X div 8) or (xy.Y div 8 <> ts.Point.Y div 8) then begin
with tm.Block[xy.X div 8][xy.Y div 8].Mob do begin
assert(IndexOf(ts.ID) <> -1, 'MobBlockDelete Error');
Delete(IndexOf(ts.ID));
end;
tm.Block[ts.Point.X div 8][ts.Point.Y div 8].Mob.AddObject(ts.ID, ts);
end;
ts.pcnt := 0;
//パケ送信
WFIFOW(0, $0088);
WFIFOL(2, ts.ID);
WFIFOW(6, ts.Point.X);
WFIFOW(8, ts.Point.Y);
SendBCmd(tm, ts.Point, 10);
end;
if not DamageProcess1(tm, tc, ts, dmg[0], Tick) then
StatCalc1(tc, ts, Tick);
end;
でチャージアローです
矢作成については本物を見たことがないためどのようなスキルなのか全くわからないので作れません
BBとチャージアローについてはディスペルがかからないそうなのでディスペル処理に
if (tc.MSkill <> 62) and (tc.MSkill <> 148)
の条件を追加してください