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

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

В ответ пользователю Олегарх
Аватар пользователя
14 лет назад
Олегарх
SetStandState для чего вообще нужен?

видимо для хранения информации, которая в дальнейшем используется в скриптах (другого применения я ей не нашел), это как SetObjectiveState которую мы ставим игроку и у него активируется/выполняется задание, а затем проверяем на состояние if GetObjectiveState ... и выполняем какието действия. То же самое и с SetStandState, только она в игре нечего не меняет, а просто ставит номер по проверке которого можно в скриптах выполнять различные условия.

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

while 1 do
 x, y = GetObjectPosition("Hero2");
 MoveHeroRealTime("Hero3", x+1, y, -1);
 sleep(20);
end;

или даже так:

while 1 do
  if IsObjectExists("Hero2") == true then
    x, y = GetObjectPosition("Hero2");
    MoveHeroRealTime("Hero3", x+1, y, -1);
  else return;
  end;
  sleep(10);
end;

P.S. это наверно нужно в тему "Скрипты" перенести)
В ответ пользователю KioM
Аватар пользователя
14 лет назад
я ж туда и писал, а потом зачем-то сюда написал)
ее, заработало) только надо заблокировать пространство вокруг непися, чтобы не ушел никуда, и работает
В ответ пользователю Олегарх
Аватар пользователя
14 лет назад
Олегарх
только надо заблокировать пространство вокруг непися, чтобы не ушел никуда, и работает

в каком смысле?
В ответ пользователю KioM
Аватар пользователя
14 лет назад
KioM
в каком смысле?
он может далеко уйти от героя после нажатия "конец хода", и потом ему будет не хватать пунктов движения, чтобы оказаться рядом с ГГ
В ответ пользователю Олегарх
Аватар пользователя
14 лет назад
Олегарх
он может далеко уйти от героя после нажатия "конец хода", и потом ему будет не хватать пунктов движения, чтобы оказаться рядом с ГГ

тогда можно добавить перед MoveHeroRealTime
ChangeHeroStats("Hero3", 7, 3500);

вообще советую глянуть как сделано в кампаниях разработчиков, 1 миссия во владыках севера, если не ошибаюсь, там за Фридой ходит Ласло... Они там сделали внутрискриптовую функцию на проверку растояния, таким образом герои постоянно держатся друг возле друга.
В ответ пользователю KioM
Аватар пользователя
14 лет назад
SetStandState, GetStandState, GetStandStatesCount -
скриптовые операции для работы с объектами на карте типа AdvMapStandShared (например TieruHut). Чтобы создать свой стенд, надо:
1) поставить на карту объект Objects\All-Terrain objects\Tieru's Dwelling
2) в ObjectPropertiesTree в графе Shared нажать на ...(многоточие)
3) в левой части появившегося окна шелкнуть ПКМ выбрать NewObject, назвать ваш объект.
4) выбрать модель, анимацию, эффект, непроходимые тайлы стенда.
5) в графе States выберите новую модель, анимацию для изменённого стенда, а в StatesChanges выберите какие визуальные и звуковые эффекты будут при этом проигрываться.
_____
Можно делать несколько состояний стендов (по вкусу), с помощью SetStandState(objectName, newStateID) их менять.
Аватар пользователя
14 лет назад
Угу, в оригинале тоже примеров хватает, но, насколько помню, там не было бега в реальном времени, они бежали на свой ход.
В ответ пользователю KioM
Аватар пользователя
14 лет назад
KioM
тогда можно добавить перед MoveHeroRealTime
ChangeHeroStats("Hero3", 7, 3500);

вообще советую глянуть как сделано в кампаниях разработчиков, 1 миссия во владыках севера, если не ошибаюсь, там за Фридой ходит Ласло... Они там сделали внутрискриптовую функцию на проверку растояния, таким образом герои постоянно держатся друг возле друга.
спасибо. только там Stat, а не Stats. А никто не знает, сколько у героя по умолчанию пунктов движения?
14 лет назад
А никто не знает, сколько у героя по умолчанию пунктов движения?
3500 если нет "Логистики" и прочих бонусных эффектов
В ответ пользователю antonag07
Аватар пользователя
14 лет назад
Олегарх
А никто не знает, сколько у героя по умолчанию пунктов движения?

2500 - без логистики, 2749 - начальн. логистика, 2999 - развитая, 3249 - искустная.
так же сапоги путешественника дают +25% к очкам движения поверх всего...

P.S. я максимум набирал 4661 очков движения, логистика+сапоги+конюшни
В ответ пользователю KioM
Аватар пользователя
14 лет назад
KioM
2500 - без логистики, 2749 - начальн. логистика, 2999 - развитая, 3249 - искустная.
так же сапоги путешественника дают +25% к очкам движения поверх всего...

P.S. я максимум набирал 4661 очков движения, логистика+сапоги+конюшни
Спасибо. Мне просто идея пришла:
ChangeHeroStats -добавить пунктов движения
MoveHeroRealTime- герой идет к ГГ
ChangeHeroStats -убрать полностью пункты движения.
Так герой при нажатии "конец хода" будет стоять на месте
Аватар пользователя
14 лет назад
Чтобы он стоял на месте, его можно просто вырубить EnableHeroAI
В ответ пользователю Олегарх
Аватар пользователя
14 лет назад
Олегарх
Спасибо. Мне просто идея пришла:
ChangeHeroStats -добавить пунктов движения
MoveHeroRealTime- герой идет к ГГ
ChangeHeroStats -убрать полностью пункты движения.
Так герой при нажатии "конец хода" будет стоять на месте

для этого знать точное кол-во очков движения не обязательно, можно пользоватся GetHeroStat и переменными:
start = GetHeroStat("Hero3", 7);
ChangeHeroStat("Hero3", 7, start+3500);
MoveHeroRealTime(...); -- (только функция немодальна! я както пытался сделать из нее модальную, у меня игра вылетала :))
sleep(20);
startThread(end);

function end()
end = GetHeroStat("Hero3", 7);
ChangeHeroStat("Hero3", 7, -end);
end;

и не каких лишних цифр ;)

Статистика

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