Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Aiwan
Диски ушли в Москву. Их потестят чуток и напечатають. А выписать их возможно будет из любого города. Я вот живу черти где и все выписываю почтой. drag.gif
balrog
Может (вернее так оно и есть) чуток не по теме. Вспомнился мне один дневник, ДНЕВНИК ТЭСТИРОВЩИКА!

http://zhurnal.lib.ru/b/brigadir_j_a/test.shtml
MasterMage
А я вернулся...(оффтоп biggrin.gif )....!!!! вопрос(как я это люблю!!ух) почему эффект появления работает криво, а именно...
птица одын штука
стоит...висит в воздухе..
Эффект действует на нее, но она как бы взлетает, а потом приземляется по эффекту...А как сделать, чтоб ее не было видно, а появилась она ерез этот эффект... dntknw.gif
balrog
QUOTE
птица одын штука
стоит...висит в воздухе..
Эффект действует на нее, но она как бы взлетает, а потом приземляется по эффекту...А как сделать, чтоб ее не было видно, а появилась она ерез этот эффект.

Птица так это не страшно pardon.gif .... у меня так люди в городе спауняться pardon.gif
MasterMage
balrog swoon.gif это да...
А как с птицой-то?...
Не выдержу и зажарю, заменив...Просто она в ролике смотрится лучше всех=)
balrog
MasterMage Ждём пока, ктонить знающий ответит buba.gif но навернека, порыться в скрипте можно и там нацти список визуальных эффектов.
Aiwan
QUOTE (MasterMage @ Jan 30 2005, 21:37)
Эффект действует на нее, но она как бы взлетает, а потом приземляется по эффекту...А как сделать, чтоб ее не было видно, а появилась она ерез этот эффект...

А что инвизибл ее сделать низя? Потом расчитать на конец спелла ее видимость? Или вы междусобойчик тут обсужджаете о чем толком я понять не могу и ждете дельных советов. biggrin.gif
MasterMage
Aiwan Мог задумать.... pardon.gif просто... Гы ну ладно, попробую, спасибо...голова не карит, вот что скажу... pardon.gif
DreamWalker
Для чего нужна в скриптах такая штука: Object_self
DreamWalker
Тупой вопрос. Я понимаю.
Aiwan
QUOTE (FlankerKMS @ Feb 2 2005, 17:01)
Тупой вопрос. Я понимаю.

Во первых. Не стоит извиняться за простые вопросы, тем более ответа на него тут еще не было. Все мы задавали такие же.
QUOTE (FlankerKMS @ Feb 2 2005, 15:27)
Для чего нужна в скриптах такая штука: Object_self

Скрипт часто исполняется на самом объекте. К примеру скрипт стоит на НПС. Так вот, этого НПС можно не описывать, как к примеру:
Neverwinter Script Source
object oNPC = GetObjectByTag("ТАГ_ТВОЕГО_НПС");

А можно просто написать:
Neverwinter Script Source
object oNPC = OBJECT_SELF;

Что означает что это сам объект и есть, на ком исполняется скрипт.
DreamWalker
Спасибо. yahoo.gif
Добавлено в [mergetime]1107357832[/mergetime]
Объясните назначение int nNth=1 в
object GetNearestObjectByTag(string sTag, object oTarget=OBJECT_SELF, int nNth=1)
Lemegeton
Например: у тебя стоит два объекта с одинаковыми тэгами НЕ равноудаленными (да такое и сложно) от игрока (от объекта на котором запускается скрипт с этой ф-цией). Тогда GetNearestObjectByTag("Тэг", OBJECT_SELF, 1) вернет первый объект, а GetNearestObjectByTag("Тэг", OBJECT_SELF, 2) вернет второй объект. Обозначение int nNth = 1 в С обозначает переменную со значением "по-умолчанию", которую можно не задавать, т.е. GetNearestObjectByTag("Тэг", OBJECT_SELF, 1) вернет то же самое, что GetNearestObjectByTag("Тэг", OBJECT_SELF).
DreamWalker
Т.е. "вернет первый объект, а GetNearestObjectByTag("Тэг", OBJECT_SELF, 2) вернет второй объект", где первый это ближайший, так?
Lemegeton
Точно. Именно так. Ближайший к OBJECT_SELF. Что будет, если они будут РАВНОУДАЛЕНЫ не очень понятно. Считай, что в таком случае вернет случаный biggrin.gif
DreamWalker
Еще вопрос. Зачем в ставится "!" в перед функциями вроде !GetIsInCombat()
Lex
! - отрицание
!= - неравно
(!утверждение) соотв возвращает TRUE, если утверждение ложно и наоборот


