Capsuled.java

Ancient

Заблокирован
Заблокирован
Сообщения
341
Розыгрыши
0
Репутация
-12
Реакции
77
Баллы
0
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Код:
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 - это когда мы не даем другим объектам изменять внутренние состояния объекта...
 
Последнее редактирование:
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обдолбался что ли?
мб...

:D давно в шаре rebellion(исходниках таути,линдвиор) - год.

другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!

Посмотреть вложение 1466
Capsuled- это тот же Capsula тобишь инкапсуляция, это упаковка данный и функция упаковки данных в единый компонент...
 
:D давно в шаре rebellion(исходниках таути,линдвиор) - год.

другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!

Посмотреть вложение 1466
Вот и я о чем, рано давать парню доместос.

Capsuled- это тот же Capsula тобишь инкапсуляция, это упаковка данный и функция упаковки данных в единый компонент...
Инкапсуляция - упаковка в единый компонент? Capsuled = инкапсуляция? WAT????
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
допустим у нас есть 3 объекта, они должны вызыватся в первый объек
Инкапсуляция - упаковка в единый компонент? Capsuled = инкапсуляция? WAT????
гугел в помощь вам...

а для нубов объясняю.
допустим у нас есть 3 объекта 1 из них главный объект который мы будем вызывать, но все думают как это сделать, для этого нам на помощь приходит Capsula (Cspsuled) мы добавляем 2 объекта в капсуль для вызова и тем самым мы, вызываем главный объект и он нам выдает 2 дополнительных и так далее...
И мы упрощаем работу в нашем случаи с итемами (упаковками)...
Хотя есть и множество других способов вызова...
 
допустим у нас есть 3 объекта, они должны вызыватся в первый объек

гугел в помощь вам...
Госпаде, у меня по ООП этот вопрос рассматривается каждую самостоялку (аля раз в неделю) и уж для чего, так для этого мне гугл не надо. Инкапсуляция - это один из принципов ООП, назначением которого является защита данных от прямого доступа к ним (те же геттеры и сеттеры, к примеру).
Капсулед упаковка - предмет, при использовании которого он "распаковывается", при этом рассматривается каждый итем (но распаковаться может не каждый, зависит от шанса). Хотя я мог перепутать с ресторейшенами (распаковка одного из списка итемов посредством рандома, но при этом учитывая приоритет - чем выше шанс, тем выше приоритет).
Скорее всего перепутал, но не в этом суть. Суть в том, что ты городишь то, что сам не понимаешь.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Вы же java разработчики а такое знать не знаете позор...

Госпаде, у меня по ООП этот вопрос рассматривается каждую самостоялку (аля раз в неделю) и уж для чего, так для этого мне гугл не надо. Инкапсуляция - это один из принципов ООП, назначением которого является защита данных от прямого доступа к ним (те же геттеры и сеттеры, к примеру).
Капсулед упаковка - предмет, при использовании которого он "распаковывается", при этом рассматривается каждый итем (но распаковаться может не каждый, зависит от шанса). Хотя я мог перепутать с ресторейшенами (распаковка одного из списка итемов посредством рандома, но при этом учитывая приоритет - чем выше шанс, тем выше приоритет).
наведи 3 типа ООП ну жду!

что в гугел побежал искать?
 
наведи 3 типа ООП ну жду!
Зачем мне это делать? оО Я даже больше скажу, я хз что там за 3 типа (вроде разбирали, не помню, но да пофиг). Мне они нафиг сейчас не сдались. Это ты тут пытаешься доказать, что capsuled упаковки = инкапсуляции :D

В общем предлагаю удалить тему, так как в ней нет смысла. У Мангола есть тема с капсуледами, ее вполне достаточно.
 
Боже... что это за бред маразматика?
Оффтоп:
:D давно в шаре rebellion(исходниках таути,линдвиор) - год.

другими словами cspsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта... ЧТО??!!!

Посмотреть вложение 1466
Я работаю на основе ребовской таути с момента шары, но этот класс я там не видел и не вижу, только старый Extractable :(
Дядь, может напутал чего, или с хлором переборщил? :Kukukuh:
 
Я правильно понял? Если че, тыкните носом, в далеком будущем пригодится (да и не только мне видать :D).
Капсулед упаковка - предмет, при использовании которого он "распаковывается", при этом рассматривается каждый итем (но распаковаться может не каждый, зависит от шанса).
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
:Happy:

Парни эпик шоу)....
Оо...
дак почему же ты не ответил на мой вопрос?
и не выкинул его сюда.
сразу гугел в помощь, а сам объяснить не мог печаль...

Я правильно понял? Если че, тыкните носом, в далеком будущем пригодится (да и не только мне видать :D).
Всё верно в боксе у нас хранятся объекты (итемы), при распаковке у каждого объекта может быть свой шанс, шансы идут от 1 до 100%

