package handler.items;
import java.util.List;
import jts.commons.util.Rnd;
import jts.gameserver.data.xml.holder.ItemHolder;
import jts.gameserver.model.Playable;
import jts.gameserver.model.Player;
import jts.gameserver.model.items.ItemInstance;
import jts.gameserver.network.l2.components.SystemMsg;
import jts.gameserver.network.l2.s2c.SystemMessage;
import jts.gameserver.templates.item.support.CapsuledItemsContainer;
import jts.gameserver.utils.ItemFunctions;
/**
*
* @author KillRoy
*
*/
public class Capsuled extends ScriptItemHandler
{
@Override
public final int[] getItemIds()
{
return ItemHolder.getInstance().getCapsuledItemIds();
}
@Override
public boolean useItem(Playable playable, ItemInstance item, boolean ctrl)
{
if(playable == null || !playable.isPlayer())
return false;
Player player = (Player) playable;
boolean isCapsuled = item.getTemplate().isCapsuled();
if (!canBeExtracted(player, item))
return false;
if (!useItem(player, item, 1))
return false;
List<CapsuledItemsContainer> extracted_items = item.getTemplate().getCapsuledItems();
boolean random = true;
int sizer = 0;
int maxSize = extracted_items.size();
int preItemId = 0;
int perMinCount = 0;
int perMaxCount = 0;
for(CapsuledItemsContainer extracted : extracted_items)
{
if(extracted.getChance() < 100.0)
{
if(isCapsuled && Rnd.chance(50) && preItemId == 0)
{
preItemId = extracted.getItemId();
perMinCount = extracted.getMinCount();
perMaxCount = extracted.getMaxCount();
}
if(Rnd.chance(extracted.getChance()) && random)
{
ItemFunctions.addItem(player, extracted.getItemId(), Rnd.get(extracted.getMinCount(), extracted.getMaxCount()));
random = false;
}
if(isCapsuled)
{
sizer++;
if(sizer == maxSize && random)
{
ItemFunctions.addItem(player, preItemId, Rnd.get(perMinCount, perMaxCount));
random = false;
}
}
}
else if(extracted.getChance() == 100.0)
ItemFunctions.addItem(player, extracted.getItemId(), Rnd.get(extracted.getMinCount(), extracted.getMaxCount()));
}
return true;
}
private static boolean canBeExtracted(Player player, ItemInstance item)
{
if(player.getWeightPenalty() >= 3 || player.getInventory().getSize() > player.getInventoryLimit() - 10)
{
player.sendPacket(SystemMsg.YOUR_INVENTORY_IS_FULL, new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(item.getItemId()));
return false;
}
if(player.isActionsDisabled())
{
player.sendPacket(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS);
return false;
}
if(player.isInTrade())
{
player.sendPacket(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS);
return false;
}
if(player.isInStoreMode())
{
player.sendPacket(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS);
return false;
}
return true;
}
public static boolean useItem(Player player, ItemInstance item, long count)
{
if(player.getInventory().destroyItem(item, count))
{
player.sendPacket(new SystemMessage(SystemMsg.YOU_USE_S1).addItemName(item.getItemId()));
return true;
}
player.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
return false;
}
}
мб...Обдолбался что ли?
Capsuled- это тот же Capsula тобишь инкапсуляция, это упаковка данный и функция упаковки данных в единый компонент...давно в шаре rebellion(исходниках таути,линдвиор) - год.
другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!
Посмотреть вложение 1466
Вот и я о чем, рано давать парню доместос.давно в шаре rebellion(исходниках таути,линдвиор) - год.
другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!
Посмотреть вложение 1466
Инкапсуляция - упаковка в единый компонент? Capsuled = инкапсуляция? WAT????Capsuled- это тот же Capsula тобишь инкапсуляция, это упаковка данный и функция упаковки данных в единый компонент...
гугел в помощь вам...Инкапсуляция - упаковка в единый компонент? Capsuled = инкапсуляция? WAT????
Госпаде, у меня по ООП этот вопрос рассматривается каждую самостоялку (аля раз в неделю) и уж для чего, так для этого мне гугл не надо. Инкапсуляция - это один из принципов ООП, назначением которого является защита данных от прямого доступа к ним (те же геттеры и сеттеры, к примеру).допустим у нас есть 3 объекта, они должны вызыватся в первый объек
гугел в помощь вам...
наведи 3 типа ООП ну жду!Госпаде, у меня по ООП этот вопрос рассматривается каждую самостоялку (аля раз в неделю) и уж для чего, так для этого мне гугл не надо. Инкапсуляция - это один из принципов ООП, назначением которого является защита данных от прямого доступа к ним (те же геттеры и сеттеры, к примеру).
Капсулед упаковка - предмет, при использовании которого он "распаковывается", при этом рассматривается каждый итем (но распаковаться может не каждый, зависит от шанса). Хотя я мог перепутать с ресторейшенами (распаковка одного из списка итемов посредством рандома, но при этом учитывая приоритет - чем выше шанс, тем выше приоритет).
Зачем мне это делать? оО Я даже больше скажу, я хз что там за 3 типа (вроде разбирали, не помню, но да пофиг). Мне они нафиг сейчас не сдались. Это ты тут пытаешься доказать, что capsuled упаковки = инкапсуляциинаведи 3 типа ООП ну жду!
Это похоже на "прочитал статейку на хабре и решил выебнутся". Извиняюсь если кого то обидел.наведи 3 типа ООП ну жду!
Я работаю на основе ребовской таути с момента шары, но этот класс я там не видел и не вижу, только старый Extractableдавно в шаре rebellion(исходниках таути,линдвиор) - год.
другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!
Посмотреть вложение 1466
Капсулед упаковка - предмет, при использовании которого он "распаковывается", при этом рассматривается каждый итем (но распаковаться может не каждый, зависит от шанса).
Оо...
Парни эпик шоу)....
Всё верно в боксе у нас хранятся объекты (итемы), при распаковке у каждого объекта может быть свой шанс, шансы идут от 1 до 100%Я правильно понял? Если че, тыкните носом, в далеком будущем пригодится (да и не только мне видать).
дак ты сразу в гугел полез, а сам не смог объяснить своими словами...Я выкинул всю переписку.
Не от одного, а от приближенного к нулю. Да и на мой вопрос ответили, нефиг повторять.Всё верно в боксе у нас хранятся объекты (итемы), при распаковке у каждого объекта может быть свой шанс, шансы идут от 1 до 100%
А зачем мне тут итемы?Это относится к яве, но никак к итемам
Я, конечно, извиняюсь, но это пи**ец.давайте уж роз жую вам Capsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта...
к примеру у нас есть 1 итем который у нас бокс в нем есть ещё 2 объекта, эти 2 объекта не могут изменить 1 объект.
1 объект не может изменить такой же самый объект...
В этого у нас и получается что мы не даем изменить внутренние состояние объекта.
а это тут причем?Оффтоп:
а что ты с темы сливаешь сразу на другую...?Ладно, угаворил тебе задать вопрос.
public class ExtractableItemsContainer
{
private int _itemId;
private int _minCount;
private int _maxCount;
private double _chance;
Как получить доступ к _itemId, _minCount, _chance? Если они не доступны из вне? И как изменить их из вне?
ебать же ты тупой......а что ты с темы сливаешь сразу на другую...?
По моему я задал вопрос а ты ответить на него не можешь...
Ты дал ответ в гугле нашел и дал??? оО.Как бы я тебе ответил четко.
Я в данный момент тебе задал вопрос на который ты должен ответить очень, и очень быстро.
Ведь ты же знаешь это.
Как мне получить доступ к _itemId?
хоть один вменяемый появился) УРА)ебать же ты тупой......
capsuled в названии используется не от ИНКАПСУЛЯЦИИ, а от того что итемы в КОРОБКЕ/МЕШКЕ/ЯЩИКЕ/ЯЙЦЕ и тд.
ИНКАПСУЛЯЦИЯ сюда НИКАК НЕ ОТНОСИТЬСЯ, то, что ты натыкал ПРИВАТНЫХ методов\переменных, не значит что нужно называть КЛАСС CapsuledХуета...
у меня все, бомбонуло
А вот сиди и думай. Гугли для тебя это же привычно...Я не знаю, расскажи мне.
но сюда же инкапсуляция то относится однако это 1 из типов ООП... Однако. тут у нас то взаимодейстия идет.ебать же ты тупой......
capsuled в названии используется не от ИНКАПСУЛЯЦИИ, а от того что итемы в КОРОБКЕ/МЕШКЕ/ЯЩИКЕ/ЯЙЦЕ и тд.
ИНКАПСУЛЯЦИЯ сюда НИКАК НЕ ОТНОСИТЬСЯ, то, что ты натыкал ПРИВАТНЫХ методов\переменных, не значит что нужно называть КЛАСС CapsuledХуета...
у меня все, бомбонуло
да я так и понял что забанили часто туда бегаешь...Ну да. Расскажи мне пожалуйста в гугле забанили
да хз как те туда доступ получить смени комп и ип)Ну так расскажи пожалуйста как мне получить туда доступ?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?