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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 140 141 142 143 144 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
PaiNt
сообщение Jun 19 2012, 06:23
Сообщение #3526


Level 8
***

Класс: Псионик
Характер: Chaotic Neutral
Раса: Хафлинг



Цитата(Virake @ Jun 19 2012, 07:35) *
как это исправить?

досконально облазить каждое событие перед функцией WalkWayPoints() (IMG:style_emoticons/kolobok_light/smile.gif) , а еще лучше в ней ))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jun 19 2012, 07:10
Сообщение #3527


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Хербит отрубается в локациях, где нет игроков. Почему-то, хотя не должен. Бывает так - зашел НПС в дверь и все - обратно не выходит, пока игрок туда не наведается.
Можно извратиться через модульный хербит - на каждого НПС запускать скрипт, а не через их хербит.
Больше способов не знаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jun 19 2012, 10:21
Сообщение #3528


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Он не «почему-то» отрубается, и это не только с НПС - а так же с объектами имеющими скрипты, визуальными эффектами и всем прочим. Это менеджмент ресурсами виртуальной машины сервера – она вообще может отключаться полностью пока в модуль не зайдет игрок. Обходить его не надо, потому что сделано было не просто так.

Виртуальному миру и не нужно собсно жить без игрока: единственный корректный способ это исправить – это либо составление алгоритмов позволяющих AI снимать в любой запрашиваемый момент времени полную симуляцию состояния объекта и воссоздавать по запросу; либо составление алгоритмов универсального реагирования криттера на внешние условия (ну либо и то и то).
Для НПС первый вариант типа: «если время с момента запуска модуля = столько-то, то криттер появится там-то и сделает то-то, имея при себе столько-то чего нада». Второй вариант типа: «если сейчас день, а у криттера нет того-то, то идем туда-то и берем чего нада, если оно есть, то идем куда-то еще и делаем что-то, пока не потратим чего надо, а если сечас ночь, притворяемся мертвым и храпим, пока не потыкают чтобы проверить». (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.: ReZkiy, вообще я сейчас этим занимаюсь для онлайн модуля – может есть желание принять участие?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Virake
сообщение Jun 19 2012, 12:20
Сообщение #3529


Level 5
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Человек



мне, по большому счету, и не нужно, чтобы НПЦ действовали, пока игрока нет в локации (это лишняя трата ресурсов). мне нужно, чтобы они: 1) ночью сидели дома; 2) днем ходили по городу. и первое, и второе сейчас работает, однако только, если за НПЦ следит игрок. если, скажем, группа НПЦ с наступлением темноты вернулась в дом, то на утро они от туда уже не выйдут, пока к ним не заглянет игрок. вот в этом вся проблема.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jun 19 2012, 12:57
Сообщение #3530


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Я у себя создавал для этого «базы» для НПС – объекты которые управляют своим типом НПС на локации, на которой помещены. Банально гнезда и норы для животных, которые можно обнаружить и взаимодействовать на своем отдельном уровне.
Такой объект присутствует в модуле всегда и поэтому на него можно повесить скрипты позволяющие свободно удалять/респавнить криттеров без боязни срыва скриптов – в остальном сами криттеры автономны и используют скрипты «онхеартбита». Для «сна» криттеров я использовал команды «аппеар/дисаппеар» и на время ночи у меня птицы например попросту изчезают с локации («расселяясь» по гнездам), появляясь снова днем с учетом текущей популяции (новые птицы порциально спавнятся у гнезд по прохождению определенного периода времени с учетом установленного максимума популяции). Для команды «аппеар/дисаппеар» нет разницы в задержке (секунда или игровая ночь) так что в теории должно работать с НПС и их домами.

P.S.: Чтоб не получалось при этом так, что реакция AI воспринималась «тормознутой» - можно поставить заглушку которая при входе игрока на локацию, при условии что на ней уже нету другого игрока, спавнила/перемещала бы невидимые «базы» криттеров в точке присутствия игрока тем самым гарантируя 100% оперативность работы скрипта на ней отвечающего за актуальное местоположение криттера.

