Index: datapack/data/scripts/events/tesouro perdido/TesouroPerdido.java
===================================================================
--- /datapack/data/scripts/events/tesouro perdido/TesouroPerdido.java (revision 1035)
+++ /datapack/data/scripts/events/tesouro perdido/TesouroPerdido.java (revision 2532)
@@ -00,0 +13891,23 @@
/**
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package events.TesouroPerdido;
import java.util.List;
import java.util.Map;
import javolution.util.FastList;
import javolution.util.FastMap;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.quest.Quest;
import com.l2jfrozen.util.random.Rnd;
/**
* @author TheOne
* @version Over12 - Configurado , e Fixados erros.
*/
public class TesouroPerdido extends Quest
{
private static final String qn = "TesouroPerdido";
private static final int _eventInterval = 4 * 60 * 60 * 1000; // Intervalo do Evento em 4 em 4 horas.
private static final int _firstStart = 2 * 60 * 1000; //Apos religar o servidor inicia o evento automaticamente 10 minuto.
private static final int _mobInterval = 1 * 60 * 60 * 1000;//1 Hora ate matar o Mob.
private static L2NpcInstance RbSpawn = null;
private static final String[][] Mobs = {
{ "Tesouro Perdido", "20629" }, //Npc para usar
};
private static final String[][] RbCoords = { // Valores aleatorios.
{ "Primeval Isle", "10724,-23729,-3650" }, // Coordenadas de onde pode aparecer o mob ou tesouro , pegar Coordenadas no game e adicionar.
{ "Primeval Isle", "10724,-23729,-3650" },
};
private static final int MOUNT = 5;
private static final int[][] REWARD = {//id,amount,chance
{ 5592, Rnd.get(1, MOUNT), 90 },//Greater CP Potion
{ 57, Rnd.get(2000000000, MOUNT), 90 },//2kkk deAdena
};
private static Map<Integer, String> Mobs_ = new FastMap<Integer, String>();
private static List<Integer> MobsId = new FastList<Integer>();
private static List<String> MobsLocName = new FastList<String>();
private static List<Integer> MobsX = new FastList<Integer>();
private static List<Integer> MobsY = new FastList<Integer>();
private static List<Integer> MobsZ = new FastList<Integer>();
static
{
for (String[] monster : Mobs)
{
Mobs_.put(Integer.valueOf(monster[1]), monster[0]);
MobsId.add(Integer.valueOf(monster[1]));
}
for (String[] mobCoords : RbCoords)
{
String[] coords = mobCoords[1].split(",");
MobsLocName.add(mobCoords[0]);
MobsX.add(Integer.valueOf(coords[0]));
MobsY.add(Integer.valueOf(coords[1]));
MobsZ.add(Integer.valueOf(coords[2]));
}
}
public TesouroPerdido(int questId, String name, String descr)
{
super(questId, name, descr);
for (int mobsid : MobsId)
{
addKillId(mobsid);
}
this.startQuestTimer("raidSpawn", _firstStart, null, null);
}
@Override
public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player)
{
if (event.equalsIgnoreCase("raidSpawn"))
{
int rbId = Rnd.get(MobsId.size());//id
int rbLoc = Rnd.get(RbCoords.length);//loc
String mob = Mobs_.get(MobsId.get(rbId));
Announcements.getInstance().announceToAll("Mob Apareceu use o comando /loc para localizar o mob: " + MobsX + " | " + MobsY + " | " + MobsZ + ".");
System.out.println("# Mob Evento Iniciado (" + mob + ")!");
RbSpawn = this.addSpawn(MobsId.get(rbId), MobsX.get(rbLoc), MobsY.get(rbLoc), MobsZ.get(rbLoc), 0, false, 0);
this.startQuestTimer("RbDespawn", _mobInterval, null, null);
}
if (event.equalsIgnoreCase("RbDespawn"))
{
this.startQuestTimer("raidSpawn", _eventInterval, null, null);
RbSpawn.deleteMe();
Announcements.getInstance().announceToAll("Ninguem derrotou o Mob.");
System.out.println("# Evento desapareu.!");
}
return null;
}
@Override
public String onKill(L2NpcInstance npc, L2PcInstance player, boolean isPet)
{
if (npc == RbSpawn)
{
if (npc.getObjectId() == RbSpawn.getObjectId())
{
for (L2PcInstance p : npc.getKnownList().getKnownPlayersInRadius(300))
{
if (!p.isDead())
{
p.sendMessage("Recompensa por ter Vencido!");
for (int[] item : REWARD)
{
switch (item[0])
{
default:
{
if (Rnd.get(100) <= item[2])
p.addItem(qn, item[0], item[1], player, true);
}
break;
}
}
}
}
}
}
this.startQuestTimer("raidSpawn", _eventInterval, null, null);
this.cancelQuestTimer("RbDespawn", null, null);
String name = player.getName();
Announcements.getInstance().announceToAll("Parabens " + name + " .");
Announcements.getInstance().announceToAll("Parabens derrotaram o Mob!");
System.out.println("# Mob Morto !!");
return null;
}
public static void main(String[] args)
{
new TesouroPerdido(-1, qn, "events");
System.out.println(qn + " - ON");
}
}
Question
axcel2
adpat for l2jfrozen current 936 pleasee
2 answers to this question
Recommended Posts