Привет всем, может кто-то с лучшим знанием Java помочь мне с следующим кодом?
С другом мы работаем над кодом для partydrop'а, проблема в том, что я знаю игру, но мало знаю о Java, а мой друг знает Java, но ничего не знает об игре, и между нами мы не можем завершить даже 1 xD
Пока у нас есть следующее:
Этот код основан на многих, которые существуют на различных форумах различных дистрибутивов, таких как l2jserver, frozen и т. д. Мы пытались адаптировать его, но он по-прежнему не работает. Если у кого-то есть идея, что идет не так, это будет большой помощью.
С другом мы работаем над кодом для partydrop'а, проблема в том, что я знаю игру, но мало знаю о Java, а мой друг знает Java, но ничего не знает об игре, и между нами мы не можем завершить даже 1 xD
Пока у нас есть следующее:
PartyDropQuest.java:
package net.sf.l2j.gameserver.scripting.script.feature;
import java.util.HashMap;
import java.util.List;
import net.sf.l2j.gameserver.model.actor.Npc;
import net.sf.l2j.gameserver.model.actor.Player;
import net.sf.l2j.gameserver.network.serverpackets.PlaySound;
import net.sf.l2j.gameserver.scripting.Quest;
public class PartyBoxQuest extends Quest
{
private static final String QUEST_NAME = "PartyDropQuest";
private static final int[] PARTY_MOBS = { 22105 };
private static final int REWARD_ITEM_ID = 10002;
private static final int REWARD_ITEM_COUNT = 10;
private static final int REWARD_RADIUS = 1000;
private boolean canReward = false;
private static HashMap<String, Integer> playerIps = new HashMap<>();
public PartyBoxQuest()
{
super(-1, QUEST_NAME);
addKillId(PARTY_MOBS);
}
private void addKillId(int[] partyMobs)
{
// No hay implementación actualmente.
}
public String onKill(Npc npc, Player player, boolean isPet)
{
if (player.isInParty())
{
List<Player> party = player.getParty().getMembers();
for (Player member : party)
{
String playerIp = member.getClient().getConnection().getInetAddress().getHostAddress();
if (!playerIps.containsKey(playerIp))
{
playerIps.put(playerIp, 1);
canReward = true;
}
else
{
int count = playerIps.get(playerIp);
if (count < 1)
{
playerIps.remove(playerIp);
playerIps.put(playerIp, count + 1);
canReward = true;
}
else
{
member.sendMessage("You have already been rewarded, so this character won't receive additional rewards.");
canReward = false;
}
}
if (canReward)
{
if (member.isIn3DRadius(npc, REWARD_RADIUS))
{
member.addItem("Party Box", REWARD_ITEM_ID, REWARD_ITEM_COUNT, member, true);
member.broadcastPacket(new PlaySound("ItemSound.quest_finish"));
}
else
{
member.sendMessage("You are too far to be rewarded.");
}
}
}
playerIps.clear();
}
else
{
player.addItem("Party Box", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true);
player.broadcastPacket(new PlaySound("ItemSound.quest_finish"));
}
return null;
}
public static void main(String[] args)
{
new PartyBoxQuest();
}
}
Этот код основан на многих, которые существуют на различных форумах различных дистрибутивов, таких как l2jserver, frozen и т. д. Мы пытались адаптировать его, но он по-прежнему не работает. Если у кого-то есть идея, что идет не так, это будет большой помощью.