давайте уж роз жую вам Capsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта...
к примеру у нас есть 1 итем который у нас бокс в нем есть ещё 2 объекта, эти 2 объекта не могут изменить 1 объект.
1 объект не может изменить такой же самый объект...
В этого у нас и получается что мы не даем изменить внутренние состояние объекта.

Я выкинул всю переписку.
дак ты сразу в гугел полез, а сам не смог объяснить своими словами...
я то изучаю подробно и понимаю что да и как и пишу. А ты срузу не так вот ссылка типо тут википедия...
А сам своими словами опиши как написал я!
Ты же java программист, а описать не можешь чот тут не чисто выходит...
 
Всё верно в боксе у нас хранятся объекты (итемы), при распаковке у каждого объекта может быть свой шанс, шансы идут от 1 до 100%
Не от одного, а от приближенного к нулю. Да и на мой вопрос ответили, нефиг повторять.
 

    Mizuwokiru

    Баллов: 6
    Не видовал я еще таких троллей :|
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
:Omgnooo: Это относится к яве, но никак к итемам :D
А зачем мне тут итемы?
мы же пишем на яве обращение к объектам, итем же может быть объектом...

Вы же это знаете парни дак почему всё так туго и сразу куча тролинга, что новые слова услышали или когда учили пропустили это?
 
давайте уж роз жую вам Capsuled - это когда мы не даем другим объектам изменять внутренние состояния объекта...
к примеру у нас есть 1 итем который у нас бокс в нем есть ещё 2 объекта, эти 2 объекта не могут изменить 1 объект.
1 объект не может изменить такой же самый объект...
В этого у нас и получается что мы не даем изменить внутренние состояние объекта.
Я, конечно, извиняюсь, но это пи**ец.
Оффтоп:
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Ты
а это тут причем?

Ладно, угаворил тебе задать вопрос.

public class ExtractableItemsContainer
{
private int _itemId;
private int _minCount;
private int _maxCount;
private double _chance;

Как получить доступ к _itemId, _minCount, _chance? Если они не доступны из вне? И как изменить их из вне?
а что ты с темы сливаешь сразу на другую...?
По моему я задал вопрос а ты ответить на него не можешь...
 
а что ты с темы сливаешь сразу на другую...?
По моему я задал вопрос а ты ответить на него не можешь...
ебать же ты тупой......
capsuled в названии используется не от ИНКАПСУЛЯЦИИ, а от того что итемы в КОРОБКЕ/МЕШКЕ/ЯЩИКЕ/ЯЙЦЕ и тд.
ИНКАПСУЛЯЦИЯ сюда НИКАК НЕ ОТНОСИТЬСЯ, то, что ты натыкал ПРИВАТНЫХ методов\переменных, не значит что нужно называть КЛАСС CapsuledХуета...
у меня все, бомбонуло
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Как бы я тебе ответил четко.
Я в данный момент тебе задал вопрос на который ты должен ответить очень, и очень быстро.
Ведь ты же знаешь это.
Как мне получить доступ к _itemId?
Ты дал ответ в гугле нашел и дал??? оО.
я тебе что обязан тут рассказывать зачем то и зачем это?
Ты же этого даже не знаешь а у меня спрашиваешь?
я тебе тоже задал вопрос и ответа 0 только гугел сам ты рассказать не смог... Вывод тут какой?

ебать же ты тупой......
capsuled в названии используется не от ИНКАПСУЛЯЦИИ, а от того что итемы в КОРОБКЕ/МЕШКЕ/ЯЩИКЕ/ЯЙЦЕ и тд.
ИНКАПСУЛЯЦИЯ сюда НИКАК НЕ ОТНОСИТЬСЯ, то, что ты натыкал ПРИВАТНЫХ методов\переменных, не значит что нужно называть КЛАСС CapsuledХуета...
у меня все, бомбонуло
хоть один вменяемый появился) УРА)

Я не знаю, расскажи мне.
А вот сиди и думай. Гугли для тебя это же привычно...

ебать же ты тупой......
capsuled в названии используется не от ИНКАПСУЛЯЦИИ, а от того что итемы в КОРОБКЕ/МЕШКЕ/ЯЩИКЕ/ЯЙЦЕ и тд.
ИНКАПСУЛЯЦИЯ сюда НИКАК НЕ ОТНОСИТЬСЯ, то, что ты натыкал ПРИВАТНЫХ методов\переменных, не значит что нужно называть КЛАСС CapsuledХуета...
у меня все, бомбонуло
но сюда же инкапсуляция то относится однако это 1 из типов ООП... Однако. тут у нас то взаимодейстия идет.

Ну да. Расскажи мне пожалуйста в гугле забанили:(
да я так и понял что забанили часто туда бегаешь...

у нас то идет 3 типа ООП
Инкапсуляция
Наследование
полиморфизм
ну а и ещё 1 пункт думайте) Монгол скажи ещё 1 пункт ану как...

Ну так расскажи пожалуйста как мне получить туда доступ?
да хз как те туда доступ получить смени комп и ип)
 
Назад
Сверху Снизу