Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 123 124 125 126 127 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Worldowner
сообщение Apr 29 2007, 17:24
Сообщение #3086


Level 2
*

Класс: Клерик
Характер: Chaotic Good
Раса: Полуэльф



Вот такие скритики. Что они делают: существо (полагается, что это будет нежить) спавниться мёртвым, но при приближении игрока воскресает и ясное дело, нападает. Проверено- впечатление потрясающее. Но надо ещё доводить до ума. Мелкие проблемки описаны ниже, но есть один главный вопрос:
может можно сделать так, чтобы необходимость триггера отпала, просто прописать скрипт на самом существе, и не заморачиваться с тонкостями его размещения?
(в том виде, в каком он щас есть скрипт df_slfres01, если его ставить на HB самого существа, не сработает)

(Кстати, если ставить RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,FALSE) то тварь будет вообще неубиваемая оконьчательно. Представьте себе вечного стража, который как нимфа из Леса Невервинтер не может покинуть защищаемую область, но на ней вечно воскрешается? Это такая фишка, может быть полезной.)

существо
onSpawn=df_slfres02:
Neverwinter Script Source
#include "x0_i0_corpses"
void main()
{
KillAndReplaceRaiseable(OBJECT_SELF);
ExecuteScript("nw_c2_default9", OBJECT_SELF);
}


триггер
onHeartBeat=df_slfres01 или OnEnter=df_slfres01:
Neverwinter Script Source
#include "x0_i0_corpses"
void main()
{
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
object oTarget=GetNearestObjectByTag("deathknight");
   if (GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,TRUE);
    //DestroyObject(OBJECT_SELF, 0.5);
   };
}


если ставить на OnEnter, то проверка на приближение игрока не нужна.
если отменить запуск скрипта nw_c2_default9, то когда его наконец убивают, сразу воскрешается, встаёт, а затем медленно исчезает.

Если ставить на OnEnter, может возникнуть путаница при ипользовании большого количества существ, но DestroyObject не обязателен.

Если ставить на onHeartBeat, трудностей с количеством существ больше 1 не возникнет- просто разместить триггер под конкретным существом. Но возникает другая проблема с DestroyObject: если его нет, то существо каждые 6сек полностью востанавливается, а если есть, то возникает только визуальный эффект воскрешения, а самого воскрешения почему-то не происходит.

Цитата(NeoJSmith @ Apr 28 2007, 18:24) [snapback]107615[/snapback]
ммм... просвятите меня пожалуйста, каким ра.... образом вы умудрились, не заполнив поле ресреф, создать объект в палитре? откройте свойтва объекта и посмотрите (IMG:style_emoticons/kolobok_light/wink3.gif) оно будет иметь значение (IMG:style_emoticons/kolobok_light/yes3.gif) возможно не то, которое вы предполагали (IMG:style_emoticons/kolobok_light/pardon.gif)

Хи-хи-хи. (IMG:style_emoticons/kolobok_light/crazy.gif) тайна сия велика есть и могуча.
Причины изменения: блин, ну сколько раз говорилось, используйте тег NSS для скриптов
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
diggers
сообщение May 4 2007, 21:21
Сообщение #3087


Level 2
*

Класс: Фея
Характер: Chaotic Good
Раса: Фея



KillAndReplaceRaiseable(OBJECT_SELF);
Код функции скорее всего описан в библиотеке x0_i0_corpses и можно посмотреть там ее содержимое.
Думаю она не слишком сложная и ее легко переписать для конкретной ситуации.

Если надо поднять целую комнату зомби то можно сделать это 1им запуском своего скрипта, а запускать его когда игрок наступит на триггер-войдет в комнату.

Если надо поднимать кучу одиночных зомби, то можно, как в onHeartBeat=df_slfres01, повесить на хартбит плейсибла поиск игрока и проверку растояния. Это технически очень просто, ни триггеров, ничего не надо, но хартбит и проверки растояния едят ресурсы сервера и если таких плейсиблов будет десятков 5 то лучше сделать 1ым способом(триггерами), иначе будут тормоза.

Цитата
проблема с DestroyObject: если его нет, то существо каждые 6сек полностью востанавливается

Опять же, посмотри что за
RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,TRUE);
в той же библиотеке, и поправь как тебе надо.
Должен удаляться плейсибл, и на его месте создаваться зомби. Когда плейсибл удалится, его хартбит-скрипт перестанет работать.
Может там задержка, и спавн зомби происходит когда плейсибла-трупа уже нет, и скрипт не может найти куда ставить зомби?

