Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#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 вне форума
Ответить с цитированием