По разработке маммонов.

 
+
-
edit
 

Balancer

администратор
★★★★★
Чтобы не посылать в логи чата, выжму недошедшее сюда :)

>не понял синтаксиса...

code forth
  1. wtd@ ( считали weapon-to-del-id) items# ( считали сколько у игрока таких итемов ) 0= if  ( если ноль ) "You not have item [ wtd@ i.name@ ]" .rexit ( то печать текста с выходом из этого слова ) then


.rexit описано чуть выше. Оно печатает выводимый текст с его парсингом (т.е. вставит в тело текста weapon to del name ), сбрасывает со стека адрес возврата того слова, из которого было вызвано (т.е. мы туда больше не вернёмся), сбрасывает опять же со стека возвратов хранимый там список параметров замены. После этого на стеке возврата оказывается слово, из которого было вызвано bypass_... - и мы возвращаемся туда.

>aa@ 5575 items# > if "Not enough [ paa@ ] Ancient Adena" .rexit then
>5575 items# paa@ <= if "Not enough [ paa@ ] Ancient Adena" .rexit then
>эти две записи равносильны так ?

Нет.
Вторая должна быть со строгим сравнением:
5575 items# paa@ < if "Not enough [ paa@ ] Ancient Adena" .rexit then

Выход только тогда, когда число необходимых предметов больше имеющегося. Или, что то же самое, имеющееся число предметов - меньше нужного

>paa@ 5575 items# <= if "Not enough [ paa@ ] Ancient Adena" .rexit then
>вроде так вернее

Если число нужных предметов будет точно равно имеющемуся, то обмен должен осуществиться, но условие окажется истинным и произойдёт прерывание работы слова.
 

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru