Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Помогите со скриптом.

Only working scripts
Letalk
Posts: 2
Joined: 20.06.2011 10:05
Contact:

Помогите со скриптом.

Post by Letalk »

Извиняюсь, да я нуб :) Пробовал переделать простенький скрипт чтобы при появлении людей что-то писало, не получилось. Тоесть пробывал переделать скрипт мининга Галиано. Пожалуйста помогите написать скрипт, вот основные функции:
1. При появлении тела пишет что-то
2. Это повторяется бесконечно :)
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите со скриптом.

Post by shinma »

можно через евент можно напрямую зациклить проверку поиск обджектип на земле, но тебе это вряд ли подойдет. так что юзай евенты.
Амм вру если ты его имя незнаешь тогда тока поиск обджекттип по земле постоянный проводить.
Last edited by shinma on 21.06.2011 17:08, edited 1 time in total.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите со скриптом.

Post by Vizit0r »

shinma wrote:можно через евент можно напрямую зациклить проверку
набор слов какой-то....
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Re: Помогите со скриптом.

Post by Fenix »

Да вроде нормальный набор слов.
Первый вариант: в основной процедуре скрипта зациклить поиск предметов на земле (FindType(X, Ground), где X - тип трупа). В этом случае надо добавлять ожидание, чтобы не гонять в лишних циклах проц. Время ожидания выбирается интуитивно, с учетом критичности скорости реакции на появление трупа.
Второй вариант: попытаться использовать ивенты (копать в сторону evAddItemToContainer). Инфа, соответственно, здесь, здесь и здесь. Правда, всё равно в основной процедуре скрипта придется организовывать замкнутый цикл с ожиданием. Но в этом случае ожидание можно сделать гораздо более долгим (вплоть до несокольких часов), не придется лишние разы дергать FindType и скорость реакции на появление трупа будет максимальной (можно сказать - система реального времени).
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Letalk
Posts: 2
Joined: 20.06.2011 10:05
Contact:

Re: Помогите со скриптом.

Post by Letalk »

Помоги плиз со свторым вариантом.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Re: Помогите со скриптом.

Post 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.
Так как скрипт не проверяет подключение к серверу, то автоподключение устанавливаем сами. Ну или можете подправить скрипт.
И, естественно, я скрипт набросал "на коленке" и не проверял. Так что в нем куча различного рода ошибок, да и не факт, что он вообще работает.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите со скриптом.

Post by shinma »

а почему никто не пользуется автореконектом стелса и галочкой пауза при дисконнекте? зачем обязательно проверку делать на дисконнект. я скока делаю скрипты не разу проверку не делал . мне хватает того, что стелс сам останавливает скрипт и продолжает при автреконнекте.
Last edited by shinma on 23.06.2011 9:59, edited 1 time in total.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите со скриптом.

Post by Vizit0r »

все только им и пользуются, ведь алтернативы-то нет :)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите со скриптом.

Post by shinma »

как нет, а это что
Image
и это тогда для кого
Image
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите со скриптом.

Post by Vizit0r »

это все автореконнектор.
второе - реконект чара, первое - как и написано - пауза скрипта при дисконнекте
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите со скриптом.

Post by shinma »

))я знаю что это поэтому и говорю - зачем вообще писать в скрипте проверку на дисконект игры если есть эти функции.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите со скриптом.

Post by Vizit0r »

потому что раньше небыло PauseScriptonDisconnect
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Re: Помогите со скриптом.

Post by Fenix »

Потому что, иногда дисконект сбивает последовательность действий и надо не продолжать, а начинать сначала.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Помогите со скриптом.

Post by shinma »

а во все циклы по умолчанию проверку на кол-во повторов делаю с выходом из цикла
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Post Reply