Вот в этой теме как раз сейчас о спавне речь.

Сообщение отредактировал diggers - May 4 2007, 21:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Worldowner
сообщение May 5 2007, 17:14
Сообщение #3088


Level 2
*

Класс: Клерик
Характер: Chaotic Good
Раса: Полуэльф



Вот новый вар моего скрипта, ставиться на спавн, не требует триггера. Но почему-то не работает, не могу разобраться почему.
Идея такая- из спавна запускается функция, симулирующая HB (DelayCommand+return).

Код
//::///////////////////////////////////////////////
//:: Name
//:: FileName  df_spwnslfres1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    onSpawn=
    Creates 1-time-self-raiseble dead body
    that self-res when PC gets near 10f
    Use this on undeath creatures to surprice player

*/
//:://////////////////////////////////////////////
//:: Created By:Worldowner
//:: Created On:
//:://////////////////////////////////////////////
#include "x0_i0_corpses"
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
int iUndead;
void getPCNear()
{
  if (GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    RaiseCorpse(OBJECT_SELF,VFX_IMP_RAISE_DEAD,TRUE);
    DelayCommand(2.0, RaiseCorpse(OBJECT_SELF,VFX_IMP_RAISE_DEAD,TRUE));
    SetLocalInt(OBJECT_SELF, "iUndead", 1);
    SetIsDestroyable(TRUE,FALSE,FALSE);
    }
}


void DeathHB()
{
DelayCommand(6.0, getPCNear());
if(GetLocalInt(OBJECT_SELF, "iUndead")!=1)
{
  return;
}

}




void main()
{
  DeathHB();
  KillAndReplaceRaiseable(OBJECT_SELF);
//SetIsDestroyable(FALSE,TRUE,FALSE);
  ExecuteScript("nw_c2_default9", OBJECT_SELF);
}

2diggers
Цитата
Должен удаляться плейсибл, и на его месте создаваться зомби. Когда плейсибл удалится, его хартбит-скрипт перестанет работать.
Может там задержка, и спавн зомби происходит когда плейсибла-трупа уже нет, и скрипт не может найти куда ставить зомби?

Ты не прав. Замена плейсибла на плейсибл происходит в скрипте... ох, забыл как называется, ну он на обжекте "труп зомби" в палитре. А здесь подход совсем иной- кич сначала на спавне становится мёртвым, затем воскрешается.
Ну а востальном... Разумные мысли, действительно стоит обдумать.

(PS т.е. плейсибла на крич)

PPS сорри, перепутал тег. не убивайте меня за это, плз. Лучше обьяните, можно редактировать свои посты?

PPPS Кстати, в том топике речь о NWN2, а не о первом NWN
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
diggers
сообщение May 5 2007, 18:05
Сообщение #3089


Level 2
*

Класс: Фея
Характер: Chaotic Good
Раса: Фея



А где хартбит сам себя перезапускает?

Neverwinter Script Source
#include "x0_i0_corpses"
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
int iUndead;
void getPCNear()

Оно вообще компилируется?

Neverwinter Script Source
return;
}
}

return завершает выполнение текущей функции. Зачем там ретурн, если после него и так ничего нет?

В нвн2, кроме кеширования крич, ничего нового в спавне вроде нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение May 6 2007, 02:48
Сообщение #3090


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата(Worldowner @ May 5 2007, 18:14) [snapback]107803[/snapback]
Use this on undeath creatures to surprice player

Use this on undeaD creatures to surpriSe player

А еще скрипты и DelayCommand на мертвых существах не работают. Или ставь делай на модуль или создавай рядом невидимый глазу плейс воскрешающий близлежащее умертвие с нужным тэгом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Worldowner
сообщение May 6 2007, 17:22
Сообщение #3091


Level 2
*

Класс: Клерик
Характер: Chaotic Good
Раса: Полуэльф



Цитата(diggers @ May 5 2007, 18:05) [snapback]107804[/snapback]
А где хартбит сам себя перезапускает?

Оно вообще компилируется?

return завершает выполнение текущей функции. Зачем там ретурн, если после него и так ничего нет?

В нвн2, кроме кеширования крич, ничего нового в спавне вроде нет.

Компилируется. Формальных ошиПок нет. Ошибка в логике.