Лексикон под 1.64. Вышел 10 ноября - читай. Это букварь скриптера
Lemegeton
Знак "!" обозначает логическое отрицание. Что такое TRUE и FALSE знаешь? Так вот:

!TRUE - это FALSE
!FALSE - это TRUE

P.S. Это обозначение из C++.
P.P.S. Гы. на минуту позже Lexhi.gif
P.P.P.S. Lexicon - руль, но по-англицки.
DreamWalker
У меня 1.32 biggrin.gif
И еще вопросик. Я хочу сделать простенкую анимацию, посадить НПС и заставить его пить(что-либо). Как указать ему сесть. И на что ее ставить(анимацию)? dntknw.gif
Добавлено в [mergetime]1107365568[/mergetime]
В смысле нужно ли указывать объект(т.е. стул), и если да, как это сделать? dntknw.gif
Lemegeton
Ф-ция ActionSit(object oChair), где oChair - объект, на который нужно сесть. Должна быть вызвана только от лица садящегося иначе получишь "артефаткы" (фигню, то бишь) опять таки, oChair должно быть чем-то, на что можно сесть, или снова, получишь "артефаткы" (фигню, то бишь). Куда эту ф-цию "пихать" - твоя задача. Например, на OnHeartBeat, но есть и другие варианты...

Объект указывать с помощью ф-ции GetNearestObjectByTag, или любой другой по смыслу, возвращающей "объект типа "стул"" biggrin.gif
DreamWalker
Большое, большое сенкс.
Добавлено в [mergetime]1107367832[/mergetime]
Ошибка: потеря анализатора переменной ----- Что это бы могло значить? dntknw.gif
Aiwan
Это значит у тебя локализация. И это значит что может многое чего значиить.
MasterMage
FlankerKMS где-то ошибся...или функцию написал неправильно, или переменная глючит wizard.gif
DBColl
FlankerKMS
Ставь английскую версию. Количество багов уменьшится минимум на 25%.
Лито
Скажу еще раз про краску, ничего писать не надо я просто нашел краску в стандартной палитре biggrin.gif смешеное>создание и покупка матерьяла> там есть краска на почти любой вкус wink.gif
Vhall
Насчет краски. Как она реагирует на каcтомные айтемы\одежду? this.gif
По идее должна глючить... black eye.gif
MasterMage
DBColl ну не знаю, мне и на русском хорошо живется... biggrin.gif
пока траблов, кроме ошибки, что не убрать, а потом модуль восстанавливать, не наблюдаю pardon.gif
Lex
MasterMage, как хочешь. Но на английском действительно меньше косяков. Ты просто пока большой модуль не делал и на сталкивался с тем, что он рассыпаться может. А я сталкивался.
Лито
кто нибудь знает как открыть модуль сделанный на версии 1.65, тулсетом 1.64?
И где скачать 1.65 для сервера? Это очень важно, потому что нужно перевести наконец сервак на версию 1.65, а патча для него я нигде не нашел... dntknw.gif
Aiwan
Лито вопрос это разбирали. Правь хекс редактором версию в модуле. Порыщи тут уже есть на эту тему ответы.
MasterMage
Lex как так? %(
рассыпаться...просто мой модуль уже 4 метра...
Nokoll
QUOTE
MasterMage, как хочешь. Но на английском действительно меньше косяков. Ты просто пока большой модуль не делал и на сталкивался с тем, что он рассыпаться может. А я сталкивался.

Лучше сделать резервную копию good.gif
MasterMage
Nokoll я так и делаю.......кстати, вот скрипт
ставится на OnPlayerEquipItem
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastEquippedBy();
    object oRing=GetPCItemLastEquipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
oPC,1,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    effect eEf2=EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEf,oPC);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEf2,oPC);
    AssignCommand(oNPC,ClearAllActions());

    }
    return;
}

