Скрипты для начинающих - Страница 10 - Форум HeroesWorld-а

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

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

Ответ
Страница 10 из 17
 
Опции темы
#136
Старый 08.08.2017, 19:52
  #136
^
MapEditor
📖
Регистрация: 08.08.2017
Сообщения: 1
Регистрация: 08.08.2017
Сообщения: 1
По умолчанию
Re: Скрипты для начинающих

Ребят подскажите скрипт чтобы убиваешь входишь в зону и появляется вражеский герой

Добавлено через 1 минуту
Ребят подскажите скрипт чтобы убиваешь входишь в зону и появляется вражеский герой
MapEditor вне форума
Ответить с цитированием
#137
Старый 20.08.2017, 14:17
  #137
^
I_Am_Walking
📖
Регистрация: 20.08.2017
Сообщения: 3
Регистрация: 20.08.2017
Сообщения: 3
По умолчанию
Re: Скрипты для начинающих

а не подскажете, как проверку фракции замка или фракции игрока сделать? и после этого установить на существо определенный кураж
I_Am_Walking вне форума
Ответить с цитированием
#138
Старый 20.08.2017, 17:43
  #138
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
По умолчанию
Re: Скрипты для начинающих

I_Am_Walking, насколько я знаю, функции прямого определения фракции нет. Для героев можно делать это косвенно, проверяя наличие фракционных умений.
Jack_of_shadows вне форума
Ответить с цитированием
#139
Старый 20.08.2017, 18:00
  #139
^
I_Am_Walking
📖
Регистрация: 20.08.2017
Сообщения: 3
Регистрация: 20.08.2017
Сообщения: 3
По умолчанию
Re: Скрипты для начинающих

то есть если надо, например, проверить фракцию города или игрока, то прямо этого не сделать? только косвенно - через существ?
I_Am_Walking вне форума
Ответить с цитированием
#140
Старый 20.08.2017, 21:20
  #140
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
По умолчанию
Re: Скрипты для начинающих

Я думаю, если это стандартная карта без всяких кастомных штук, то можно просто в 1 день скриптом просмотреть всех героев всех игроков, если есть некромантия - значит это некромант, призыв - значит демон и т.д., и запомнить результаты в глобальную таблицу (ключ - номер игрока, значение - фракция). А потом можно использовать её хоть по отношению к героям, хоть к замкам.
Jack_of_shadows вне форума
Ответить с цитированием
#141
Старый 21.08.2017, 00:04
  #141
^
I_Am_Walking
📖
Регистрация: 20.08.2017
Сообщения: 3
Регистрация: 20.08.2017
Сообщения: 3
По умолчанию
Re: Скрипты для начинающих

попробовать конечно можно, только человеку не близкому к програмированию надо будет надолго засесть в мануалы)
I_Am_Walking вне форума
Ответить с цитированием
#142
Старый 21.08.2017, 00:06
  #142
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: На планете Земля.
Сообщения: 1597
Регистрация: 02.06.2017
Адрес: На планете Земля.
Сообщения: 1597
По умолчанию
Re: Скрипты для начинающих

Только в мануалы скриптов игры, а не учебник по программированию...
__________________
Готовые проекты:



Карты для героев 5:

"Плата за любовь"

"Путь некроманта"



Карты для Disciples 3:

"Противостояние"



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



Моды для Disciples 3:

"Астельнаир" - разработка возобновлена в мае 2019 год



Карты для героев 5:



"Темные грани" - ориентировочная дата выхода - ???



Карты для героев 6:



"Темницы разума" - почти готово, но когда будет время доделать без понятия
Готовые проекты:



Карты для героев 5:

"Плата за любовь"

"Путь некроманта"



Карты для Disciples 3:

"Противостояние"



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



Моды для Disciples 3:

"Астельнаир" - разработка возобновлена в мае 2019 год



Карты для героев 5:



"Темные грани" - ориентировочная дата выхода - ???



Карты для героев 6:



"Темницы разума" - почти готово, но когда будет время доделать без понятия
AstralLein вне форума
Ответить с цитированием
#143
Старый 21.08.2017, 19:56
  #143
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
Регистрация: 08.09.2013
Сообщения: 488
Выставка наград
По умолчанию
Re: Скрипты для начинающих

Ну почему, любую обзорную статью по lua из интернета я бы рекомендовал прочитать, а ещё лучше сохранить и периодически заглядывать.
Jack_of_shadows вне форума
Ответить с цитированием
#144
Старый 22.08.2017, 22:49
  #144
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2369
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2369
Выставка наград
По умолчанию
Re: Скрипты для начинающих

I_Am_Walking,
фракцию замка можно узнать функцией GetTownRace, установить настроение и отвагу - SetMonsterCourageAndMood.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#145
Старый 23.08.2017, 11:46
  #145
^
sergejez
📖
Регистрация: 08.01.2017
Сообщения: 20
Регистрация: 08.01.2017
Сообщения: 20
По умолчанию
Re: Скрипты для начинающих

Ребята помогите. У меня почему-то после вопроса (QuestionBox) и ответа "ОК" не проигрывается битва (StartCombat). Если же StartCombat скопировать в функцию с вопросом, то всё ок - работает. В вопросе делал ссылку на другую функцию.
sergejez вне форума
Ответить с цитированием
#146
Старый 24.11.2017, 10:30
  #146
^
zahar0z
 
Аватар для zahar0z
📖
Регистрация: 09.06.2017
Сообщения: 584
Регистрация: 09.06.2017
Сообщения: 584
По умолчанию
Re: Скрипты для начинающих

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

