Скрипты - Страница 215 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 215 из 223
 
Опции темы
#3211
Старый 03.09.2020, 11:00
  #3211
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23295
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23295
По умолчанию
Re: Скрипты

А звёздочка у вас в скрипте тоже есть? Может, её посчитали каким-нибудь указателем...
__________________
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
Ment вне форума
Ответить с цитированием
#3212
Старый 03.09.2020, 11:04
  #3212
^
Navkratis
 
Аватар для Navkratis
📖
Регистрация: 31.08.2011
Сообщения: 105
Регистрация: 31.08.2011
Сообщения: 105
По умолчанию
Re: Скрипты

MentА звёздочка у вас в скрипте тоже есть? Может, её посчитали каким-нибудь указателем...
Звездочки нет.
Navkratis вне форума
Ответить с цитированием
#3213
Старый 03.09.2020, 11:19
  #3213
^
Fallenru
 
Аватар для Fallenru
📖
Регистрация: 03.06.2020
Сообщения: 31
Регистрация: 03.06.2020
Сообщения: 31
По умолчанию
Re: Скрипты

NavkratisДобрый день, консоль пишет (Script) ERROR: "="expected
Сам скрипт выглядит так:

void GiveArtefact("Brem", 13, nBindToHero=0);


В чем здесь ошибка?
Есть подозрение ,что данный скрипт некорректно написан

GiveArtefact(heroname, artefactID, [bindToHero = 0]);
Как я понимаю 3 параметр можно вообще не заполнять) А у вас написано nBindToHero
Fallenru вне форума
Ответить с цитированием
#3214
Старый 03.09.2020, 13:27
  #3214
^
Navkratis
 
Аватар для Navkratis
📖
Регистрация: 31.08.2011
Сообщения: 105
Регистрация: 31.08.2011
Сообщения: 105
По умолчанию
Re: Скрипты

FallenruЕсть подозрение ,что данный скрипт некорректно написан

GiveArtefact(heroname, artefactID, [bindToHero = 0]);
Как я понимаю 3 параметр можно вообще не заполнять) А у вас написано nBindToHero
Написал GiveArtefact("Brem", 13); и все заработало, спасибо
Navkratis вне форума
Ответить с цитированием
#3215
Старый 07.09.2020, 18:34
  #3215
^
Лоли Никита
 
Аватар для Лоли Никита
📖
Регистрация: 24.03.2019
Сообщения: 31
Регистрация: 24.03.2019
Сообщения: 31
По умолчанию
Re: Скрипты

Помогите пожалуйста с одним скриптом . Мне нужно чтобы к моему герою присоединились крестьяне 4, появилось задание, дойти с ними до определенной точки и выполнить задание таким образом, и после этого они должны исчезнуть из отряда. Если крестьяне* погибнут в битве, то задание провалилось. (Начальные этапы* я более менее могу написать, но вот как сделать, чтобы задание проваливалось после смерти крестьян не знаю)

Добавлено через 4 часа 52 минуты
Помогите пожалуйста разобраться в чем ошибка в скрипте:
function demon()
local p1 =GetObjectiveState ('qwert1',PLAYER_1);
local p =GetObjectiveState ('qwert2',PLAYER_1);
* local opr = 9
* local opr3 = 13
* local p2 = GetObjectiveState ('qwert3', 1);
if p2 == OBJECTIVE_COMPLETED then opr= opr+1
* if p2 == OBJECTIVE_COMPLETED then opr= opr3+1
if p1 ==OBJECTIVE_COMPLETED and GetDate(DAY_OF_WEEK ) == 6
then
AddObjectCreatures('gar_1',* opr, 15);
AddObjectCreatures('gar_2',* opr, 15);
AddObjectCreatures('gar_3',* opr, 15);
AddObjectCreatures('gar_4',* opr, 15);
elseif p ==OBJECTIVE_COMPLETED and GetDate(DAY_OF_WEEK ) == 5
then
AddObjectCreatures('gar_1',* opr3, 3);
AddObjectCreatures('gar_2',* opr3, 3);
AddObjectCreatures('gar_3',* opr3, 3);
AddObjectCreatures('gar_4',* opr3, 3);
end;
* end;
* * * Trigger(NEW_DAY_TRIGGER, 'demon');


вроде бы все написал правильно, но задание выполняется, наступает 5 день, монахи не приходят, наступаешь6 день, а ангелов тоже нет.
Лоли Никита вне форума
Ответить с цитированием
#3216
Старый 07.09.2020, 18:44
  #3216
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23295
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23295
По умолчанию
Re: Скрипты

А консоль что пишет?
P.S. Ох уж эти звёздочки, которые теперь автоматом зачем-то ставятся форумом, если пробелов больше одного.
__________________
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
Ment вне форума
Ответить с цитированием
#3217
Старый 07.09.2020, 18:56
  #3217
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
По умолчанию
Re: Скрипты