ставится на OnPlayerUnequipItem
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastUnequippedBy();
    object oRing=GetPCItemLastUnequipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,
PLAYER_CHAR_NOT_PC,
oPC,1,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    while(GetFirstEffect(oPC)==eEf)
    {
    RemoveEffect(oPC,eEf);
    eEf=GetNextEffect(oPC);
    }
    }
    return;
}

пробуй, не проверял pardon.gif
Aiwan
ОТРЕДАКТИРУЙТЕ СКРИПТЫ! или потру нафик!
Oksivarus
Добрый день все достопочьтенные граждане WRG!!!

Подскажите как культурно перебирать инвентарь на наличие вещей у которыйх есть общяя чать тега.
Это используется для поиска наличия разной еды. Я использую функцию HasItem(oPC,"food") но она может сказать что есть предмет именно с таким тегом (насколько я понял). Как сделать чтоб находились теги food_1, food_2, food_3 и т.д при этом не задавать полное их имя.
MasterMage
Oksivarus до такого я пока не дошел, поэтому не знаю как тебе помочь....Спроси Айвана
Lemegeton
Oksivarus: Можно попробовать так:
Neverwinter Script Source
main()
{
  int nItems = 0;
  string sTag = "";
  int iPos = 0;
  // Первый объект в инвенторе
  object oItem = GetFirstItemInInventory(GetFirstPC());
  // Пока объекты есть (перебираем все объекты)
  while (GetIsObjectValid(oItem) == TRUE)
  {
      oTag = GetTag(oItem);  // Получаем таг текущего объекта
      iPos = FindSubString(oTag, "food");  // Пытаемся найти позицию подстроки "food" в таге
      if (iPos>-1) {  // Если подстрока найдена
        // Делаем тут все, что надо.
      }
      // Ищем следующий объект в инвенторе
      oItem = GetNextItemInInventory(GetFirstPC());
  }
}
Aiwan
Можно и так. Я не проверял но компелится. Если будет трабла, просто отсоедени
Neverwinter Script Source
GetStringLeft(GetTag(oItem), 5) == "food_")
добавив лишний if.
Neverwinter Script Source
void main()
{
    object oPC = GetFirstPC(); // Сам опишешь его правильно
    object oItem = GetFirstItemInInventory(oPC);
    // Пока такой объект сушествует и его 5 знаков TAG слева равны food_
    while (GetIsObjectValid(oItem) && GetStringLeft(GetTag(oItem), 5) == "food_")
          {
          // Проверка на пистициды
          if (GetStringRight(GetTag(oItem), 2) == "01") // Ищем адрессно, ежли надо
          {
          }
          oItem = GetNextItemInInventory(oPC);
          }
}
Lemegeton
Oksivarus:
Способ Aiwan'а будет быстрее, но лучше отсоедини из while'а, т.к.:

IMHO + вопрос новичка к Aiwanblush.gif :
Neverwinter Script Source
while (GetIsObjectValid(oItem) && GetStringLeft(GetTag(oItem), 5) == "food_")

Что произойдет, когда oItem будет INVALID? Будет ли движок дальше считать логическое выражение? Если да - могут быть траблы с GetTag(oItem), т.к. oItem будет INVALID. Или где-то можно это настроить?

