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

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

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

Ответ
Страница 226 из 237
 
Опции темы
#3376
Старый 07.06.2021, 23:08
  #3376
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

В теле функции, перед МессаджБоксом поставьте зануляющий триггер:
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Имярегиона", nil)
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3377
Старый 14.06.2021, 15:34
  #3377
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Возник вопрос: существует созданный моб, со своими характеристиками и абилками. Возможно ли как-то редактировать его учитывая уровень выбранной сложности? При загрузке карты
Или только созданием 4х одинаковых мобов с разными настройками под 4е сложности?
KioM вне форума
Ответить с цитированием
#3378
Старый 14.06.2021, 15:52
  #3378
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Имеете в виду, динамически изменять абилки и характеристики существ? Нет, это, увы, невозможно.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3379
Старый 17.06.2021, 13:58
  #3379
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Добрый день! Не работает вот такой скрипт, вылетает с ошибкой Attempt to compare nil with number
HEAL = {}
HEAL.variant = -1

Healing_arts = {{id=176, heal = 50}, {id=177, heal = 10},}

function HEAL.UseHeal(pl, ans)
  if not ans then
    HEAL.heal_arts_on = {}
    for key, art in Healing_arts do
      if HasArtefact(MAIN_HERO, art.id) then
        table.insert(HEAL.heal_arts_on, art.id)
      end
    end
    HEAL.len = length(HEAL.heal_arts_on)-1
    print(HEAL.len, ' - длина 'массива) --Выводит минус единицу - длина массива
    sleep()
    if 0 < HEAL.len <= 4 then  ---ВОТ ЗДЕСЬ ПАДАЕТ СКРИПТ.
      print('Проверка') --НЕ ВЫВОДИТСЯ В КОНСОЛЬ
      HEAL.variant = 1
      local pthheal = "Interface/CustomAbilities/UseFirstAidKit/"
      local options = {}
      local values = {}
      while not values and not options do
      sleep()
      end
      for i=1, HEAL.len do
        print (HEAL.len)
        print('Проверка 2 ', HEAL.heal_arts_on[i])
        options[i]=pthheal..'Use_'..i..'...'   
        values[i]= artifacts[HEAL.heal_arts_on[i]].name 
        --
      end
      while not options[HEAL.len] do
      sleep()
      end
      options[HEAL.len+1]=Talk.BACK
      Talk.mode = 1

      Talk.NewDialog(GetIconPath('Heal'), pthheal..'Heal', pthheal..'HealDesc', 'HEAL.UseHeal', options, values)
--
--    elseif HEAL.len > 4 then

    elseif HEAL.len <= 0 then
      print('Ai?oe')  ---ТОЖЕ НЕ ВЫВОДИТСЯ В КОНСОЛЬ
      Talk.mode = 1
      Talk.NewDialog("/UI/MessageBox/Warning.xdb#xpointer(/Texture)", pthheal.."WarningNoKit", pthheal.."NoKit", nil)
    end
  elseif ans then
    if HEAL.variant == 1 then
      if 0<ans<5 then
        STALKER.ChangeHealth(artifacts[HEAL.heal_arts_on[ans]].heal)
        RemoveArtefact(MAIN_HERO, HEAL.heal_arts_on[ans])
      end
    end
  end
end


Эта функция вызывается из книги заклинаний, первый вызов проходит нормально, второй с ошибкой в указанном месте. Даже не знаю, в чём проблема, хотя наверняка с областью видимости. Но как исправить (а главное, что?) не знаю...

__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3380
Старый 17.06.2021, 14:38
  #3380
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 805
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 805
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

если HEAL.len = -1, то проверка 0<HEAL.len выдаст nil, которое уже будет сравниваться с 4, что и провоцирует ошибку. Проще написать условие if HEAL.len > 0 and HEAL.len <=4
__________________
MCCS v0.3.6 - мультиплеерный мод, добавляющий уникальный контент и механики в игру

Ушел в геймдев.
MCCS v0.3.6 - мультиплеерный мод, добавляющий уникальный контент и механики в игру

Ушел в геймдев.
Gerter вне форума
Ответить с цитированием
#3381
Старый 17.06.2021, 15:21
  #3381
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Заработало, спасибо большое!
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3382
Старый 22.06.2021, 13:09
  #3382
