Skip to content

ceyhun

Members
  • Joined

  • Last visited

  • Trader rating

    N/A

Everything posted by ceyhun

  1. this is full sorc code l2dream. will be great if anyone can make premium rate for donator. thanks.
  2. hello. please help me how I can add server premium rate. if player donator , he gain 2x exp,sp,spoil,adena,drop. Here sorc code server. http://letitbit.net/download/8d54aafc0e/l2dreamlast.zip.html click free. L2DropData.java file from server. package Alfa.game.model; import java.util.Arrays; import Alfa.Config; import Alfa.game.model.base.ItemToDrop; import Alfa.game.tables.ItemTable; import Alfa.game.templates.L2Item; import Alfa.util.Rnd; public class L2DropData { private L2Item _item; private int _mindrop; private int _maxdrop; private boolean _sweep; private int _chance; private short _groupId; private int _groupChance; private byte _minLevel; private byte _maxLevel; private String _questID = null; private String[] _stateID = null; public L2DropData() {} public L2DropData(int id, int min, int max, int chance, int minLevel) { _item = ItemTable.getInstance().getTemplate(id); _mindrop = min; _maxdrop = max; _chance = chance; _minLevel = (byte) minLevel; } public L2DropData(int id, int min, int max, int chance, int minLevel, int maxLevel) { _item = ItemTable.getInstance().getTemplate(id); _mindrop = min; _maxdrop = max; _chance = chance; _minLevel = (byte) minLevel; _maxLevel = (byte) maxLevel; } public short getItemId() { return _item.getItemId(); } public L2Item getItem() { return _item; } public void setItemId(short itemId) { _item = ItemTable.getInstance().getTemplate(itemId); } public void setGroupId(short gId) { _groupId = gId; } public short getGroupId() { return _groupId; } public void setGroupChance(int chance) { _groupChance = chance; } public int getGroupChance() { return _groupChance; } public int getMinDrop() { return _mindrop; } public int getMaxDrop() { return _maxdrop; } public boolean isSweep() { return _sweep; } public int getChance() { return _chance; } public void setMinDrop(int mindrop) { _mindrop = mindrop; } public void setMaxDrop(int maxdrop) { _maxdrop = maxdrop; } public void setSweep(boolean sweep) { _sweep = sweep; } public void setChance(int chance) { _chance = chance; } public String[] getStateIDs() { return _stateID; } public void addStates(String[] list) { _stateID = list; } public String getQuestID() { return _questID; } public void setQuestID(String questID) { _questID = questID; } public boolean isQuestDrop() { return _questID != null && _stateID != null; } public byte getMinLevel() { return _minLevel; } public byte getMaxLevel() { return _maxLevel; } @Override public String toString() { String out = "ItemID: " + getItemId() + " Min: " + getMinDrop() + " Max: " + getMaxDrop() + " Chance: " + getChance() / 10000.0 + "%"; if(isQuestDrop()) out += " QuestID: " + getQuestID() + " StateID's: " + Arrays.toString(getStateIDs()); return out; } @Override public boolean equals(Object o) { if(o instanceof L2DropData) { L2DropData drop = (L2DropData) o; return drop.getItemId() == getItemId(); } return false; } /** * Подсчет шанса выпадения этой конкретной вещи * Используется в эвентах и некоторых специальных механизмах * @param player игрок (его бонус влияет на шанс) * @param mod (просто множитель шанса) * @param isRaid (это рейдовая вещ) * @return информация о выпавшей вещи */ public ItemToDrop roll(L2Player player, double mod) { float rate = 0; if(!_item.isHerb()) rate = Config.RATE_DROP_ITEMS * (player != null ? player.getRateItems() : 1); float adenarate = Config.RATE_DROP_ADENA * (player != null ? player.getRateAdena() : 1); // calc group chance double calcChance = mod * _chance * (_item.isAdena() ? 1f : rate); int dropmult = 1; // Если шанс оказался больше 100% if(calcChance > L2Drop.MAX_CHANCE) if(calcChance % L2Drop.MAX_CHANCE == 0) // если кратен 100% то тупо умножаем количество dropmult = (int) (calcChance / L2Drop.MAX_CHANCE); else { // иначе балансируем dropmult = (int) Math.ceil(calcChance / L2Drop.MAX_CHANCE); // множитель равен шанс / 100% округление вверх calcChance = calcChance / dropmult; // шанс равен шанс / множитель // в результате получаем увеличение количества и уменьшение шанса, при этом шанс не падает ниже 50% } if(Rnd.get(L2Drop.MAX_CHANCE) > calcChance) return null; ItemToDrop t = new ItemToDrop(_item.getItemId()); // если это адена то умножаем на рейт адены, иначе на множитель перебора шанса float mult = _item.isAdena() ? adenarate : dropmult; if(getMinDrop() >= getMaxDrop()) t.count = (int) (getMinDrop() * mult); else t.count = Rnd.get((int) (getMinDrop() * mult), (int) (getMaxDrop() * mult)); return t; } @Override public int hashCode() { return _item.getItemId(); } }

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.