Как понял, так и составил, я не мастер, даже не уверен что основы уже усвоил. Но видимо, неправильно понял (ясно, потому как не работает). Разве return не возвращает в начало функции? Идея такая- запустить скрипт, который будет вертеться в памяти независимо от того, жив ли хозяин скрипта, а потому вопрос- возможно ли такое?

Версия, воскрешающая через второй обьект приведена выше, но очень хочется чтобы можно было просто прописать скрипт в нужном криче и не заморачиваться с тонкостями размещения.
Потому и прошу совета- МОЖ КТО ЗНАЕТ, КАК ЭТО СДЕЛАТЬ?

Цитата(azathoth @ May 6 2007, 02:48) [snapback]107809[/snapback]
Use this on undeaD creatures to surpriSe player

Спасибо. Но это такая мелочь. Лучше дай дельный совет насчёт скрипта.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение May 6 2007, 17:36
Сообщение #3092


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



QUOTE(Worldowner @ May 6 2007, 18:22) [snapback]107821[/snapback]
Разве return не возвращает в начало функции?
Нет. Return - выход из текущей функции и возврат (return) управления дальше к тому куску кода, который вызвал эту функцию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
diggers
сообщение May 6 2007, 18:28
Сообщение #3093


Level 2
*

Класс: Фея
Характер: Chaotic Good
Раса: Фея



Neverwinter Script Source
void dohb(object oCre)
{
  SendMessageToPC(GetFirstPC(),GetName(oCre));
  DelayCommand(6.0,dohb(oCre));
}
void main()
{
  dohb(OBJECT_SELF);
  SetIsDestroyable(0,1,1);
  ExecuteScript("nw_c2_default9",OBJECT_SELF);
}

Работает и на труп. Перестает работать если крича удалена DestroyObject() или умерла при SetIsDestroyable(1). Вот этого, про делей, я раньше не знал.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 7 2007, 09:01
Сообщение #3094


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



DelayCommand - это задержка команды которая дается всеравно кому-то. Если того, кто ее должен выполнить неактивен (умер, дестроился) то и команда не выполнится.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 7 2007, 09:27
Сообщение #3095


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Задаю самый глупый вопрос какой только смог придумать, но ответ на который мне нужен: Почему я не могу скриптом давать вещи игроку (CreateItemOnObject("Таг объекта",oPC)(IMG:style_emoticons/kolobok_light/wink3.gif) ? Наружные скобки в скрипт не печатаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 7 2007, 09:34
Сообщение #3096


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Epsilon @ May 7 2007, 10:27) [snapback]107848[/snapback]
CreateItemOnObject("Таг объекта",oPC)

надо CreateItemOnObject("Рез Реф Объекта",oPC)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 7 2007, 09:37
Сообщение #3097


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



У меня складывается впечатление, что меня игнорируют.
На данный момент мой вопрос изменился, вернее их стало несколько больше, а на старые я нашел ответ
1-Как отсрочить появление окна смерти, при остаточной смерти, и как при этом воскресить игрока, в новой области.
2-Как сделать реакцию фракций на отдельного игрока, в смысле что на одного нападают а другого защищают
3-Как пишеться условие "остаточная смерть" в скрипте

Мне не нужны скрипты, а нужен совет каким образом их составлять, ведь я понимаю как их делать, но не знаю всех возможностей Toolset'а

По возможности пишите на мыло:undefined


PS. в вопросах новичков у меня есть вопросик
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 7 2007, 09:41
Сообщение #3098


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
1-Как отсрочить появление окна смерти, при остаточной смерти, и как при этом воскресить игрока, в новой области.

скрипт onPlayerDeath в свойствах модуля. Там окошко вызывается. Можно соотв. и вообще его не вызывать.

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
2-Как сделать реакцию фракций на отдельного игрока, в смысле что на одного нападают а другого защищают

только скриптами, так как все игроки в 1 фракции. Те надо писать свою систему реакции на обнаружение игрока (onPerception + библиотеки аи). Есть флаг определенный есть - атакуют, нет - игнорируют.

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
3-Как пишеться условие "остаточная смерть" в скрипте

что такое остаточная смерть?

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
По возможности пишите на мыло:undefined

еще раз: на мыло врядли кто будет писать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 7 2007, 09:55
Сообщение #3099


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Остаточная смерть - это когда игрок умер навсегда, когда в окне выскакивает только "Загрузить игру"
С почтой все ясно

Насчет фракций. Ведь можно сделать реакцию фракций на предмет в инвентору игрока, или какого либо предмета в н-ной области
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 7 2007, 12:15
Сообщение #3100


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Epsilon @ May 7 2007, 10:55) [snapback]107852[/snapback]
Остаточная смерть - это когда игрок умер навсегда, когда в окне выскакивает только "Загрузить игру"