Или я не прав?
Aiwan
Lemegeton видишь ли, движок авроры это не физическая модель мира+законы физики в виде функций скриптов. Поэтому я и написал, что если будут траблы пусть сделает с условием одним еще. Просто ограничения движка просчитать на все позиции что мы с вами выдумываем не сможет ни один нормальный кодер. Погибнет... russian_roulette.gif Вот попробуйте и скажите, будет дебаг ругаться или все пройдеть. biggrin.gif

Bregolas
Добрый день, уважаемые! wink.gif Если не трудно, помогите мне разрешить несколько проблем с родной Аврорушкой и модулем)

Часть Первая: Умные Монстры swoon.gif
Вероятно, этот вопрос уже был на обсуждении... сильно не ругайте wink.gif
Проблема в том, что милые монстряшки очень любят бегать за удирающими плеерами... разумеется, и через зоны. В результате
а) получается бардак в областях (ну это можно решить еще постами)
б) получается веселый праздник аля "гоблины в городе"
в связи с этим вопрос ^^
-как запретить переход между областями монстрам вообще (может есть такой switch)
или
-как сформулировать скрипт OnAreaExit, который не пускает монстра в область/триггер
(в добавку приведу один пример из архива сервера: игрок, улепетывая от пантеры перешел несколько областей и вошел в портал в город. Каковым же было его удивление, когда вроде бы отставшая кошка материализовалась прямо перед ним - уже в городе...)

Часть Вторая: Умные NPC
После перехода на версию 1.64 в городах начали происходить странные вещи) Как только NPC замечает PС (вестимо на onheartbeat), он начинает предпринимать необычные действа, а именно: НПЦ всей толпой (включая собак и кошек) бегут (именно бегут) к дверям в области и открывают их. После этого все вроде как возвращается на круги своя... ActionRandomWalk(), понимаешь... Но стоит закрыть дверь... Рылся в x0_i0_anims и пытался поправить вот такого рода строчки


Neverwinter Script Source
void AnimActionPlayRandomImmobile();

// Perform a random close-range action.
// This will include:
// - go to a nearby placeable and interact with it
// - go to a nearby friend and interact with them
// - play a random animation
// - walk to a nearby 'NW_STOP' waypoint
// - close an open door and return
// - go back to starting position
// - fall through to ActionPlayRandomImmobile


из списка меня насторожило
go to a nearby placeable and interact with it
и
close an open door and return

Складывается ощущение, что вместо того, чтобы закрывать открытые двери, они открывают закрытые swoon.gif
OnHeartbeat (onSpawn) у НПЦ стоит простой ActionRandomWalk()
у некоторых
IsMobileCloseRange


Заранее благодарен!
Oksivarus
Хорошо попробую все что тут посоветовали но сразу возник вопрос а будет ли работать условие если я его запихну внутрь условия, примерно должна выйти следующяя строка (извините я с работы, под рукой тулсета нету пишу как помню)

IF (HasItem(oPC,"badrol")&& HasItem(oPC,"Wood")&& HasItem(oPC,(GetIsObjectValid(oItem) && GetStringLeft(GetTag(oItem), 5) == "food_"))
}

насколько я понимаю в функция HasItem сама перебирает весь инвентарь а вот для GetIsObjectValid надо принудительно делать цикл перебора.
Добавлено в [mergetime]1107524638[/mergetime]
Bregolas - я тоже думал сначяла с этим боротся но потом посмотрел прикольная такая оживленность выходит на шарде yahoo.gif просто обыкновенно ходящие неписи особено упирающиеся в стены не сильно приклекательно смотрятся. Главное они не могут открыть двери которые закрыты на замок или другим способом. Возможно это не так уж и плохо (правда если это в сингле то да пикольного тут мало).
Lemegeton
Тэкс, а что такое oItem и откуда он береться в такой строчке?
А вот это
Neverwinter Script Source
...HasItem(oPC,(GetIsObjectValid(oItem) && GetStringLeft(GetTag(oItem), 5) == "food_"))...
что такое? Может скобочки не закрыл где-то? Получается, что HasItem вторым параметром примет булевское значение (0 или 1)?!

