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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 149 150 151 152 153 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Aiwan
сообщение Jun 26 2008, 22:00
Сообщение #3751


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

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



Цитата(shadowdweller @ Jun 26 2008, 00:43) *
А еще такой вопрос - обязательно такой сложный скрипт писать на проверку надетого предмета у игрока или можно воспользоваться стандартным условием? Я просто скрипт у Айва посмотрела и жутко впечатлилась. Ключевое слово - жутко.

Шад, я жеж делал УНИВЕРСАЛЬНЫЙ скрипт один на все. Плюс, я хотел что бы тебе было ПРОСТО его использовать. Если бы я знал, что ты буш его ковырять, то сделал бы вместо этого:
Neverwinter Script
// ------------- Проверка на уникальный предмет одетый -----------------
  // находим одетое на игроке и определяем это
  object oItemNesk = GetItemInSlot(INVENTORY_SLOT_NECK, oPC);
  object oItemRingR = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC);
  object oItemRingL = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC);

  // Смотрим свойства триггера и ищем, помечен ли таг нужной вещи
  string sNesk = GetLocalString(oSelf, "INVENTORY_SLOT_NECK"); // Амулет
  string sItemRingR = GetLocalString(oSelf, "INVENTORY_SLOT_RIGHTRING"); // Кольцо
  string sItemRingL = GetLocalString(oSelf, "INVENTORY_SLOT_LEFTRING"); // Кольцо

  // Если у нас помечено, что таг амулета не пустой
  if (sNesk != "")
  {   // таг надетого амулета не сходятся или он вообще не надет то возврат скрипта
     if (GetTag(oItemNesk)!= sNesk || oItemNesk == OBJECT_INVALID)
     {
      SendMessageToPC(oPC, "<cу  >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
      if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
      {
        if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
       {
         SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
         DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
         DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
       }
     }
      return;
     }
  }
  if (sItemRingR != "")
  {
     if (GetTag(oItemRingR)!= sItemRingR || oItemRingR == OBJECT_INVALID)
     {
      SendMessageToPC(oPC, "<cу  >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
      if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
      {
        if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
       {
         SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
         DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
         DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
       }
     }
      return;
     }
  }
  if (sItemRingL != "")
  {
     if (GetTag(oItemRingL)!= sItemRingL || oItemRingL == OBJECT_INVALID)
     {
      SendMessageToPC(oPC, "<cу  >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
      if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
      {
        if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
       {
         SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
         DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
         DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
       }
     }
      return;
     }
  }
// ------------- Проверка на уникальный предмет одетый -----------------


ВОТ ЭТО:
Neverwinter Script
if GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) != "Branzuletko")
return;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 26 2008, 22:29
Сообщение #3752


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Ясно! А 1.69 вроде еще только на стадии проверки? Или уже все, можно качать и пользоваться?
Ну пока он бетой зовётся, хз, когда сделают финалку (IMG:style_emoticons/kolobok_light/smile.gif) Был слух, что десятая бета и будет финалкой, на биоварях пока выложена 9я.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 27 2008, 00:52
Сообщение #3753


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Ilerien, огромное спасибо! (IMG:style_emoticons/kolobok_light/thank_you.gif)
Айв, и тебе тоже! Приятно, честное слово! Конечно, я буду ковырять! Я все скрипты ковыряю (IMG:style_emoticons/kolobok_light/smile.gif) Мне же хочется знать, как это делается!
Мне просто нужна такая секретная дверь, появление которой зависело бы только от наличия амулета на слоте, и ни от чего другого. Вот и пытаюсь разобраться.

Ilerien, только вот какая вещь. Вот в этой строке выдает ошибку "VARIABLE DEFINED WITHOUT TYPE"
Neverwinter Script
if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) == "Branzuletko")

И еще. Ты говоришь - убрать хартбит с видимой двери. Если я правильно поняла, видимая - это та, которая присутствует в палитре и создается, если игрок приближается к невидимому объекту, так? То есть, видимая в игре, а не в тулсе? (IMG:style_emoticons/kolobok_light/slow.gif)

