Jump to content

Event Race L2Jacis


valentin

Recommended Posts

Creditos: Bluur

### Eclipse Workspace Patch 1.0
Index: java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java    (revision 1)
+++ java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java    (working copy)
@@ -62,6 +62,7 @@
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSiege;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSkill;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSpawn;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminStriderRace;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTarget;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTeleport;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminUnblockIp;
@@ -127,6 +128,8 @@
         registerAdminCommandHandler(new AdminTeleport());
         registerAdminCommandHandler(new AdminUnblockIp());
         registerAdminCommandHandler(new AdminZone());
+        //custom
+        registerAdminCommandHandler(new AdminStriderRace());
     }
     
     public void registerAdminCommandHandler(IAdminCommandHandler handler)
Index: java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java
===================================================================
--- java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java    (revision 0)
+++ java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java    (working copy)
@@ -0,0 +1,236 @@
+/*
+ * 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 net.sf.l2j.gameserver.custom.striderrace;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.datatables.MapRegionTable;
+import net.sf.l2j.gameserver.datatables.NpcTable;
+import net.sf.l2j.gameserver.datatables.SpawnTable;
+import net.sf.l2j.gameserver.model.L2Spawn;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
+import net.sf.l2j.gameserver.skills.AbnormalEffect;
+import net.sf.l2j.gameserver.util.Broadcast;
+
+/**
+ * @author Bluur
+ * @version 1.1
+ */
+public class StriderRace
+{
+    private static StriderRace INSTANCE;
+    private StriderRaceState srState = StriderRaceState.DESACTIVED;
+    private List<L2PcInstance> players = new ArrayList<>();
+    
+    private StriderRace(){}
+    
+    public void startEvent()
+    {
+        srState = StriderRaceState.REGISTER;
+        announceEvent("The event started! Commands .joinsr or .leavesr");
+        announceEvent("Registration time: 5 minutes!");
+        sleep(60);
+        announceEvent("[4] minutes to the end of the record!");
+        sleep(60);
+        announceEvent("[3] minutes to the end of the record!");
+        sleep(60);
+        announceEvent("[2] minutes to the end of the record!");
+        sleep(60);
+        announceEvent("[1] minutes to the end of the record!");
+        sleep(60);
+        if (!minPlayers())
+        {
+            abortEvent();
+            return;
+        }    
+        srState = StriderRaceState.WAIT;
+        announceEvent("closed registration! Total number of registered players: "+ players.size());
+        announceEvent("The players will be teleported in 10 seconds!");
+        sleep(10);
+        teleportPlayers();
+        mountPlayer(true);
+        paralizedPlayer(true);
+        announceEvent("The event will start in 15 seconds!");
+        sleep(15);
+        srState = StriderRaceState.ATIVED;
+        announceEvent("The race is on! Go Go Go!");
+        spawnNpc();
+        paralizedPlayer(false);
+        sleep(300); // duração do evento em segundos
+        if (srState == StriderRaceState.ATIVED)
+            finishEvent();
+    }
+    
+    private void paralizedPlayer(boolean value)
+    {
+        if (value)
+        {
+            for (L2PcInstance player : players)
+            {
+                player.setIsParalyzed(true);
+                player.startAbnormalEffect(AbnormalEffect.HOLD_2);
+            }
+        }
+        else
+        {
+            for (L2PcInstance player : players)
+            {
+                player.setIsParalyzed(false);
+                player.stopAbnormalEffect(AbnormalEffect.HOLD_2);
+            }
+        }
+    }
+    
+    private void mountPlayer(boolean value)
+    {
+        if (value)
+        {
+            for (L2PcInstance player : players)
+            {
+                if (player != null)
+                {                
+                    player.getRadar().addMarker(Config.EVENT_SR_LOC_ARRIVAL_X, Config.EVENT_SR_LOC_ARRIVAL_Y, Config.EVENT_SR_LOC_ARRIVAL_Z);
+                    player.mount(12526, 0, false);
+                }
+            }
+        }
+        else
+        {
+            for (L2PcInstance player : players)
+            {
+                if (player != null)
+                {
+                    player.getRadar().removeMarker(Config.EVENT_SR_LOC_ARRIVAL_X, Config.EVENT_SR_LOC_ARRIVAL_Y, Config.EVENT_SR_LOC_ARRIVAL_Z);
+                    player.dismount();                    
+                }
+            }
+        }
+    }
+        
+    private void abortEvent()
+    {
+        srState = StriderRaceState.DESACTIVED;
+        announceEvent("The event was terminated for lack of participants!");
+        players.clear();
+    }
+    
+    public void finishEvent()
+    {
+        srState = StriderRaceState.DESACTIVED;
+        announceEvent("The event duration time is up! Thank all...");
+        teleportPlayersToTown();
+        mountPlayer(false);
+        players.clear();
+    }
+    
+    private static void announceEvent(String sendMessage)
+    {
+        Broadcast.announceToOnlinePlayers("[Strider Race]: " + sendMessage, true);
+    }
+    
+    private void teleportPlayers()
+    {
+        for (L2PcInstance player : players)    
+            player.teleToLocation(Config.EVENT_SR_LOC_PLAYER_X, Config.EVENT_SR_LOC_PLAYER_Y, Config.EVENT_SR_LOC_PLAYER_Z, 60);    
+    }
+    
+    private void teleportPlayersToTown()
+    {
+        for (L2PcInstance player : players)
+            player.teleToLocation(MapRegionTable.TeleportWhereType.Town);
+    }
+        
+    private boolean minPlayers()
+    {
+        if (players.size() < Config.EVENT_SR_MINIMUM_PLAYERS)
+           return false;
+        
+        return true;
+    }
+    
+    public boolean maxPlayers()
+    {        
+        if (players.size() >= Config.EVENT_SR_MAXIMUM_PLAYERS)
+           return false;
+
+        return true;    
+    }
+    
+    public boolean containsPlayer(L2PcInstance player)
+    {
+        return players.contains(player);
+    }
+    
+    public void registerPlayer(L2PcInstance player)
+    {
+        players.add(player);
+    }
+    
+    public void removePlayer(L2PcInstance player)
+    {
+        players.remove(player);
+    }
+
+    private static void spawnNpc()
+    {    
+        NpcTemplate tp = NpcTable.getInstance().getTemplate(Config.EVENT_SR_LOC_ID_NPC);    
+        try
+        {
+            L2Spawn spawn = null;
+        
+            spawn = new L2Spawn(tp);
+            spawn.setLocx(Config.EVENT_SR_LOC_ARRIVAL_X);
+            spawn.setLocy(Config.EVENT_SR_LOC_ARRIVAL_Y);
+            spawn.setLocz(Config.EVENT_SR_LOC_ARRIVAL_Z);
+            spawn.setHeading(0);
+            
+            SpawnTable.getInstance().addNewSpawn(spawn, false);
+            spawn.init();
+            spawn.stopRespawn();
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+        
+    public StriderRaceState getStriderRaceState()
+    {
+        return srState;
+    }
+    
+    private static void sleep(int value)
+    {
+        try
+        {
+            Thread.sleep(1000 * value);
+        }
+        catch (InterruptedException e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    public static StriderRace getInstance()
+    {
+        if (INSTANCE == null)
+            INSTANCE = new StriderRace();
+        
+        return INSTANCE;
+    }
+}
Index: java/net/sf/l2j/gameserver/network/clientpackets/Logout.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/Logout.java    (revision 1)
+++ java/net/sf/l2j/gameserver/network/clientpackets/Logout.java    (working copy)
@@ -15,6 +15,8 @@
 package net.sf.l2j.gameserver.network.clientpackets;
 
 import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
 import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival;
 import net.sf.l2j.gameserver.model.L2Party;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
@@ -44,6 +46,16 @@
             return;
         }
         
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED)
+        {
+            if (StriderRace.getInstance().containsPlayer(player))
+            {
+                player.sendMessage("[Strider Race]: You can't logout in strider race!");
+                player.sendPacket(ActionFailed.STATIC_PACKET);
+                return;
+            }
+        }
+        
         if (player.isLocked())
         {
             if (Config.DEBUG)
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 1)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (working copy)
@@ -50,6 +50,8 @@
 import net.sf.l2j.gameserver.ai.NextAction.NextActionCallback;
 import net.sf.l2j.gameserver.communitybbs.BB.Forum;
 import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
 import net.sf.l2j.gameserver.datatables.AccessLevels;
 import net.sf.l2j.gameserver.datatables.CharNameTable;
 import net.sf.l2j.gameserver.datatables.CharTemplateTable;
@@ -5012,6 +5014,16 @@
     {
         sendPacket(new SetupGauge(3, 0, 0));
         int petId = _mountNpcId;
+        
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED)
+        {
+            if (petId == 12526 && StriderRace.getInstance().containsPlayer(this))
+            {
+                sendMessage("[Strider Race]: You can't unmount in strider race!");
+                return false;
+            }
+        }
+        
         if (setMount(0, 0, 0))
         {
             stopFeed();
Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java    (revision 1)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java    (working copy)
@@ -15,6 +15,8 @@
 package net.sf.l2j.gameserver.model.actor.stat;
 
 import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
 import net.sf.l2j.gameserver.datatables.NpcTable;
 import net.sf.l2j.gameserver.datatables.PetDataTable;
 import net.sf.l2j.gameserver.model.actor.L2Character;
@@ -334,6 +336,9 @@
         if (penalty > 0)
             val *= Math.pow(0.84, penalty);
         
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED && StriderRace.getInstance().containsPlayer(getActiveChar()))        
+            val *= Config.EVENT_SR_SPEED;
+        
         return val;
     }
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java    (revision 1)
+++ java/net/sf/l2j/Config.java    (working copy)
@@ -226,6 +226,20 @@
     public static int ALT_FISH_CHAMPIONSHIP_REWARD_4;
     public static int ALT_FISH_CHAMPIONSHIP_REWARD_5;
     
+    /** Strider Race */
+    public static int EVENT_SR_MINIMUM_PLAYERS;
+    public static int EVENT_SR_MAXIMUM_PLAYERS;
+    public static int[][] EVENT_SR_REWARD_TOP1;
+    public static int[][] EVENT_SR_REWARD_TOP2;
+    public static int[][] EVENT_SR_REWARD_TOP3;
+    public static double EVENT_SR_SPEED;
+    public static int EVENT_SR_REWARD_COUNT;
+    public static int EVENT_SR_LOC_ARRIVAL_X;
+    public static int EVENT_SR_LOC_ARRIVAL_Y;
+    public static int EVENT_SR_LOC_ARRIVAL_Z;
+    public static int EVENT_SR_LOC_PLAYER_X;
+    public static int EVENT_SR_LOC_PLAYER_Y;
+    public static int EVENT_SR_LOC_PLAYER_Z;
+    public static int EVENT_SR_LOC_ID_NPC;
+    
     // --------------------------------------------------
     // HexID
     // --------------------------------------------------
@@ -879,6 +893,18 @@
             ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000);
             ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000);
             
