Перейти к содержанию

Сообщения от Скрипты

Аватар пользователя
12 лет назад
хм. странно, что я это не заметил. спасибо, сейчас попробую.

Добавлено через 1 час 42 минуты
if GetPlayerResource(1, k1) >= res1{k1+1} then

Судя по всему, здесь ошибка. "attemt to call table value", как-то так. Как можно заменить? (массив мне обязателен, очень много составляющих).
Аватар пользователя
12 лет назад
res1{k1+1} - скобки не те, должны быть [], если подразумевается доступ по индексу.
Аватар пользователя
12 лет назад
а, да. Чет я тупанул ;) Спасибо!

Добавлено через 59 минут
Тогда такой вопрос: можно ли применять значение из массива для текстовых сообщений? Например...: "ваши войска + < value=army[3] >" ?
Аватар пользователя
12 лет назад
Да, но задаются они в скрипте
{"путь к тексту"; army=army[3]}
что означает, что в тексте тег < value=army > будет заменен на третий элемент массива.
Аватар пользователя
12 лет назад
Ясно. Еще раз огромное спасибо!

Добавлено через 1 час 29 минут
Извиняюсь, но у меня еще один вопрос:
-Как мне посчитать общее число объектов (допустим, тех же многострадальных крестьянских хижин) на карте?
Общее имя я выдать им могу. Но вот как вывести все это в общую числовую переменную?
Аватар пользователя
12 лет назад
Вот так можно подсчитать общее число всех крестьянских хижин на карте:
peasant_huts_n = length(GetObjectNamesByType("PEASANT_HUT"))
Аватар пользователя
12 лет назад
Ах да! Я вообще забыл про эту ф-ию определения длины массива!

Добавлено через 25 минут
ан, нет. а если немного усложнить задачу? хижины, принадлежащие только игроку 2?
В ответ пользователю Heroist
Аватар пользователя
12 лет назад
Автопереведено
peasant_huts_n = 0
for i,hut in GetObjectNamesByType("PEASANT_HUT") do
if GetObjectOwner(hut) == 2 then
peasant_huts_n = peasant_huts_n + 1
end
end
Аватар пользователя
12 лет назад
а как же это....
блин, надо точно разобраться, как это for работает. все никак не найду времени. штука то полезная)
n-ый раз спасибо!
В ответ пользователю Heroist
Аватар пользователя
12 лет назад
Heroist
а как же это....
блин, надо точно разобраться, как это for работает. все никак не найду времени. штука то полезная)
n-ый раз спасибо!

Цикл со счетчиком. В приведенном выше примере будет выполнять код для каждого элемента массива GetObjectNamesByType. i,hut-индексы, при этом hut обозначает текущий индекс элемента массива, i - хз для чего нужен, но без него не работает.
Аватар пользователя
12 лет назад
i -- это переменная, которая в процессе цикла получает постоянную прибавку на единицу. После вызова цикла соответственно в i будет лежать количество его выполнений (не помню, есть ли тут функция "бряк", но в языках с этой функцией может быть актуально).
Аватар пользователя
12 лет назад
Вообще в данном случае цикл выполнит код для всех элементов массива. i - ключ (индекс) элемента массива, необязательно число и необязательно проходит их в порядке возрастания, а hut - значение элемента массива.

Добавлено через 58 секунд
Мент, какой бряк, что он делает или должен делать?
Аватар пользователя
12 лет назад
break, мгновенно завершает цикл при вызове.
Аватар пользователя
12 лет назад
А! Ну это присутствует.
Аватар пользователя
12 лет назад
Спасибо за объяснения, народ! Просто здесь for несколько отличается, как мне показалось, от его собратьев в других языках программинга.

Добавлено через 5 часов 17 минут
Ошибка "quantity cannot be negative" - может быть вызвана тем, что переменная равна 0? Считается ли это число отрицательным в скриптах?

Статистика

Приветствуем новейшего участника: recijeb

Сейчас на сайте 1 пользователей 1252 гостей