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

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

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

Ответ
Страница 189 из 260
 
Опции темы
#2821
Старый 16.09.2018, 16:13
  #2821
^
DarkLordax
 
Аватар для DarkLordax
📖
Регистрация: 01.06.2017
Сообщения: 70
Регистрация: 01.06.2017
Сообщения: 70
По умолчанию
Re: Скрипты

Ну ок(Просто лень всё прописывать, у самого какая-то фигня со скриптом на карте)

2) Делаем регион, и меняем Приоритет на что-то нужное(Не проверял!), ну и можно поставить на другие объекты приоритет -1

итог примерно такой:
-хм... что-то в регионе, эй вы шлемоголовые, к вам гости
- ОК! Пофиг на всё есть враг!
__________________
Кампания в разработке:

Название не придумал

Выполнено 5%
Кампания в разработке:

Название не придумал

Выполнено 5%
DarkLordax вне форума
Ответить с цитированием
#2822
Старый 16.09.2018, 16:33
  #2822
^
inQizitOr
 
Аватар для inQizitOr
📖
Регистрация: 09.06.2014
Адрес: Украина
Сообщения: 149
SuGoMa#1621
Регистрация: 09.06.2014
Адрес: Украина
Сообщения: 149
SuGoMa#1621
По умолчанию
Re: Скрипты

DarkLordaxНу ок(Просто лень всё прописывать, у самого какая-то фигня со скриптом на карте)

2) Делаем регион, и меняем Приоритет на что-то нужное(Не проверял!), ну и можно поставить на другие объекты приоритет -1

итог примерно такой:
-хм... что-то в регионе, эй вы шлемоголовые, к вам гости
- ОК! Пофиг на всё есть враг!
Про этот приоритет - это скрипт или функция?
__________________
...И справедливость я несу
На острие меча.



Кампания "Искупление" - 15%




О кампании


"Искупление" - это мой амбициозный проект. Давняя мечта. С детства играя в героев, я восхищался персонажами и ландшафтами, сюжетом и стилем оригинальной трилогии, я мечтал привнести что-то свое в эту игру,  и наконец, более-менее освоив нелегкий труд картостроителя, взялся за воплощение мечты. Кампания расскажет о будущем выживших рыцарей Кровавой Стали, о пути, который они избрали, и о том, куда этот путь их приведет. К слову, мне нужен тестер-оценщик. Если хочешь принять участие в создании и есть определенный опыт, то - добро пожаловать!



...И справедливость я несу
На острие меча.



Кампания "Искупление" - 15%




О кампании


"Искупление" - это мой амбициозный проект. Давняя мечта. С детства играя в героев, я восхищался персонажами и ландшафтами, сюжетом и стилем оригинальной трилогии, я мечтал привнести что-то свое в эту игру,  и наконец, более-менее освоив нелегкий труд картостроителя, взялся за воплощение мечты. Кампания расскажет о будущем выживших рыцарей Кровавой Стали, о пути, который они избрали, и о том, куда этот путь их приведет. К слову, мне нужен тестер-оценщик. Если хочешь принять участие в создании и есть определенный опыт, то - добро пожаловать!



inQizitOr вне форума
Ответить с цитированием
#2823
Старый 16.09.2018, 16:35
  #2823
^
DarkLordax
 
Аватар для DarkLordax
📖
Регистрация: 01.06.2017
Сообщения: 70
Регистрация: 01.06.2017
Сообщения: 70
По умолчанию
Re: Скрипты

Вроде должна быть функция SetAIPlayerAttractor, но есть SetAIHeroAttractor(Ну скрипт,ну понятно!)
Одна для определённого героя, другая чисто для игрока
вот что-то ещё

DoNotGiveTurnToPlayerAIIfNoTownsAndActiveHeroes
должно быть в файле о скриптах
__________________
Кампания в разработке:

Название не придумал

Выполнено 5%
Кампания в разработке:

Название не придумал

Выполнено 5%
DarkLordax вне форума
Ответить с цитированием
#2824
Старый 16.09.2018, 17:51
  #2824
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

DarkLordaxНу вот что здесь не так!

