EternalFire 4 Опубликовано 26 апреля, 2016 (изменено) package custom.core; /* * @author Ro0TT * @date 27.10.2012 */ import ru.catssoftware.Config; import ru.catssoftware.L2DatabaseFactory; import ru.catssoftware.gameserver.model.L2Character; import ru.catssoftware.gameserver.util.DatabaseUtils; import ru.catssoftware.gameserver.util.PcAction; import ru.catssoftware.gameserver.util.actions.IOnKill; import ru.catssoftware.gameserver.util.actions.PlayerActions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class PrizeOnKill implements IOnKill { private HashMap<Integer, Kills> allKills = new HashMap<Integer, Kills>(); public PrizeOnKill() { load(); } public static void main(String []args) { PlayerActions.getInstance().addScript(new PrizeOnKill()); } @Override public void onKill(L2Character killer, L2Character actor) { if (Config.PVP_REWARD_LEVEL > actor.getLevel() || Config.ALLOW_PVP_REWARD) return; if (killer.equals(actor) || !killer.isPlayer() || !actor.isPlayer()) return; if (addKill(killer.getObjectId(), actor.getPlayer().getHWid(), true)) { PcAction.giveItems(killer.getPlayer(), Config.PVP_REWARD_ITEM_ID, Config.PVP_REWARD_ITEM_AMMOUNT, 0); killer.sendMessage("Вы получили награду за убийство игрока " + actor.getName() + "."); } } private boolean addKill(int kllerId, String hwid, boolean saveToBd) { Kills kills = allKills.get(kllerId); if (kills == null) { kills = new Kills(kllerId); allKills.put(kllerId, kills); } if (kills.kills.contains(hwid)) return false; kills.kills.add(hwid); if (saveToBd) insertInBdKill(kllerId, hwid); return true; } private class Kills { private final int charId; public List<String> kills = new ArrayList<String>(); public Kills(int charId) { this.charId = charId; } } private void load() { Connection con = null; PreparedStatement statement = null; ResultSet set = null; try { con = L2DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT `charId`, `hwidkill` FROM `pvprewardkills`"); set = statement.getResultSet(); while (set.next()) { addKill(set.getInt(1), set.getString(2), false); } } catch (Exception e) { e.printStackTrace(); } finally { DatabaseUtils.close(con, statement, set); } } private void insertInBdKill(int charId, String hwid) { Connection con = null; PreparedStatement statement = null; try { con = L2DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("INSERT INTO `pvprewardkills` VALUES (?,?)"); statement.setInt(1, charId); statement.setString(2, hwid); statement.execute(); } catch (Exception e) { e.printStackTrace(); } finally { DatabaseUtils.close(con, statement); } } } подскажите где тут нужно ставить ид предмета чтоб давало за убийство Ъ а то чет найти не могу Изменено 26 апреля, 2016 пользователем EternalFire Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta 206 Опубликовано 26 апреля, 2016 PcAction.giveItems(killer.getPlayer(), Config.PVP_REWARD_ITEM_ID, Config.PVP_REWARD_ITEM_AMMOUNT, 0); четко написано что в конфиге ставить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
EternalFire 4 Опубликовано 26 апреля, 2016 PcAction.giveItems(killer.getPlayer(), Config.PVP_REWARD_ITEM_ID, Config.PVP_REWARD_ITEM_AMMOUNT, 0); четко написано что в конфиге ставить это после ; ставить ид или место 0 честно не могу понять просто ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lacosta 206 Опубликовано 26 апреля, 2016 зайди в конфиги найди пвп конфиг и найди там награда за пвп Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 27 апреля, 2016 это после ; ставить ид или место 0 честно не могу понять просто ) Если нет конфига в сборке то PcAction.giveItems(killer.getPlayer(), 57, 100000, 0); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arrow 24 Опубликовано 27 апреля, 2016 Если у вас люся то скорей в файле custom # Система награды за PVP # 1 - Выдавать награду за убийство в PVP # 2 - ID айтема, приза, который выдается за PVP # 3 - Количество награды # 4 - Необходимый уровень противника для выдачи награды # - 0: Награда выдается в любом случае # 5 - не выдавать награду при убивании игрока с тем же hwid # 6 - время через которе давать награду за следующее убийство, секунды AllowPvpReward = true PvpRewardItemId = 6673 PvpRewardAmmount = 1 PvpRewardLevel = 80 PvpCheckHWID = true PvpRewardTime=15 PvpCheckIP = true PvpPkStep = 5 PvpPkStepBan = 5 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
EternalFire 4 Опубликовано 27 апреля, 2016 Если у вас люся то скорей в файле custom # Система награды за PVP # 1 - Выдавать награду за убийство в PVP # 2 - ID айтема, приза, который выдается за PVP # 3 - Количество награды # 4 - Необходимый уровень противника для выдачи награды # - 0: Награда выдается в любом случае # 5 - не выдавать награду при убивании игрока с тем же hwid # 6 - время через которе давать награду за следующее убийство, секунды AllowPvpReward = true PvpRewardItemId = 6673 PvpRewardAmmount = 1 PvpRewardLevel = 80 PvpCheckHWID = true PvpRewardTime=15 PvpCheckIP = true PvpPkStep = 5 PvpPkStepBan = 5 да это есть все я просто хотел добавить скрипт чтоб небыло ошибок с наградой кто знает что может случится ) запасной вариант скажем так Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты