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");
}
}
Sweeper Festival allows you to collect all spoil from killed mobs with a single button, without having to click on each body.
This saves time, speeds up farming, and reduces routine.
For some of you, it will be a long-awaited convenience, for others — a step toward excessive simplification.
It is important for us to understand what our community thinks before making a decision about introducing this feature.
Let's discuss this in the Discord:
Discord server
Looking for a Specialist to Upgrade Lineage II Interlude PTS to High Five Part 5
(We are also interested in upgrades to Garcia Final and Gracia Epilogue)
Hello, and thank you for taking the time to view our listing!
We are seeking an experienced specialist to help transfer and upgrade Lineage II server parts and core from the Interlude PTS chronicles to High Five, ensuring full functionality and stable operation.
Responsibilities:
Transfer and adapt all game resources and settings.
Ensure correct operation and maintain the functionality of the PTS core according to High Five Part 5 chronicles.
Optimize graphics, fonts, interface, and system files for High Five Part 5.
Requirements:
Deep understanding of the Lineage II client and server structure.
Experience with PTS (L2OFF), system files, resources, and geodata.
Attention to detail, accuracy, and ability to meet deadlines.
Conditions:
Remote work.
Payment negotiable; prepayment possible.
Opportunity for long-term cooperation.
Hello, and thank you for taking the time to check out our listing!
We truly appreciate your interest and look forward to sharing more details about the project, the tasks involved, and our terms of collaboration.
We are looking for an experienced specialist to port and adapt the Interlude PTS client to the Ertheia chronicles or newer.
Responsibilities:
Transfer and proper integration of all interface elements and client resources.
Ensure compatibility with new chronicles without loss of functionality.
Optimize graphics, fonts, system files, and interface elements for newer versions.
Requirements:
Deep understanding of the Lineage II client structure.
Experience working with resources, system files, interface, and geodata.
Attention to detail, accuracy, and ability to meet deadlines.
Conditions:
Remote work format.
Payment negotiable, prepayment possible.
Opportunity for long-term cooperation upon successful completion of the task.
Question
axcel2
adpat for l2jfrozen current 936 pleasee
2 answers to this question
Recommended Posts