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

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

Аватар пользователя
14 лет назад
Но Вы так не обнулите, он же обнулится и снова активируется... Вот тут:
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
Обнулится, не спорю.
Аватар пользователя
14 лет назад
Кировчанин,это базовые скрипты... мэссаджбокс и ремовобджект...

Скопируйте это к себе в файл "MapScript.lua"

function hatF ()
Trigger(OBJECT_TOUCH_TRIGGER, "hat" nil );
MessageBox (GetMapDataPath().."text.txt");
end;
Trigger(OBJECT_TOUCH_TRIGGER, "hat" "hatF" );

Создайте файл в юникоде с названием text и поместите в архив с данными карты,в нём напишите сообщение,создайте объект (в Вашем случае крестьянская хижина, назовите его "hat" в древе объекта,которое будет находится справа.

Добавлено через 1 минуту
Тоесть нужно сначала активировать триггер,а потом уже обнулить? Сейчас попробую

Добавлено через 8 минут
Может я чего-то не понял,что-то недописал, но скрипт всёравно не работает :( на данный момент он выглядит так:

function dopF ()
prog = 1;
MessageBox (GetMapDataPath().."text10.txt");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", nil );
sleep (5);
SetObjectiveState('obj_dop', OBJECTIVE_ACTIVE);
SetObjectiveVisible( 'obj_dop', true, PLAYER_1 );
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", "dopF" );
end;

function dop1 ()
if prog == 1 then
MessageBox (GetMapDataPath().."text11.txt");

elseif prog == 2 then
SetObjectiveState("obj_dop", OBJECTIVE_COMPLETED);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
AddHeroCreatures("hero", 64, 30);
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", "dop1" );
end;

function fenixF ()
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", nil );
prog = prog +1;
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", "fenixF" );
end;
Аватар пользователя
14 лет назад
Мдям... Я, к сожалению, совершенно не представляю Вашей задумки, но скорее всего строка
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
должна находиться после строки
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
Также строка Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", "dop1" ); определённо должна быть после end'а, а не до. Также строка Trigger(OBJECT_TOUCH_TRIGGER, "fenix", "fenixF" ); должна находиться после ближайшего енда, а не до.
Аватар пользователя
14 лет назад
Хорошо,сейчас порасставляю енды... но вот этого непонял:
но скорее всего строка
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
должна находиться после строки
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );


Добавлено через 7 минут
Кое-что заработало...
Теперь выводится сообщение,которое я хотел,если prog равняется одному,триггер не обнулился,всё как задумано, НО почему-то не сработала выдача задания,основной триггер,там где SetObjectiveState... однако прогресс есть. На данный момент скрипт выглядит так:

function dopF ()
prog = 1;
MessageBox (GetMapDataPath().."text10.txt");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", nil );
sleep (5);
SetObjectiveState('obj_dop', OBJECTIVE_ACTIVE);
SetObjectiveVisible( 'obj_dop', true, PLAYER_1 );
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", "dopF" );
end;

function dop1 ()
if prog == 1 then
MessageBox (GetMapDataPath().."text11.txt");

elseif prog == 2 then
SetObjectiveState("obj_dop", OBJECTIVE_COMPLETED);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
AddHeroCreatures("hero", 64, 30);
end;
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", "dop1" );

function fenixF ()
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", nil );
prog = prog +1;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", "fenixF" );
Аватар пользователя
14 лет назад
Такая же ошибка, уберите Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", "dopF" ); ниже енда.
14 лет назад
function dopF (heroname)
prog = 1
MessageBox (GetMapDataPath().."text10.txt");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", nil );
sleep (5)
SetObjectiveState('obj_dop', OBJECTIVE_ACTIVE);
SetObjectiveVisible( 'obj_dop', true, 1 );
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "wayF", "dopF" );
end;

function dop1 ()
if prog == 1 then
MessageBox (GetMapDataPath().."text11.txt");
end;
if prog == 2 then
SetObjectiveState("obj_dop", OBJECTIVE_COMPLETED);
AddHeroCreatures("hero", 64, 30);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
end;
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", "dop1" );

function fenixF (heroname)
prog = prog +1
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", nil );
end;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", "fenixF" );

Добавлено через 47 секунд
Примерно вот так
Аватар пользователя
14 лет назад
Всё заработало ;) Спасибо вам огромное :) Через денёк-другой выложу готовую карту :)

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

function dopF ()
prog = 1;
MessageBox (GetMapDataPath().."text10.txt");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way", nil );
sleep (5);
SetObjectiveState('obj_dop', OBJECTIVE_ACTIVE);
SetObjectiveVisible( 'obj_dop', true, PLAYER_1 );
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way", "dopF" );

function dop1 ()
if prog == 1 then
MessageBox (GetMapDataPath().."text11.txt");

elseif prog == 2 then
SetObjectiveState("obj_dop", OBJECTIVE_COMPLETED);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", nil );
AddHeroCreatures("hero", 64, 30);
end;
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "way1", "dop1" );

function fenixF ()
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", nil );
prog = prog +1;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "fenix", "fenixF" );
В ответ пользователю AkaR
Аватар пользователя
14 лет назад
Подскажите скрипт,который в разные дни выводит разные сообщения (но в одном регионе),а точнее:
при входе в reg1 на первой неделе-сообщение mes1
при входе в reg1 на второй неделе-сообщение mes2
при входе в reg1 на третьей неделе-сообщение mes3
при входе в reg1 на четвёртой неделе-сообщение mes4
и т.д.
Заранее спасибо!
Аватар пользователя
14 лет назад
Есть функция GetDate, она возвращает дату....
Можно сделать так: Триггер на регион, GetDate в условие, и с помощью elseif варьировать разными датами. (Этой функцией не пользовался, по этому точно не знаю - можно ли возвратить только день или в зависимости от параметра возвратить день, неделю, месяц... Это можно посмотреть в мануале)
Аватар пользователя
14 лет назад
Данная функция может возвратить всё, что угодно: День (абсолютный и относительный), неделю(только относительную), месяц(месяц и есть месяц). Если уж надо что-то слишком мудрёное, то самому написать не сложно из того что есть.
GetDate(week)-возвращает номер недели относительно месяца. (1,2,3,4)
Аватар пользователя
14 лет назад
А что за абсолютный и относительный дни?
В ответ пользователю 32MeTpa
Аватар пользователя
14 лет назад
32MeTpa
А что за абсолютный и относительный дни?
Абсолютный-день с момента начала игры,относительный-день недели или день месяца.
Вроде-бы так.
14 лет назад
Умоляю подскажите как добавить анимацию людям, ну например, когда проходил героев увидел анимацию крестьян что они вилами махали на самой карте, а не в бою, или вот еще латники махали мечами, архидяволы кулаками и тд. Как такое же добавить на свою карту???
Карту создал а ничего интересного в ней нет.:confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused:
Аватар пользователя
14 лет назад
Очень просто: добавляете на карту скрипт PlayObjectAnimation(имя монстра в кавычках, имя анимации, цикличность);
Например, так:
PlayObjectAnimation("priest","attack00",IDLE);
Имя нужно своё, скриптовое. Для того, чтобы наименовать существо таким именем, нужно его выделить, найти в левой панели строку Name и вписать туда имя (в нашем случае
priest
).
В ответ пользователю Ment
14 лет назад
Объясни мне оленю, про эти скрипты, а то я не в курсе ка и что с ними??))

Статистика

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

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