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

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

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

Ответ
Страница 59 из 260
 
Опции темы
#871
Старый 09.01.2013, 16:16
  #871
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14598
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14598
Выставка наград
По умолчанию
Re: Скрипты

Добавлено через 8 минут

function Start()
hero = GetAttackerHero
UnitCastGlobalSpell(hero, 54)
end

пишет в панели "wrong type of argument 1 when calling function UnitGlobalCast" , что не так?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#872
Старый 09.01.2013, 16:19
  #872
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

HeroistДобавлено через 8 минут

function Start()
hero = GetAttackerHero
UnitCastGlobalSpell(hero, 54)
end

пишет в панели "wrong type of argument 1 when calling function UnitGlobalCast" , что не так?
После GetAttackerHero должны стоять скобки (). Эта функция всегда возвращает 'attacker-hero' так что можно её не использовать.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

ага, спс это работает.

А можно ли сделать случайный выбор заклинания? Сейчас поясню:

function Start()
hero = GetAttackerHero ()
cast = random (5)
if cast == 0 then
UnitCastGlobalSpell(hero, 54)
elseif cast == 1 then
UnitCastGlobalSpell(hero, 24)
elseif cast == 2 then
UnitCastGlobalSpell(hero, 25)
elseif cast == 3 then
UnitCastGlobalSpell(hero, 28)
elseif cast == 4 then
UnitCastGlobalSpell(hero, 29)
elseif cast == 5 then
UnitCastGlobalSpell(hero, 23)
end
end

?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#874
Старый 09.01.2013, 16:32
  #874
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

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

ай-ай-ай, жалко. А как же быть, можно ли как-нибудь сделать случайный каст? Может быть вызывать random каждый день, а потом в баттл скрипте его запрашивать?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#876
Старый 09.01.2013, 16:54
  #876
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Можно после каждой битвы:
	function rndcast()
	while 1 do
		SetGameVar('spell', random(5))
		local index = GetLastSavedCombatIndex()
		while index == GetLastSavedCombatIndex() do
			sleep(10)
		end
	end
end
startThread(rndcast)
А в боевом скрипте строчкой
cast = GetGameVar('spell')+0
заменить строку
cast = random (5)
Да, и random(5) вернёт случайное число от 0 до 4. То есть random(n) возвращает случайное число от 0 до n-1.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

да, теперь действительно кастует рандомно. Теперь, однако, ошибка в другом, никакие заклинание, кроме молитвы, он скастовать не может. Я ему прописываю вроде бы, массовые ускорение, каменную кожу и тп, а он пишет, что "hero can't cast #25, 24 и тп"
Вот вырезка скрипта опять таки:

if cast == 0 then
UnitCastGlobalSpell(hero, 54) --- молитва, работает
elseif cast == 1 then
UnitCastGlobalSpell(hero, 24) --- спешка
elseif cast == 2 then
UnitCastGlobalSpell(hero, 25) --- каменная кожа
elseif cast == 3 then
UnitCastGlobalSpell(hero, 28) --- bloodlust
elseif cast == 4 then
UnitCastGlobalSpell(hero, 29) --- отклонение
elseif cast == 5 then
UnitCastGlobalSpell(hero, 23) --- сила пророка
end

Поясните, пожалуйста, этот момент, в остальном вроде, наступает ясность.

Добавлено через 1 минуту
тьфу, простите, вопрос снят. надо mass spell ы было искать =)

Большое Вам спасибо.
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#878
Старый 09.01.2013, 17:15
  #878
^
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 вне форума
Ответить с цитированием
#879
Старый 09.01.2013, 17:18
  #879
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14598
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14598
Выставка наград
По умолчанию
Re: Скрипты

да, кстати, нехватка маны тоже, проверил =)
А сделать заклинания бесплатными при этом автокасте возможно?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#880
Старый 09.01.2013, 17:24
  #880
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

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

да, я уже сделал. Просто в начале боя узнавал сколько у него маны, потом давал 100, а после рандом каста возвращал столько, сколько было в начале боя. Большое Вам спасибо! Теперь мне стало нАмного понятнее =)

Добавлено через 3 часа 55 минут
назрел новый вопрос:

-А как сделать проверку на имя героя при старте боя?
Я записываю так:

hero = GetAttackerHero ()
if GetHeroName(hero) == 'Alaric' then

Но ничего не работает...Даже если записывать проще:

hero = GetAttackerHero ()
if hero == 'Alaric'

Ps: Я вас, наверно, уже достал, но очень хочется в этом разобраться)
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#882
Старый 09.01.2013, 22:02
  #882
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

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

Батл скрипт:

function Start()
hero = GetAttackerHero ()
if GetHeroName("hero") == 'Alaric' then
cast = GetGameVar('spell')+0
mana = GetUnitManaPoints (hero)
SetUnitManaPoints (hero, 100)
if cast == 0 then
UnitCastGlobalSpell(hero, 54)
elseif cast == 1 then
UnitCastGlobalSpell(hero, 221)
elseif cast == 2 then
UnitCastGlobalSpell(hero, 218)
elseif cast == 3 then
UnitCastGlobalSpell(hero, 220)
elseif cast == 4 then
UnitCastGlobalSpell(hero, 219)
elseif cast == 5 then
UnitCastGlobalSpell(hero, 216)
end
SetUnitManaPoints (hero, mana)
end

Скрипт:

function rndcast()
while 1 do
SetGameVar('spell', random(6))
local index = GetLastSavedCombatIndex()
while index == GetLastSavedCombatIndex() do
sleep(10)
end
end
end
startThread(rndcast)
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#884
Старый 09.01.2013, 22:10
  #884
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

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

да, опять я глупую ошибку допустил, спасибо. там еще end'а не хватало.

Добавлено через 13 часов 59 минут
так, остался самый главный вопрос на сегодня:

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


Опции темы



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


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

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