These are chat archives for u3games/L2J_EventEngine

22nd
Jul 2015
Lucas
@luksdlt92
Jul 22 2015 00:58
@fissban el parche en la parte del onKill listener está mal
el tvt, por ejemplo, nunca suma puntos porque nunca le llega el listener
hay que moverlo a doDie del L2Playablar
L2Playable*
fissban
@fissban
Jul 22 2015 01:07
ok, no te hagas drama...estara dentro de los fix q haga en mi branch con los eventos.
ya tengo el CTF al 50%
OneVsOne optimizado...y eh realizado arreglos en los demas eventos.
quiero terminar el ctf asi me siento a testearlos
cuentame tu idea para los configs, q quieres crear una especie de ConfigData especifico para cada evento?
Lucas
@luksdlt92
Jul 22 2015 01:09
dsp te cuento
por ahora te dejo esto en lo que estuve trabajando
u3games/L2J_EventEngine@a98126d
como dice el commit, con eso se pueden ejecutar sucesos: en un momento determinado y/o cumpliendo ciertas condiciones dentro del evento
por ejemplo, cuando falten 5 minutos que aparezcan npcs
o que cuando un equipo logre tantos puntos, les de un buff groso a todos los miembros
voy a cenar
fissban
@fissban
Jul 22 2015 01:13
ok
fissban
@fissban
Jul 22 2015 01:26
pueden tener alguna utilidad pero no estoy seguro q tan util sea.....pero bueno veremos cuando lo tengas mas desarrollado
Lucas
@luksdlt92
Jul 22 2015 01:30
cómo pensabas hacer un evento onda lol?
en realidad, la idea de esto no es que lo usemos ya, sino dar más herramientas para customizar eventos
la magia del engine es que tenga eventos funcionales y vos puedas hacer los tuyos, con el mayor nivel de detalle posible
fissban
@fissban
Jul 22 2015 03:49
claro, el desarrollo de los eventos que estoy armando es para ayudar a generar esas herramientas....pero las voy desarrollando a medida q las necesito.
es interesante lo q estas armando y me gustaria verlo en su totalidad
fissban
@fissban
Jul 22 2015 08:44
aun no esta testeado ni muy ordenada, pero la idea mi idea del CTF va tomando color
blob
fuck, salio cualquier cosa xD

/*

  • Copyright (C) 2015-2015 L2J EventEngine
    *
  • This file is part of L2J EventEngine.
    *
  • L2J EventEngine 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.
    *
  • L2J EventEngine 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 net.sf.eventengine.events;

import net.sf.eventengine.EventEngineManager;
import net.sf.eventengine.datatables.ConfigData;
import net.sf.eventengine.enums.EventState;
import net.sf.eventengine.enums.PlayerColorType;
import net.sf.eventengine.handler.AbstractEvent;
import net.sf.eventengine.holder.PlayerHolder;
import net.sf.eventengine.util.EventUtil;

import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.enums.Team;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;

/**

  • @author fissban
    */
    public class CaptureTheFlag extends AbstractEvent
    {
    // Flags
    private static final int BLUE_FLAG = 36601;
    private static final int RED_FLAG = 36602;
    // Holder
    private static final int BLUE_HOLDER = 36603;
    private static final int RED_HOLDER = 36604;
    // FlagItem
    private static final int FLAG_ITEM = 6718;
    // Puntos por conquistar la bandera
    // TODO mover a los configs
    private static final int POINTS_CONQUER_FLAG = 10;
    private static final int POINTS_KILL = 1;

    // Puntos que tiene cada team.
    private static int _pointsRed = 0;
    private static int _pointsBlue = 0;

    public CaptureTheFlag()
    {

     super();
    
     // Definimos los spawns de cada team
     setTeamSpawn(Team.RED, ConfigData.CTF_COORDINATES_TEAM_RED);
     setTeamSpawn(Team.BLUE, ConfigData.CTF_COORDINATES_TEAM_BLUE);

    }

    @Override
    public void runEventState(EventState state)
    {

     switch (state)
     {
         case START:
             prepareToStart(); // Metodo general
             createTeams();
             spawnFlagsAndHolders();
             teleportAllPlayers(200);
             break;
    
         case FIGHT:
             prepareToFight(); // Metodo general
             break;
    
         case END:
             giveRewardsTeams();
             prepareToEnd(); // Metodo general
             break;
     }

    }

    @Override
    public void onInteract(PlayerHolder player, L2Npc npc)
    {

     switch (npc.getId())
     {
         case BLUE_FLAG:
             if (player.getPcInstance().getTeam() == Team.RED)
             {
                 // equipamos la bandera
                 equipFlag(player);
                 // removemos la bandera de su posicion
                 removeNpc(npc);
                 // Anunciamos que se tomo una bandera
                 EventUtil.announceToAllPlayersInEvent(Say2.SCREEN_ANNOUNCE, "El equipo rojo acaba de tomar la bandera");
             }
             break;
    
         case RED_FLAG:
             if (player.getPcInstance().getTeam() == Team.BLUE)
             {
    
                 // equipamos la bandera
                 equipFlag(player);
                 // removemos la bandera de su posicion
                 removeNpc(npc);
                 // Anunciamos que se tomo una bandera
                 EventUtil.announceToAllPlayersInEvent(Say2.SCREEN_ANNOUNCE, "El equipo azul acaba de tomar la bandera");
             }
             break;
    
         case BLUE_HOLDER:
             if (player.getPcInstance().getTeam() == Team.BLUE)
             {
                 if (hasFlag(player))
                 {
                     // incrementamos los puntos
                     _pointsBlue += POINTS_CONQUER_FLAG;
                     // Desequipamos la bandera.
                     unequiFlag(player);
                     // Spawneamos nuevamente la
bueno obviamente no puedo mostrar todo el codigo asique tendran q esperar a q lo suba pero no sera antes de q lo pruebe
U3Games
@u3games
Jul 22 2015 09:28
jejeje descuida
Lucas
@luksdlt92
Jul 22 2015 11:26
jaja bien, siempre se empieza de a poco
fissban
@fissban
Jul 22 2015 18:11
bueno, estuve viendo el tema del listenerOnKill
el problema es q yo lo saque d L2PcInstance y lo movi a L2Character pero los players nunca llegan desde el metodo doDie de L2PcInstance a L2Character
y lo habia metido en este ultimo por el evento survive
asique ahora para q el listenerOnKill contemple cuando matas chars o npc dejare el listener ejecutandose dentro del metodo doDie de L2PcInstance y L2Character
Lucas
@luksdlt92
Jul 22 2015 18:17
mmm no
deberías dejarlo en L2Character y L2Playable
en esos doDie
así podés manejar los summons tmb
@fissban y eso mismo te lo comenté ayer
fissban
@fissban
Jul 22 2015 18:34
osea para saber cuando matan un summon?
claro q se puede hacer, no lo habia pensado porq generalmente al summon siempre se lo excluye de esas acciones pero nunca esta de mas
@luksdlt92 claro claro pero para mi es "ver para creer" :P
por eso sali a hacer mi propio analisis jaja