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

Награда за ПвП/ПК

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

Сборка First Team (Hi5)

 

Есть такой конфиг, выдача награды за Пвп/ПК

 

# Система награды за ПВП 
PkPvPKillEnable = True //SERVICES_PK_PVP_KILL_ENABLE
PvPKillRewardCount = 1 //SERVICES_PVP_KILL_REWARD_COUNT
PvPkillRewardItem = 4037 //SERVICES_PVP_KILL_REWARD_COUNT
PkKillRewardCount = 1 //SERVICES_PK_KILL_REWARD_COUNT
PkkillRewardItem = 4037 //SERVICES_PK_KILL_REWARD_ITEM

# Выдавать ли участником Пвп/ПК награду из одного IP
PkPvPTieifSameIP = True //SERVICES_PK_PVP_TIE_IF_SAME_IP

 

не в каком варианте не хочет давать награду, вот код, который отвечает за выдачу

public final void doKillInPeace(final Player killer) // Check if the L2Player killed haven't Karma
	{
		if(_karma <= 0  && (_event == null || _event.checkPvP(killer, this)))
		{
			if(Config.SERVICES_PK_PVP_KILL_ENABLE)
			{
				if(Config.SERVICES_PK_PVP_TIE_IF_SAME_IP)
				{
					if(this.getIP() == null ? killer.getIP() != null : !this.getIP().equals(killer.getIP()))
						ItemFunctions.addItem(killer, Config.SERVICES_PK_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true);
				}
				else
					ItemFunctions.addItem(killer, Config.SERVICES_PK_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true);
			}
			doPurePk(killer);
		}
		else
		{
			if(Config.SERVICES_PK_PVP_KILL_ENABLE)
			{
				if(Config.SERVICES_PK_PVP_TIE_IF_SAME_IP)
				{
					if(this.getIP() == null ? killer.getIP() != null : !this.getIP().equals(killer.getIP()))
						ItemFunctions.addItem(killer, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PVP_KILL_REWARD_COUNT, true);
				}
				else
					ItemFunctions.addItem(killer, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PVP_KILL_REWARD_COUNT, true);
			}
			killer.setPvpKills(killer.getPvpKills() + 1);
		}
	}

Никак не пойму, почему всё таки награду не дают, если есть идеии подскажите пожайлусто

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


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

 

if(this.getIP() == null ? killer.getIP() != null : !this.getIP().equals(killer.getIP()))
Может потому, что ты с 1 компа пробуешь ?

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


Ссылка на сообщение
Поделиться на другие сайты
if(this.getIP() == null ? killer.getIP() != null : !this.getIP().equals(killer.getIP()))
Может потому, что ты с 1 компа пробуешь ?

 

 

1. ну в конфиге я прописал  PkPvPTieifSameIP = True

2. вообще закоменнтил оставил только так

if(Config.SERVICES_PK_PVP_KILL_ENABLE)
			{		
		          ItemFunctions.addItem(killer, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true);
			}

всё равно не даёт :aggressive:

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


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

Тогда не знаю. На фрозене (interlude) у меня код выглядит вот так, может чем поможет)

 

private void addItemReward(final L2PcInstance targetPlayer)
{
// IP check
if (targetPlayer.getClient() != null && targetPlayer.getClient().getConnection() != null)
{
if (targetPlayer.getClient().getConnection().getInetAddress() != getClient().getConnection().getInetAddress())
{
 
if (targetPlayer.getKarma() > 0 || targetPlayer.getPvpFlag() > 0) // killing target pk or in pvp
{
if (Config.PVP_REWARD_ENABLED)
{
final int item = Config.PVP_REWARD_ID;
final L2Item reward = ItemTable.getInstance().getTemplate(item);
 
final int amount = Config.PVP_REWARD_AMOUNT;
 
getInventory().addItem("Winning PvP", Config.PVP_REWARD_ID, Config.PVP_REWARD_AMOUNT, this, null);
sendMessage("Вы получаете " + amount + reward.getName() + " за убийство");
}
 
if (!Config.FORCE_INVENTORY_UPDATE)
{
InventoryUpdate iu = new InventoryUpdate();
iu.addItem(_inventory.getItemByItemId(Config.PVP_REWARD_ID));
sendPacket(iu);
iu = null;
}
}
else
// target is not pk and not in pvp ---> PK KILL
{
if (Config.PK_REWARD_ENABLED)
{
final int item = Config.PK_REWARD_ID;
final L2Item reward = ItemTable.getInstance().getTemplate(item);
final int amount = Config.PK_REWARD_AMOUNT;
getInventory().addItem("Winning PK", Config.PK_REWARD_ID, Config.PK_REWARD_AMOUNT, this, null);
sendMessage("You have earned " + amount + " item(s) of " + reward.getName() + ".");
}
 
if (!Config.FORCE_INVENTORY_UPDATE)
{
InventoryUpdate iu = new InventoryUpdate();
iu.addItem(_inventory.getItemByItemId(Config.PK_REWARD_ID));
sendPacket(iu);
iu = null;
}
}
}
else
{
this.sendMessage("Фарм оконами карается баном");
LOGGER.warn("PVP POINT FARM ATTEMPT: " + this.getName() + " and " + targetPlayer.getName() + ". SAME IP.");
}
}
}

 

 

Изменено пользователем NerfPl0x
  • Upvote 1

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


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

Мне кажется вместо ItemFunctions надо подставить player

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


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

нет сама функция

 

ItemFunctions.addItem(killer, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true);

 

заработала, после шаманство, но сам код не коректный, особенно когда в дело включаеться ИП, капаю дальше  8) 

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


Ссылка на сообщение
Поделиться на другие сайты
В 17.03.2015 в 18:56, Maxo сказал:

нет сама функция

 

ItemFunctions.addItem(killer, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true);

 

заработала, после шаманство, но сам код не коректный, особенно когда в дело включаеться ИП, капаю дальше  8) 

 

 

Разобрался? Можешь рассказать в чем проблема?

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


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

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

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

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

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

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

Войти

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

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

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

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

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