Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
обновления
обновления
обновил стелс, и перестал работать скрипт, что такое там сделали?
07:17:11:639 [thai]: Compiler: [Error] (D:\Games\Ultima Online\stels\Scripts\fishing01.sc at 12:307): 'BEGIN' expected
07:17:11:639 [thai]: Compiler: [Error] (D:\Games\Ultima Online\stels\Scripts\fishing01.sc at 12:307): 'BEGIN' expected
Last edited by Irohay on 28.01.2014 9:09, edited 1 time in total.
Re: обновления
WAT
Re: обновления
там все поломали!!!
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: обновления
WE ARE ALL GOING TO DIE.....Vizit0r wrote:там все поломали!!!
ушел делить на ноль...
Re: обновления
блин и как теперь жить без скрипта на фишинг 

Re: обновления
я бы начал жить с выкладывания скрипта...
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: обновления
Program Fishing;
type
TileRecord = Record
t,x,y : integer;
end;
var
Tile : array [0..5000] of TileRecord;
TileCount : integer;
b : TMapCell;
uh, dh, enter, tab : String;
{$Include 'CheckSave.inc'};
{$Include 'Hungry.inc'};
{$Include 'waitconnection.inc'};
function CheckTarget(SecTime : integer) : Boolean;
var
t : integer;
begin
SecTime := SecTime * 10;
t := 0;
repeat
if not Connected then exit;
checksave;
wait(100);
t := t + 1;
until TargetPresent or (t >= SecTime);
if t >= SecTime then result := false;
if not Connected then exit;
if TargetPresent then result := true;
end;
procedure OpenBackpack;
begin
if (LastContainer <> Backpack) and (dead = false) then
begin
repeat
if not Connected then exit;
Checksave;
UseObject(Backpack);
wait(1000);
until LastContainer = Backpack;
end;
end;
procedure SetSayinfo;
begin
uh := #13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#9#9#9#9
;
dh := #13#10#13#10#13#10;
enter := #13#10;
tab := '#9';
end;
procedure EndScript;
begin
if not GetPauseScriptOnDisconnectStatus then SetPauseScriptOnDisconnectStatus(true);
Disconnect;
AddToSystemJournal(uh+'>>>>>> Перезапусти скрипт! <<<<<<'+dh);
repeat
wait(100);
until false;
end;
procedure CheckDead;
begin
if Dead then
begin
AddToSystemJournal(dh+'Я мёртв!');
EndScript;
end;
end;
procedure SearchPoint;
var
x, y, i, i0 : integer;
ArrayTile : array [0..5] of integer;
begin
ArrayTile[0] := 168;
ArrayTile[1] := 169;
ArrayTile[2] := 170;
ArrayTile[3] := 171;
ArrayTile[4] := 310;
ArrayTile[5] := 311;
if not Connected then exit;
CheckDead;
AddToSystemJournal(uh);
AddToSystemJournal('Ищем воду в радиусе 6 тайлов...');
for x := GetX(self)-6 to GetX(self)+6 do
begin
for y := GetY(self)-6 to GetY(self)+6 do
begin
b := GetMapCell(x, y, WorldNum);
for i := 0 to High(ArrayTile) do
begin
if b.Tile = ArrayTile then
begin
Tile[i0].t := b.Tile;
Tile[i0].x := x;
Tile[i0].y := y;
break;
end;
end;
if Tile[i0].t > 0 then
begin
TileCount := TileCount + 1;
i0 := i0 + 1;
end;
end;
end;
AddToSystemJournal('Нашли тайлов: '+IntToStr(TileCount)+'.');
if TileCount = 0 then EndScript;
AddToSystemJournal('Рыбачим...'+dh);
end;
procedure CheckItem;
var
i, Trash : integer;
Item : array [0..13] of cardinal;
begin
Item[0] := $170A; //тапки
Item[1] := $170B;
Item[2] := $170C;
Item[3] := $170D;
Item[4] := $170E;
Item[5] := $170F;
Item[6] := $1710;
Item[7] := $1711;
Item[8] := $0DC8; //сети
Item[9] := $14ED; //карты
Item[10] := $099F; //бутылки
Item[11] := $09CC; //рыба
Item[12] := $09CD;
Item[13] := $09CE;
if not Connected then exit;
CheckDead;
OpenBackpack;
FindTypeEx($0E77, $FFFF, Backpack, False);
if FindCount < 1 then
begin
AddToSystemJournal('Нет бочки Trash.');
EndScript;
end;
Trash := finditem;
for i := 0 to 13 do
begin
repeat
FindTypeEx(Item, $FFFF, Backpack, False);
if FindCount > 0 then
begin
if (i <
or (i > 10) then MoveItem(finditem, 0, Ground, 0,0,0);
if (i >=8) and (i <= 10) then MoveItem(finditem, 0, Trash, 0,0,0);
if not Connected then exit;
CheckDead;
CheckSave;
CheckLag(10);
end;
until FindCount < 1;
end;
end;
procedure UsePole;
begin
if not Connected then exit;
CheckDead;
if ObjAtLayer(LhandLayer) <= 0 then
begin
OpenBackpack;
FindTypeEx($0DBF, $FFFF, Backpack, False);
if FindCount < 1 then
begin
AddToSystemJournal('Нет удочек.');
EndScript;
end;
UseType($0DBF, $FFFF);
end
else
begin
UseObject(ObjAtLayer(LhandLayer));
end;
end;
procedure StartFishing;
var
i, t : integer;
time : TDateTime;
begin
for i := 0 to TileCount-1 do
begin
if not Connected then exit;
CheckDead;
CheckSave;
CancelTarget;
Hungry(Backpack);
t := 0;
repeat
CancelTarget;
if t >= 5 then wait(5000);
UsePole;
if not Connected then exit;
CheckDead;
CheckTarget(5);
if not Connected then exit;
CheckDead;
t := t + 1;
until TargetPresent;
time := Now;
TargetToTile(0, Tile.x, Tile.y, -254);
CheckLag(10);
t := 0;
repeat
wait(100);
t := t + 1;
CheckSave;
if not Connected then exit;
CheckDead;
until (InJournalBetweenTimes('That is too far away|There doesn|I am already doing|You find|You catch|They don', time, Now) <> -1) or (t >= 200);
if FoundedParamID >= 3 then i := i - 1;
end;
end;
begin
SetARStatus(true);
SetPauseScriptOnDisconnectStatus(false);
if not Connected then waitconnection(5000);
SetSayinfo;
SearchPoint;
repeat
if not Connected then waitconnection(5000);
CheckItem;
StartFishing;
until false;
end.
type
TileRecord = Record
t,x,y : integer;
end;
var
Tile : array [0..5000] of TileRecord;
TileCount : integer;
b : TMapCell;
uh, dh, enter, tab : String;
{$Include 'CheckSave.inc'};
{$Include 'Hungry.inc'};
{$Include 'waitconnection.inc'};
function CheckTarget(SecTime : integer) : Boolean;
var
t : integer;
begin
SecTime := SecTime * 10;
t := 0;
repeat
if not Connected then exit;
checksave;
wait(100);
t := t + 1;
until TargetPresent or (t >= SecTime);
if t >= SecTime then result := false;
if not Connected then exit;
if TargetPresent then result := true;
end;
procedure OpenBackpack;
begin
if (LastContainer <> Backpack) and (dead = false) then
begin
repeat
if not Connected then exit;
Checksave;
UseObject(Backpack);
wait(1000);
until LastContainer = Backpack;
end;
end;
procedure SetSayinfo;
begin
uh := #13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#13#10#9#9#9#9
;
dh := #13#10#13#10#13#10;
enter := #13#10;
tab := '#9';
end;
procedure EndScript;
begin
if not GetPauseScriptOnDisconnectStatus then SetPauseScriptOnDisconnectStatus(true);
Disconnect;
AddToSystemJournal(uh+'>>>>>> Перезапусти скрипт! <<<<<<'+dh);
repeat
wait(100);
until false;
end;
procedure CheckDead;
begin
if Dead then
begin
AddToSystemJournal(dh+'Я мёртв!');
EndScript;
end;
end;
procedure SearchPoint;
var
x, y, i, i0 : integer;
ArrayTile : array [0..5] of integer;
begin
ArrayTile[0] := 168;
ArrayTile[1] := 169;
ArrayTile[2] := 170;
ArrayTile[3] := 171;
ArrayTile[4] := 310;
ArrayTile[5] := 311;
if not Connected then exit;
CheckDead;
AddToSystemJournal(uh);
AddToSystemJournal('Ищем воду в радиусе 6 тайлов...');
for x := GetX(self)-6 to GetX(self)+6 do
begin
for y := GetY(self)-6 to GetY(self)+6 do
begin
b := GetMapCell(x, y, WorldNum);
for i := 0 to High(ArrayTile) do
begin
if b.Tile = ArrayTile then
begin
Tile[i0].t := b.Tile;
Tile[i0].x := x;
Tile[i0].y := y;
break;
end;
end;
if Tile[i0].t > 0 then
begin
TileCount := TileCount + 1;
i0 := i0 + 1;
end;
end;
end;
AddToSystemJournal('Нашли тайлов: '+IntToStr(TileCount)+'.');
if TileCount = 0 then EndScript;
AddToSystemJournal('Рыбачим...'+dh);
end;
procedure CheckItem;
var
i, Trash : integer;
Item : array [0..13] of cardinal;
begin
Item[0] := $170A; //тапки
Item[1] := $170B;
Item[2] := $170C;
Item[3] := $170D;
Item[4] := $170E;
Item[5] := $170F;
Item[6] := $1710;
Item[7] := $1711;
Item[8] := $0DC8; //сети
Item[9] := $14ED; //карты
Item[10] := $099F; //бутылки
Item[11] := $09CC; //рыба
Item[12] := $09CD;
Item[13] := $09CE;
if not Connected then exit;
CheckDead;
OpenBackpack;
FindTypeEx($0E77, $FFFF, Backpack, False);
if FindCount < 1 then
begin
AddToSystemJournal('Нет бочки Trash.');
EndScript;
end;
Trash := finditem;
for i := 0 to 13 do
begin
repeat
FindTypeEx(Item, $FFFF, Backpack, False);
if FindCount > 0 then
begin
if (i <

if (i >=8) and (i <= 10) then MoveItem(finditem, 0, Trash, 0,0,0);
if not Connected then exit;
CheckDead;
CheckSave;
CheckLag(10);
end;
until FindCount < 1;
end;
end;
procedure UsePole;
begin
if not Connected then exit;
CheckDead;
if ObjAtLayer(LhandLayer) <= 0 then
begin
OpenBackpack;
FindTypeEx($0DBF, $FFFF, Backpack, False);
if FindCount < 1 then
begin
AddToSystemJournal('Нет удочек.');
EndScript;
end;
UseType($0DBF, $FFFF);
end
else
begin
UseObject(ObjAtLayer(LhandLayer));
end;
end;
procedure StartFishing;
var
i, t : integer;
time : TDateTime;
begin
for i := 0 to TileCount-1 do
begin
if not Connected then exit;
CheckDead;
CheckSave;
CancelTarget;
Hungry(Backpack);
t := 0;
repeat
CancelTarget;
if t >= 5 then wait(5000);
UsePole;
if not Connected then exit;
CheckDead;
CheckTarget(5);
if not Connected then exit;
CheckDead;
t := t + 1;
until TargetPresent;
time := Now;
TargetToTile(0, Tile.x, Tile.y, -254);
CheckLag(10);
t := 0;
repeat
wait(100);
t := t + 1;
CheckSave;
if not Connected then exit;
CheckDead;
until (InJournalBetweenTimes('That is too far away|There doesn|I am already doing|You find|You catch|They don', time, Now) <> -1) or (t >= 200);
if FoundedParamID >= 3 then i := i - 1;
end;
end;
begin
SetARStatus(true);
SetPauseScriptOnDisconnectStatus(false);
if not Connected then waitconnection(5000);
SetSayinfo;
SearchPoint;
repeat
if not Connected then waitconnection(5000);
CheckItem;
StartFishing;
until false;
end.
Re: обновления
а в тег code всунуть тельце скрипта никак, а если еще под спойлер... Так вообще, тебе сразу все бы помогли, а то так не особо читаемо то.
Re: обновления
печально, больше не когда не буду стелс обновлять
Re: обновления
сделал проще скачал стелс 4,3,5 и всё работает 

Re: обновления
аплодирую стоя!Irohay wrote:сделал проще скачал стелс 4,3,5 и всё работает
Re: обновления
прискорбно, но в данном случае Irohay прав - здесь в новой версии стелса из-за изменений механизма точка с запятой в конце строки инклюда уже не катит.
Так что в этом и подобных строках достаточно убирать точки с запятой
должно стать
Так что в этом и подобных строках достаточно убирать точки с запятой
Code: Select all
{$Include 'CheckSave.inc'};
{$Include 'Hungry.inc'};
{$Include 'waitconnection.inc'};
Code: Select all
{$Include 'CheckSave.inc'}
{$Include 'Hungry.inc'}
{$Include 'waitconnection.inc'}
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: обновления
ок спс попробую