Сообщение отредактировал shadowdweller - Jun 27 2008, 01:20
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 27 2008, 01:46
Сообщение #3754


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Neverwinter Script
if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oNearestCreature, INVENTORY_SLOT_NECK)) == "Branzuletko")
Цитата
И еще. Ты говоришь - убрать хартбит с видимой двери. Если я правильно поняла, видимая - это та, которая присутствует в палитре и создается, если игрок приближается к невидимому объекту, так? То есть, видимая в игре, а не в тулсе?
Она самая (IMG:style_emoticons/kolobok_light/smile.gif) Обжект в палитре зовётся "Потайная дверь".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 27 2008, 07:25
Сообщение #3755


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

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



Цитата(Ilerien @ Jun 26 2008, 23:29) *
Ну пока он бетой зовётся, хз, когда сделают финалку (IMG:style_emoticons/kolobok_light/smile.gif) Был слух, что десятая бета и будет финалкой, на биоварях пока выложена 9я.
Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 27 2008, 08:04
Сообщение #3756


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(virusman @ Jun 27 2008, 10:25) *
Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом.

Спасибо! Значит, заморачиваться с попытками надеть эти плащи пока просто не стоит...

И еще, безотносительно ко всему предыдущему вопрос: как сделать так, чтобы при юзании однго из нескольких юзабл прейсеблов, остальные делались бы неюзабл? Чтоб получалось, чо выбрал один раз - и все, больше не повыбираешь? (примерно как было в HotU в комнате зеркал, тока что там из инвентаря в зеркале выбирать, а тут плейсеблы)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 27 2008, 12:29
Сообщение #3757


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Цитата(Ilerien @ Jun 27 2008, 02:46) *
Neverwinter Script
if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oNearestCreature, INVENTORY_SLOT_NECK)) == "Branzuletko")

27.06.2008 13:28:35: Error. 'il_scdoor_hb_1' did not compile.
il_scdoor_hb_1.nss(59): ERROR: DECLARATION DOES NOT MATCH PARAMETERS
(IMG:style_emoticons/kolobok_light/cray.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 27 2008, 14:19
Сообщение #3758


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом
Я отстал от жизни (IMG:style_emoticons/kolobok_light/sad.gif)
Цитата
ERROR: DECLARATION DOES NOT MATCH PARAMETERS
Neverwinter Script
GetItemInSlot(INVENTORY_SLOT_NECK, oNearestCreature)
Н-да, ну не помню я порядок аргументов (IMG:style_emoticons/kolobok_light/blush.gif) А смотреть хелп в тулсе было влом (IMG:style_emoticons/kolobok_light/snoozer_17.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 27 2008, 18:39
Сообщение #3759


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

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



shadowdweller, скриптинг для шардов совсем другой. Не парь мозги, поставь так и будет работать:
Neverwinter Script
if (LineOfSightObject(oSelf, GetFirstPC()) && (!bNeedDetectMode || GetActionMode(GetFirstPC(), ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(GetFirstPC(), INVENTORY_SLOT_NECK)) == "Branzuletko")
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 28 2008, 00:00
Сообщение #3760


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Lirulin, на тех зеркалах, если не ошибаюсь, случайным образом накладывались различные эффекты. Чтобы зеркало считалось уже использованным, на него можно повесить "флаг" (переменную), которая не позволит сработать висящему на событии объекта OnUsed скрипту. Если объекты сделаны по маске (pl_mirror_01, pl_mirror_02, pl_mirror_03, pl_mirror_04 ...), то все остальные объекты можно сделать неиспользуемыми с помощью цикла, который прогонит данные объекты через себя и поставит на каждый флажок, запрещающий запускаться скрипту.

shadowdweller, только наоборот:

Neverwinter Script
GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC()))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 28 2008, 01:35
Сообщение #3761


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

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



Цитата
как сделать так, чтобы при юзании однго из нескольких юзабл прейсеблов, остальные делались бы неюзабл? Чтоб получалось, чо выбрал один раз - и все, больше не повыбираешь?

Neverwinter Script
// Set oPlaceable's useable object status.
// Note: Only works on non-static placeables.
void SetUseableFlag(object oPlaceable, int nUseableFlag)

нэ?

если не прокатит - всегда можно старые уничтожить и создать новые неюзабельные.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 28 2008, 11:23
Сообщение #3762


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

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



Цитата(Zirrex @ Jun 28 2008, 02:00) *
shadowdweller, только наоборот:

Neverwinter Script
GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC()))

