[1.7.10] Действие вовремя зажатия ПКМ

183
1
4
День добрый.  Требуется совершать действие при нажатие и удерживание пкм на предмете. Код моего предмета: http://pastebin.com/EvGHxQ2b . Моя проблема заключается в том, что ожидаемый результат я получаю только при нахождение в креативе. В режиме выживания действие продолжает выполняться даже после того, как я отпускаю ПКМ. Как решать?
 

timaxa007

Модератор
5,831
409
672
Понятия не имею.
Не понятно, какой код заставляет работать новые методы предмета.
У тебя унаследован "ItemWeapon", может там скрывается твоя проблема.
 
183
1
4
timaxa007 написал(а):
Понятия не имею.
Не понятно, какой код заставляет работать новые методы предмета.
У тебя унаследован "ItemWeapon", может там скрывается твоя проблема.
Там идет просто объявление новых методов.
Код:
public class ItemWeapon extends Item{
 public ItemWeapon(){
 this.setCreativeTab(Refs.weaponTab);
 }
 
 public void switchWeaponMode(ItemStack stack, EntityPlayer player){}
 
 public void reloadWeapon(ItemStack stack, EntityPlayer player){}
 
}
 

timaxa007

Модератор
5,831
409
672
Пока-что не понял, что у тебя за результат должен быть, но...
Код:
stack.damageItem(1, player);
Этот метод работает, когда игрок не в креативе и ломает предмет, если игрок в креативе, то предмет не ломается.
 
7,099
324
1,510
ну когда OnRightClick то вычитать из прочности итема число...
 

timaxa007

Модератор
5,831
409
672
RedEnergy, если не ошибаюсь, то вроде это надо:
Код:
stack.setItemDamage(stack.getItemDamage() + 1);
 

timaxa007

Модератор
5,831
409
672
Я понятия не имею как у тебя должно получиться.
 
183
1
4
timaxa007 написал(а):
Я понятия не имею как у тебя должно получиться.
Мне нужно чтобы пока зажата ПКМ вызывался метод shootFire(), однако сейчас этот метод продолжается вызываться даже после того, как я отпущу ПКМ
 

timaxa007

Модератор
5,831
409
672
1. Твой метод "shootFire" возвращает ItemStack, хотя ему нету смысла возвращать.
Во-остальном, вроде должно работать. Хотя я точно не знаю.
 
183
1
4
timaxa007 написал(а):
1. Твой метод "shootFire" возвращает ItemStack, хотя ему нету смысла возвращать.
Во-остальном, вроде должно работать. Хотя я точно не знаю.
Все работает только в том случае, если я уберу вызов методов stack.setItemDamage или stackDamageItem.
 

timaxa007

Модератор
5,831
409
672
Вот немного поправил по-своему:
http://pastebin.com/gntmrPRF
И да, у "onPlayerStoppedUsing" есть один не достаток, он срабатывает только при долгом (типа зажатии ПКМ) срабатывания "onItemRightClick". Или иначе выстрелы не прекратяться.
[merge_posts_bbcode]Добавлено: 06.04.2015 18:45:34[/merge_posts_bbcode]

Dragon2488, я не сильно задумывался об ванильных методах. (Так как у меня выстрелы ведутся по кнопке атаки, а не по кнопке использования.)

[merge_posts_bbcode]Добавлено: 06.04.2015 18:50 с чём-то или меньше[/merge_posts_bbcode]
Вот ещё раз поправил:
http://pastebin.com/iBKvzaX4
 
Сверху