Можно ли настроить выполнение функции не по конкретному тригеру из списка тригеров а по какому то другому, скажем постройке здания или появлению у определённого героя или определённого игрока определённого артефакта или существа.

что-то похожее кажется делает команда, запускающая новый поток(что такое поток правда в душе не знаю)
startThread( fProc, vParam1, vParam2, ... )
по идее если я правильно понимаю, она должна постоянно проверять наличие определённого условия, но вот как ей пользоваться я чего то не могу разобраться.



если конкретно то мне нужно при постройке определённого строения в городе заменить у героя одно существо другим

пока у меня выходит как то так



function replacecreature ();
if GetHeroCreatures( "Sarge", CREATURE_ARCHER ) >= 1;
and GetTownBuildingLevel( "cheast_town", TOWN_BUILDING_DWELLING_2 ) = 2;
then AddHeroCreatures( "Sarge", CREATURE_LONGBOWMAN, 1 );
RemoveHeroCreatures( "Sarge", CREATURE_ARCHER, 9999 );
else nil;
end;
end;

startThread( "replacecreature", TOWN_BUILDING_DWELLING_2 );





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

Заранее спасибо большое всем за советы.
zahar0z вне форума
Ответить с цитированием
#147
Старый 24.11.2017, 10:54
  #147
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 24895
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 24895
По умолчанию
Re: Скрипты для начинающих

Триггер не сделать. А вот проверку в бесконечном цикле -- да. У Вас вроде нормально написано, только Ваш if надо обернуть в конструкцию:

while 1 do
if.....
sleep(4);
end;

Про sleep не забудьте, а то зависнет всё...
__________________
Можешь ли слышать мой стон
Слабый, из темноты пучин?    
Пустотой он поглощён             
Без остатка почти.                   





















Стикеры GBF в Telegram
Можешь ли слышать мой стон
Слабый, из темноты пучин?    
Пустотой он поглощён             
Без остатка почти.                   





















Стикеры GBF в Telegram
Ment вне форума
Ответить с цитированием
#148
Старый 24.11.2017, 16:44
  #148
^
zahar0z
 
Аватар для zahar0z
📖
Регистрация: 09.06.2017
Сообщения: 584
Регистрация: 09.06.2017
Сообщения: 584
По умолчанию
Re: Скрипты для начинающих

Исправил вот так, всё равно не работает
Что-то я делаю не так, если кто знает, где именно ошибка, я буду очень благодарен если подскажите



п.с. за одно, как бэ случайно пропалил мод который пытаюсь склепать))
zahar0z вне форума
Ответить с цитированием
#149
Старый 24.11.2017, 16:50
  #149
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 24895
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 24895
По умолчанию
Re: Скрипты для начинающих

function replacecreature ()
while 1 do
if GetHeroCreatures( "Sarge", CREATURE_ARCHER ) >= 1 and GetTownBuildingLevel( "cheast_town", TOWN_BUILDING_DWELLING_2 ) == 2 then
RemoveHeroCreatures( "Sarge", CREATURE_ARCHER, 9999 );
AddHeroCreatures( "Sarge", CREATURE_LONGBOWMAN, 1 );
end;
sleep(4);
end;
end;

startThread( replacecreature );


А так?
за одно, как бэ случайно пропалил мод который пытаюсь склепать
Заинтриговали...
---
Впрочем, код, что я написал, имеет слабое звено. Подозреваю, у Вас там не 9999 лучников на самом деле. Ошибку выдаст. Надо сделать проверку точного числа лучников и это точное число вычитать! Если смысл в том, чтобы в армии их больше не было. Но пока проверьте без вычитания лучников просто.
__________________
Можешь ли слышать мой стон
Слабый, из темноты пучин?    
Пустотой он поглощён             
Без остатка почти.                   





















Стикеры GBF в Telegram
Можешь ли слышать мой стон
Слабый, из темноты пучин?    
Пустотой он поглощён             
Без остатка почти.                   





















Стикеры GBF в Telegram
Ment вне форума
Ответить с цитированием
#150
Старый 24.11.2017, 17:16
  #150
^
zahar0z
 
Аватар для zahar0z
📖
Регистрация: 09.06.2017
Сообщения: 584
Регистрация: 09.06.2017
Сообщения: 584
По умолчанию
Re: Скрипты для начинающих

Mentfunction replacecreature ()
while 1 do
if GetHeroCreatures( "Sarge", CREATURE_ARCHER ) >= 1 and GetTownBuildingLevel( "cheast_town", TOWN_BUILDING_DWELLING_2 ) = 2 then
RemoveHeroCreatures( "Sarge", CREATURE_ARCHER, 9999 );
AddHeroCreatures( "Sarge", CREATURE_LONGBOWMAN, 1 );
end;
end;
end;

startThread( "replacecreature" );


Проверил, всё так же не работает
(не запускается причём, как если здание построено с самого начала карты, так и если его строишь уже во время игры)

Где-то читал, что вроде надо писать не
startThread( "replacecreature" )
а
startThread( replacecreature)
например, попробовал и такой вариант, тоже результата не дало

В руководстве у новика, насчёт startThread есть ещё такой кусок
while(1) do
local heroes = GetPlayerHeroes(PLAYER_1)
for i, h in heroes do
if....
но как это применить и что это значит я понятия не имею ибо нуб
zahar0z вне форума
Ответить с цитированием
Ответ
Страница 10 из 17


Опции темы



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


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

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