olinov> а теперь у меня возник вопрос =)olinov> как модно СТЕРЕТЬ из инвентаря (через игру) итем...olinov> например деньги (57)...olinov> [как добавить во время игры знаю: //create_item 57 1000olinov> а как стереть? ]olinov> спасибо!! =)
Готовой команды нет. Можно стреть ручками:
(выделяем игрока целью)
//57 1000 my-target p.items_remove
Можно написать команду, или введя приведённый код однократно из клиента (будет работать до рестарта) или прописав его в любой .f:
//: admin_remove_item "spawn" check-access 2 args 1 max swap target-player-or-me p.items_remove ;
и вызывать потом по //remove_item 57 1000
Сейчас клиента под рукой нет, чтобы проверить, если не забуду, вечером пропишу эту команду. По частям:
: admin_remove_item - описывает соответствующую команду (пробелы обязательно, пробел - разделитель). "//some_command" ищет команду "admin_some_command". На вход этой команды будет передана строка праметров команды.
"spawn" check-access - проверяем у админа уровень доступа. Если нет такого, то выполнение команды будет прервано.
2 args - переданную строку разбить на два аргумента, разделённых пробелами в том порядке, в каком они идут. Т.е. первый аргумент (item_id) будет в глубине стека, а на вершине - будет последний, число итемов. ( "arg1 arg2" — "arg1" "arg2" )
1 max count = max(1, count) - чтобы не вводили 0 или отрицательных чисел. Ноль также получится, если count не вводить. Во всех этих случаях удалится один итем. ( count — max[count,1] )
swap у нас аргументы поданы не в том порядке, который используется командой items_remove. Меняем их местами ( item_id count — count item_id )
target-player-or-me возвратит указатель на выбранную цель, если это игрок и на себя, если цели нет, или выбран не игрок. ( — target )
p.items_remove Удаляет count предметов item_id из инвентаря игрока player: ( count item_id player — )
; - закончить определение новой админ-команды.
Всё, такой, вот, маленький урок программирования из клиента