+            EVENT_SR_LOC_ID_NPC = events.getProperty("EventSRnpcID", 10);
+            EVENT_SR_MINIMUM_PLAYERS = events.getProperty("EventSRminimumPlayers", 2);
+            EVENT_SR_MAXIMUM_PLAYERS = events.getProperty("EventSRmaximumPlayers", 2);
+            EVENT_SR_REWARD_TOP1 = parseItemsList(events.getProperty("EventSRrewardsTop1", "57,300"));
+            EVENT_SR_REWARD_TOP2 = parseItemsList(events.getProperty("EventSRrewardsTop2", "57,200"));
+            EVENT_SR_REWARD_TOP3 = parseItemsList(events.getProperty("EventSRrewardsTop3", "57,100"));
+            EVENT_SR_SPEED = events.getProperty("EventSRspeedBoost", 1.0);
+            EVENT_SR_LOC_PLAYER_X = events.getProperty("EventSRlocPlayerX", 0);
+            EVENT_SR_LOC_PLAYER_Y = events.getProperty("EventSRlocPlayerY", 0);
+            EVENT_SR_LOC_PLAYER_Z = events.getProperty("EventSRlocPlayerZ", 0);
+            EVENT_SR_LOC_ARRIVAL_X = events.getProperty("EventSRlocArrivalX", 0);
+            EVENT_SR_LOC_ARRIVAL_Y = events.getProperty("EventSRlocArrivalY", 0);
+            EVENT_SR_LOC_ARRIVAL_Z = events.getProperty("EventSRlocArrivalZ", 0);
Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java    (revision 0)
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java    (working copy)
@@ -0,0 +1,60 @@
+/*
+ * 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 net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import net.sf.l2j.gameserver.ThreadPoolManager;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author Bluur
+ *
+ */
+public class AdminStriderRace implements IAdminCommandHandler
+{
+    private static final String[] ADMIN_COMMANDS = {"admin_startsr"};
+
+    @Override
+    public boolean useAdminCommand(String command, L2PcInstance activeChar)
+    {
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.DESACTIVED)        
+            initEvent();        
+        else
+            activeChar.sendMessage("[Strider Race]: The event this already in progress!");
+    
+        return true;
+    }
+
+    private static void initEvent()
+    {
+        ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()            
+        {               
+            @Override                    
+            public void run()                    
+            {                        
+                StriderRace.getInstance().startEvent();      
+            }
+         
+        }, 1);
+    }
+    
+    @Override
+    public String[] getAdminCommandList()
+    {
+        return ADMIN_COMMANDS;
+    }
+}
Index: java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java
===================================================================
--- java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java    (revision 0)
+++ java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java    (working copy)
@@ -0,0 +1,27 @@
+/*
+ * 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 net.sf.l2j.gameserver.custom.striderrace;
+
+/**
+ * @author Bluur
+ *
+ */
+public enum StriderRaceState
+{
+    DESACTIVED,
+    REGISTER,
+    WAIT,
+    ATIVED;
+}
Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java    (revision 1)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java    (working copy)
@@ -15,6 +15,8 @@
 package net.sf.l2j.gameserver.network.clientpackets;
 
 import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
 import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival;
 import net.sf.l2j.gameserver.model.L2Party;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
