Online MUD игра АРДА
Общедоступные => Строительство и программы => Тема начата: Карина от 09.06.07, 15:30:47
-
Допустим есть сундук. В сундуке изначально уже что-то лежит.
Его можно открыть, извлечь содержимое, заполнить любым другим содержимым.
Программе нужно принять решение:
если кол-во предметов в судуке = 0 (сундук пуст), то выполнить А
если же кол-во предметов в судуке >= 1 то выполнить Б.
Как мне узнать количество предметов в сундуке? ::)
-
Бред какой-то. ;)
-
1) опустошить сундук.
2) набрать "жерт все"
3). посчитать количество строк.
-
вы наверное не поняли.
с точки зрения билдера.
я вешаю тригг на комнату и отслеживаю события, которые происходят с контейнером.
я вижу как его открывают, закрывают, кладут туда предметы, извлекают.
но я не могу посчитать сколько там предметов.
-
Если с точки зрения builder'а: чего ты хочешь добиться в конечном итоге подсчетом предметов?
-
важен не столько подсчет предметов, сколько наличие их в контейнере.
если контейнер пуст, то программа выполняет некую операцию.
если контейнер чем-то заполнен, хоть одним предметом (можно и больше),
то программа выполняет некую другую операцию
-
Хм. Разве что:
if objtype($o) == 15
if objval0($o) > 10
P.S. Проверка на вместимость, не тестило.
-
objtype просто даст мне инфу о типе предмета
objval0 для контейнера содержит значение только общего объема и никогда не меняется
но как-то ведь smaug вычисляет сколько в контейнере места?! ???
он же знает когда нужно сказать "больше не влезает"
-
Не спорю, objval0 - проверка на общую вместимость контейнера, я специально привело пример "if objval0($o) > 10".
Соответственно, в данной строке идет проверка "если вместимость более 10".
В код, пожалуй, не полезу.
-
Допустим есть сундук. В сундуке изначально уже что-то лежит.
Его можно открыть, извлечь содержимое, заполнить любым другим содержимым.
Программе нужно принять решение:
если кол-во предметов в судуке = 0 (сундук пуст), то выполнить А
если же кол-во предметов в судуке >= 1 то выполнить Б.
Как мне узнать количество предметов в сундуке? ::)
Я бы сделал следующее, насколько я помню возможности мобпрог (очень давно уже не смотрел в мобпроги Арды) - создал бы служебного моба с хп допустим 100 и поместил его в созданную заранее служебную комнату зоны, включил бы мобу wizinviz, заставил его перейти к контейнеру, взять контейнер, перместиться в эту служебную комнату (хотя бы vnum 10 или созданную специально для этого в зоне, но в нее не должен попадать игрок в ходе своих перемещений по зоне), пожертвовал там все, высыпал предметы из сундука, получил бы их количество в комнате, записал в качестве переменной на моба в качестве хп, собрал все в контейнер, а дальше уже анализировать по желанию и действовать соответственно.
З.Ы. Условие вверху кстати не требует выяснения ТОЧНОГО кол-ва предметов в сундуке, достаточно знать что их больше одного ;)
-
предметы из сундука, получил бы их количество в комнате, записал в качестве переменной на моба в качестве хп
как это делается, поточнее, если можно? ::)
-
предметы из сундука, получил бы их количество в комнате, записал в качестве переменной на моба в качестве хп
как это делается, поточнее, если можно? ::)
http://arda.pp.ru/build/bulletin.txt
-
Никакого способа для непосредственной проверки такого условия в мобпрограммах сейчас нет. Никому раньше это не было нужно =о) Если это ДЕЙСТВИТЕЛЬНО будет нужно, можно сделать новую специальную проверку. Способы типа того, о котором говорит Barkett, иногда помогают в подобных случаях, хотя, конечно, специальная проверка лучше. Но нужна ли она?
-
Имхо нужна, потому что я сталкивался с такой проблемой:
в программе нужно было подгрузить предмет в контейнер с ограниченной вместимостью, и для этого пришлось вытаскивать оттуда все, что там лежало, и класть только нужные вещи обратно...
-
Вот, и не только в таких случаях. Я, к примеру, хотела квест на этой проверке завязать. Не вышло...
Чем больше возможностей, тем больше идей. И наоборот, конечно... ::)