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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Азы скриптинга NWN/NWN2. Внеклассные занятия, Открыто для всех желающих
Neo
сообщение Oct 6 2007, 22:55
Сообщение #1



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



а это... можно спросить? (IMG:style_emoticons/kolobok_light/blush.gif) а что такое переменная? (IMG:style_emoticons/kolobok_light/blush.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
mamuc
сообщение Oct 10 2007, 09:25
Сообщение #2


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



то Griffon
Цитата
void main()
{
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();

//собственно само уничтожение DestroyObject
}

это можно использовать для написания скрипта по уничтожению..но только если пишется скриптпо уничтожению того, что надето на oPC (IMG:style_emoticons/kolobok_light/rolleyes.gif) так как нам поставлена задача уничтожить все , что есть в сундуке, то, очевидно это не подойдет
Цитата
пришла идея ловить все предметы пошагово
object GetFirstItemInInventory(object oTarget=OBJECT_SELF);

object GetNextItemInInventory(object oTarget=OBJECT_SELF);

//собственно само уничтожение предметов DestroyObject


а вот это уже шаг в правильном направлении (IMG:style_emoticons/kolobok_light/biggrin.gif) особенно важна идея, что это прийдеться делать
Цитата
пошагово

ведь мы заранее незнаем скольо всего навалено в сундук -
целая куча,
один предмет
или вообще он пустой
то Artlira
Цитата
Не совсем понятно на какой слот надо будет ставить этот скрипт, на OnHeartbeat или OnUsed?

очевидно, что логически скрипт уничтожения ставить на OnClose сундука - ведь это очень логично : подходит к сундуку уничтожения игрок, открывает его, выкладывает в сундук все, что ему не понадобиться и закривает сундук( и при этом уничтожает мусор)
Цитата
1. Обозначить сам сундук как объект (oChest)
object oChest = GetObjectByTag("Sunduc_1") с заданным тагом


так как сундук в данном случае у нас "рабочий инструмент " и скрипт будет на его слоте , то он и являеться тем обьектом по умолчанию (OBJECT_SELF), то правильно будет
object oChest = OBJECT_SELF;

п.с. очевидно мы сЛексом пишем одновременно о одних и тех же вешах (IMG:style_emoticons/kolobok_light/biggrin.gif)

Добавлено через 19 минут 53 секунды

пока писал пост завис и надо было повторить (IMG:style_emoticons/kolobok_light/sad.gif) ...продолжаю

Цитата
2. Обозначить любой предмет, как предмет лежащий в этом сундуке
object oItem = GetFirstItemInInventory(oChest) ?

здесь мы оперделяем oItem не как любой предмет, но именно как первый предмет в инвенторе
но сама идея так делать совершенно правильная (IMG:style_emoticons/kolobok_light/good.gif)
Цитата
3. Проверять 1 действием скрипта пустой ли сундук, если пустой, то должен быть выход из скрипта?

да ,это следует проверить
кстати,Лекс уже подсказал вам как проверить пустой ли инвентарь
Цитата
подсказка: проверка пустоты - инвалидность (OBJECT_INVALID, GetIsObjectValid) очередного взятого предмета (GetNextItemInInventory).
Инвалидный - несуществующий или неправильно заданный объект. Скажем мы пытаемся найти в модуле объект с тэгом "LEX", а такого объекта там нет.

Цитата
4. 2 действием проверить - есть ли в инвентаре сундука любой предмет (oItem), не знаю нужно ли в этом случае проверять кем положен? По условиям скрипта (уничтожение любого предмета) это вроде не требуется?

а зачем еще раз что то проверять?
в пункте 2 вы определил, что oItem являеться первым в инвентаре сундука, а выполнив правильно пункт 3 мы убедились, что сундук непустой и , значит такой первый предмет в инвентаре существует( а если при проверке
установили, что инвентарь пуст то уже вышли( закончили выполнение скрипта))

Цитата
5. Если такой предмет найден, он должен быть уничтожен.
DestroyObject(oItem) ? и снова выход из скрипта.

функция найдена правильно, но зачем выходить из скрипта-ведь предметов может быть больше чем 1! а нам надо уничтожить все вещи...

как я уже писал выше главная идея этого скрипта в том, что мы будем выполнять действия пошагово( что и выявил Griffon (IMG:style_emoticons/kolobok_light/good.gif) ) и одни и те же действия будем повторять НЕСКОЛЬКО раз

такое действие называеться циклом

циклы бывают двух типов
1) те, в которых известно точное количество повторений
2) те ,которые выполняют одни и те же действия ПОКА выполнено какое то условие