Сообщение отредактировал Flaristan - Jun 19 2012, 13:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jun 19 2012, 15:55
Сообщение #3531


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Цитата
мне, по большому счету, и не нужно, чтобы НПЦ действовали, пока игрока нет в локации (это лишняя трата ресурсов). мне нужно, чтобы они: 1) ночью сидели дома; 2) днем ходили по городу. и первое, и второе сейчас работает, однако только, если за НПЦ следит игрок. если, скажем, группа НПЦ с наступлением темноты вернулась в дом, то на утро они от туда уже не выйдут, пока к ним не заглянет игрок. вот в этом вся проблема.


Нужно делать через хербит модуля или кастомный хербит каждые 6.0 сек на модуле.
Там беруться все НПС одной фракции или одного тега и кидаются днем туда, а ночью обратно. Только кушает процесс "перекидования" не мало.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Virake
сообщение Jun 19 2012, 16:25
Сообщение #3532


Level 5
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Человек



склепал что-то такое:
Neverwinter Script
void main()
{

object oNPC = GetNearestObjectByTag("NW_COMMALE");
int nTime = GetTimeHour();
int nCount = GetLocalInt(OBJECT_SELF, "SPAWNED_NPC_COUNT");
object oSpawn = GetWaypointByTag("WP_NPC_SPAWN");
location lSpawn = GetLocation(oSpawn);

if (nTime >= 8 && nTime <= 18)
    {
    while (GetLocalInt(OBJECT_SELF, "SPAWNED_NPC_COUNT") < 8)
        {
        CreateObject(OBJECT_TYPE_CREATURE, "commale001", lSpawn);
        nCount += 1;
        SetLocalInt(OBJECT_SELF, "SPAWNED_NPC_COUNT", nCount);
        }
    }
else
    {
    while (GetIsObjectValid(oNPC))
        {
        DestroyObject(oNPC);
        nCount -= 1;
        SetLocalInt(OBJECT_SELF, "SPAWNED_NPC_COUNT", nCount);
        }
    }
}
вроде работает. днем они спавняться, а ночью исчезают. вот только исчезают они по-очереди (в отличии от появления) и с некоторым интервалом. и в это время игра немного подтормаживает, а еще в чат идут сообщения, что-то вроде "TOO MANY COMMANDS".

П.С. подозреваю, что дело в том, что скрипт пытаеться повторно анигилировать существо, пока оно еще не доконца исчезло, т.е. имеет Valid-статус. что с этим делать? можно было бы поставить задержку на несколько секунд, однако это не ускорит процес дестроинга.

Сообщение отредактировал Virake - Jun 19 2012, 17:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jun 19 2012, 17:08
Сообщение #3533


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



«Слишком много инструкций» и далее таг объекта перегружающего кэш. Стандартное сообщение об ошибке когда происходит аварийная остановка выполнения скрипта – это значит его надо дорабатывать. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.:
Цитата(Virake @ Jun 19 2012, 16:25) *
Neverwinter Script
    while (GetIsObjectValid(oNPC))
        {
        DestroyObject(oNPC);
        nCount -= 1;
        SetLocalInt(OBJECT_SELF, "SPAWNED_NPC_COUNT", nCount);
        }
В этом блоке не хватает идентификатора для oNPC он у тебя в условии 1 получается «ближайший по тагу» а циклу после 1 объекта нужна функция перешагивания к следующему. Для криттеров (включая ПС) я у себя использовал в аналогичном цикле как-то функцию GetNextObjectInArea в паре с условиями (для упрощения нагрузки):
Neverwinter Script
oTarget = GetFirstObjectInArea(oArea);
   while(GetIsObjectValid(oTarget))
        {
        //сюда можно поставить любое условие хоть по тому же тагу
        if (GetIsPC(oTarget))
           {
           //сюда то что тебе нужно сделать с объектом
           }
        oTarget = GetNextObjectInArea(oArea);
        }