Лоли НикитаПомогите пожалуйста с одним скриптом . Мне нужно чтобы к моему герою присоединились крестьяне 4, появилось задание, дойти с ними до определенной точки и выполнить задание таким образом, и после этого они должны исчезнуть из отряда. Если крестьяне* погибнут в битве, то задание провалилось. (Начальные этапы* я более менее могу написать, но вот как сделать, чтобы задание проваливалось после смерти крестьян не знаю)

Добавлено через 4 часа 52 минуты
Помогите пожалуйста разобраться в чем ошибка в скрипте:
	function demon()
local p1 =GetObjectiveState ('qwert1',PLAYER_1);
local p =GetObjectiveState ('qwert2',PLAYER_1);
local opr = 9
local opr3 = 13
local p2 = GetObjectiveState ('qwert3', 1);
if p2 == OBJECTIVE_COMPLETED then 
* opr= opr+1
* if p2 == OBJECTIVE_COMPLETED then 
* * opr= opr3+1
* * if p1 ==OBJECTIVE_COMPLETED and GetDate(DAY_OF_WEEK ) == 6
* * * then
* * * AddObjectCreatures('gar_1', opr, 15);
* * * AddObjectCreatures('gar_2', opr, 15);
* * * AddObjectCreatures('gar_3', opr, 15);
* * * AddObjectCreatures('gar_4', opr, 15);
* * elseif p ==OBJECTIVE_COMPLETED and GetDate(DAY_OF_WEEK ) == 5
* * then
* * AddObjectCreatures('gar_1', opr3, 3);
* * AddObjectCreatures('gar_2', opr3, 3);
* * AddObjectCreatures('gar_3', opr3, 3);
* * AddObjectCreatures('gar_4', opr3, 3);
* * end;
end;
Trigger(NEW_DAY_TRIGGER, 'demon');



вроде бы все написал правильно, но задание выполняется, наступает 5 день, монахи не приходят, наступаешь6 день, а ангелов тоже нет.

Скрипт на провал задания при отсутствии крестьян:
	function peas_surv()
while 1 do
if GetHeroCreatures("Имя героя", CREATURE_PEASANT)


А в том месте, где нужно запустить проверку наличия крестьян вставьте строку
	startThread(peas_surv)

Пункты по второму вопросу: можно разъяснить, что происходить должно по скрипту? То есть, проверка чего производится? А то не понятно, зачем 2 вложенные проверки выполненности задания 'p2' подряд...

Ещё вопрос: у вас есть другие функции, запускаемые каждодневным триггером?

Армия должна добавляться на 5 день от начала игры, или же на 5 (и 6) день недели?

На что жалуется консоль?

Пока не пойму, что и почему должно происходить, ответить не смогу.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 сейчас на форуме
Ответить с цитированием
#3218
Старый 07.09.2020, 19:09
  #3218
^
User01322342
 
Аватар для User01322342
📖
Регистрация: 03.01.2017
Сообщения: 101
Регистрация: 03.01.2017
Сообщения: 101
По умолчанию
Re: Скрипты

Лоли НикитаПомогите пожалуйста с одним скриптом . Мне нужно чтобы к моему герою присоединились крестьяне 4, появилось задание, дойти с ними до определенной точки и выполнить задание таким образом, и после этого они должны исчезнуть из отряда. Если крестьяне* погибнут в битве, то задание провалилось. (Начальные этапы* я более менее могу написать, но вот как сделать, чтобы задание проваливалось после смерти крестьян не знаю)
Сначала ставите крестьян на карту
Потом прописывайте эту команду:
SetObjectEnabled ('Peasant', nil);

На карте рисуйте регион, в который надо отвести крестьян и назовём допустим 'Region'

---скрипт присоединения крестьян---

function*peasants()
---ваш код---
AddHeroCreatures ('имя_героя', 1, 4);
SetObjectiveState ('имя_задания',*OBJECTIVE_ACTIVE, PLAYER_1);
RemoveObject ('Peasant');
end;

Trigger(OBJECT_TOUCH_TRIGGER, 'Peasant','peasants');

Теперь скрипт, когда нужно прощаться с крестьянами:

function RegionF()
---ваш код---
if GetObjectiveState ('имя_задания', 1) == OBJECTIVE_ACTIVE then*GetHeroCreatures('имя_героя', 1)==4 then
RemoveHeroCreatures('имя_героя', 1, 4);
SetObjectiveState ('имя_задания',*OBJECTIVE_COMPLETED, PLAYER_1);
Trigger (REGION_ENTER_AND_STOP_TRIGGER, 'Region', nil);
end;
end;

Trigger (REGION_ENTER_AND_STOP_TRIGGER, 'Region', 'RegionF');

Насчёт гибели крестьян в битве и последующий провал задания, нужны боевые скрипты, как мне кажется, но их я увы не знаю

Выше*}{0TT@6bI4*уже предложил лучшую версию
User01322342 вне форума
Ответить с цитированием
#3219
Старый 07.09.2020, 19:23
  #3219
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
По умолчанию
Re: Скрипты

Собственно, по словам Лоли Никита то, что вы предложили, он организовать умел сам) И скрипт "прощания с крестьянами" лучше разместить внутри дополнительного потока обработки данных. Тогда можно будет одновременно мониторить ситуация, если крестьяне есть, или если крестьяне погибли.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 сейчас на форуме
Ответить с цитированием
#3220
Старый 07.09.2020, 22:28
  #3220