^
Святoслав
📖
Регистрация: 05.08.2020
Сообщения: 10
Регистрация: 05.08.2020
Сообщения: 10
По умолчанию
Re: Скрипты

function pabota()
SetObjectEnabled("slava", false);
sleep(10);
SetMonsterSelectionType("slava", 0);
PlayObjectAnimation("slava", "attack00", IDLE);
end;
Trigger(NEW_DAY_TRIGGER, "pabota");


Крестьяне должны постоянно атаковать, но не атакуют. Не подскажете что не так?
Святoслав вне форума
Ответить с цитированием
#3383
Старый 22.06.2021, 17:38
  #3383
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Ну и имечко у вашей функции. Лучше назовите "Peas_working". По поводу неработы: вы ход передавали? Функция "нового дня" начинает работать со второго дня. Также, в консоли ошибки есть?
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3384
Старый 22.06.2021, 18:15
  #3384
^
Святoслав
📖
Регистрация: 05.08.2020
Сообщения: 10
Регистрация: 05.08.2020
Сообщения: 10
По умолчанию
Re: Скрипты

И в правду работает со второго дня. А можно ли сделать что бы это работало с первого?
Миниатюры
Нажмите на изображение для увеличения
Название:  Изображение1.jpg
Просмотров: 12
Размер:	695.9 Кбайт
ID:	65406  
Святoслав вне форума
Ответить с цитированием
#3385
Старый 22.06.2021, 18:46
  #3385
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Вне функции, просто в скрипте, напишите этот блок кода
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3386
Старый 22.06.2021, 19:23
  #3386
^
Святoслав
📖
Регистрация: 05.08.2020
Сообщения: 10
Регистрация: 05.08.2020
Сообщения: 10
По умолчанию
Re: Скрипты

Долго думал так и понял, что надо делать....\

Но подумав ещё все же понял...

}{0TT@6bI4 большое СПАСИБО!
Святoслав вне форума
Ответить с цитированием
#3387
Старый 22.06.2021, 21:56
  #3387
^
Andrei_21
 
Аватар для Andrei_21
📖
Регистрация: 14.03.2021
Сообщения: 123
Регистрация: 14.03.2021
Сообщения: 123
По умолчанию
Re: Скрипты

Здравствуйте. Возникла проблема с этим скриптом:

function Win()
while 1 do
sleep(10)
if IsHeroAlive("Quroq") == nil then
StartDialogScene("/Maps/SingleMissions/ne5/St3/DialogScene.xdb#xpointer(/DialogScene)");
sleep(10)
StartDialogScene("/Maps/SingleMissions/ne5/St4/DialogScene.xdb#xpointer(/DialogScene)");
sleep(10)
Win();
break;
end;
sleep(3)
end;
end;

startThread(Win);

Проигрыш диалогов (по непонятной для меня причине) зациклен. Команда Win не срабатывает. Подскажите, где я допустил ошибку..
Andrei_21 вне форума
Ответить с цитированием
#3388
Старый 23.06.2021, 10:38
  #3388
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

Вот этот кусок
sleep(10) Win();

Запускает функцию заново, а все потому, что вы неправильно выбрали название. Назовите функцию WinCheckLoop и соответственно, startThread(WinCheckLoop)
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3389
Старый 23.06.2021, 21:34
  #3389
^
Святoслав
📖
Регистрация: 05.08.2020
Сообщения: 10
Регистрация: 05.08.2020
Сообщения: 10
По умолчанию
Re: Скрипты

Не подскажете есть ли команды которая проверяет наличие определённого количества денег, отнемает определённое количество денег? 
Святoслав вне форума
Ответить с цитированием
#3390
Старый 23.06.2021, 22:10
  #3390
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1384
Выставка наград
По умолчанию
Re: Скрипты

pl1gold = GetPlayerResource(PLAYER_номер, GOLD)
SetPlayerResource(PLAYER_номер, GOLD, pl1gold - d),
Где d — дельта. Если у игрока нет столько денен, то выдаст ошибку.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
Ответ
Страница 226 из 237


Опции темы



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


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

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