Перейти к содержанию

Сообщения от Скрипты

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

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

итог примерно такой:
-хм... что-то в регионе, эй вы шлемоголовые, к вам гости
- ОК! Пофиг на всё есть враг!
Кампания в разработке:
Название не придумал
Выполнено 5%
В ответ пользователю DarkLordax
Аватар пользователя
7 лет назад
DarkLordax
Ну ок(Просто лень всё прописывать, у самого какая-то фигня со скриптом на карте)

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

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


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



О кампании

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



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

DoNotGiveTurnToPlayerAIIfNoTownsAndActiveHeroes
должно быть в файле о скриптах
Кампания в разработке:
Название не придумал
Выполнено 5%
В ответ пользователю DarkLordax
Аватар пользователя
7 лет назад
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

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
7 лет назад
AstralLein
Как я могу выдать герою Совершенную некромантию?

1.Кулон мастерства
2.В редакторе у героя настроить в PrimarySkillMastery - MASTERY_EXTRA_EXPERT.
Через GiveHeroSkill не получиться, к сожалению.(Лично у меня не получилось)
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
В ответ пользователю AstralLein
7 лет назад
AstralLein
Я имею ввиду выдать по выполнению квеста. Скриптом.

Как вариант: дать игроку Кулон и если некромантия ниже искусной, то повысить через GiveHeroSkill.
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
В ответ пользователю AstralLein
7 лет назад
AstralLein
GiveHeroSkill повышает уровень знания навыка?

Да. Но повысить расовое умение через него до совершенного нельзя
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
Аватар пользователя
7 лет назад
Тьфу. Придется артефакт все-таки выдавать... вот блин... а вся суть то была: обучить 3 героев искусной некромантии и получить Совершенную некромантию для Арантира.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
Аватар пользователя
7 лет назад
AstralLein
не советую никогда использовать слово false! Дело вряд ли в нем, хотя кто знает, но кроме ошибок в консоль false и true у меня еще не вызывали ничего.

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

Добавлено через 52 минуты
Как я могу выдать герою Совершенную некромантию?
У меня была вот такая беда MesageBox(Одна s)!
Кампания в разработке:
Название не придумал
Выполнено 5%
7 лет назад
Есть проблема: вот код
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

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

Что может это вызывать? Просто хочется, чтобы консоль была чиста, а не выдавала ошибку.
Вложения 1
1 файл • Общий размер: 28,0 KB
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
В ответ пользователю AlekseyS
Аватар пользователя
7 лет назад
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
В ответ пользователю RedHeavenHero
7 лет назад
RedHeavenHero
Это из-за вызова коллбека с параметром. По-умолчанию скриптовая машина просто добавляет две скобки (и параметры, в некоторых случаях) к имени и исполняет получившийся код. Если же вызывать коллбек с пользовательскими параметрами, то исполняемый код выходит каким-то таким:
'Dragon("'..hero..'")()'
то есть после вызова функции Dragon будет еще вызван результат, возвращенный из нее, а так как функция ничего не возвращает, то и получается ошибка попытки вызова nil.

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

Помогло, спасибо
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения

Статистика

Приветствуем новейшего участника: recijeb