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

Помогите с скриптом

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

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);
		}
	}
}

подскажите где тут нужно ставить ид предмета чтоб давало за убийство Ъ

а то чет найти не могу 

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

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


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

PcAction.giveItems(killer.getPlayer(), Config.PVP_REWARD_ITEM_ID, Config.PVP_REWARD_ITEM_AMMOUNT, 0);

 

 

четко написано что в конфиге ставить

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


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

PcAction.giveItems(killer.getPlayer(), Config.PVP_REWARD_ITEM_ID, Config.PVP_REWARD_ITEM_AMMOUNT, 0);

 

 

четко написано что в конфиге ставить

это  после ; ставить ид или  место 0 

честно не могу понять просто ) 

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


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

зайди в конфиги найди пвп конфиг и найди там награда за пвп

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


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

это  после ; ставить ид или  место 0 

честно не могу понять просто )

Если нет конфига в сборке то

PcAction.giveItems(killer.getPlayer(), 57, 100000, 0);

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


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

Если у вас люся то скорей в файле 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

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


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

Если у вас люся то скорей в файле 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

да это есть все 

я просто хотел добавить скрипт чтоб небыло ошибок с наградой 

кто знает что может случится )

запасной вариант скажем так 

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


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

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

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

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

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

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

Войти

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

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

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

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

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