Вот поэтому у тебя наверняка и не компелится твой скрипт. Я же правил твою строку без редактора. Ты наверное перепутала местами аргументы функции.

Это я Шад... (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 28 2008, 13:19
Сообщение #3763


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Цитата(Ilerien @ Jun 27 2008, 15:19) *
Н-да, ну не помню я порядок аргументов А смотреть хелп в тулсе было влом

Цитата(Zirrex @ Jun 28 2008, 01:00) *
[только наоборот:
Neverwinter Script
GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC()))

Цитата(Aiwan @ Jun 28 2008, 12:23) *
Вот поэтому у тебя наверняка и не компелится твой скрипт. Я же правил твою строку без редактора. Ты наверное перепутала местами аргументы функции.

Это моя вина (IMG:style_emoticons/kolobok_light/smile.gif) Вот что мне стоило зайти в тулсет и самой посмотреть эти грешные аргументы! А я испугалась, что что-нибудь вообще насовсем испорчу... Да, в обратном порядке действительно компилится. Спасибо!

ЗЫ: Урра! (IMG:style_emoticons/kolobok_light/yahoo.gif) Все работает! Ilerien, Aiwan, спасибо огромное, что мучаетесь со мной.

ЗЗЫ: И еще такой вопрос - скрипты применимы только к одной паре дверей? То есть можно ли использовать одни и те же скрипты для каждой пары дверей на одной и той же локации? Или нужно каждый раз их перенастраивать для каждой конкретной пары?

Сообщение отредактировал shadowdweller - Jun 28 2008, 13:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 28 2008, 20:03
Сообщение #3764


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Zirrex, azathoth, спасибо, я попробую!

azathoth, а куда вешать скрипт?



Цитата(Zirrex @ Jun 28 2008, 03:00) *
Чтобы зеркало считалось уже использованным, на него можно повесить "флаг" (переменную), которая не позволит сработать висящему на событии объекта OnUsed скрипту. Если объекты сделаны по маске (pl_mirror_01, pl_mirror_02, pl_mirror_03, pl_mirror_04 ...), то все остальные объекты можно сделать неиспользуемыми с помощью цикла, который прогонит данные объекты через себя и поставит на каждый флажок, запрещающий запускаться скрипту.


Куда и как вешать флаги? На OnUsed уже висит - к нему прибавить?
А объекты имеют тэги примерно name1_statue, name2_statue... и .д. И по идее, когда поюзаешь, она сама пропадает. А вот другие должны оставаться... но не юзаться более.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 28 2008, 20:16
Сообщение #3765


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
И еще такой вопрос - скрипты применимы только к одной паре дверей? То есть можно ли использовать одни и те же скрипты для каждой пары дверей на одной и той же локации? Или нужно каждый раз их перенастраивать для каждой конкретной пары?
Все настраивается в самих дверях, я в мануале описывал (IMG:style_emoticons/kolobok_light/wink3.gif) Просто теги нужны разные для каждой двери.

Цитата
Куда и как вешать флаги?
Поставить галочку "используемый" (IMG:style_emoticons/kolobok_light/smile.gif)
Снимать юзабл флаг у остальных - тоже в onUse.

Сообщение отредактировал Ilerien - Jun 28 2008, 22:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 28 2008, 22:43
Сообщение #3766


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Цитата(Ilerien @ Jun 28 2008, 21:16) *
Все настраивается в самих дверях, я в мануале описывал (IMG:style_emoticons/kolobok_light/wink3.gif) Просто теги нужны разные для каждой двери.

