Tinker 2 Опубликовано 15 мая, 2014 int[] MOB_ID = new int[]{1, 2, 3, 4, 5}; if(mob.getNpcId() == MOB_ID){ return false; } Пытался вот так, не компилит с меня спасибки Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TpaMjkee 128 Опубликовано 15 мая, 2014 public int MOB_ID[] = new ..... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tinker 2 Опубликовано 15 мая, 2014 error: incomparable types: int and int[] Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillerProMW 84 Опубликовано 15 мая, 2014 ошибку в студию Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillerProMW 84 Опубликовано 15 мая, 2014 (изменено) а вообще должно быть так int[] MOB_ID = new int[]{1, 2, 3, 4, 5}; if(mob.getNpcId() == Rnd.get(MOB_ID)){ return false; } Изменено 15 мая, 2014 пользователем KillerProMW Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tinker 2 Опубликовано 15 мая, 2014 [javac] D:\ft\sources\dist\gameserver\data\scripts\events\CustomDropItems\CustomDropItems.java:120: error: incomparable types: int and int[] [javac] if(mob.getNpcId() == FORBID_MOBS_ID) [javac] ^ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillerProMW 84 Опубликовано 15 мая, 2014 [javac] D:\ft\sources\dist\gameserver\data\scripts\events\CustomDropItems\CustomDropItems.java:120: error: incomparable types: int and int[] [javac] if(mob.getNpcId() == FORBID_MOBS_ID) [javac] ^ ловите рабочий скрипт package events.CustomDropItems; import l2ft.commons.util.Rnd; import l2ft.gameserver.Config; import l2ft.gameserver.listener.actor.OnDeathListener; import l2ft.gameserver.model.Creature; import l2ft.gameserver.model.actor.listener.CharListenerList; import l2ft.gameserver.model.instances.MonsterInstance; import l2ft.gameserver.model.instances.NpcInstance; import l2ft.gameserver.model.instances.RaidBossInstance; import l2ft.gameserver.scripts.Functions; import l2ft.gameserver.scripts.ScriptFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CustomDropItems extends Functions implements ScriptFile, OnDeathListener { private static final Logger _log = LoggerFactory.getLogger(CustomDropItems.class); private static final int[] DROP = Config.CDItemsId; private static final int[] CDItemsCountDropMin = Config.CDItemsCountDropMin; private static final int[] CDItemsCountDropMax = Config.CDItemsCountDropMax; private static final double[] CustomDropItemsChance = Config.CustomDropItemsChance; private static boolean ALLOW_MIN_MAX_PLAYER_LVL = Config.CDItemsAllowMinMaxPlayerLvl; private static final int MIN_PLAYER_LVL = Config.CDItemsMinPlayerLvl; private static final int MAX_PLAYER_LVL = Config.CDItemsMaxPlayerLvl; private static boolean ALLOW_MIN_MAX_MOB_LVL = Config.CDItemsAllowMinMaxMobLvl; private static final int MIN_MOB_LVL = Config.CDItemsMinMobLvl; private static final int MAX_MOB_LVL = Config.CDItemsMaxMobLvl; private static boolean ALLOW_ONLY_RB_DROPS = Config.CDItemsAllowOnlyRbDrops; private static boolean _active = false; @Override public void onLoad() { CharListenerList.addGlobal(this); if(Config.AllowCustomDropItems) { _active = true; _log.info("Loaded CustomDropItems: CustomDropItems [state: activated]"); } else _log.info("Loaded CustomDropItems: CustomDropItems [state: deactivated]"); } @Override public void onReload() { } @Override public void onShutdown() { } @Override public void onDeath(Creature cha, Creature killer) { if(!ALLOW_ONLY_RB_DROPS) { if((ALLOW_MIN_MAX_PLAYER_LVL && checkValidate(killer, cha, true, false)) && (ALLOW_MIN_MAX_MOB_LVL && checkValidate(killer, cha, false, true))) { dropItemMob(cha, killer); } else if((ALLOW_MIN_MAX_PLAYER_LVL && checkValidate(killer, cha, true, false)) && !ALLOW_MIN_MAX_MOB_LVL) { dropItemMob(cha, killer); } else if(!ALLOW_MIN_MAX_PLAYER_LVL && (ALLOW_MIN_MAX_MOB_LVL && checkValidate(killer, cha, false, true))) { dropItemMob(cha, killer); } else if(!ALLOW_MIN_MAX_PLAYER_LVL && !ALLOW_MIN_MAX_MOB_LVL) { dropItemMob(cha, killer); } else return; } else if(ALLOW_ONLY_RB_DROPS && (cha.isRaid() || cha.isBoss())) { if((ALLOW_MIN_MAX_PLAYER_LVL && checkValidate(killer, cha, true, false)) && (ALLOW_MIN_MAX_MOB_LVL && checkValidate(killer, cha, false, true))) { dropItemRb(cha, killer); } else if((ALLOW_MIN_MAX_PLAYER_LVL && checkValidate(killer, cha, true, false)) && !ALLOW_MIN_MAX_MOB_LVL) { dropItemRb(cha, killer); } else if(!ALLOW_MIN_MAX_PLAYER_LVL && (ALLOW_MIN_MAX_MOB_LVL && checkValidate(killer, cha, false, true))) { dropItemRb(cha, killer); } else if(!ALLOW_MIN_MAX_PLAYER_LVL && !ALLOW_MIN_MAX_MOB_LVL) { dropItemRb(cha, killer); } else return; } else return; } private boolean checkValidate(Creature killer, Creature mob, boolean lvlPlayer, boolean lvlMob) { if(mob == null || killer == null) return false; if(lvlPlayer && (killer.getLevel() >= MIN_PLAYER_LVL && killer.getLevel() <= MAX_PLAYER_LVL)) return true; if(lvlMob && (mob.getLevel() >= MIN_MOB_LVL && mob.getLevel() <= MAX_MOB_LVL)) return true; return false; } private void dropItemMob(Creature cha, Creature killer) { if(_active && SimpleCheckDrop(cha, killer)) for(int i = 0; i < DROP.length; i++) if(Rnd.chance(CustomDropItemsChance[i] * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp)) ((MonsterInstance) cha).dropItem(killer.getPlayer(), DROP[i], Rnd.get(CDItemsCountDropMin[i], CDItemsCountDropMax[i])); else return; } private void dropItemRb(Creature cha, Creature killer) { if(_active) for(int i = 0; i < DROP.length; i++) if(Rnd.chance(CustomDropItemsChance[i] * killer.getPlayer().getRateItems() * ((NpcInstance) cha).getTemplate().rateHp)) ((NpcInstance) cha).dropItem(killer.getPlayer(), DROP[i], Rnd.get(CDItemsCountDropMin[i], CDItemsCountDropMax[i])); else return; } } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tinker 2 Опубликовано 15 мая, 2014 (изменено) я его и редактирую, мне нужно написать запрет дропа из мобов по ID Rnd.get(MOB_ID) вроде работает Изменено 15 мая, 2014 пользователем Tinker 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tinker 2 Опубликовано 15 мая, 2014 не, не работает 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nelige 25 Опубликовано 15 мая, 2014 (изменено) int[] MOB_ID = {1, 2, 3, 4, 5}; Изменено 15 мая, 2014 пользователем Nelige 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TpaMjkee 128 Опубликовано 15 мая, 2014 Т.к это массив, а ты должег делать через цикл for, обозначить переменную и только в цикле делать рандомный выбор )) 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 15 мая, 2014 int[] mob_id = new int[]; mob_id = {1,3,3,3}; if(ArrayUtils.contains(mob_id,mob.getNpcId()) rerurn; 3 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 15 мая, 2014 int[] MOB_ID = new int[]{1, 2, 3, 4, 5}; if(mob.getNpcId() == MOB_ID){ return false; } Пытался вот так, не компилит с меня спасибки Да блииин... int Mob[] m = new Mob[]{1,2,3}; for(int m : Mob) { if(getNpcId() == m) profit } 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты