Дать предмет

 
+
-
edit
 

Re-login

новичок

Подскажите, какой должен быть скрипт, что бы выделенному игроку, дать n количество n предмета.
Скажем навел на Игрока и командой дать любой предмет в любом количестве.
 
+
-
edit
 

Balancer

администратор
★★★★★
Дать 5000 золотых (item_id = 57).
В лоб:
//5000 57 self target@ p.items_add
Или:
//5000 57 target-player-or-me p.items_add

Через выполнение скрипта в контексте выбранного игрока:
//"5000 57 items_add" self target@ do-player
или
//[[ 5000 57 items_add ]] self target@ do-player
(в первом случае будет интерпретация введённого кода, во втором - компилция).

Наконец, если такое нужно делать часто, можно определить команду:
//: admin_give_item "spawn" check-access 2 args int swap int 1 max target-player-or-me p.items_add ;
а потом использовать в виде:
//give_item 57 5000
число предметов можно не указывать, тогда будет выдан один. Если цель не выбрана или выбран не игрок, то предмет будет выдан админу.

Та же команда, расписанная "цивильно" выглядеть будет так (можно включить, скажем, в jbforth/admin/players/main.f):
code forth
  1. : admin_give_item ( "item_id [count]" -- )
  2.     "spawn" check-access \ Проверяем доступ. Если нет - то слово будет прервано.
  3.     2 args               \ Из строки получаем два параметра (если был введён только один, то второй будет null)
  4.     int                  \ Первый из строки в число (item_id)
  5.     swap                 \ Меняем на стеке их местами
  6.     int                  \ count из строки или null в число
  7.     1 max                \ Не меньше одного итема (если число не вводилось)
  8.     target-player-or-me  \ Цель - игрок или мы сами
  9.     p.items_add          \ Добавить предмет ( count item_id player )
  10. ;


(код не тестирован, возможны ошибки или опечатки)
 
RU Diаmond #09.07.2007 06:54  @Balancer#08.07.2007 23:33
+
-
edit
 

Diаmond

втянувшийся

//count id "name" find_player p.items_add
count - число предметов
id - id предмета
name - имя игрока

PS: кстати, на днях, сносим у себя форт :)
 
RU Balancer #09.07.2007 09:58  @Diаmond#09.07.2007 06:54
+
-
edit
 

Balancer

администратор
★★★★★
Diаmond> //count id "name" find_player p.items_add

И где тут "выделенному игроку"?
 
RU Diаmond #09.07.2007 12:18  @Balancer#09.07.2007 09:58
+
-
edit
 

Diаmond

втянувшийся

Diаmond>> //count id "name" find_player p.items_add
Balancer> И где тут "выделенному игроку"?
Ты уже ответил на вопрос выше, я всего-лишь подсказал еще одну команду. По имени выдавать часто удобнее, особенно в телнете.
 
RU Re-login #09.07.2007 12:42  @Diаmond#09.07.2007 06:54
+
-
edit
 

Re-login

новичок

Balancer
Спасибо, все очень понятно, даже до меня дошло...

Diаmond> PS: кстати, на днях, сносим у себя форт :)
Интересно, почему, мне очень форт нравиться.
 
RU Diаmond #09.07.2007 23:56  @Re-login#09.07.2007 12:42
+
-
edit
 

Diаmond

втянувшийся

Diаmond>> PS: кстати, на днях, сносим у себя форт :)
Re-login> Интересно, почему, мне очень форт нравиться.
Мне тоже нравился, но число проблем от него уже давно перевесило приносимую пользу...
 

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