Звиняюсь. Моя сегодня тупой тролль. (IMG:style_emoticons/kolobok_light/orc.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 29 2008, 07:58
Сообщение #3767


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(Ilerien @ Jun 28 2008, 23:16) *
Снимать юзабл флаг у остальных - тоже в onUse.


А можно поподробнее, как это сделать так, чтобы не получилось, как у Xfans - объект пропал, и скрипт, висящий на нем перестает выполняться? Поставить это действие ДО DestroyObject?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 29 2008, 11:07
Сообщение #3768


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

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



Цитата(Lirulin @ Jun 29 2008, 08:58) *
А можно поподробнее, как это сделать так, чтобы не получилось, как у Xfans - объект пропал, и скрипт, висящий на нем перестает выполняться? Поставить это действие ДО DestroyObject?

Пожалуйста… Количество плейсов может быть любым, останется только один юзабельным, т.е. который мы откроем. Что с ним делать – это уж ваши проблемы. Другие, с такими же тегами в этой области, заменятся плейсами из палитры.
Цитата(azathoth @ Jun 28 2008, 02:35) *
Neverwinter Scriptnss1// Set oPlaceable's useable object status.// Note: Only works on non-static placeables.void SetUseableFlag(object oPlaceable, int nUseableFlag)nss2nss3нэ?если не прокатит - всегда можно старые уничтожить и создать новые неюзабельные.

Что-то этой функции в моем тулсете нет…

Neverwinter Script
//:://////////////////////////////////////////////
//:: Слот: OnUsed
//:: File name: us_place_destroy
//:://////////////////////////////////////////////
void main()
{
object oPC = GetLastUsedBy();
int nNth; // Номер плейса
string sTag = GetTag(OBJECT_SELF);
object oPlace = GetNearestObject(OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nNth); // Ближайший плейс

if(GetLocalInt(OBJECT_SELF, "DESTROY")==1) return; // Если скрипт сработал - выход
while(GetIsObjectValid(oPlace))
{
  if(GetTag(oPlace) == sTag && GetLocalInt(oPlace, "DESTROY")==0) // Если совпали теги
  {
  SetLocalInt(oPlace,"DESTROY",1); // Вешаем локалку
  string sResRef = GetResRef(oPlace); // ResRef неюзабельного плейса в палитре
  location Loc = GetLocation(oPlace);
  //Заменим плейс на неюзабельный из палитры
  object oPlaceNew = CreateObject(OBJECT_TYPE_PLACEABLE, sResRef, Loc, FALSE, "NEW_"+sTag);
  AssignCommand(oPC, SpeakString(GetName(oPlaceNew)+" "+IntToString(nNth))); // Фраза-Контроль
  DestroyObject(oPlace); // Удалим юзабельный плейс
  }
  nNth++;
  oPlace = GetNearestObject(OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nNth);
}
  //ТУТ ПИШЕМ ЧТО ДОЛЖНО ПРОИЗОЙТИ С ЮЗАБЕЛЬНЫМ ПЛЕЙСОМ
  SetLocalInt(OBJECT_SELF,"DESTROY",1); // Вешаем локалку
}
/*
Теги всех удаляемых плейсов должны быть одинаковые.
РесРефы в палитре неюзабельных плейсов должны совпадать с юзабельными.
*/
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 29 2008, 11:54
Сообщение #3769


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Цитата(virusman @ Jun 27 2008, 07:25) *
Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом.

А не знаете, будет ли там поправлен еще один глючок, связанный с плащами - а именно то, что у существ с крыльями наличие плаща начисто убирает эти крылья?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 29 2008, 12:15
Сообщение #3770


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
А не знаете, будет ли там поправлен еще один глючок, связанный с плащами - а именно то, что у существ с крыльями наличие плаща начисто убирает эти крылья?
Это не глюк (IMG:style_emoticons/kolobok_light/smile.gif) Желаемый результат можно достичь редактированием cloakmodel.2da.
Цитата
Что-то этой функции в моем тулсете нет…
(IMG:style_emoticons/kolobok_light/shok.gif) Как-то всё сложно о.О
Neverwinter Script
const int PLACEABLE_QUANTITY = <количество обжектов>;

void main()
{
    object oPC = GetLastUsedBy(); //в приведённом ниже эта переменная не нужна, но, наверное, понадобится дальше
    object oSelf = OBJECT_SELF;
    string sTag = GetTag(oSelf);
    //теги что-то вроде "object_01", "object_02", etc. Bажен только двухсимвольный номер (IMG:style_emoticons/kolobok_light/smile.gif)
    int nNumberSelf = StringToInt(GetStringRight(sTag, 2));
    string sBase = GetStringLeft(sTag, GetStringLength(sTag) - 2);
    int nNumber;
    string sNumber;

    for(nNumber = 1; nNumber <= PLACEABLE_QUANTITY; nNumber++)
    {
        if(nNumber == nNumberSelf)
            continue;
        sNumber = IntToString(nNumber);
        if(nNumber < 10)
            sNumber = "0" + sNumber;
        SetUseableFlag(GetObjectByTag(sBase + sNumber), FALSE);
    }

    <тут прописываем, что должно происходить при юзе плейса>

}
Хы, <nss> не признаёт слово continue (IMG:style_emoticons/kolobok_light/whistle3.gif)
Цитата
А можно поподробнее, как это сделать так, чтобы не получилось, как у Xfans - объект пропал, и скрипт, висящий на нем перестает выполняться?
DestroyObject всё равно выполняется после того, как завершится вызвавший его скрипт. Если в скрипте ничего не заделеено, можно смело применять эту функцию на вызвавший скрипт обжект и не париться. Всё заделеенное нужно перекидывать на любой 100%-но валидный обжект - модуль/локу/игрока/...

Сообщение отредактировал Aiwan - Jun 30 2008, 23:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 29 2008, 22:02
Сообщение #3771


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(Ilerien @ Jun 29 2008, 15:15) *
Neverwinter Script
const int PLACEABLE_QUANTITY = <количество обжектов>;
...
    //теги что-то вроде "object_01", "object_02", etc. Bажен только двухсимвольный номер (IMG:style_emoticons/kolobok_light/smile.gif)
...

    <тут прописываем, что должно происходить при юзе плейса>

}