Сообщение отредактировал Flaristan - Jun 19 2012, 17:22
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Virake
сообщение Jun 19 2012, 17:39
Сообщение #3534


Level 5
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Человек



действительо, теперь работает. спасибо за помощь.

П.С. однако полноценной системой это пока считаться не может. нужно внедрить:
1) чтобы спавнились случайные НПЦ
2) чтобы они спавнились по случайным вейпам
3) чтобы перед дестроингом возвращались к своим спавн-точкам

Сообщение отредактировал Virake - Jun 19 2012, 18:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jun 19 2012, 19:08
Сообщение #3535


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



1. Не сложно реализовать, заменив резреф криттера на стринговую переменную определяющуюся дополнительным блоком скрипта ранее, из списка заготовленных резрефов.
(хотя ИМХО лучше не случайные условия а причинно следственные)
2. То же самое.
(и опять таки лучше снабдить кузницу наковальней которая будет респить кузнеца, улицу мусоркой которая будет респить дворника и т.п. – как минимум меньше будет нервотрепки с рендумной неопределенностью)
3. Именно поэтому удобна функция «аппеар/дисаппеар» - она не удаляет/респавнит объект, а переносит его в нужную позицию с какой угодно задержкой при необходимости.
(а если просто нужна видимость сворачивания деятельности – то тут перед ним можно поставить парочку контрольных «велков» к нужному объекту, если в локации присутствует ПС; но как правило рано или поздно НПС все равно найдет способ застрять на глазах у ПС и испортить все впечатление от AI – хорошим решением для этого является тематическое преподнесение «дисаппиар» эффекта, например птицы у меня взлетают в воздух прежде чем пропасть)

Сообщение отредактировал Flaristan - Jun 19 2012, 19:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Dec 31 2012, 16:52
Сообщение #3536


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Привет!
И снова я с вопросами о скриптах на респавн мобов!

Вот есть рабочий скрипт под НВН1-НВН2(Меня интересует сейчас НВН2), вроде ставиться в OnDeath мобов(Скрипт сохраяеться без ошибок на F7, но ничего не происходит в игре-мобы не спавняться на точку, через заданные 6 секунд в скрипте), что задавать в WayPoint?
Код
                  #include "nw_i0_2q4luskan"
               void main()
{
    object oSelf = OBJECT_SELF;
    string sResRef = GetResRef(oSelf);
    string sResPoint = GetLocalString(oSelf, "RESPAWN_POINT");
    location lLoc = GetLocation(GetWaypointByTag(sResPoint));
    AssignCommand(GetModule(), DelayCommand(6.0f, SetLocalString(CreateObject(OBJECT_TYPE_CREATURE, sResRef, lLoc), "RESPAWN_POINT", sResPoint)));
}


Подскажите пожалуйста, в чём загвоздка?!

Просто я всё подзабыл, помню, что в НВН1-всё получалось-без проблем, но сейчас занялся НВН2, и там не выходит респавн моба на точку, после убийства...
Уже второй день мучаюсь, подскажите, пожалуйста...

Заранее спасибо!

Добавлено позже:
Уже сам разобрался...


Сообщение отредактировал Sugo77 - Jan 7 2013, 10:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jan 1 2013, 05:32
Сообщение #3537


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Добавил позже(Пару дней спустя):
Всё, сам во всём разобрался!

Всем спасибо!

Всех с праздниками!

Пока больше нету вопросов...
Хотя есть маленький, про замки, пока никак не могу сообразить, как сделать так, чтобы двери снова закрывать можно было на ключ, без воровских умений, ну чтобы любой класc мог проделывать это с помощью ключа, без прокаченных скиллов...

Даже про фракции уже всё вспомнил, и про спавны, и про многое другое, а вот замки пока не научился, не вспомнил как обратно запирать на ключ, без прокаченных скиллов...

Может есть какой-то скрипт для выполнения данной задачи?

Заранее спасибо!

Сообщение отредактировал Sugo77 - Jan 7 2013, 10:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jan 6 2013, 08:46
Сообщение #3538


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



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

Заранее спасибо!

