Ver um Único Post
Antigo 14-12-2010, 02:35 PM   #8 (permalink)
.Over12
Banido
 
Avatar de .Over12
 
Registrado em: Aug 2010
Localização: Cáceres - MT
Posts: 155
Agradeceu: 13
Agradecido 174 Vezes em 46 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Nome Real: @over12_devdag

Inventório de .Over12

Padrão

Tá ai em java o evento para fazer com tesouro..
Deverá pegar as LOC do game e adicionar ai , e o sistema irá pegar de forma aleatorio as coordenadas..
Sistema era de Evento de Boss porém a um tempo atrás fiz modificações para que seje de matar um certo Mob, porém no caso aqui você pode por uma baú ou qualquer coisa que seje para suprir suas necessidades.
Só muda os Dizeres..

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
/*
 * 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.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.util.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 = 10 * 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 L2Npc RbSpawn = null;
    private static final String[][] Mobs = {
        { "Tesouro Perdido", "60001" }, //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
    { 9546, Rnd.get(1, MOUNT), 90 },//Fire Stone
    { 9552, Rnd.get(1, MOUNT), 7 },//Fire crystal
    { 9558, Rnd.get(1, MOUNT), 1 },//Fire jewel
    
    { 9547, Rnd.get(1, MOUNT), 90 },//Water Stone
    { 9553, Rnd.get(1, MOUNT), 7 },//Water crystal
    { 9559, Rnd.get(1, MOUNT), 1 },//Water jewel
    
    { 9548, Rnd.get(1, MOUNT), 90 },//Earth Stone
    { 9554, Rnd.get(1, MOUNT), 7 },//Earth crystal
    { 9560, Rnd.get(1, MOUNT), 1 },//Earth jewel
    
    { 9549, Rnd.get(1, MOUNT), 90 },//Wind Stone
    { 9555, Rnd.get(1, MOUNT), 7 },//Wind crystal
    { 9561, Rnd.get(1, MOUNT), 1 },//Wind jewel
    
    { 9550, Rnd.get(1, MOUNT), 90 },//Dark Stone
    { 9556, Rnd.get(1, MOUNT), 7 },//Dark crystal
    { 9562, Rnd.get(1, MOUNT), 1 },//Wind jewel
    
    { 9551, Rnd.get(1, MOUNT), 90 },//Divine Stone
    { 9557, Rnd.get(1, MOUNT), 7 },//Divine crystal
    { 9563, Rnd.get(1, MOUNT), 1 },//Divine jewel
	
	{ 6393, Rnd.get(10, MOUNT), 90 },
	{ 60020, Rnd.get(1, MOUNT), 90 },
    
    { 60021, Rnd.get(1, MOUNT), 40 },//Festival Adena
    { 14169, 1, 33 },//Top-Grade Life Stone - level 84
    };
    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, L2Npc 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));
            String location = MobsLocName.get(rbLoc);
            Announcements.getInstance().announceToAll("Mob Apareceu: " + mob + " em : " + location + ", Corra para mata-lo , em 1 hora ele sumira");
            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(L2Npc npc, L2PcInstance player, boolean isPet)
    {
        if (npc == RbSpawn)
        {
            if (npc.getObjectId() == RbSpawn.getObjectId())
            {
                for (L2PcInstance p : npc.getKnownList().getKnownPlayersInRadius(1300))
                {
                    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);
        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");
    }
}

.Over12 está offline   Responder com Citação
 

Search Engine Optimization by vBSEO 3.3.0