З.Ы. Перебирать шмотки по-любому придется, если хочешь искать по части тэга а не по тэгу целиком.

Aiwan: Не, вопрос в другом. У меня пол-тулсета под WineX'ом галлюцинируют, так что я не знаю, есть ли в NWNScript'ах настроечка компилятора а-ля Complete Boolean Equations в С++?
Bregolas
QUOTE
Bregolas - я тоже думал сначяла с этим боротся но потом посмотрел прикольная такая оживленность выходит на шарде  просто обыкновенно ходящие неписи особено упирающиеся в стены не сильно привлекательно смотрятся. Возможно это не так уж и плохо (правда если это в сингле то да пикольного тут мало).


Не согласен dntknw.gif Мои "неписи" мирно ходят по городку и в стены не упираются wink.gif Другое дело, выглядит все это не только несолидно но и туповато...

QUOTE
Главное они не могут открыть двери которые закрыты на замок или другим способом.


Ну, разумеется, все двери в таверны и кузницы открыты) Поэтому все они подвергаются нападению маньяков-нпц...

QUOTE
(правда если это в сингле то да пикольного тут мало)


Если честно, на шарде это я тоже нахожу не очень веселым) особенно в густонаселенных городах.

З.Ы.: Что еще я заметил: странным образом не во всех городах такие вещи происходят) Проверил - оказывается, если нпц не Commoner по классу, то он не подвержен такому дверевлечению. Но это только гипотеза...
any idea?
Aiwan
Bregolas как раз эту проблему я решал в ПЛ. Пираты бегали где ни попадя. Смотри базу скриптов там есть мой для дверей и триггеров.
QUOTE (Bregolas @ Feb 4 2005, 19:22)
OnHeartbeat у НПЦ стоит простой ActionRandomWalk()

Вот это лишнее. На кой тебе юзать хербит когда есть на онспавне строки? Раскомментируй их и сохрани скрипт под новым именем. Как нужн бродячий НПС вставь его ему и все, при загрузке он будет вечно бродить без хербита. И немедленно все убери оттуда у всех.
QUOTE (Oksivarus @ Feb 4 2005, 19:34)
насколько я понимаю в функция HasItem сама перебирает весь инвентарь а вот для GetIsObjectValid надо принудительно делать цикл перебора.

Насколько я понимаю, ты сам слабо представляешь что тебе надо. Давай что бы мы тут не выдумывали фигню, ты опишешь строго свою задачу и мы подумаем. А то телепаты у нас в отпуске и нам трудно представить что ты хочешь. biggrin.gif Дальше, на кой тебе прилеплять инклюбу биовар? HasItem... ты знаешь сколько она весит? Если твой скрипт из двух строк будет содержать две инклюды биовар по 2 мега, то твой короткий на 5 кб скрипт будет весить 4 метра. Ясно? Инклюды сохраняются в теле скрипта.
Теперь о твоем скрипте... Что он делает я dntknw.gif .... но то что ты просил тут. Если окажется что тебе надо совсем другое, то мы тебя дружно побьем. aggressive.gif rolleyes.gif biggrin.gif biggrin.gif
Neverwinter Script Source
void main()
{
    object oPC = GetFirstPC(); // Сам опишешь его правильно
    object oItem = GetFirstItemInInventory(oPC);
    string sTag = GetStringLeft(GetTag(oItem), 5);
    object oB = GetItemPossessedBy(oPC,"badrol");
    object oW = GetItemPossessedBy(oPC,"Wood");
    if (GetIsObjectValid(oB)) // Если у РС коврик под задницей
    {
    if (GetIsObjectValid(oW)) // Если он засранец дров нарубили в лесу
        {
        while (GetIsObjectValid(oItem)) // Лезем в сумку и делаем перебор всего дерьма
          {
          if (sTag == "food_") // Находим бутерброд
          {
          // ПЛЮЕМ В НЕГО И ПРЯЧЕМ В СУМКУ РС
          }
          oItem = GetNextItemInInventory(oPC); // Смотрим следующий бутерброд
          }
        }
    }
}
Bregolas
QUOTE
Вот это лишнее. На кой тебе юзать хербит когда есть на онспавне строки? Раскомментируй их и сохрани скрипт под новым именем. Как нужн бродячий НПС вставь его ему и все, при загрузке он будет вечно бродить без хербита. И немедленно все убери оттуда у всех.


