Автор Тема: Команда ПОЛОЖИТЬ  (Прочитано 1265 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Firi

  • Путешественник
  • **
  • Сообщений: 273
  • Карма: 0
  • Пол: Мужской
Команда ПОЛОЖИТЬ
« : 09.05.05, 17:03:49 »
У ПОЛОЖИТЬ перепутана обработка параметра "ВСЕ".

Т. е. если пытаться ПОЛ ВСЕ в забитый под завязку рундучок (и при этом в инвентаре есть минимум 2 предмета), пишет "У вас ничего нет".

А если пытаться ПОЛ ВСЕ в незабитый рундук, и при этом в инвентаре ничего нет, получаем "Не влезает".


P.S.  Ну никак не верю, что я первый это заметил, но бага налицо.
Рассудительный Гном

Оффлайн Urza

  • Победитель нежити
  • **
  • Сообщений: 713
  • Карма: -1
  • Пол: Мужской
Команда ПОЛОЖИТЬ
« Ответ #1 : 09.05.05, 18:33:06 »
да таких багов мильон. еще например известная бага. известна ОЧЕНЬ давно. Однако у нас исправления в коде делаются "не очень оперативно"(с).
приведу на конкретном примере, на котором мне эту багу показывал знакомый - на персонаже одеты ножны с самоцветами, в инвентаре охотничий нож. по команде "осм ножны" - описание ножен, левел ножен, слот на который можно одеть. по команде "осм охот" описание ножа, левел ножа, слот на который можно одеть (оружие). а вот по команде "осм нож" получаем описание ножен, а левел и слот ножа. ;) Я не такой спец как Алдарил по смаугу, но налицо неправильная работа с короткими именами.

Оффлайн aldaril

  • Постоялец
  • *
  • Сообщений: 170
  • Карма: 2
  • Пол: Мужской
Команда ПОЛОЖИТЬ
« Ответ #2 : 10.05.05, 10:44:50 »
Раз уж вспомнили тут меня, вставлю 5 копеек ;)

Специально пересмотрел еще раз ту часть кода.
Увы, это не бага. Это такой расклад, как в картах. Поясню.
Нож - это отдельное слово, которое есть в названии предмета, что у игрока. Когда мы задаем "осм ножны", то идет поиск именно вхождения "ножны", что логично. Почему я назвал это расскладом ?
Потому, что игрок прежде взял и одел "ножны", а потом взял "нож".
Перебор в просмотре вещей идет с конца в начало.
Когда мы сказали "осм ножны", то слово нож(которое в нашем случае оказлось в начале) - мы отбросили, к тому же оно не подходит нам, а встретив сочетание "ножны" - оно нам подошло. Когда же был поиск "нож" - то именно охотничий нож был взят в руки потом, после ножен.
Проведем эксперимент. Выкинем оба предмета на землю. Потом в следующем порядке
взять нож    
взять ножны
Скажем осм нож - нам должно выдать осмотр именно ножен.

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

По поводу баги с "put all"
Конкретно ошибка в оригинальном коде Смауга файл act_obj.c line: 830
Там идут проверки флага нашли - не нашли, все или часть
Причем флаг нашли - истинна только если успешно предмет поклали в емкость.
Но, это к Морису, если все еще он сам с кодом играется ;)

Народ, а Вам от меня личное спасибо, для себя я эти баги чуток подправил ;)

Оффлайн Theitan

  • Победитель нежити
  • **
  • Сообщений: 533
  • Карма: 0
    • http://www.nilfgard.com
Команда ПОЛОЖИТЬ
« Ответ #3 : 10.05.05, 11:06:16 »
дык обе баги давно известны.
с первой фиг с ним, уже привык. а вторая высаживает на измену иногда :)
просто надо делать поиск с приоритетами.
по слову нож пройтись по ВСЕМУ списку вещей. запомнить ножны сначала, но поиск не пректатить, а если будет найдено точное совпадение слова (нож=нож), то забыть про ножны и запомнить нож. тут уже можно и прекратить поиск
Занятия х%#нёй на рабочем месте развивают боковое зрение, слух и бдительность в целом.
в онлайн игры вообще не играю, да и в оффлайн практически тоже

Оффлайн Urza

  • Победитель нежити
  • **
  • Сообщений: 713
  • Карма: -1
  • Пол: Мужской
Команда ПОЛОЖИТЬ
« Ответ #4 : 10.05.05, 11:30:22 »
Алдарил, отправил личным сообщением на форум еще небольшой подарочек. Не знаю насколько полезный, но мало ли ;)