Tópico: [L2JServer] Treasure Box
Ver um Único Post
Antigo 05-04-2011, 01:55 PM   #1 (permalink)
allanalcantara
Banido
 
Avatar de allanalcantara
 
Registrado em: Nov 2009
Localização: Fortaleza-ce
Posts: 325
Agradeceu: 125
Agradecido 203 Vezes em 82 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Enviar mensagem via Windows Live Messenger para allanalcantara Enviar mensagem via Skype para allanalcantara
Nome Real: Allan Alcântara de Alencar

Inventório de allanalcantara

Padrão Treasure Box

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.. ( OVER12)

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)
			
			String name = player.getName();
       			Announcements.getInstance().announceToAll("Parabens derrotaram o Mob! " + name + " .");

                        {
                            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");
    }
}
mais informações
Cria uma Npc Custom( Aparencia de Bau ) pega o ID dessa npc e adicione nessa linha:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
 { "Tesouro Perdido", "60001" }
// Já ta alto explicativa o 60001 é o Id da npc, e o nome da Npc que será o Baú..

Se voce quiser adicionar várias areas.. para turma procurar , deverá ir no Game e digitar loc dos locais ( Principais ) e adicionar nessa linha:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
{ "Primeval Isle", "10724,-23729,-3650" },
// Adiciona o Nome do Local ou adicionar alguma dica pra turma acha o Bau em uma area.. e o restant é o X, Y, e Z das coordenads do game. se for adicinar vários locais apenas copie a linha e vai adicinonando uma abaixo da outra.

Aqui você configura o que o seu Bau pode dar de item..
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
private static final int[][] REWARD = {//id,amount,chance
    { 9546, Rnd.get(1, MOUNT), 90 },//Fire Stone
Já ta meio explicando como que é ..
Por fim mude os Dizeres que irá surgir no Anuncio do Game..
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
l("Mob Apareceu: " + mob + " em : " + location + ", Corra para mata-lo , em 1 hora ele sumira");
O que tá de vermelho , não é bom tirar por que fiz umas concatenações que indica o Nome do Npc , ou Mob ou que for, e o Local que iráa aparecer ( Nao as coordenadas mais sim a area que vc por, Exemplo: Dica: Proximo a Hunter village e bla bla ) ..
Modifica apenas entre " "

Creio que deu pra entender.. ;)




[Adaptado Para Frozen diff]
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

[ INSTALAÇÃO DA DIFF]
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



SS: Do Evento Funcionando. :
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

credits by TheOne
Correcoes by over12
adaptação para outra Pack: L2Meteoro

allanalcantara está offline  
Links Patrocinados
 

Search Engine Optimization by vBSEO 3.3.0