извини, описался... разумеется, все они на onspawn. Это мне известно. Но любопытно было бы узнать что делать с их странно работающими random animations.

За скрипт большое спасибо. Буду пробовать. Единственное, можно ли его приспособить и к OnAreaEnter, а то как-то невесело править двери и триггеры в 160 областях "?" smile.gif
Aiwan
QUOTE (Bregolas @ Feb 4 2005, 21:38)
За скрипт большое спасибо. Буду пробовать. Единственное, можно ли его приспособить и к OnAreaEnter, а то как-то невесело править двери и триггеры в 160 областях "?"

А неписей поправить в стольких облостях? Инвентарь им настроить? biggrin.gif Все этол я уже прохдил... Не ленись, правь.
QUOTE (Bregolas @ Feb 4 2005, 21:38)
Но любопытно было бы узнать что делать с их странно работающими random animations.

Если ты заметил, то сама по себе функция это только функция. А всем управляет в основном инклюда валкмен. Так вот, если ее исправить патчем ипрописать что нить такого rolleyes.gif эдакого, то такое и будет. Когда мы преходили с НВН на СОУ то еще покруче глюки ловили...
Bregolas
Ну извини, глумишься ты что ли надо мной?

QUOTE
Если ты заметил, то сама по себе функция это только функция.


я то как раз заметил, и спрашиваю, как поправить x0_i0_anims и в нем ли дело! Дело в том, что по информации о патче 1.64 в ЭТОМ СКРИПТЕ ничего по идее не менялось. Тогда возникает вопрос: может сама функция GetIsClosed или ActionCloseDoor или какая иная перестали работать корректно?

QUOTE
А неписей поправить в стольких облостях? Инвентарь им настроить?  Все этол я уже прохдил... Не ленись, правь.



Я, к счастью, больше двух лет уже в тулсете сижу и за это время на своих собственных ошибках и в одиночку же столько проблем переворотил, что эта фраза излишня... Про лень ты поймешь из вот этого примера: прикольно ли поправить 200 дроу в городе, после того как обнаружилось, что элайнмент у них CG вместо NE? (пришлось переделывать и палитру и размещенных, так как у всех были разные настройки как по скриптам? так и по инвентарю...) Сейчас же таким трудом заниматься нет времени, к сожалению.

Я просто задал вопрос "можно ли". Я не спрашивал "править ли мне"
Oksivarus
Aiwan спасибо за скрипт насколко я понимаю это то что я хотел, а именно - опрделить есть ли в инвентаре предмет с частью заданного тега.
Oksivarus
Извиняюсь я опять, попробывал скрипт и теперь незнаю как прост можно реализовать следующее:
в соответствии с скриптом Aiwanа перебираем инвернтарь на наличие нужного предмета, если тег предмет совпадает то выполняем нужное действие если нет то бепем следующий предмет - ВОПРОС - как тут определить что такого предмета вообще нет в сумке.

скажу что хочю, возможно я просто не могу пояснить (все проблемы людей в непонимании друг друга)
Нужен скрипт для отдыха игрока (почьти стандартный) в котором проверяется наличие таких необходимых предметов - 1-бедрол, 2-дрова, 3-еда (причем еды может быть 10 видов и соответственно 10 различных тегов начинающихся на food.)
бедрол после сна возвращяется, дрова и найденная еда уничьтажаются
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.