^
Navkratis
 
Аватар для Navkratis
📖
Регистрация: 31.08.2011
Сообщения: 105
Регистрация: 31.08.2011
Сообщения: 105
По умолчанию
Re: Скрипты

Добрый вечер, пытаюсь написать сообщение с ошибкой, появляющееся в программке Map Script Editor, но форум почему-то упорно удаляет одно из слов сообщения*
Navkratis вне форума
Ответить с цитированием
#3221
Старый 07.09.2020, 22:34
  #3221
^
Fallenru
 
Аватар для Fallenru
📖
Регистрация: 03.06.2020
Сообщения: 31
Регистрация: 03.06.2020
Сообщения: 31
По умолчанию
Re: Скрипты

NavkratisДобрый вечер, пытаюсь написать сообщение с ошибкой, появляющееся в программке Map Script Editor, но форум почему-то упорно удаляет одно из слов сообщения*
Хм...можно сделать скриншот ,можно приложить файл с ошибкой...
Fallenru вне форума
Ответить с цитированием
#3222
Старый 07.09.2020, 22:36
  #3222
^
Navkratis
 
Аватар для Navkratis
📖
Регистрация: 31.08.2011
Сообщения: 105
Регистрация: 31.08.2011
Сообщения: 105
По умолчанию
Re: Скрипты

Попытаюсь так: https://ibb.co/zfjrBSj

Без скрипта седьмого дня все отлично работает, но сколько не пробовал убавлять или добавлять end в скрипты 6 и 7 дней, проблема не исправляется.
Navkratis вне форума
Ответить с цитированием
#3223
Старый 07.09.2020, 22:54
  #3223
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 896
Выставка наград
По умолчанию
Re: Скрипты

elseif может идти только в блоке с if'ом. Посчитайте количество блоков if-then elseif-then - на каждый должен приходится только 1 end; . По окончании блока функции также ставится end; (eof) означает 'end of function', значит не хватает одного end'a. Посмотрите, верхний elseif завершается ближайшим end'ом, следующий за ним энд (второй сверху) тогда относится либо к какому-то блоку ифа снаружи этого элсеифа, либо это энд от функции. Тогда попробуйте добавить этот энд перед строчкой триггера нового дня.

В принципе, чтобы не случалось таких путаниц, следует, например, каждый раз когда начинается блок ифа, ставить 2 пробела. А в содержимом для выполнения ифом, кроме энда, элсэифа и зэна - ещё 2 пробела. Тогда энды, соответсвующие ифам, окажутся на одной вертикали. Так можно быстро определить, где энда не хватает.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 сейчас на форуме
Ответить с цитированием
#3224
Старый 08.09.2020, 10:08
  #3224
^
Navkratis
 
Аватар для Navkratis
📖
Регистрация: 31.08.2011
Сообщения: 105
Регистрация: 31.08.2011
Сообщения: 105
По умолчанию
Re: Скрипты

Спасибо за помощь, но пока что ничего не получается, попробую еще завтра. Или же обойдусь без триггера седьмого дня, без него все работает.

Добавлено через 10 часов 37 минут
Пока что ситуация такова: заменил элсейфы на более привычные мне ифы (по образцу одной из моих прошлых карт), программа перестала ругаться на ошибки, но скрипт седьмого дня так и не наступает, в консоли тоже никаких надписей об ошибках не появляется и, конечно, это не единственная проблема со скриптами. Спасибо разрабам, сделавшим редактор карт не для простых смертных, а для [s]избранных[/s] (зачеркнуто) программистов
Navkratis вне форума
Ответить с цитированием
#3225
Старый 08.09.2020, 12:14
  #3225
^
Fallenru
 
Аватар для Fallenru
📖
Регистрация: 03.06.2020
Сообщения: 31
Регистрация: 03.06.2020
Сообщения: 31
По умолчанию
Re: Скрипты

NavkratisДобавлено через 10 часов 37 минут
Пока что ситуация такова: заменил элсейфы на более привычные мне ифы (по образцу одной из моих прошлых карт), программа перестала ругаться на ошибки, но скрипт седьмого дня так и не наступает, в консоли тоже никаких надписей об ошибках не появляется и, конечно, это не единственная проблема со скриптами. Спасибо разрабам, сделавшим редактор карт не для простых смертных, а для [s]избранных[/s] (зачеркнуто) программистов
Чтобы помочь, было бы неплохо увидеть кусок кода с данными "Элсейфами" или "ифами" ,чтобы понять что у вас происходит и возможно было увидеть ошибку и протестировать,но как говориться никто вас не заставляет выкладывать "код"**Тоже* относиться и к остальным проблемам.
Fallenru вне форума
Ответить с цитированием
Ответ
Страница 215 из 223


Опции темы



Часовой пояс GMT +4, время: 21:30.


vBulletin v3.5.0, Copyright ©2000-2021, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru