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

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

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

Ответ
Страница 60 из 260
 
Опции темы
#886
Старый 10.01.2013, 15:59
  #886
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

SetHeroCombatScript(heroname, script)
heroname - скриптовое имя героя,
script - файл xdb с указанием на файл lua.
Остаётся только зациклить её с условием или поставить на триггер PLAYER_ADD_HERO_TRIGGER.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#887
Старый 10.01.2013, 17:34
  #887
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30680
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30680
По умолчанию
Re: Скрипты

А как быть с привязкой баттлскрипта к герою? Дело в том, что мне хотелось бы нанимать такого героя, скажем, в таверне, но в этом случае он появляется на карте без привязанного скрипта и теряет свои функции.
Прописать Вашу функцию в общем комбат-скрипте (в виде мода), с проверкой на имя героя. Думаю, так.
---
А, ну вариант РедХевена проще, пожалуй.
Ment вне форума
Ответить с цитированием
#888
Старый 10.01.2013, 18:15
  #888
^
JonnyP
📖
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
По умолчанию
Re: Скрипты

HeroistА как быть с привязкой баттлскрипта к герою? Дело в том, что мне хотелось бы нанимать такого героя, скажем, в таверне, но в этом случае он появляется на карте без привязанного скрипта и теряет свои функции.
Есть ли функция, чтобы, если на карте появился такой герой, автоматически привязывать к нему баттлскрипт? Или есть другой путь?

SetHeroCombatScript(heroname, script)
- это не самый лучший вариант. Скрипт будет работать только если герой находится под управлением ИИ + к этому будет сбрасываться при потере этого героя.

Уже описывал в соседней теме :
делается путем добавления нескольких строк скрипта в файл 'combat-common.lua' - файл запускается игрой при старте любого боя.
Если надо могу расписать подробнее. Но как всегда лучший вариант - это повскрывать чужие карты, с использованием боевых скриптов.
JonnyP вне форума
Ответить с цитированием
#889
Старый 10.01.2013, 18:55
  #889
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

JonnyP- это не самый лучший вариант. Скрипт будет работать только если герой находится под управлением ИИ + к этому будет сбрасываться при потере этого героя.
Да, будет сбрасываться, но это можно исправить с помощью цикла или триггера, а функция нормально работает и с героями игрока-человека.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#890
Старый 10.01.2013, 19:28
  #890
^
JonnyP
📖
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHeroДа, будет сбрасываться, но это можно исправить с помощью цикла или триггера, а функция нормально работает и с героями игрока-человека.
Косяк в мануале или гугл неверно переводит?
Эта функция позволяет сказать, какой сценарий будет выполняться при борьбе с этим героем.Скрипт работает только если герой находится под контролем AI игроков, и никаких других сценариев установлен на месте, гдебоевые происходит (город, гарнизон и т.д.).Сценарий сбрасывается автоматически, когда игрок теряет как-то этого героя.
JonnyP вне форума
Ответить с цитированием
#891
Старый 10.01.2013, 19:36
  #891
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

В мануале много чего написано, но далеко не всё из этого правда. Хотя, может быть, что патчи этот косяк исправили, а руководство так и осталось, каким было.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#892
Старый 10.01.2013, 19:45
  #892
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

спасибо за ответы, а я нашел интереснейшую старую-добрую карту "беженец" и немного заигрался =)
---

а) SetHeroCombatScript(heroname, script) --- т.е вешает на вашего героя комбат триггер до конца его жизни? Просто у меня герой с комбат триггером является основным, т.е при его смерти все-равно будет loooooose, так что если повесить 1 раз в начале игры, это то, что мне нужно.
б) Что касается 'combat-common.lua' , я так и не нашел в той теме пояснений. Что именно считается, как "несколько строк" ? Хотелось бы по-подробнее, если можно.
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#893
Старый 10.01.2013, 20:38
  #893
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

