Перейти к содержанию
Авторизация  
Closer

Сундук С Дропом 100%

Рекомендуемые сообщения

Кто подскажет как реализовать сундук чтоб когда его открываешь с него выпадали несколько итемов со 100% шансом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужно несколько))) один я курсе как делать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хз хз...попробуй напиши на несколько итемов шанс 100)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Extractable_items.csv

 

9999;8888,1,100;

 

9999 - id итема с которого будет выпадать.

8888 - id итема который будет выпадать.

1 - количество.

100 - шанс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Extractable_items.csv

 

9999;8888,1,100;

 

9999 - id итема с которого будет выпадать.

8888 - id итема который будет выпадать.

1 - количество.

100 - шанс.

да ты Америку открыл...он же сказал что знает как такое делать. Только тут нужно чтоб обший шанс был 100%. А ему над чтоб несколько итемов давалось с 100% шансом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да ты Америку открыл...он же сказал что знает как такое делать. Только тут нужно чтоб обший шанс был 100%. А ему над чтоб несколько итемов давалось с 100% шансом.

Я смотрю для кого открыл а для кого нет.

 

9999;8888,1,100;7777,1,100;6666,1,100;

 

Думаю сами догадаетесь раз такие умные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Через исходники, создать новый класс или добавить в уже существующий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я смотрю для кого открыл а для кого нет.

 

9999;8888,1,100;7777,1,100;6666,1,100;

 

Думаю сами догадаетесь раз такие умные.

а ниче что для 1 итема должен быть если додать все % макс 100?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Через исходники, создать новый класс или добавить в уже существующий.

можешь подсказать как это сделать?)

 

/*

* This program is free software; you can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2, or (at your option)

* any later version.

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

* GNU General Public License for more details.

*

* You should have received a copy of the GNU General Public License

* along with this program; if not, write to the Free Software

* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA

* 02111-1307, USA.

*

* http://www.gnu.org/copyleft/gpl.html

*/

package com.l2jfrozen.gameserver.datatables.csv;

 

import java.io.File;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

 

import com.l2jfrozen.Config;

import com.l2jfrozen.gameserver.model.L2ExtractableItem;

import com.l2jfrozen.gameserver.model.L2ExtractableProductItem;

 

/**

* @author FBIagent

*/

public class ExtractableItemsData

{

//Map<itemid, L2ExtractableItem>

private Map<Integer, L2ExtractableItem> _items;

 

private static ExtractableItemsData _instance = null;

 

public static ExtractableItemsData getInstance()

{

if(_instance == null)

{

_instance = new ExtractableItemsData();

}

 

return _instance;

}

 

public ExtractableItemsData()

{

_items = new HashMap<Integer, L2ExtractableItem>();

 

Scanner s = null;

try

{

s = new Scanner(new File(Config.DATAPACK_ROOT+"/data/extractable_items.csv"));

 

int lineCount = 0;

while(s.hasNextLine())

{

lineCount++;

 

String line = s.nextLine();

 

if(line.startsWith("#"))

{

continue;

}

else if(line.equals(""))

{

continue;

}

 

String[] lineSplit = line.split(";");

int itemID = 0;

try

{

itemID = Integer.parseInt(lineSplit[0]);

}

catch(Exception e)

{

if(Config.ENABLE_ALL_EXCEPTIONS)

e.printStackTrace();

 

System.out.println("Extractable items data: Error in line " + lineCount + " -> invalid item id or wrong seperator after item id!");

System.out.println(" " + line);

return;

}

 

List<L2ExtractableProductItem> product_temp = new ArrayList<L2ExtractableProductItem>(lineSplit.length);

for(int i = 0; i < lineSplit.length - 1; i++)

{

String[] lineSplit2 = lineSplit[i + 1].split(",");

if(lineSplit2.length != 3)

{

System.out.println("Extractable items data: Error in line " + lineCount + " -> wrong seperator!");

System.out.println(" " + line);

continue;

}

 

int production = 0, amount = 0, chance = 0;

 

try

{

production = Integer.parseInt(lineSplit2[0]);

amount = Integer.parseInt(lineSplit2[1]);

chance = Integer.parseInt(lineSplit2[2]);

lineSplit2 = null;

}

catch(Exception e)

{

if(Config.ENABLE_ALL_EXCEPTIONS)

e.printStackTrace();

 

System.out.println("Extractable items data: Error in line " + lineCount + " -> incomplete/invalid production data or wrong seperator!");

System.out.println(" " + line);

continue;

}

 

product_temp.add(new L2ExtractableProductItem(production, amount, chance));

}

 

int fullChances = 0;

for(L2ExtractableProductItem Pi : product_temp)

{

fullChances += Pi.getChance();

}

 

if(fullChances > 100)

{

System.out.println("Extractable items data: Error in line " + lineCount + " -> all chances together are more then 100!");

System.out.println(" " + line);

continue;

}

 

_items.put(itemID, new L2ExtractableItem(itemID, product_temp));

}

 

System.out.println("Extractable items data: Loaded " + _items.size() + " extractable items!");

}

catch(Exception e)

{

//if(Config.ENABLE_ALL_EXCEPTIONS)

e.printStackTrace();

 

System.out.println("Extractable items data: Can not find './data/extractable_items.csv'");

 

}finally{

 

if(s != null)

try

{

s.close();

}

catch(Exception e1)

{

e1.printStackTrace();

}

}

}

 

public L2ExtractableItem getExtractableItem(int itemID)

{

return _items.get(itemID);

}

 

public int[] itemIDs()

{

int size = _items.size();

int[] result = new int;

int i = 0;

for(L2ExtractableItem ei : _items.values())

{

result = ei.getItemId();

i++;

}

return result;

}

}

 

Вот тут прописано как несколько добавлять, только на все итемы вместе шанс дается 100%, а мне нужно чтоб раздельно по 100% тоесть чтоб из 1 итема 5 штук падало со 100% шансом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

package net.sf.l2j.gameserver.handler.itemhandlers;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.handler.IItemHandler;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;

import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;

import net.sf.l2j.gameserver.network.serverpackets.SocialAction;

 

public class NewItem implements IItemHandler

{

public NewItem()

{

}

 

private static final int ITEM_IDS[] = {Config.NEW_ITEM_ID};

 

public void useItem(L2PlayableInstance playable, L2ItemInstance item)

{

if(Config.NEW_ITEM)

{

if(!(playable instanceof L2PcInstance))

return;

L2PcInstance activeChar = (L2PcInstance)playable;

if(activeChar.getInventory().getItemByItemId(ИтемИд) != null )

{

activeChar.getInventory().destroyItemByItemId("1", СундукИд, 1, activeChar, activeChar.getTarget());

activeChar.getInventory().addItem("2", ИтемИд, 1, activeChar, activeChar.getTarget());

activeChar.getInventory().addItem("3", ИтемИд, 1, activeChar, activeChar.getTarget());

activeChar.getInventory().addItem("4", ИтемИд, 1, activeChar, activeChar.getTarget());

activeChar.sendMessage("Сообщение.");

activeChar.broadcastUserInfo();

}

}

}

 

public int[] getItemIds()

{

return ITEM_IDS;

}

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а ниче что для 1 итема должен быть если додать все % макс 100?

научитесь нормально формулировать свою мысль, иначе можно мозг себе поломать....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Demoncool вообщем я создал NewItem в itemhandler, прописал свои айдишки, скомпилил, юзаю итем и ничего не происходит =(

Изменено пользователем Closer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

научитесь нормально формулировать свою мысль, иначе можно мозг себе поломать....

если ты не знаешь о чем идет речь то ясен *** что тебе не понятно будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...