@@ -47,6 +49,16 @@
             return;
         }
         
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED)
+        {
+            if (StriderRace.getInstance().containsPlayer(player))
+            {
+                player.sendMessage("[Strider Race]: You can't restart in strider race!");
+                sendPacket(RestartResponse.valueOf(false));
+                return;
+            }
+        }
+        
         if (player.isLocked())
         {
             sendPacket(RestartResponse.valueOf(false));
Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java    (revision 0)
+++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java    (working copy)
@@ -0,0 +1,83 @@
+/*
+ * 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 net.sf.l2j.gameserver.handler.voicedcommandhandlers;
+
+import net.sf.l2j.gameserver.custom.striderrace.StriderRace;
+import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState;
+import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author Bluur
+ */
+public class RegStriderRace implements IVoicedCommandHandler
+{
+    private static final String[] voiced_commands =
+    {
+        "joinsr",
+        "leavesr"
+    };
+    
+    @Override
+    public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
+    {
+        if (command.equals("joinsr"))
+        {
+            if (register(activeChar))
+            {
+                StriderRace.getInstance().registerPlayer(activeChar);
+                activeChar.sendMessage("[Strider Race]: You have been successfully registered!");
+            }
+        }
+        else if (command.equals("leavesr"))
+        {
+            remove(activeChar);
+        }
+        return true;
+    }
+    
+    private static boolean register(L2PcInstance p)
+    {
+        if (!StriderRace.getInstance().maxPlayers())
+        {
+            p.sendMessage("[Strider Race]: Limit of players was reached.");
+            return false;
+        }
+        else if (StriderRace.getInstance().getStriderRaceState() != StriderRaceState.REGISTER || p.getKarma() > 0 || p.isInCombat() || p.isInOlympiadMode() || p.inObserverMode() || StriderRace.getInstance().containsPlayer(p))
+        {
+            p.sendMessage("[Strider Race]: conditions for registration are inappropriate !!!");
+            return false;
+        }
+        
+        return true;
+    }
+    
+    private static boolean remove(L2PcInstance p)
+    {
+        if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.REGISTER && StriderRace.getInstance().containsPlayer(p))
+        {
+            StriderRace.getInstance().removePlayer(p);
+            p.sendMessage("[Strider Race]: you have been successfully removed!");
+        }
+        
+        return true;
+    }
+    
+    @Override
+    public String[] getVoicedCommandList()
+    {
+        return voiced_commands;
+    }
+}
Index: java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java    (revision 0)
+++ java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java    (working copy)

