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

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

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

Ответ
Страница 73 из 267
 
Опции темы
#1081
Старый 25.03.2013, 19:59
  #1081
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
По умолчанию
Re: Скрипты

Можно делать иначе, но тогда надо исправлять пути. Поэтому лучше сделать в точности, как там, чтобы не пришлось ничего менять. Ну и да, учтите, что там скорее всего будет несколько файлов, которые Вам нужны.
Ment вне форума
Ответить с цитированием
#1082
Старый 25.03.2013, 20:32
  #1082
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
По умолчанию
Re: Скрипты

Как раз там я и прокололся, оттого ничего и не работало =) Взял 1 файл, когда надо было больше =)

Спасибо всем
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1083
Старый 26.03.2013, 11:04
  #1083
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

помогите пожалуйста
почему этот скрипт
	garrisons={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
for j, gar in garrisons do
	Trigger(5, gar, 'capture_gar')
	garrisons[gar] = {}
	for i = 0, 6 do
		local t, n = GetObjectArmySlotCreature(gar, i)
		garrisons[gar][i] = {t, n}
	end
end

function capture_gar(oldowner, newowner, hero, gar)
	for i = 0, 6 do
		if garrisons[gar][i][1] ~= 0 then
			AddObjectCreatures(gar, garrisons[gar][i][1], garrisons[gar][i][2]*2)
		end
	end
	DenyGarrisonCreaturesTakeAway(gar, 1)
	Trigger(5, gar, nil)
end

выдает эту ошибку :
invalid parameter type: object name must be string
JORAJAN вне форума
Ответить с цитированием
#1084
Старый 26.03.2013, 11:54
  #1084
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
По умолчанию
Re: Скрипты

Создайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.
Ment вне форума
Ответить с цитированием
#1085
Старый 26.03.2013, 12:16
  #1085
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

MentСоздайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.

извините но не разбираюсь в программировании и естественно не фига не понял
не могли бы вы помочь мне ?
JORAJAN вне форума
Ответить с цитированием
#1086
Старый 26.03.2013, 15:49
  #1086
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
По умолчанию
Re: Скрипты

	garrison_names={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
garrisons={}
for j, gar in garrison_names do
	Trigger(5, gar, 'capture_gar')
	garrisons[gar] = {}
	for i = 0, 6 do
		local t, n = GetObjectArmySlotCreature(gar, i)
		garrisons[gar][i] = {t, n}
	end
end

function capture_gar(oldowner, newowner, hero, gar)
	for i = 0, 6 do
		if garrisons[gar][i][1] ~= 0 then
			AddObjectCreatures(gar, garrisons[gar][i][1], garrisons[gar][i][2]*2)
		end
	end
	DenyGarrisonCreaturesTakeAway(gar, 1)
	Trigger(5, gar, nil)
end


Добавлено через 10 минут
MentСоздайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.
Действительно, цикл выполняет блок для тех значений, которые сам и создал.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

извините но не разбираюсь в программировании и естественно не фига не понял
не могли бы вы помочь мне ?
	
Если честно, не факт, что заработает, просто не уверен, что переменная правильно проинициализируется, как трёхмерный массив. И да, возможно, просто стоит делать способом пусть и менее красивым, но более формальным, который точно сработает, для этого надо постараться не делать трёхмерных массивов, да и двумерные нежелательны. Но это, если не сможем сделать рабочий вариант "красивого" варианта.
Ment вне форума
Ответить с цитированием
#1088
Старый 26.03.2013, 21:02
  #1088
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
По умолчанию
Re: Скрипты

Проверил. Ошибка всё же происходит из-за того, что после выполнения блока для всех гарнизонов итератор начинает перебирать созданные им за это время массивы с информацией о войсках; этим и объясняется ошибка invalid parameter type: object name must be string (а оно не string, а table)
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1089
Старый 26.03.2013, 21:43
  #1089
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

работает зациклилось
но на второй раз не удваивается войска в гарнизоне а ставит столько же
надо что бы каждый раз при зачистке гарнизона войска удваивались
JORAJAN вне форума
Ответить с цитированием
#1090
Старый 26.03.2013, 21:48
  #1090
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
По умолчанию
Re: Скрипты

	garrison_names={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
garrisons={}
for j, gar in garrison_names do
	Trigger(5, gar, 'capture_gar')
	garrisons[gar] = {}
	for i = 0, 6 do
		local t, n = GetObjectArmySlotCreature(gar, i)
		garrisons[gar][i] = {t, n}
	end
end

function capture_gar(oldowner, newowner, hero, gar)
	for i = 0, 6 do
		if garrisons[gar][i][1] ~= 0 then
			garrisons[gar][i][2] = garrisons[gar][i][2] * 2
			AddObjectCreatures(gar, garrisons[gar][i][1], garrisons[gar][i][2])
		end
	end
	DenyGarrisonCreaturesTakeAway(gar, 1)
	Trigger(5, gar, nil)
end
Но геометрическая прогрессия - опасная вещь
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1091
Старый 27.03.2013, 12:33
  #1091
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

я подумал что математическую прогрессию будет сложнее устроить
но я решил компенсировать это силой монстров
геометрическая тоже пойдет
буду тестировать
JORAJAN вне форума
Ответить с цитированием
#1092
Старый 27.03.2013, 14:23
  #1092
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
По умолчанию
Re: Скрипты

народ, у меня такой вопрос,
Я создал нормальный такой talkbox. Прописал там все, что надо. Затем создал функцию, все работает. Однако, возник вопрос:
Как быть, если мне надо, скажем, чтоб герой, при касании объекта, получал вопрос с вариантами ответа, каждый из которых означал выдачу ему артефакта? Функцию talkboxa придется заносить внутрь touch trigger функции (heroname) с прописанием %heroname, или можно оставить её отдельно, но тогда скрипт просто не понимает, кому ему давать артефакт. Как быть?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1093
Старый 27.03.2013, 14:46
  #1093
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
По умолчанию
Re: Скрипты

В триггер, да... А в чём проблема?
Ment вне форума
Ответить с цитированием
#1094
Старый 27.03.2013, 14:57
  #1094
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 15810
Выставка наград
По умолчанию
Re: Скрипты

Проблема в том, что при написании функции внутри функции, вторая перестает воспринимать команды heroname, приходится писать %heroname, а тут уже несуществующую ошибку выдает HeroesV_Map_Script_Editor (как-то так), и перестает видеть остальные настоящие ошибки скрипта
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1095
Старый 27.03.2013, 15:07
  #1095
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 31052
По умолчанию
Re: Скрипты

Гм-гм, кажется, понимаю. То есть проблема в том, что talkbox ссылается на функции, но не передаёт им в качестве аргумента heroname? А если сделать heroname глобальной переменной?
Ment вне форума
Ответить с цитированием
Ответ
Страница 73 из 267


Опции темы



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


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

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