как выдумайте, какой вид повторения нам нужен (и обоснуйте почему)?

Сообщение отредактировал mamuc - Oct 10 2007, 13:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- Neo   Азы скриптинга NWN/NWN2. Внеклассные занятия   Oct 6 2007, 22:55
- - Aiwan   Переме́нная в традиционных языках программиро...   Oct 7 2007, 11:45
- - Vhall   QUOTE(Ёжик @ Oct 7 2007, 14:03) Почему oN...   Oct 7 2007, 13:43
- - mamuc   ЦитатаИнтеджер integer - это целое значение. может...   Oct 8 2007, 09:26
- - Neo   Цитата(mamuc @ Oct 8 2007, 10:26) маленьк...   Oct 8 2007, 13:43
- - mamuc   ЦитатаКаждый в скрипте имя oSelf сменит на свой ни...   Oct 8 2007, 14:23
- - Aiwan   mamuc, мне нужен был результат в виде кода. Я хочу...   Oct 8 2007, 16:14
- - Artlira   mamuc Если проиграть вариант с сундуком, то должн...   Oct 9 2007, 02:36
- - Lex   Да, именно так и будет. Добавлено через 3 минуты ...   Oct 9 2007, 08:15
- - mamuc   ЦитатаПри условии, что сундук пуст (OnClose), cкри...   Oct 9 2007, 08:54
- - Aiwan   Не надо ничего объединять. Лебедь Рак и Щука тоже ...   Oct 9 2007, 09:10
- - mamuc   ЦитатаНе надо ничего объединять. Лебедь Рак и Щука...   Oct 9 2007, 09:19
- - Griffon   Хорош вам уже грызться Neverwinter Script Sour...   Oct 9 2007, 11:33
- - Aiwan   Цитата(mamuc @ Oct 9 2007, 12:19) то есть...   Oct 9 2007, 11:52
- - mamuc   Цитатаobject Target=PC если ты хочешь это сделать ...   Oct 9 2007, 11:56
- - Griffon   Найти не так все сложно Neverwinter Script Source...   Oct 9 2007, 12:27
- - mamuc   Цитатаobject oUser = GetLastUsedBy() ; это есть то...   Oct 9 2007, 13:05
- - Artlira   ЦитатаЕсть мысли (Хотя бы на словах), как сделать ...   Oct 9 2007, 13:40
- - Griffon   Цитата(mamuc @ Oct 9 2007, 12:56) и еще о...   Oct 9 2007, 13:40
- - mamuc   ЦитатаМне кажется надо изменить определение объект...   Oct 9 2007, 13:53
- - Artlira   Цитатаа теперь найдите функцию с какой вы можете д...   Oct 9 2007, 14:42
- - mamuc   ЦитатаGiveGoldToCreature(GetPCSpeaker(),1000);? фу...   Oct 9 2007, 14:53
- - Griffon   Не не верно. Это подойдет при разговоре. Правильна...   Oct 9 2007, 14:56
- - mamuc   ЦитатаGiveGoldToCreature(GetLastClosedBy(),1000)? ...   Oct 9 2007, 15:27
- - Lex   Цитата(Artlira @ Oct 9 2007, 15:42) GiveG...   Oct 9 2007, 15:59
- - Griffon   Neverwinter Script Sourcevoid main() {   ...   Oct 9 2007, 18:34
- - Lex   Цитата(Griffon @ Oct 9 2007, 19:34) пришл...   Oct 9 2007, 19:51
- - Griffon   Идея идиотская, конечно же. Поскольку придется выл...   Oct 9 2007, 21:24
- - Lex   Цитата(Griffon @ Oct 9 2007, 22:24) пасат...   Oct 9 2007, 21:27
- - Artlira   Цитатакак скриптом сделать уничтожение всего , что...   Oct 10 2007, 04:14
- - Lex   Цитата(Artlira @ Oct 10 2007, 05:14) 2. О...   Oct 10 2007, 08:55
- - mamuc   то Griffon Цитатаvoid main() { object oPC ...   Oct 10 2007, 09:25
- - Lex   Может не стоит пока циклы?   Oct 10 2007, 09:40
- - mamuc   ЦитатаМожет не стоит пока циклы? стоит - это ведь...   Oct 10 2007, 09:47
- - Lex   Цитата(mamuc @ Oct 10 2007, 10:47) и кста...   Oct 10 2007, 11:00
- - mamuc   Цитатаа я кстати знаю как без цикла это сделать, п...   Oct 10 2007, 12:13
- - Lex   Цитата(mamuc @ Oct 10 2007, 13:13) и без ...   Oct 10 2007, 12:26
- - mamuc   а условие у нас и так само собой появиться - ведь ...   Oct 10 2007, 12:37
- - Lex   Цитата(mamuc @ Oct 10 2007, 13:37) ...   Oct 10 2007, 13:02
- - mamuc   Цитататы чего-то путаешь unacquire, а не unequip....   Oct 10 2007, 13:14
- - Griffon   mamuc, Цитата(mamuc @ Oct 10 2007, 10:25...   Oct 10 2007, 15:32
- - Artlira   Цитатабеда в том, что это - первый предмет в сунду...   Oct 10 2007, 15:36
- - Lex   Цитата(Artlira @ Oct 10 2007, 16:36) Може...   Oct 10 2007, 16:12
- - mamuc   и так, мы уже довольно подробно разобрали задачу о...   Oct 11 2007, 10:17
- - Artlira   Цитатасуть именно "в круговую". И еще - ...   Oct 11 2007, 10:58
- - Lex   Цитата(Artlira @ Oct 11 2007, 11:58) if (...   Oct 11 2007, 11:23
- - mamuc   то Artlira только одна маленькая ошибка(даже н...   Oct 11 2007, 11:43
- - Lex   Цитата(Griffon @ Oct 9 2007, 22:24) функц...   Oct 13 2007, 17:27
- - Vhall   [ OFFTOP ]QUOTE(Lex @ Oct 13 2007, 18:27)...   Oct 13 2007, 18:07
- - Lex   Вал, 6 из 10 правильно Добавлено через 21 минуту...   Oct 13 2007, 18:45
- - shadowdweller   [ OFFTOP ] 1. .. определяет, кто последний взял/по...   Oct 13 2007, 20:10
- - Lex   shadowdweller, 1 неправильное.   Oct 13 2007, 20:33
- - shadowdweller   Эх, если бы еще уметь пользоваться всеми этими фун...   Oct 13 2007, 20:59
- - Artlira   Цитатаcобсно задание простое. Описать что делает с...   Oct 19 2007, 12:05
- - mamuc   у нас была небольшая пауза во время которой вы мог...   Oct 19 2007, 12:48
- - Artlira   Цитататеперь нам надо весь процесс квеста отскрипт...   Oct 29 2007, 04:49
- - Lex   Цитата(Artlira @ Oct 29 2007, 04:49) Мне ...   Oct 29 2007, 09:37
- - mamuc   Lex я дал такое задание и потому , что оно ЕСТЕСТВ...   Oct 29 2007, 10:11
- - shadowdweller   Решилась таки тоже ответить. В принципе, тут мо...   Oct 30 2007, 23:40
2 страниц V   1 2 >


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 31st May 2024 - 22:59