import java.util.Map;

+import net.sf.l2j.gameserver.handler.voicedcommandhandlers.RegStriderRace;

    protected VoicedCommandHandler()
    {
+        registerVoicedCommandHandler(new RegStriderRace());

\ No newline at end of file
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java    (revision 0)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java    (working copy)
@@ -0,0 +1,102 @@
+/*
+ * 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 net.sf.l2j.gameserver.model.actor.instance;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.ai.CtrlIntention;
+import net.sf.l2j.gameserver.datatables.MapRegionTable;
+import net.sf.l2j.gameserver.datatables.SpawnTable;
+import net.sf.l2j.gameserver.model.L2Object;
+import net.sf.l2j.gameserver.model.L2Spawn;
+import net.sf.l2j.gameserver.model.actor.L2Npc;
+import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
+import net.sf.l2j.gameserver.model.striderrace.StriderRace;
+import net.sf.l2j.gameserver.model.striderrace.StriderRaceState;
+import net.sf.l2j.gameserver.util.Broadcast;
+
+public class L2StriderRaceEventInstance extends L2NpcInstance
+{
+    public L2StriderRaceEventInstance(int objectId, NpcTemplate template)
+    {
+        super(objectId, template);
+    }
+    
+    private static int rankPlayer = 0;
+    
+    @Override
+    public void onAction(L2PcInstance player)
+    {
+        if (player.getTarget() != this)
+            player.setTarget(this);
+        else
+        {
+            if (!canInteract(player))
+                player.getAI().setIntention(CtrlIntention.INTERACT, this);
+            else
+            {
+                if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED && StriderRace.getInstance().containsPlayer(player))
+                {
+                    if (rankPlayer < 2)
+                    {
+                        rankPlayer++;
+                        Broadcast.announceToOnlinePlayers("[Strider Race]: [" + rankPlayer + "] to arrive was -> " + player.getName(), true);
+                        rewardPlayer(player);
+                        StriderRace.getInstance().removePlayer(player);
+                        player.teleToLocation(MapRegionTable.TeleportWhereType.Town);
+                        player.dismount();                        
+                        return;
+                    }
+                    rankPlayer += 1;
+                    Broadcast.announceToOnlinePlayers("[Strider Race]: [3] to arrive was -> " + player.getName(), true);
+                    rewardPlayer(player);
+                    StriderRace.getInstance().finishEvent();
+                    rankPlayer = 0;
+                    
+                    L2Object obj = player.getTarget();
+                    if (obj != null && obj instanceof L2Npc)
+                    {
+                        L2Npc target = (L2Npc) obj;
+                        target.deleteMe();
+                        
+                        L2Spawn spawn = target.getSpawn();
+                        if (spawn != null)
+                        {
+                            spawn.stopRespawn();
+                            SpawnTable.getInstance().deleteSpawn(spawn, true);
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+    private static void rewardPlayer(L2PcInstance player)
+    {
+        switch (rankPlayer)
+        {
+            case 1:
+                for (int[] item : Config.EVENT_SR_REWARD_TOP1)
+                    player.addItem("", item[0], item[1], player, true);
+                break;
+            case 2:
+                for (int[] item : Config.EVENT_SR_REWARD_TOP2)
+                    player.addItem("", item[0], item[1], player, true);
+                break;
+            default:
+                for (int[] item : Config.EVENT_SR_REWARD_TOP3)
+                    player.addItem("", item[0], item[1], player, true);
+        }
+    }
+}

Index: config/events.properties
===================================================================
--- config/events.properties    (revision 1)
+++ config/events.properties    (working copy)
gameserver/data/xml/admin_commands_rights.xml

+ <aCar name="admin_startsr" accessLevel="1" />
 
gameserver/data/xml/npcs
 
    <npc id="9106" idTemplate="35062" name="Strider Race Event" title="[ARRIVAL HERE]">
        <set name="level" val="75"/>
        <set name="radius" val="10"/>
        <set name="height" val="80"/>
        <set name="rHand" val="0"/>
        <set name="lHand" val="0"/>
        <set name="type" val="L2StriderRaceEvent"/>
        <set name="exp" val="0"/>
        <set name="sp" val="10"/>
        <set name="hp" val="2676.65854"/>
        <set name="mp" val="1507.8"/>
        <set name="hpRegen" val="8.5"/>
        <set name="mpRegen" val="3"/>
        <set name="pAtk" val="794.70901"/>
        <set name="pDef" val="319.24623"/>
        <set name="mAtk" val="542.68324"/>
        <set name="mDef" val="233.61053"/>
        <set name="crit" val="4"/>
        <set name="atkSpd" val="253"/>
        <set name="str" val="40"/>
        <set name="int" val="21"/>
        <set name="dex" val="30"/>
        <set name="wit" val="20"/>
        <set name="con" val="43"/>
        <set name="men" val="20"/>
        <set name="corpseTime" val="7"/>
        <set name="walkSpd" val="50"/>
        <set name="runSpd" val="120"/>
        <set name="dropHerbGroup" val="0"/>
        <set name="attackRange" val="40"/>
        <ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" clan="door_clan;dion_siege_clan" clanRange="600" canMove="false" seedable="false"/>
        <skills>
            <skill id="4045" level="1"/>
            <skill id="4416" level="19"/>
        </skills>
    </npc>
Broadcast.announceToOnlinePlayers("[Strider Race]: The event ends with the winner -> " +player.getName(), true);
                                     Broadcast.announceToOnlinePlayers("[Strider Race]: " + sendMessage, true);
Edited by valentin
Link to comment
Share on other sites

Someone delete those topics and ban the user for copy paste ... really nothing personal but he just copy paste old topics and claim.. without even give credits

Link to comment
Share on other sites

well I didn't see strider race for aCis su high give, UPTOP :D ty dude

i hope you're just trolling :P this even is more old and more shared than Xdem's bad comment

Link to comment
Share on other sites

i didnt notice that he made like 10 topics  in row, i withdraw the stuff i said, shame on u dude. 

back on topic: does it work on acis 330-340? :D

afcourse it does just need 1-2 adjustments.

PS SweetS its the best <3

Link to comment
Share on other sites

sleep(60);  :happyforever:

Yeah, and

 

ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
{
  @Override
  public void run()
  {
    StriderRace.getInstance().startEvent();
  }
}, 1);

 

10/10

 

OP made my year

Edited by _dev_
Link to comment
Share on other sites

admit it the sleep(60) is epic.. come on admit it 

nobody would ever think this

See what i would love is you sharing this code refactored by you. Then we're talking :)

Link to comment
Share on other sites

See what i would love is you sharing this code refactored by you. Then we're talking :)

No my fear elfo, if you want see good codes pm me and we speak with images im not going to waste not even 1 minute of my life to sit and remake a code just to prove you.

What you think i am bot?

Link to comment
Share on other sites

No my fear elfo, if you want see good codes pm me and we speak with images im not going to waste not even 1 minute of my life to sit and remake a code just to prove you.

What you think i am bot?

Go for it then, send some pictures. Cuz all your posts and insults and all your topics are stupid noob questions so something is wrong here.

Link to comment
Share on other sites

Go for it then, send some pictures. Cuz all your posts and insults and all your topics are stupid noob questions so something is wrong here.

Yeap i learned and about my post was a question that is not that simple smart-ass

about my insults afcourse ill be mean to people who ask the same over and over or re-post 10 times in row copy paste topics..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • New Webite and Update have been released: https://somikpatch.com/Updates   All upcoming updates and infromation will be posted on the website.
    • POWERFUL BLACK MAGIC LOVE SPELL CASTERS SPIRITUAL VOODOO SPELLS CASTER uk usa ,Italy, JaMAICA South Africa,UK,USA Gauteng, Germiston, Glenanda, Sandton, Soweto, Tembisa, Heidelberg, Jeffreys Bay, Johannesburg RANDBURG Virginia Indiana Kentucky Missouri Georgia North Carolina Kentucky Ohio Alabama Nevada Oklahoma Colorado New Mexico Minnesota Louisiana Kansas Colorado North Carolina Michigan Oregon South Carolina Nebraska Arkansas Florida Utah Mississippi Indiana Arizona South Carolina Texas California Louisiana New Mexico Oklahoma Washington Missouri Maryland Iowa Idaho Maine +27630699577 DEATH SPELL / REVENGE SPELLS CASTER IN U.S.A U.K, SWITZERLAND,AMERICA,ENGLAND, CANADA. INSTANT DEATH SPELLS TO KILL ENEMIES ,Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Australia, USA, UK, Canada, Mauritius. Bring Back Lost Love Spell Caster in Tasmania Victoria West Norway Hull London Powerful Spiritual Traditional Herbalist Healer experienced in Ancestral healing and spell casting, Astrologers, African Medicines, Ritualism, Herbalist healers, Spiritual healers, Native healer, Philosophy, Traditional healers, Herbal remedies, holistic healing based in Johannesburg, Pretoria Sandton, Midrand, Centurion, South Africa. Dubai – Dubai, Abu Dhabi-AbuDhabi, Sharjah-Sharjah, Al Ain-Abu Dhabi, Ajman-Ajman, Al Gharbia-Abu Dhabi, Ras Al Khaimah-Ras al Khaimah, Fujairah-Fujairah, Dibba-Fujairah, Um AlQuwain-Um Al Quwain New York -New York, Los Angeles California, Phoenix Arizona Chicago Illinois, Houston-Texas – Philadelphia Pennsylvania -San Antonio Texas -San Diego, Ecuador, Egypt, Eritrea, Estonia, Ethiopia, Finland, Fiji, France, Gabon, Gambia, Georgia, south Australia. Black magic lottery spells caster in Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras Approved Lottery and Money spells that work fast in Netherlands, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Honduras Most Powerful Spell Caster in the world, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan Psychic Lottery Spells in Canada, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan +27630699577 Same day Lottery Spells and Money Spells in Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq , Ethiopia, Fiji, Finland, France, Gabon, Gambia, The Georgia, Germany, Mauritius, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti Love Spells To Make Him Or Her Come Back Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia Bring Back Lost Love Spells 24 Hours Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia 100% Black magic Spells | Stop Divorce spell in Kansas, Colombia, Greater Poland, Ireland, Vienna, Salzburg, Syria. Candle Love Spells That Work Fast Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia World Love Spells Casters In South Africa, Iran, Iraq, Ireland, Israel, Italy, Jamaica , Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea, North, South, Kosovo, Kuwait. Best Love Spells In Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea. +27630699577 Most Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Singapore, Norway, Ecuador, France, Greece, Honduras, Ireland, Hungary, Iceland, Italy, Israel, Poland, Jordan, Colombia, Luxembourg, Switzerland, United Arab Emirates, Brunei, San Marino, Denmark, Netherlands, Malta, Spain, Cyprus, Slovenia, Lithuania, Malaysia, Estonia , Croatia, Belgium, Austria, Germany, Australia, Sweden, New Zealand, Canada, Indonesia, Seychelles, Bahamas, Panama, Finland, England, London, Namibia, Wales, Scotland Call or whatsapp : Baba Joseph Whatsapp; +27630699577 Email; babajoseph467@gmail.com
    • POWERFUL BLACK MAGIC LOVE SPELL CASTERS SPIRITUAL VOODOO SPELLS CASTER uk usa ,Italy, JaMAICA South Africa,UK,USA Gauteng, Germiston, Glenanda, Sandton, Soweto, Tembisa, Heidelberg, Jeffreys Bay, Johannesburg RANDBURG Virginia Indiana Kentucky Missouri Georgia North Carolina Kentucky Ohio Alabama Nevada Oklahoma Colorado New Mexico Minnesota Louisiana Kansas Colorado North Carolina Michigan Oregon South Carolina Nebraska Arkansas Florida Utah Mississippi Indiana Arizona South Carolina Texas California Louisiana New Mexico Oklahoma Washington Missouri Maryland Iowa Idaho Maine +27630699577 DEATH SPELL / REVENGE SPELLS CASTER IN U.S.A U.K, SWITZERLAND,AMERICA,ENGLAND, CANADA. INSTANT DEATH SPELLS TO KILL ENEMIES ,Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Australia, USA, UK, Canada, Mauritius. Bring Back Lost Love Spell Caster in Tasmania Victoria West Norway Hull London Powerful Spiritual Traditional Herbalist Healer experienced in Ancestral healing and spell casting, Astrologers, African Medicines, Ritualism, Herbalist healers, Spiritual healers, Native healer, Philosophy, Traditional healers, Herbal remedies, holistic healing based in Johannesburg, Pretoria Sandton, Midrand, Centurion, South Africa. Dubai – Dubai, Abu Dhabi-AbuDhabi, Sharjah-Sharjah, Al Ain-Abu Dhabi, Ajman-Ajman, Al Gharbia-Abu Dhabi, Ras Al Khaimah-Ras al Khaimah, Fujairah-Fujairah, Dibba-Fujairah, Um AlQuwain-Um Al Quwain New York -New York, Los Angeles California, Phoenix Arizona Chicago Illinois, Houston-Texas – Philadelphia Pennsylvania -San Antonio Texas -San Diego, Ecuador, Egypt, Eritrea, Estonia, Ethiopia, Finland, Fiji, France, Gabon, Gambia, Georgia, south Australia. Black magic lottery spells caster in Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras Approved Lottery and Money spells that work fast in Netherlands, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Honduras Most Powerful Spell Caster in the world, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan Psychic Lottery Spells in Canada, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan +27630699577 Same day Lottery Spells and Money Spells in Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq , Ethiopia, Fiji, Finland, France, Gabon, Gambia, The Georgia, Germany, Mauritius, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti Love Spells To Make Him Or Her Come Back Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia Bring Back Lost Love Spells 24 Hours Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia 100% Black magic Spells | Stop Divorce spell in Kansas, Colombia, Greater Poland, Ireland, Vienna, Salzburg, Syria. Candle Love Spells That Work Fast Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia World Love Spells Casters In South Africa, Iran, Iraq, Ireland, Israel, Italy, Jamaica , Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea, North, South, Kosovo, Kuwait. Best Love Spells In Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea. +27630699577 Most Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Singapore, Norway, Ecuador, France, Greece, Honduras, Ireland, Hungary, Iceland, Italy, Israel, Poland, Jordan, Colombia, Luxembourg, Switzerland, United Arab Emirates, Brunei, San Marino, Denmark, Netherlands, Malta, Spain, Cyprus, Slovenia, Lithuania, Malaysia, Estonia , Croatia, Belgium, Austria, Germany, Australia, Sweden, New Zealand, Canada, Indonesia, Seychelles, Bahamas, Panama, Finland, England, London, Namibia, Wales, Scotland Call or whatsapp : Baba Joseph Whatsapp; +27630699577 Email; babajoseph467@gmail.com
    • POWERFUL BLACK MAGIC LOVE SPELL CASTERS SPIRITUAL VOODOO SPELLS CASTER uk usa ,Italy, JaMAICA South Africa,UK,USA Gauteng, Germiston, Glenanda, Sandton, Soweto, Tembisa, Heidelberg, Jeffreys Bay, Johannesburg RANDBURG Virginia Indiana Kentucky Missouri Georgia North Carolina Kentucky Ohio Alabama Nevada Oklahoma Colorado New Mexico Minnesota Louisiana Kansas Colorado North Carolina Michigan Oregon South Carolina Nebraska Arkansas Florida Utah Mississippi Indiana Arizona South Carolina Texas California Louisiana New Mexico Oklahoma Washington Missouri Maryland Iowa Idaho Maine +27630699577 DEATH SPELL / REVENGE SPELLS CASTER IN U.S.A U.K, SWITZERLAND,AMERICA,ENGLAND, CANADA. INSTANT DEATH SPELLS TO KILL ENEMIES ,Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Australia, USA, UK, Canada, Mauritius. Bring Back Lost Love Spell Caster in Tasmania Victoria West Norway Hull London Powerful Spiritual Traditional Herbalist Healer experienced in Ancestral healing and spell casting, Astrologers, African Medicines, Ritualism, Herbalist healers, Spiritual healers, Native healer, Philosophy, Traditional healers, Herbal remedies, holistic healing based in Johannesburg, Pretoria Sandton, Midrand, Centurion, South Africa. Dubai – Dubai, Abu Dhabi-AbuDhabi, Sharjah-Sharjah, Al Ain-Abu Dhabi, Ajman-Ajman, Al Gharbia-Abu Dhabi, Ras Al Khaimah-Ras al Khaimah, Fujairah-Fujairah, Dibba-Fujairah, Um AlQuwain-Um Al Quwain New York -New York, Los Angeles California, Phoenix Arizona Chicago Illinois, Houston-Texas – Philadelphia Pennsylvania -San Antonio Texas -San Diego, Ecuador, Egypt, Eritrea, Estonia, Ethiopia, Finland, Fiji, France, Gabon, Gambia, Georgia, south Australia. Black magic lottery spells caster in Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras Approved Lottery and Money spells that work fast in Netherlands, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Honduras Most Powerful Spell Caster in the world, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan Psychic Lottery Spells in Canada, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan +27630699577 Same day Lottery Spells and Money Spells in Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq , Ethiopia, Fiji, Finland, France, Gabon, Gambia, The Georgia, Germany, Mauritius, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti Love Spells To Make Him Or Her Come Back Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia Bring Back Lost Love Spells 24 Hours Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia 100% Black magic Spells | Stop Divorce spell in Kansas, Colombia, Greater Poland, Ireland, Vienna, Salzburg, Syria. Candle Love Spells That Work Fast Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia World Love Spells Casters In South Africa, Iran, Iraq, Ireland, Israel, Italy, Jamaica , Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea, North, South, Kosovo, Kuwait. Best Love Spells In Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea. +27630699577 Most Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Singapore, Norway, Ecuador, France, Greece, Honduras, Ireland, Hungary, Iceland, Italy, Israel, Poland, Jordan, Colombia, Luxembourg, Switzerland, United Arab Emirates, Brunei, San Marino, Denmark, Netherlands, Malta, Spain, Cyprus, Slovenia, Lithuania, Malaysia, Estonia , Croatia, Belgium, Austria, Germany, Australia, Sweden, New Zealand, Canada, Indonesia, Seychelles, Bahamas, Panama, Finland, England, London, Namibia, Wales, Scotland Call or whatsapp : Baba Joseph Whatsapp; +27630699577 Email; babajoseph467@gmail.com
    • POWERFUL BLACK MAGIC LOVE SPELL CASTERS SPIRITUAL VOODOO SPELLS CASTER uk usa ,Italy, JaMAICA South Africa,UK,USA Gauteng, Germiston, Glenanda, Sandton, Soweto, Tembisa, Heidelberg, Jeffreys Bay, Johannesburg RANDBURG Virginia Indiana Kentucky Missouri Georgia North Carolina Kentucky Ohio Alabama Nevada Oklahoma Colorado New Mexico Minnesota Louisiana Kansas Colorado North Carolina Michigan Oregon South Carolina Nebraska Arkansas Florida Utah Mississippi Indiana Arizona South Carolina Texas California Louisiana New Mexico Oklahoma Washington Missouri Maryland Iowa Idaho Maine +27630699577 DEATH SPELL / REVENGE SPELLS CASTER IN U.S.A U.K, SWITZERLAND,AMERICA,ENGLAND, CANADA. INSTANT DEATH SPELLS TO KILL ENEMIES ,Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Australia, USA, UK, Canada, Mauritius. Bring Back Lost Love Spell Caster in Tasmania Victoria West Norway Hull London Powerful Spiritual Traditional Herbalist Healer experienced in Ancestral healing and spell casting, Astrologers, African Medicines, Ritualism, Herbalist healers, Spiritual healers, Native healer, Philosophy, Traditional healers, Herbal remedies, holistic healing based in Johannesburg, Pretoria Sandton, Midrand, Centurion, South Africa. Dubai – Dubai, Abu Dhabi-AbuDhabi, Sharjah-Sharjah, Al Ain-Abu Dhabi, Ajman-Ajman, Al Gharbia-Abu Dhabi, Ras Al Khaimah-Ras al Khaimah, Fujairah-Fujairah, Dibba-Fujairah, Um AlQuwain-Um Al Quwain New York -New York, Los Angeles California, Phoenix Arizona Chicago Illinois, Houston-Texas – Philadelphia Pennsylvania -San Antonio Texas -San Diego, Ecuador, Egypt, Eritrea, Estonia, Ethiopia, Finland, Fiji, France, Gabon, Gambia, Georgia, south Australia. Black magic lottery spells caster in Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras Approved Lottery and Money spells that work fast in Netherlands, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Honduras Most Powerful Spell Caster in the world, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan Psychic Lottery Spells in Canada, Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan +27630699577 Same day Lottery Spells and Money Spells in Hong, Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq , Ethiopia, Fiji, Finland, France, Gabon, Gambia, The Georgia, Germany, Mauritius, Greece, Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti Love Spells To Make Him Or Her Come Back Grenada, Guatemala, Guinea, Guinea- Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia Bring Back Lost Love Spells 24 Hours Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia 100% Black magic Spells | Stop Divorce spell in Kansas, Colombia, Greater Poland, Ireland, Vienna, Salzburg, Syria. Candle Love Spells That Work Fast Grenada, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Holy See, Honduras, Hong Kong, Hungary, Iceland, Indonesia World Love Spells Casters In South Africa, Iran, Iraq, Ireland, Israel, Italy, Jamaica , Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea, North, South, Kosovo, Kuwait. Best Love Spells In Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya, Kiribati, Korea. +27630699577 Most Effective True Love Spells Caster, Bring Back Lost Love Spells, Voodoo Spells Caster To Stop Cheating, Black Magic Spell Caster, Death & Revenge Spells In Singapore, Norway, Ecuador, France, Greece, Honduras, Ireland, Hungary, Iceland, Italy, Israel, Poland, Jordan, Colombia, Luxembourg, Switzerland, United Arab Emirates, Brunei, San Marino, Denmark, Netherlands, Malta, Spain, Cyprus, Slovenia, Lithuania, Malaysia, Estonia , Croatia, Belgium, Austria, Germany, Australia, Sweden, New Zealand, Canada, Indonesia, Seychelles, Bahamas, Panama, Finland, England, London, Namibia, Wales, Scotland Call or whatsapp : Baba Joseph Whatsapp; +27630699577 Email; babajoseph467@gmail.com
  • Topics

×
×
  • Create New...