Потому что без скрипта, в тулсете НВН 2-не нашёл другого способа, как такое сделать, изменение Body Bag на None-не помогает, лут всё равно остаётся с убитых мобов.

Потчитал форумы на английском, там кто пишет, что, что-то нужно менять в On Death, кто в On Spawn, что-то связанное с Random Treasure, но не один, не написал, что...
Добавлю, в On Death мобов у меня ужа забит скрипт на респавн мобов...

Промежуточный результат:
http://youtu.be/k7bxz0PxKow

Сообщение отредактировал Sugo77 - Jan 8 2013, 08:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jan 9 2013, 16:21
Сообщение #3539


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

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



Neverwinter Script
//:://////////////////////////////////////////////////
//:: Чистка локации от предметов, слот ХБ
//:: Created By: Gennady
//:: Name: de_chistka_loc
//:://////////////////////////////////////////////////
#include \"ludi\"
void ChistkaLoc(int iD, object oSelf = OBJECT_SELF)
{
object oItem = GetFirstObjectInArea(oSelf);
int iFut = Day()+iD;
int iDes = Day();

SetLocalInt(oSelf, &#092;"day\", iFut);
while(GetIsObjectValid(oItem))
{
   if(GetLocalInt(oItem,&#092;"day\")==0)
      SetLocalInt(oItem, &#092;"day\", iFut);
   if(GetLocalInt(oItem,&#092;"day\")<= iDes)
   {
     if(GetTag(oItem)==&#092;"BodyBag\")
     {
      object oItemB = GetFirstItemInInventory(oItem);
      while(GetIsObjectValid(oItemB))
      {
       if(GetPlotFlag(oItemB)==FALSE)
       DestroyObject(oItemB);
       oItemB = GetNextItemInInventory(oItem);
      }
     }
     else
     {
      if(GetObjectType(oItem)==OBJECT_TYPE_ITEM && GetPlotFlag(oItem)==FALSE)
      DestroyObject(oItem);
     }
   }
   oItem = GetNextObjectInArea(oSelf);
}
}
////////////////////////////////////////////////////////////////////////////////
void main()
{
object oPC = GetFirstPC();
object oSelf = OBJECT_SELF;
int iD = StringToInt(GetLockKeyTag(oSelf));

if(GetArea(oPC)==GetArea(oSelf))  // если ПС в локе
  ChistkaLoc(iD);
else
if(GetLocalInt(oSelf,&#092;"day\") <= Day() && GetLocalInt(oSelf,&#092;"day\")!=0)
  ChistkaLoc(iD);
}

// Тэг ключа, врямя в днях до удаления предметов

Neverwinter Script
///////////////////////////////////////////////
//  ***  БИБЛИОТЕКА  ***        #include \"ludi\"
///////////////////////////////////////////////
// _______________  Текущий день _______________________________________________
int Day()
{
int nDay = GetCalendarDay();
int nMes = 28*GetCalendarMonth();
int nYear = GetCalendarYear();
int iDay = 336*nYear+nMes+nDay;
return iDay;
}


Сообщение отредактировал gennady - Jan 9 2013, 16:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 10 2013, 03:52
Сообщение #3540


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Я так понял вышеприведенный скрипт после заданного промежутка времени чистит все контейнеры на локации, на которой запущен. Однако особенность дефолтных лутбэгов (в НВН1 по крайней мере) такова, что они не подпадают в определение всех имеющихся в распоряжении движка идентификаторов – данный скрипт их не очистит.
Недавно сам такое делал и проверял: носитель лутбэга монстра отвечает определению самого монстра (имеет тот же таг и статус «мертвого существа» - фактически его мертвое тело), но после смерти носителя его лутбэг никакому влиянию не поддается (для стандартных скриптов на существе типа «онхертбита» после его смерти оно перестает «херт-бит» буквально и «ондэф» - это последний эвент которым можно что-то сделать) и его невозможно ничем «подцепить» в скрипте так, чтоб навязать манипуляции с ним. Они не выполняются. Попросту говоря сей объект в игре далее доступен только для ПС – сам движок лутбэг никак не видит. Можно удалить мертвое тело по тагу, заставить его исчезнуть или даже перенести в «лимбо» (что приведет к утрате всяческого доступа к его лутбэгу), но на полу при подсветке по табу все еще можно будет наблюдать силуэт его никуда не девшегося лутбэга. Единственный способ избавиться от стандартного лутбэга – вынуть все содержимое ПС-персонажем вручную.

Решается эта дилемма классически заменой дефолтного лутбэга искусственным, который спавнится в момент смерти существа (по триггеру «ондэф») и в который копируются все предметы из инвентаря умирающего существа; последние в свою очередь после копирования тут же удаляются, чтоб очистить инвентарь создающегося трупа и избежать создания дефолтного лутбэга.
Далее вы можете скриптами управлять трупом существа и искусственным лутбэгом с его содержимым вполне нормально и как вам заблагорассудится. А так же настроить время автоматического исчезновения трупа через настройки НПС.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Jan 10 2013, 09:50
Сообщение #3541


Level 7
**

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



Цитата(Flaristan @ Jan 10 2013, 04:52) *
Попросту говоря сей объект в игре далее доступен только для ПС – сам движок лутбэг никак не видит. Можно удалить мертвое тело по тагу, заставить его исчезнуть или даже перенести в «лимбо» (что приведет к утрате всяческого доступа к его лутбэгу), но на полу при подсветке по табу все еще можно будет наблюдать силуэт его никуда не девшегося лутбэга. Единственный способ избавиться от стандартного лутбэга – вынуть все содержимое ПС-персонажем вручную.

Неверно. Все стандартные лутбеги имеют тег "BodyBag", по нему можно получить доступ к объекту (видимому или нет), очистить от итемов и удалить, что и наблюдается в скрипте gennady. Единственное, лутбег ещё не создан на момент срабатывания OnDeath, поэтому его либо приходится искать с задержкой, либо запускать чистку с "внешних" событий.

Сообщение отредактировал greye - Jan 10 2013, 09:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 10 2013, 10:48
Сообщение #3542


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Ну, тогда все еще проще – можно поставить в локации блок на «онхеартбит» с заглушкой на выполнение скажем раз в игровые сутки, который попросту будет очищать все объекты с этим тагом на локации:..
Neverwinter Script
void main()
{
object oArea = OBJECT_SELF;
object oTarget = GetFirstObjectInArea(oArea);
object oItem;

if (GetTimeHour() == 0)
  {
  if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 0)
      {
      SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 1);
      }
      else
      {
      return;
      }
  }
  else
  {
  if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 1)
      {
      SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0);
      }
  return;
  }

while(GetIsObjectValid(oTarget))
    {
    if (GetTag(oTarget) == "BodyBag")
        {
        oItem = GetFirstItemInInventory(oTarget);
        while(GetIsObjectValid(oItem))
            {
            DestroyObject(oItem);
            oItem = GetNextItemInInventory(oTarget);
            }
        }
    oTarget = GetNextObjectInArea(oArea);
    }
}


Сообщение отредактировал Flaristan - Jan 10 2013, 10:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Jan 10 2013, 11:54
Сообщение #3543


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



При большой загрузке модуля локациями, больше 100+ и большим кол-вом мобов ии других штук зависает время. Что будет в этом случае?))) - ты используешь GetTimeHour() (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 10 2013, 12:07
Сообщение #3544


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Ну это вообще не проблема:
1) счетчик вообще можно поставить принципиально какой удобно;
2) зависающее время в модуле вроде чинят перематывая его искусственно, если оно заедает естественно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jan 10 2013, 17:38
Сообщение #3545


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



1.: gennady , при сохранении Вашего скрипта, указывает на какую-то неточность\ошибку в данной строчке:
int iFut = Day()+iD;

И ещё, куда вставляется Ваш скрипт?

2.: А вот скрипт от Flaristan-прекрасно работает под НВН2, но!, уменьшить бы время задержки на исчезновения лута с локации, в его скрипте(Пока не могу дотумкать, как это сделать), а то сутки-это много, мне бы меньше минуты, то есть в секундах(Секунд: 30)...

Предпологаю, что что-то связанное с DelayCommand 6.0f(Значение времени, выдернутое мною из скрипта на респавн мобов), но куда это вставить, что на что заменить?, и будет ли это правильно работать в скрипте от Flaristan?

Заранее спасибо!

Сообщение отредактировал Sugo77 - Jan 10 2013, 20:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 11 2013, 04:20
Сообщение #3546


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Верхний блок скрипта:..
Цитата(Flaristan @ Jan 10 2013, 11:48) *
Neverwinter Script
if (GetTimeHour() == 0)
  {
  if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 0)
      {
      SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 1);
      }
      else
      {
      return;
      }
  }
  else
  {
  if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 1)
      {
      SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0);
      }
  return;
  }