function pobor1()
if GetObjectiveState("SQ1", 1) ==OBJECTIVE_UNKNOWN then
SetObjectiveState("SQ1", OBJECTIVE_ACTIVE, 1);
MessageBox("Maps/SingleMissions/C1W1/poborQ1.txt", "nothing");
if IsObjectExists("pobornik1") ==false then
if IsObjectExists("pobornik2") ==false then
if IsObjectExists("pobornik3") ==false then
SetObjectiveState("SQ1", OBJECTIVE_COMPLETED, 1);
SetObjectEnabled("dwellquest1", true);
SetObjectOwner("dwellquest1", 1);
Trigger(OBJECT_TOUCH_TRIGGER, "dwellquest1", nil)
end;
end;
end;
elseif GetObjectiveState("SQ1", 1) ==OBJECTIVE_ACTIVE then
if IsObjectExists("pobornik1") ==false then
if IsObjectExists("pobornik2") ==false then
if IsObjectExists("pobornik3") ==false then
MesageBox("Maps/SingleMissions/C1W1/poborEND.txt", "nothing");
SetObjectEnabled("dwellquest1", true);
SetObjectOwner("dwellquest", 1);
SetObjectiveState("SQ1", OBJECTIVE_COMPLETED, 1);
Trigger(OBJECT_TOUCH_TRIGGER, "dwellquest1", nil)
end;
end;
end;
end
end
Trigger(OBJECT_TOUCH_TRIGGER, "dwellquest1", "pobor1")

Всемогущая консоль пишет ERROR attempt to call a nil value Но где данный nil value!

Короче всё работает только если всех трёх врагов убить(pobornik) до того как взять задание, тогда оно выполниться! Если сначала взять задание то потом вылазит какой-то nil value!

не советую никогда использовать слово false! Дело вряд ли в нем, хотя кто знает, но кроме ошибок в консоль false и true у меня еще не вызывали ничего.

Добавлено через 1 минуту
Использовать эти два слова в корне не верно. Есть nil, 0, 1 и т.д. Это уже от команды скриптовой зависит.

Добавлено через 52 минуты
Как я могу выдать герою Совершенную некромантию?
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#2825
Старый 16.09.2018, 17:58
  #2825
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

AstralLeinКак я могу выдать герою Совершенную некромантию?

1.Кулон мастерства
2.В редакторе у героя настроить в PrimarySkillMastery - MASTERY_EXTRA_EXPERT.
Через GiveHeroSkill не получиться, к сожалению.(Лично у меня не получилось)
AlekseyS вне форума
Ответить с цитированием
#2826
Старый 16.09.2018, 18:02
  #2826
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

Я имею ввиду выдать по выполнению квеста. Скриптом.

Добавлено через 33 секунды
Была карта где такой фокус вроде как проворачивали...
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#2827
Старый 16.09.2018, 18:04
  #2827
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

AstralLeinЯ имею ввиду выдать по выполнению квеста. Скриптом.

Как вариант: дать игроку Кулон и если некромантия ниже искусной, то повысить через GiveHeroSkill.
AlekseyS вне форума
Ответить с цитированием
#2828
Старый 16.09.2018, 18:22
  #2828
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

GiveHeroSkill повышает уровень знания навыка?
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#2829
Старый 16.09.2018, 18:23
  #2829
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

AstralLeinGiveHeroSkill повышает уровень знания навыка?

Да. Но повысить расовое умение через него до совершенного нельзя
AlekseyS вне форума
Ответить с цитированием
#2830
Старый 16.09.2018, 18:27
  #2830
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

Тьфу. Придется артефакт все-таки выдавать... вот блин... а вся суть то была: обучить 3 героев искусной некромантии и получить Совершенную некромантию для Арантира.
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#2831
Старый 17.09.2018, 13:26
  #2831
^
DarkLordax
 
Аватар для DarkLordax
📖
Регистрация: 01.06.2017
Сообщения: 70
Регистрация: 01.06.2017
Сообщения: 70
По умолчанию
Re: Скрипты

AstralLeinне советую никогда использовать слово false! Дело вряд ли в нем, хотя кто знает, но кроме ошибок в консоль false и true у меня еще не вызывали ничего.

Добавлено через 1 минуту
Использовать эти два слова в корне не верно. Есть nil, 0, 1 и т.д. Это уже от команды скриптовой зависит.

Добавлено через 52 минуты
Как я могу выдать герою Совершенную некромантию?
У меня была вот такая беда MesageBox(Одна s)!
__________________
Кампания в разработке:

Название не придумал

Выполнено 5%
Кампания в разработке:

Название не придумал

Выполнено 5%
DarkLordax вне форума
Ответить с цитированием
#2832
Старый 17.09.2018, 15:01
  #2832
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

DarkLordaxУ меня была вот такая беда MesageBox(Одна s)!

А, известная беда с описками.
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#2833
Старый 17.09.2018, 22:47
  #2833
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

Есть проблема: вот код
	function portal(hero)
if GetObjectOwner(hero) == 1 then
if GetObjectiveState("tom") == OBJECTIVE_UNKNOWN then
MessageBox(path.."tom1.txt")
end
if GetObjectiveState("tom") == OBJECTIVE_ACTIVE then
QuestionBox(path.."tom2.txt",'Dragon("'..hero..'")')
end
end
end


Trigger(OBJECT_TOUCH_TRIGGER, "portal","portal")

function Dragon(hero)
local week = ceil(GetDate(DAY) / 7)
sleep(3)
--
StartCombat(hero,nil,3,84, diff * week, 84, diff * week, 84, diff * week,nil,'BattleResult',nil,nil)
end

все хорошо работает, но...(см. скрин)

Что может это вызывать? Просто хочется, чтобы консоль была чиста, а не выдавала ошибку.
Миниатюры
Нажмите на изображение для увеличения
Название:  Безымянный.jpg
Просмотров: 23
Размер:	106.2 Кбайт
ID:	56670  
AlekseyS вне форума
Ответить с цитированием
#2834
Старый 17.09.2018, 23:04
  #2834
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

AlekseySЕсть проблема: вот код
	function portal(hero)
if GetObjectOwner(hero) == 1 then
if GetObjectiveState("tom") == OBJECTIVE_UNKNOWN then
MessageBox(path.."tom1.txt")
end
if GetObjectiveState("tom") == OBJECTIVE_ACTIVE then
QuestionBox(path.."tom2.txt",'Dragon("'..hero..'")')
end
end
end


Trigger(OBJECT_TOUCH_TRIGGER, "portal","portal")

function Dragon(hero)
local week = ceil(GetDate(DAY) / 7)
sleep(3)
--
StartCombat(hero,nil,3,84, diff * week, 84, diff * week, 84, diff * week,nil,'BattleResult',nil,nil)
end
все хорошо работает, но...(см. скрин)

Что может это вызывать? Просто хочется, чтобы консоль была чиста, а не выдавала ошибку.

Это из-за вызова коллбека с параметром. По-умолчанию скриптовая машина просто добавляет две скобки (и параметры, в некоторых случаях) к имени и исполняет получившийся код. Если же вызывать коллбек с пользовательскими параметрами, то исполняемый код выходит каким-то таким:
	'Dragon("'..hero..'")()'
то есть после вызова функции Dragon будет еще вызван результат, возвращенный из нее, а так как функция ничего не возвращает, то и получается ошибка попытки вызова nil.

Лечится добавлением двух минусов
	QuestionBox(path.."tom2.txt",'Dragon("'..hero..'")--')
тогда исполняемый код будет иметь вид:
	'Dragon("'..hero..'")--()'
то есть, лишние скобки будут закомментированы.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#2835
Старый 18.09.2018, 20:31
  #2835
^
AlekseyS
📖
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
Регистрация: 02.04.2018
Адрес: Минск
Сообщения: 203
По умолчанию
Re: Скрипты

RedHeavenHeroЭто из-за вызова коллбека с параметром. По-умолчанию скриптовая машина просто добавляет две скобки (и параметры, в некоторых случаях) к имени и исполняет получившийся код. Если же вызывать коллбек с пользовательскими параметрами, то исполняемый код выходит каким-то таким:
	'Dragon("'..hero..'")()'
то есть после вызова функции Dragon будет еще вызван результат, возвращенный из нее, а так как функция ничего не возвращает, то и получается ошибка попытки вызова nil.

Лечится добавлением двух минусов
	QuestionBox(path.."tom2.txt",'Dragon("'..hero..'")--')
тогда исполняемый код будет иметь вид:
	'Dragon("'..hero..'")--()'
то есть, лишние скобки будут закомментированы.

Помогло, спасибо
AlekseyS вне форума
Ответить с цитированием
Ответ
Страница 189 из 260


Опции темы



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


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

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