Скрипт Мешков Удачи

merdox

Выдающийся
Участник
Сообщения
113
Розыгрыши
0
Репутация
67
Реакции
37
Баллы
1 375
В Java не очень, но в основном методом тыка, пробовал сделать типа мешка, с которого могут выпадать разные монет с различным шансом, с рандомным количеством. Получилась эта каша. При двойном клике дает все эти предметы, как сделать чтобы давало один из них?


 
Последнее редактирование модератором:
:Nani:
сделайте мне развидеть это...
Ты товарищ в не "в яве не очень", ты "в яве совсем никак"...

сделай что-то типа

int chance = Rnd.get(100);

if (chance >= 0 && chance < 20)
выдать первый предмет
else if (chance >=20 && chance < 50)
выдать второй предмет
else if .....
 
  • Мне нравится
Реакции: kick
:Nani:
сделайте мне развидеть это...
Ты товарищ в не "в яве не очень", ты "в яве совсем никак"...

сделай что-то типа

int chance = Rnd.get(100);

if (chance >= 0 && chance < 20)
выдать первый предмет
else if (chance >=20 && chance < 50)
выдать второй предмет
else if .....

с этим и не поспоришь, я сам понимаю это)
я собственно пробую сделать те же самые стандартные сундуки, которые при двойном клике дают рандомно предмет, учитывая шансы выпадения того или инного итема, только чтобы можно было делать например: Фарма(20-500) - 60%, Апы(1-10) 10% и тд.
Все никак не получается
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
с этим и не поспоришь, я сам понимаю это)
я собственно пробую сделать те же самые стандартные сундуки, которые при двойном клике дают рандомно предмет, учитывая шансы выпадения того или инного итема, только чтобы можно было делать например: Фарма(20-500) - 60%, Апы(1-10) 10% и тд.
Все никак не получается
Код:
package custom;

import ru.catssoftware.gameserver.handler.IItemHandler;
import ru.catssoftware.gameserver.handler.ItemHandler;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance;
import ru.catssoftware.gameserver.util.PcAction;
import ru.catssoftware.tools.random.Rnd;

/**
 * Created with IntelliJ IDEA.
 * User: Masone
 * Date: 15.09.16
 * Time: 13:30
 * To change this template use File | Settings | File Templates.
 */
public class Chest implements IItemHandler
{
    private static final int[]    ITEM_IDS = { 9901 };
    private static int[] COIN_IDS = { 4037,6673,9900,9901 };

    public void useItem(L2PlayableInstance playable, L2ItemInstance item, boolean par){}
    public void useItem(L2PlayableInstance playable, L2ItemInstance item)
    {
        if (!playable.isPlayer())
            return;
        L2PcInstance player = (L2PcInstance) playable;

        int _Rnd = Rnd.get(100);
        if(_Rnd < 90)
        {
            player.sendMessage("Мне жаль,но ничего не выпало..");
        }
        else
        {
            int reward_id = 0;
            int count = 1;

            switch (Rnd.get(1))
            {
                case 1:
                {
                    reward_id = COIN_IDS[Rnd.get(COIN_IDS.length)];
                    count = (reward_id == 4037 ? Rnd.get(1,200) : 1);
                    break;
                }
                //case...
            }
        // activeChar или не знаю кто у тебя он там в коде -- кому выдавать
        PcAction.giveItems(player, reward_id, count);
           
        playable.destroyItem("Consume", item.getObjectId(), 1, null, false);
        }
    }


    public static void main (String... arguments )
    {
        new Chest();
    }

    public int[] getItemIds()
    {
        return ITEM_IDS;
    }
}
 
  • Мне нравится
Реакции: merdox

    merdox

    Баллов: 6
    Спасибо за помощь.
Код:
package custom;

import ru.catssoftware.gameserver.handler.IItemHandler;
import ru.catssoftware.gameserver.handler.ItemHandler;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance;
import ru.catssoftware.gameserver.util.PcAction;
import ru.catssoftware.tools.random.Rnd;

/**
 * Created with IntelliJ IDEA.
 * User: Masone
 * Date: 15.09.16
 * Time: 13:30
 * To change this template use File | Settings | File Templates.
 */
public class Chest implements IItemHandler
{
    private static final int[]    ITEM_IDS = { 9901 };
    private static int[] COIN_IDS = { 4037,6673,9900,9901 };

    public void useItem(L2PlayableInstance playable, L2ItemInstance item, boolean par){}
    public void useItem(L2PlayableInstance playable, L2ItemInstance item)
    {
        if (!playable.isPlayer())
            return;
        L2PcInstance player = (L2PcInstance) playable;

        int _Rnd = Rnd.get(100);
        if(_Rnd < 90)
        {
            player.sendMessage("Мне жаль,но ничего не выпало..");
        }
        else
        {
            int reward_id = 0;
            int count = 1;

            switch (Rnd.get(1))
            {
                case 1:
                {
                    reward_id = COIN_IDS[Rnd.get(COIN_IDS.length)];
                    count = (reward_id == 4037 ? Rnd.get(1,200) : 1);
                    break;
                }
                //case...
            }
        // activeChar или не знаю кто у тебя он там в коде -- кому выдавать
        PcAction.giveItems(player, reward_id, count);
        
        playable.destroyItem("Consume", item.getObjectId(), 1, null, false);
        }
    }


    public static void main (String... arguments )
    {
        new Chest();
    }

    public int[] getItemIds()
    {
        return ITEM_IDS;
    }
}

Благодарю за помощь. Можно ли как-то сделать чтобы итемы выпадали с шансом например: 4437(10-100)-55%, 6673(1-10)-20%, 9900(1-20)-20%, 9901(1-5)-5%?
 
Последнее редактирование:
Проще сделать распаковку через предметы а не таким образом
 
Назад
Сверху Снизу