…это просто заглушка которая не дает срабатывать скрипту каждые 6 секунд «онхеартбита» и позволяет выполнять условия для его запуска 1 раз в полночь по игровому времени. (IMG:style_emoticons/kolobok_light/smile.gif)
Если его заменить на такой блок:..
Neverwinter Script
int iCount = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF));
if (iCount==5)
  {
  SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0);
  }
  else
  {
  iCount++;
  SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), iCount);
  return;
  }
…он каждые 6 секунд «онхеартбита» будет считать переменную присваиваемую его локации с ее же мименем – как только досчитает до 5 (5 «онхеартбитов» по 6 секунд = 30 секунд) сбросит счет в «0» и выполнит дальнейший скрипт.

Можно через «DelayCommand» тоже, но мне показалось так проще и надежней.

Сообщение отредактировал Flaristan - Jan 11 2013, 04:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jan 11 2013, 06:51
Сообщение #3547


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Спасибо за помощь!
То что надо!, и всё работает!

Ещё бы с замками разобраться(В НВН2), ранее уже спрашивал:
Можно ли вообще, в принципе, сделать так, чтобы дверь снова закрыть на тот же ключ, которым открывал, любому классу, без соответствующих скиллов? Может, через какой-то скрипт? Так как облазил весь тулсет, не дотумкал, как это сделать обычным способом, получается только открывание замка, и дверь уже потом постоянно открыта-входи любой, а хотелось бы получить возможность, и снова закрыть эту же самую дверь, на этот же самый ключ...

