Page 1 of 2
Помогите со скриптом.
Posted: 20.06.2011 10:07
by Letalk
Извиняюсь, да я нуб

Пробовал переделать простенький скрипт чтобы при появлении людей что-то писало, не получилось. Тоесть пробывал переделать скрипт мининга Галиано. Пожалуйста помогите написать скрипт, вот основные функции:
1. При появлении тела пишет что-то
2. Это повторяется бесконечно

Re: Помогите со скриптом.
Posted: 20.06.2011 12:14
by shinma
Re: Помогите со скриптом.
Posted: 20.06.2011 12:18
by shinma
можно через евент можно напрямую зациклить проверку поиск обджектип на земле, но тебе это вряд ли подойдет. так что юзай евенты.
Амм вру если ты его имя незнаешь тогда тока поиск обджекттип по земле постоянный проводить.
Re: Помогите со скриптом.
Posted: 20.06.2011 20:44
by Vizit0r
shinma wrote:можно через евент можно напрямую зациклить проверку
набор слов какой-то....
Re: Помогите со скриптом.
Posted: 21.06.2011 9:54
by Fenix
Да вроде нормальный набор слов.
Первый вариант: в основной процедуре скрипта зациклить поиск предметов на земле (FindType(X, Ground), где X - тип трупа). В этом случае надо добавлять ожидание, чтобы не гонять в лишних циклах проц. Время ожидания выбирается интуитивно, с учетом критичности скорости реакции на появление трупа.
Второй вариант: попытаться использовать ивенты (копать в сторону evAddItemToContainer). Инфа, соответственно,
здесь,
здесь и
здесь. Правда, всё равно в основной процедуре скрипта придется организовывать замкнутый цикл с ожиданием. Но в этом случае ожидание можно сделать гораздо более долгим (вплоть до несокольких часов), не придется лишние разы дергать FindType и скорость реакции на появление трупа будет максимальной (можно сказать - система реального времени).
Re: Помогите со скриптом.
Posted: 22.06.2011 21:38
by Letalk
Помоги плиз со свторым вариантом.
Re: Помогите со скриптом.
Posted: 23.06.2011 9:54
by Fenix
Должно быть что-то вроде этого:
Code: Select all
var
Corpses: array of Word;//массив с типами трупов
procedure OnAddItemToContainer(ID, ContainerID: Cardinal);//собстно обработчик
var
i: Integer;//переменная-итератор
ItemType: Word;//переменная для типа
begin
if ContainerID = Ground then begin//если контейнер - земля
ItemType := GetType(ID);//получаем тип
for i := 0 to High(Corpses) do begin//проверяем массив на соответствие типов
if ItemType = Corpses[i] then begin//если появившийся предмет - труп
AddtosystemJournal('Появился: ' + GetName(ID));//выдаем сообщение
Break;//обрываем цикл
end;
end;
end;
end;
begin
Corpses = [$0000, $0000];//тут вместо $0000 указываются типы труппов через запятую.
SetEventProc(evAddItemToContainer, 'OnAddItemToContainer');//Подключили обработчик событий.
while not Dead do begin//повторяем всё пока не сдохнем
Wait(3600000);//ждем час
end;
SetEventProc(evAddItemToContainer, '');//снимаем обработчик событий
end.
Так как скрипт не проверяет подключение к серверу, то автоподключение устанавливаем сами. Ну или можете подправить скрипт.
И, естественно, я скрипт набросал "на коленке" и не проверял. Так что в нем куча различного рода ошибок, да и не факт, что он вообще работает.
Re: Помогите со скриптом.
Posted: 23.06.2011 9:58
by shinma
а почему никто не пользуется автореконектом стелса и галочкой пауза при дисконнекте? зачем обязательно проверку делать на дисконнект. я скока делаю скрипты не разу проверку не делал . мне хватает того, что стелс сам останавливает скрипт и продолжает при автреконнекте.
Re: Помогите со скриптом.
Posted: 23.06.2011 9:59
by Vizit0r
все только им и пользуются, ведь алтернативы-то нет

Re: Помогите со скриптом.
Posted: 23.06.2011 10:00
by shinma
как нет, а это что

и это тогда для кого

Re: Помогите со скриптом.
Posted: 23.06.2011 10:21
by Vizit0r
это все автореконнектор.
второе - реконект чара, первое - как и написано - пауза скрипта при дисконнекте
Re: Помогите со скриптом.
Posted: 23.06.2011 10:37
by shinma
))я знаю что это поэтому и говорю - зачем вообще писать в скрипте проверку на дисконект игры если есть эти функции.
Re: Помогите со скриптом.
Posted: 23.06.2011 10:51
by Vizit0r
потому что раньше небыло PauseScriptonDisconnect
Re: Помогите со скриптом.
Posted: 23.06.2011 11:54
by Fenix
Потому что, иногда дисконект сбивает последовательность действий и надо не продолжать, а начинать сначала.
Re: Помогите со скриптом.
Posted: 23.06.2011 12:13
by shinma
а во все циклы по умолчанию проверку на кол-во повторов делаю с выходом из цикла