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

Сообщения от Текущие вопросы и ответы по редактору карт

Аватар пользователя
12 лет назад
Автопереведено
ага
«Пользователя RedHeavenHero01 не существует».
В ответ пользователю MasteR
Аватар пользователя
12 лет назад
Juss456
Не работает. Т.к. герой сидит внутри города, для игры он как объект не существует
Как объект - да, но как герой он существует для скриптов даже если он мертв или в таверне.
Аватар пользователя
12 лет назад
Остаётся вопрос по TalkBox

function TalkBF(num)
tlkb=num;
end;

TalkBoxForPlayers(1, '', '', GetMapDataPath().."skolko.txt", '', "TalkBF", 0, GetMapDataPath().."skolko.txt", '', 0, GetMapDataPath().."skolko1.txt", GetMapDataPath().."skolko2.txt", GetMapDataPath().."skolko3.txt", GetMapDataPath().."skolko4.txt");
Вместо иконки белый экран. Н это и понятно, не знаю, где подходящую искать. Основной текст не отображается(справа от иконки). Функция не работает так как надо

Добавлено через 1 минуту
RedHeavenHero
Как объект - да, но как герой он существует для скриптов даже если он мертв или в таверне.
function ubratF()
while (ubr==0) do
sleep(5);
for i=0,6 do
local t1, n1=GetObjectArmySlotCreature("RedHeavenHero01", i);
if (t1~=0) and (n1>1) then
RemoveHeroCreatures("RedHeavenHero01", t1, n1/4);
end;
end;
sleep(8);
MessageBox(GetMapDataPath().."chuma.txt");
ubr=1;
end;
sleep(5);
end;

startThread(ubratF);
этот кусок не работает
Аватар пользователя
12 лет назад
Тут можно использовать только названные выше мною функции и ещё некоторые, которые работают только с героями. GetObjectArmySlotCreature нельзя.
В ответ пользователю MasteR
Аватар пользователя
12 лет назад
Juss456
Остаётся вопрос по TalkBox

function TalkBF(num)
tlkb=num;
end;

TalkBoxForPlayers(1, '', '', GetMapDataPath().."skolko.txt", '', "TalkBF", 0, GetMapDataPath().."skolko.txt", '', 0, GetMapDataPath().."skolko1.txt", GetMapDataPath().."skolko2.txt", GetMapDataPath().."skolko3.txt", GetMapDataPath().."skolko4.txt");
Вместо иконки белый экран. Н это и понятно, не знаю, где подходящую искать. Основной текст не отображается(справа от иконки). Функция не работает так как надо


if ((dd==3) and (tlkb==1)) or ((dd==4) and (tlkb==2)) or ((dd==5) and (tlkb==3)) or ((dd==6) and (tlkb==4)) then

какой бы вариант в talkbox ни выбрал, всегда выполняется условие в первой скобке

Добавлено через 55 секунд
RedHeavenHero
Тут можно использовать только названные выше мною функции и ещё некоторые, которые работают только с героями. GetObjectArmySlotCreature нельзя.
Ясно, значит через ж придётся делать. спасибо
В ответ пользователю MasteR
Аватар пользователя
12 лет назад
Первый аргумент в вызываемую функцию - номер игрока, а второй - ответ.

Почему же сразу через ж?
Можно через цикл.
В ответ пользователю RedHeavenHero
Аватар пользователя
12 лет назад
RedHeavenHero
Первый аргумент в вызываемую функцию - номер игрока, а второй - ответ.

Почему же сразу через ж?
Можно через цикл.
ааа, вот оно что.... Да, логично) Всё понятно стало, спс) а где адрес иконки брать и как он должен выглядеть? Почему основной текст в середине токбокса не отображается?

Добавлено через 22 минуты
RedHeavenHero

Почему же сразу через ж?
Можно через цикл.

вот так примерно?

function ubratF()
while (ubr==0) do
sleep(5);
for i=1,14 do
local t1=GetHeroCreatures("RedHeavenHero01", i);
if (t1>1) then
RemoveHeroCreatures("RedHeavenHero01", i, t1/4);
end;
end;
for i=106,112 do
local t1=GetHeroCreatures("RedHeavenHero01", i);
if (t1>1) then
RemoveHeroCreatures("RedHeavenHero01", i, t1/4);
end;
end;
sleep(8);
MessageBox(GetMapDataPath().."chuma.txt");
ubr=1;
end;
sleep(5);
end;
В ответ пользователю MasteR
Аватар пользователя
12 лет назад
Путь к текстуре должен быть таким. Вначале обычный путь относительно папки дата, только с перевернутыми слешами, после расширения xdb следует кусок #xpointer(/Texture)

Примерно так. Только вместо t1/4 надёжнее использовать ceil(t1/4), чтобы не возникали ошибки при количестве <4. И я не совсем понимаю, зачем там while.
Аватар пользователя
12 лет назад
цикл можно и break закрывать. чтобы не было лишней нагрузки на скрипт.
Аватар пользователя
12 лет назад
А! Ну тут можно и if-then обойтись.
Аватар пользователя
12 лет назад
Ага, точно, дошло.

Тогда там цикл и вправду не нужен.
Аватар пользователя
12 лет назад
Функция запускается через startThread, поэтому добавил while
Аватар пользователя
12 лет назад
Если функция запускается startThread, это ещё не значит, что в функции обязательно должен быть цикл.
В ответ пользователю MasteR
Аватар пользователя
12 лет назад
Juss456

Вместо иконки белый экран. Н это и понятно, не знаю, где подходящую искать. Основной текст не отображается(справа от иконки). Функция не работает так как надо
Открываешь карту архиватором и кидаешь туда папку из архива.
Насчет картинки- вот пример
'/UI/Tavern/RumorsIcon.(Texture).xdb#xpointer(/Texture)'
Вложения 1
1 файл • Общий размер: 665 B
В ответ пользователю RedHeavenHero
Аватар пользователя
12 лет назад
RedHeavenHero
Если функция запускается startThread, это ещё не значит, что в функции обязательно должен быть цикл.
Ну да, здесь можно и без цикла обойтись. Спасибо)

Добавлено через 38 секунд
Олегарх
Открываешь карту архиватором и кидаешь туда папку из архива.
Насчет картинки- вот пример
'/UI/Tavern/RumorsIcon.(Texture).xdb#xpointer(/Texture)'
Чуть позже опробую. Спасибо большое)

Статистика

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

Сейчас на сайте 6 пользователей 1187 гостей