Сообщение отредактировал Sugo77 - Jan 11 2013, 08:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jan 11 2013, 09:21
Сообщение #3548


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

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



Чистка локации от предметов
Тут что-то глючат коды NNS. Кому нужно смотрим здесь: http://remmgen.narod.ru/tmodul.html
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 11 2013, 10:00
Сообщение #3549


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Могу лишь предложить сделать на ключи «уникальную силу предмета» которая по юзу на дверь будет проверять ее ли это ключ, и если да – то закрывать ее на замок.

Если нужно просто чтоб двери через какое-то время закрывались и запирались – можно сделать соответствующий скрипт с задержкой на «онопен» и раздать его нужным дверям.

P.S.: И да - если уж отсылать то тогда еще мои две любимые ссылки на ресурсы которые помогли мне достигнуть того уровня скриптинга который сейчас имею:
- скрипт-генератор Лилака;
- Лексикон.

Сообщение отредактировал Flaristan - Jan 11 2013, 10:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jan 11 2013, 14:09
Сообщение #3550


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



gennady, а вот скрипт с Вашего сайта-сработал!
Но там он в днях, а у меня трейниг модуль для спелл кастеров, где мобы с 10-100 ХП, убиваются за секунды, и спавняться, через 6 секунд, поэтому скрипт от Flaristan, мне более подходит!

А вообще, обоим участникам большое спасибо за помощь, и отзывчивость!

Сообщение отредактировал Sugo77 - Jan 11 2013, 14:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 140 141 142 143 144 > » 
Ответить в эту темуОткрыть новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th March 2024 - 15:10