Количество включая юзаемый?
То есть мне, к тегам, которые есть, надо добавить порядковые номера, видом 01, 02 и т.д.?
А то, что при юзе плейса - это как раз изначально стоявший OnUsed скрипт?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 29 2008, 22:11
Сообщение #3772


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



gennady, скрипт, который ты привел выше, будет тормозить, и к тому же не стоит вкладывать в цикл такие вещи:
Neverwinter Script
object oPlaceNew = CreateObject(OBJECT_TYPE_PLACEABLE, sResRef, Loc, FALSE, "NEW_"+sTag);

без хотя бы маленькой задержки. Функция CreateObject довольно медленная, и точно также, как и DestroyObject, срабатывает не сразу, поэтому может привести к тормозу. Если бы так создавались живые объекты (НПС), то скрипт завершился бы ошибкой "Слишком много инструкций".

Да, переменная nNth у тебя равна FALSE, хотя, если посмотреть саму функцию, то она по умолчанию равна 1 (сомневаюсь, что цикл сработает правильно при первом лупе).

Потом, а зачем в теле цикла ты при каждом новом лупе определяешь переменные? Все это должно описываться перед циклом в самом начале кода.

Lirulin, под флагами подразумеваются "переменные". Вешаются они на тот объект, с которым производится операция.

Скрипт, который привел Ilerien выше, включает все нужные тебе объекты. Чтобы скрипт изменил им статус с "Use" на "Not Use", необходимо у каждого объекта сделать одинаковый тэг, в котором в самом конце изменить номер, начиная от 01 и заканчивая номером последнего объекта. Скрипт вешается на событие OnUsed каждогообъекта.

Ilerien,
Цитата
Хы, <nss> не признаёт слово continue
оно довольно редко используется в скриптах. А вообще, недочет (IMG:style_emoticons/kolobok_light/smile.gif) Кстати, скриптик прикольный. Я такими вещами часто пользуюсь, когда нужно составить из мелких символов, раскиданных по объектам нужный тэг. Коротко и сердито, и главное, нужен всегда всего лишь один скрипт (IMG:style_emoticons/kolobok_light/smile.gif)

