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

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

Аватар пользователя
Вам спасибо, все получилось на ура =)

Добавлено через 6 минут
да, кстати, можно-ли сделать объект недоступным только для определенного игрока, как регион?

если привести пример, мне нужно, чтобы игрок 3 мог спокойно проходить через заставу, а игрок 1 мог только тыкаться в неё, и получить разные задания, но без битвы или захвата заставы. Или придется ставить перед ней мини-регион?

Whatever
В ответ пользователю Heroist
Аватар пользователя
Heroist
Вам спасибо, все получилось на ура =)

Добавлено через 6 минут
да, кстати, можно-ли сделать объект недоступным только для определенного игрока, как регион?

если привести пример, мне нужно, чтобы игрок 3 мог спокойно проходить через заставу, а игрок 1 мог только тыкаться в неё, и получить разные задания, но без битвы или захвата заставы. Или придется ставить перед ней мини-регион?
Можно, например, временным включением/выключением триггера:
function enabling()
while 1 do
SetObjectEnabled('garrison', nil);
Trigger(4, 'garrison', 'kvest');
while GetCurrentPlayer() == 1 do
sleep(1);
end;
SetObjectEnabled('garrison', 1);
Trigger(4, 'garrison', nil);
while GetCurrentPlayer() ~= 1 do
sleep(1);
end;
end;
end;
Тогда все игроки, кроме первого, смогут ходить через заставу. А первый сможет только получать от неё квесты.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
да, кстати, еще интересно, я пишу такой код:

function Prepare ()
hero = GetDefenderHero ()
x1 = GetDefenderCreatures ()
end
function Start ()
if GetCreatureType (x1[0]) == 114 then
SummonCreature (DEFENDER , 122, 1, 12, 1)
SummonCreature (DEFENDER , 122, 1, 12, 10)
end
end

Но написано, что неправильный аргумент при вызове функции GetCreatureType.
Дело в том, что до этого я активирую startcombat, может быть, он не принимает монстра 114 за защищающегося?

Whatever
В ответ пользователю Heroist
Аватар пользователя
У вас массив юнитов определяется в подготовке к бою, и функция к этому времени их не чувствует. Нужно определение х1 переместить в функцию старт самым первым.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
хм, странно, вчера еще помню не работало, а сейчас вроде все нормально...

снова спасибо, выручаете прямо меня =)

Добавлено через 24 минуты
RedHeavenHero
Можно, например, временным включением/выключением триггера:
function enabling()
while 1 do
SetObjectEnabled('garrison', nil);
Trigger(4, 'garrison', 'kvest');
while GetCurrentPlayer() == 1 do
sleep(1);
end;
SetObjectEnabled('garrison', 1);
Trigger(4, 'garrison', nil);
while GetCurrentPlayer() ~= 1 do
sleep(1);
end;
end;
end;
Тогда все игроки, кроме первого, смогут ходить через заставу. А первый сможет только получать от неё квесты.


Я немного не понял, а как потом снять блокировку для игрока 1, например, с добавлением новой переменной.
Т.е. где-то в другом месте я указываю "a = 1", а не 0, и тогда застава открывается и для меня.

Whatever
В ответ пользователю Heroist
Аватар пользователя
Да, примерно так. Когда переменная stop будет равна 1, тогда цикл оборвётся в нужном месте, и все смогут пользоваться гарнизоном как обычно.
stop = 0;
function enabling()
while 1 do
SetObjectEnabled('garrison', nil);
Trigger(4, 'garrison', 'kvest');
repeat
sleep(1);
until GetCurrentPlayer() ~= 1 or stop == 1;
SetObjectEnabled('garrison', 1);
Trigger(4, 'garrison', nil);
repeat
sleep(1);
until GetCurrentPlayer() == 1 or stop == 1;
if stop == 1 then
break;
end;
end;
end;
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
r=random(5)

function cr()

if IsHeroAlive('Sun')
then
OpenCircleFog(r,r,0,10,PLAYER_1)
OpenCircleFog(0,0,0,9999,PLAYER_1)
end;
end;
Trigger(NEW_DAY_TRIGGER,'cr')

Этот скрипт каждый день пока жив герой Sun(ну я карту делаю это один из глвных новых персонажей созданных с нуля)должен открывать случайный кусочек карты ,но он неоткрывет:mad: :confused: !

Добавлено через 3 минуты
Скажите почему.Пожалуйста а то не смогу спать спокойно(вылечил бессонницу:) не хочу опять страдать:( )
Аватар пользователя
Sun -- это точно нужное имя героя? Вы его задавали в Shared?
r=random(5) -- надо засунуть в тело функции, иначе только один раз вызовется.
OpenCircleFog(0,0,0,9999,PLAYER_1) -- это для теста, я верно понял?
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Sun -- это точно нужное имя героя? Вы его задавали в Shared?
r=random(5) -- надо засунуть в тело функции, иначе только один раз вызовется.
OpenCircleFog(0,0,0,9999,PLAYER_1) -- это для теста, я верно понял?

Да в shared задано.

Понятно в тело значит в тело.

Да для теста.

Добавлено через 2 минуты
А как сделать чтобы было рандомное число а то только пять и всё?
Аватар пользователя
Больше не вижу пока, почему он может не работать ( Консоль что-нибудь пишет?
Кстати, у скрипта есть несколько минусов. В частности он открывает регионы только по диагонали (чтобы такого не было, нужны две переменные: r1 и r2). Также их лучше в функции OpenCircleFog(r,r,0,10,PLAYER_1) умножать на что-то, а то разброс в пять клеток не особо велик. Но это уже тонкости.
 

К А
Стикеры GBF в Telegram
Сейчас попробую.Спасибо.

Добавлено через 1 минуту
Сейчас попробую.Спасибо.

P.S разброс в 700 нормально будет?
Аватар пользователя
разброс в 700 нормально будет?
Думаю, много. Не помню такого большого размера карты.
 

К А
Стикеры GBF в Telegram
А потом например как город захватишь можно прикратить карту открывать?

Добавлено через 2 минуты
Да 700 много размер карты 136 на 136
Аватар пользователя
А потом например как город захватишь можно прикратить карту открывать?
Можно. Поставьте триггер на захват объекта и переменную, которая равна 0, если объект не захвачен и 1 в противном случае. А в if IsHeroAlive('Sun') добавить тогда проверку на эту переменную, чему она равна.
 

К А
Стикеры GBF в Telegram
Спасибо.А срегионом може тоже самое проделать? Тоесть: если run=1 то непроходишь.А если run=0 то проходишь.Однако это будет вешаться на палатку ключника ну тут я теперь заню,отключить обьект и повесить триггер что при столкновении run=0.

Статистика

Приветствуем новейшего участника: Вязов Анатолий Аркадьевич