|
Membro - Capitão
Registrado em: Jan 2009
Posts: 113
Agradecido 62 Vezes em 41 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
|
OKs Para L2JFrozen
/*
* 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");
}
}
Este Codigo ja esta pronto para rodar no Frozen
Uhuuuuu Primeiro que conseguir adaptar
( Breve tarei postando na aria de Mods este codico com uma config para facilitar )
Bom para colocalo no Frozen voce terar que ir em
1- C:\L2jFrozen 720\gameserver\data\scripts
2- Dentro desta pasta voce ira criar uma pasta chamada de "events"
3- Dentro da pasta "events" voce ira criar uma outra chamada "TesouroPerdido"
4,1- Dentro da pasta "TesouroPerdido" voce ira criar um arquivo com o bloco de notas
Chamado "TesouroPerdido.java"
4,2- Como crio este arquivo facil Dentro da pasta voce irar "clicar com o botao direito do mouse"
Depois "Novo > Documento de Texto" ira aparecer o arquivo neste arquivo nao de nome a ele ainda
Agora copie o codigo e cole dentro deste arquivo agora voce ira ir no topo do Programa Bloco de Notas
e va em Arquivo > Salvar como > TesouroPerdido.java ... pronto
5- volte a pasta "C:\L2jFrozen 720\gameserver\data" abra o arquivo scripts.cfg e add assim
#java MOD
events/TesouroPerdido/TesouroPerdido.java
>>>> Obrigado Over...
|