Скрипт для рыбалки с плота (Fishing on boat)
Внешний вид
Скрипт для Legnes/Orion Assist для ловли рыбы с плота.
Автор скрипта: Hotride
// Сундук на плоту
var Chest = '0x40224C3C';
// Использовать хайд, 0 - не использовать, 1 - использовать
var UseHidding = 0;
// Типы еды
var FoodType = '0x09B7|0x09F2|0x097B';
// Серийник оружия, который использовать при появлении гварда
var UseWeaponForGuard = '0x4035126A';
// Звук при появлении элементаля
var SoundForGuard = 'C:/a.wav';
// Количество повтора звука
var SoundRepeatCount = 5;
function PlayGuardAlarm(_private)
{
for (var i = 0; i < SoundRepeatCount; i++)
{
Orion.PlayWav(SoundForGuard);
Orion.Wait(1000);
}
}
function FishingTile(x, y)
{
var text = 'pull out|Вы вытаскиваете|but fail to catch|ловите рыбу, но ничего не можете|fishing in water|ловить рыбу в воде|no fish here|Здесь нет рыбы|is not in line of sight|находится вне прямой видимости';
while (true)
{
if (Player.Dead())
return false;
//0x0096 sea serpent
//0x0033 sea slime
if (Orion.FindType('0x0096|0x0033', any, ground, 'mobile', '10').length > 0)
{
var oldX = Player.X();
var oldY = Player.Y();
if (UseWeaponForGuard != '')
Orion.UseObject(UseWeaponForGuard);
Orion.Exec('PlayGuardAlarm');
if (!Player.Hidden())
Orion.UseSkill('21');
Orion.PauseScript();
Orion.WalkTo(oldX, oldY, 0, 0, 255, true);
}
while (Player.Hits('%') < 80 && Orion.Count('bandage') > 0)
{
Orion.BandageSelf();
Orion.Wait(2000);
}
if (Player.Weight('%') >= 90)
{
Orion.OpenContainer(Chest);
while (Orion.MoveItemType('0x09CD|0x09CE|0x09CC|0x09CF', '0', backpack, 0, Chest))
Orion.Wait(400);
if (Orion.Count(FoodType, '0') > 0 || Orion.MoveItemType(FoodType, '0', Chest, 1))
{
Orion.UseType(FoodType, '0');
Orion.Wait(100);
}
}
Orion.WarMode(false);
Orion.Wait(50);
while (UseHidding && !Player.Hidden())
{
Orion.UseSkill('21');
Orion.Wait(300);
}
//if (!Orion.ValidateTargetTileRelative('water', x, y, 0))
// break;
Orion.ClearJournal();
Orion.WaitTargetTileRelative('water', x, y, 0);
Orion.UseType('0x0DBF');
var msg = Orion.WaitJournal(text, Orion.Now(), Orion.Now() + 5000, 'sys|my');
if (msg == null || msg.FindTextID() > 3)
break;
Orion.Wait(100);
}
return true;
}
function Fishing()
{
var distance = 6;
var spotsCount = 5;
for (var i = 0; i < spotsCount; i++)
{
for (var x = -distance; x <= distance; x++)
{
for (var y = -distance; y <= distance; y++)
{
if (Player.Dead())
return;
if (!FishingTile(x, y))
return;
}
}
var oldX = Player.X();
var oldY = Player.Y();
Orion.Say('Full Right');
while (Math.abs(oldX - Player.X()) < 16 && Math.abs(oldY - Player.Y()) < 16)
Orion.Wait(100);
Orion.Say('Stop');
}
Orion.Say('Full Left');
Orion.Wait(spotsCount * 14000);
Orion.Say('Stop');
Orion.Exec('Fishing');
}