Xfans, а почему глюк? Плащ как бы закрывает крылья. Торчащие крылья через плащ, очень странное явление. То что они торчат через броню, еще страннее (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Zirrex - Jun 29 2008, 22:14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 29 2008, 22:57
Сообщение #3773


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Количество включая юзаемый?
То есть мне, к тегам, которые есть, надо добавить порядковые номера, видом 01, 02 и т.д.?
А то, что при юзе плейса - это как раз изначально стоявший OnUsed скрипт?
Включая. Там в цикле специальная проверка на то, чтобы с обжектом, который мы юзаем, ничего не случилось Если нужно, её можно убрать (IMG:style_emoticons/kolobok_light/smile.gif) Вот проверка:
Neverwinter Script
if(nNumber == nNumberSelf)
    continue;
Тег отдельного плейсебла должен состоять из базы (любой, в примере "object_"), одинаковой для _всех_ таких плейсеблов, и двухсимвольного номера, начиная с "01".
Цитата
Функция CreateObject довольно медленная, и точно также, как и DestroyObject, срабатывает не сразу, поэтому может привести к тормозу.
У меня такое было, когда в цикле на вейпоинтах создавались камни завала при заходе существа на триггер (IMG:style_emoticons/kolobok_light/smile.gif) Сервер-то это ещё проглотит (хотя, в зависимости от количества обжектов), а вот в сингле будут тормоза, потому что там одна машина является сервером и клиентом одновременно, да и сама машина слабее любого шардового сервера.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jun 30 2008, 06:02
Сообщение #3774


Level 3
*

Класс: Обыватель
Характер: Neutral Good
Раса: Человек



Цитата(Ilerien @ Jun 29 2008, 12:15) *
Это не глюк (IMG:style_emoticons/kolobok_light/smile.gif) Желаемый результат можно достичь редактированием cloakmodel.2da.

Спасибо! Покопаем и найдем!

Цитата(Zirrex @ Jun 29 2008, 22:11) *
Xfans, а почему глюк? Плащ как бы закрывает крылья. Торчащие крылья через плащ, очень странное явление. То что они торчат через броню, еще страннее (IMG:style_emoticons/kolobok_light/smile.gif)

В том-то и дело, что раз уж они через броню торчат... наверное, подразумевается, что крылатые существа заказывают себе спец. броню с дырками для крыльев (IMG:style_emoticons/kolobok_light/biggrin.gif) (бывает же броня, через которую виден хвост(IMG:style_emoticons/kolobok_light/biggrin.gif) ). А если плащ прикроет крылья, будет порядочный горб. Ну ладно, это все тонкости, и уже не по теме. Просто должны же у ангела крылья торчать, чтоб было видно, что он ангел и есть.

Сообщение отредактировал Xfans - Jun 30 2008, 06:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jun 30 2008, 12:07
Сообщение #3775


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(Ilerien @ Jun 30 2008, 01:57) *
У меня такое было, когда в цикле на вейпоинтах создавались камни завала при заходе существа на триггер (IMG:style_emoticons/kolobok_light/smile.gif) Сервер-то это ещё проглотит (хотя, в зависимости от количества обжектов), а вот в сингле будут тормоза, потому что там одна машина является сервером и клиентом одновременно, да и сама машина слабее любого шардового сервера.

Ну, наверное создание одного паршивого NPC и убрание одной не менее паршивой статуи - это все же посильная задача для простого компа=) Вроде не виснет. Но спасибо за предупреждение, что много object'ов сразу ни destroy, ни create делать не надо.

Цитата(Zirrex @ Jun 30 2008, 01:11) *
Lirulin, под флагами подразумеваются "переменные". Вешаются они на тот объект, с которым производится операция.

Ну, это-то я уже усек, что флаг - это переменная. Просто вешать их пока не научился=)Но с такими подробными объяснениями скоро научусь!

Сообщение отредактировал Lirulin - Jun 30 2008, 12:12
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 149 150 151 152 153 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th March 2024 - 08:40