в функции которая выдает окошко о смерти (там что-то или про PopUp или еще как-то, не помню уже) есть параметр, который отвечает за то, есть ли кнопка RESPAWN в этом окошке или нет. Ставь его FALSE.

Цитата(Epsilon @ May 7 2007, 10:55) [snapback]107852[/snapback]
Насчет фракций. Ведь можно сделать реакцию фракций на предмет в инвентору игрока, или какого либо предмета в н-ной области

можно. концептуально это тоже самое что я выше тебе написал. Те нельзя просто настроить фракции и все само заработает (так можно только для варианта, когда реакция на всех игроков должна быть одинаковая). Нужно скриптить. А вот что проверять и как это уже от ситуации и задачи зависит.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение May 8 2007, 11:22
Сообщение #3101


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Пожалусто подскажите как сделать так что бы мобы респились не при входе на модуль а привходе на локацию, ну и при выходе снее пропадали ??

принимаеться ответ в любой форме так же очень тяжело тоже считаеться ответом )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 8 2007, 11:55
Сообщение #3102


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



э.. система респауна тут буквально на днях обсуждалась. Найди посты Ванеса. (а вообще энкаунтеры + немного скриптов на них + скрипт-чистильщик на выходе из локации это первое, что в голову лезет)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 8 2007, 13:39
Сообщение #3103


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



В Hordes of UnderDark в конце второй главы на спинах капитанов есть флаги. Как их поставить и какие есть текстуры?

PS. я вам ещё не надоел?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 8 2007, 13:56
Сообщение #3104


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Epsilon @ May 8 2007, 14:39) [snapback]107943[/snapback]
В Hordes of UnderDark в конце второй главы на спинах капитанов есть флаги. Как их поставить и какие есть текстуры?

визуальный эффект такой есть. посмотри фильтр по константам на слово FLAG. Там их всего 4.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 9 2007, 08:19
Сообщение #3105


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



В чём ошибка моего скрипта? 00_00_00 - тег двери

Neverwinter Script Source
void main()
{
if (GetListenPatternNumber() == 1 && GetIsListening(OBJECT_SELF))
    {
    SpeakString("Проходи, только дверь за собой закрой");
    ActionOpenDoor("00_00_00" oDoor);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 9 2007, 08:24
Сообщение #3106


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Посмотрел, их действительно четыре, но они носят текстуры флагов и стягов из размещений. Можно ли на них помещать текстуры остальных четырех флагов, и если можно то как?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 9 2007, 08:56
Сообщение #3107


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Добавь описание двери как я покажу и открой так же как я написал.
Neverwinter Script Source
object oDoor = GetNearestObjectByTag("00_00_00");

// вот так откроется она
AssignCommand(oDoor, ActionOpenDoor(oDoor));

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение May 9 2007, 11:32
Сообщение #3108


Level 9
Иконки Групп

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата(Epsilon @ May 8 2007, 14:39) [snapback]107943[/snapback]
В Hordes of UnderDark в конце второй главы на спинах капитанов есть флаги. Как их поставить и какие есть текстуры?

Neverwinter Script Source
//:://////////////////////////////////////////////////
//:: Created By: Gennady
//:: Created On: 2/02/2006  Флаг фиолетовый
//:://////////////////////////////////////////////////
void main()
{
effect eFLAG = EffectVisualEffect(VFX_DUR_FLAG_GOLD);
effect eEffect = GetFirstEffect(OBJECT_SELF);
if (GetEffectType(eEffect) != EFFECT_TYPE_VISUALEFFECT)
ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eFLAG), OBJECT_SELF);
// Запустим стандартный ХБ
ExecuteScript("nw_c2_default1", OBJECT_SELF);
}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 10 2007, 04:30
Сообщение #3109


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Gennady, я умею ставить этот эффект, вписывать его в скрипты. Так что повторяю тот вопрос который я задал позже: можно ли менять их текстуры? Есть четыре основных флаго и ещё два подобных, а мне нужны 8 флагов с текстурами плейсеблов стягов или флагов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Epsilon
сообщение May 10 2007, 04:37
Сообщение #3110


Level 4
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Выходит запертая намертво дверь откроется, но не отопрётся, а на открытой тоже замок будет и её нельзя будет закрыть?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 123 124 125 126 127 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th July 2025 - 07:49