SetHeroCombatScript вешает скрипт на героя на то время, пока он есть на карте.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#894
Старый 10.01.2013, 20:39
  #894
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

SetHeroCombatScript('Alaric', CombatScript.lua) --- не пашет. пишет ошибку value was nill.
В мануле надо было писать .lua ,но я сначала .xdb тоже писал, все-равно.
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#895
Старый 10.01.2013, 20:42
  #895
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Так путь к файлу должен быть в кавычках и со слешем.
'/CombatScript.xdb#xpointer(/Script)'
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#896
Старый 10.01.2013, 20:45
  #896
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

SetHeroCombatScript('Alaric', 'CombatScript.lua') --- script doesnt exists как-то так. Аналогично с окончанием .xdb
Может быть, надо путь по-длиннее указывать?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#897
Старый 10.01.2013, 20:50
  #897
^
JonnyP
📖
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
По умолчанию
Re: Скрипты

HeroistЧто касается 'combat-common.lua' , я так и не нашел в той теме пояснений. Что именно считается, как "несколько строк" ? Хотелось бы по-подробнее, если можно.
1.В основном файле 'MapScript.lua' прописываем строки. (введем переменную 'vasya')
	
vasya = "Скриптовое имя героя";
SetGameVar("vasya", vasya); 


2.Создадим новый lua файл в архиве карты в папке 'scripts' . Пусть будет 'battle.lua'
3.Копируем файл 'combat-common.lua' в архив с картой и дописываем несколько строк.
	
sleep(1);
vasya = GetGameVar("vasya");
if GetHeroName(GetAttackerHero()) == vasya then
    doFile("/scripts/battle.lua");
    print("Вася вступил в бой!");
    else if GetHeroName(GetDefenderHero()) == vasya then
        doFile("/scripts/battle.lua");
        print("Вася вступил в бой!");
    end;
end; 


4.открываем созданный файл 'battle.lua' и пишем следующее:
	
vasya = GetGameVar("vasya");
if GetHeroName(GetAttackerHero()) == vasya then
    human = ATTACKER;
    comp = DEFENDER;
    human_hero = GetAttackerHero();
    print("игрок - атакующий");
    else human = DEFENDER;
    comp = ATTACKER;
    human_hero = GetDefenderHero();
    print("игрок - обороняющийся");
end; 



Переменные 'human','comp','human_hero','comp_hero' введены для удобства - они потребуются практически во всех функциях боевого скрипта, независимо от того, игрок нападает или обороняется. Также для удобства print-ы для вывода инфы в консоль.
Осталось лишь добавить доп условия и их следствия в функции Prepare() или Start() - тут уже фантазия автора карт

Ps: Из пункта 3 видно, что боевой скрипт не будет запускатся, если герой 'vasya' в нем не учавствует.

Pss: Такой подход является более универсальным, в отличие от SetHeroCombatScript, в котором потерей героя может считаться и его сбегание с поля боя с последующим выкупом его в таверне.
JonnyP вне форума
Ответить с цитированием
#898
Старый 10.01.2013, 20:53
  #898
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Heroist, я написал правильный путь к файлу сообщением выше.
JonnyP, сбегание - тоже поражение в игре => никакого последующего выкупа.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#899
Старый 10.01.2013, 20:58
  #899
^
JonnyP
📖
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHeroJonnyP, сбегание - тоже поражение в игре => никакого последующего выкупа.
Ну почему ж. Похитранил героя - сбежал, докупил армию - снова напал. Не обязательно делать задание 'герой должен выжить'
JonnyP вне форума
Ответить с цитированием
#900
Старый 10.01.2013, 23:04
  #900
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

RedHeavenHero - SetHeroCombatScript('Alaric', '/CombatScript.xdb#xpointer(/Script)') --- все та же ошибка.

JonnyP - сейчас попробую сделать на другой карте.

Добавлено через 2 часа 1 минуту
печально...отчего-же не работает...
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
Ответ
Страница 60 из 260


Опции темы



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


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

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