Jump to content
  • 0

Change Beleth Script


Question

Posted

hi i want to change the beleth script so you dont have to be in a command channel to enter, how can i make this code to where you only have to have x amount of people to enter, i set the configs to min players 1 but when i try to enter is says " A leader who can create a command channel of 36 or more should initiate the conversation " Thanks

 

/*

* 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 teleports.SteelCitadelTeleport;

 

import com.l2jserver.Config;

import com.l2jserver.gameserver.instancemanager.GrandBossManager;

import com.l2jserver.gameserver.instancemanager.ZoneManager;

import com.l2jserver.gameserver.model.L2CommandChannel;

import com.l2jserver.gameserver.model.L2Party;

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.gameserver.model.zone.type.L2BossZone;

 

/**

* @author GKR

*/

public class SteelCitadelTeleport extends Quest

{

private static final int BELETH = 29118;

private static final int NAIA_CUBE = 32376;

 

public SteelCitadelTeleport(int questId, String name, String descr)

{

super(questId, name, descr);

 

addStartNpc(NAIA_CUBE);

addTalkId(NAIA_CUBE);

}

 

@Override

public String onTalk(L2Npc npc, L2PcInstance player)

{

switch (npc.getNpcId())

{

case NAIA_CUBE:

if (GrandBossManager.getInstance().getBossStatus(BELETH) == 3)

{

return "32376-02.htm";

}

 

final L2CommandChannel channel = player.getParty() == null ? null : player.getParty().getCommandChannel();

 

if ((channel == null) || (channel.getLeader().getObjectId() != player.getObjectId()) || (channel.getMemberCount() < Config.BELETH_MIN_PLAYERS))

{

return "32376-02a.htm";

}

 

if (GrandBossManager.getInstance().getBossStatus(BELETH) > 0)

{

return "32376-03.htm";

}

 

final L2BossZone zone = (L2BossZone) ZoneManager.getInstance().getZoneById(12018);

if (zone != null)

{

GrandBossManager.getInstance().setBossStatus(BELETH, 1);

 

for (L2Party party : channel.getPartys())

{

if (party == null)

{

continue;

}

 

for (L2PcInstance pl : party.getMembers())

{

if (pl.isInsideRadius(npc.getX(), npc.getY(), npc.getZ(), 3000, true, false))

{

zone.allowPlayerEntry(pl, 30);

pl.teleToLocation(16342, 209557, -9352, true);

}

}

}

}

}

return null;

}

 

public static void main(String[] args)

{

new SteelCitadelTeleport(-1, "SteelCitadelTeleport", "teleports");

}

}

10 answers to this question

Recommended Posts

  • 0
Posted

try

/*
* 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 teleports.SteelCitadelTeleport;

import com.l2jserver.Config;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2CommandChannel;
import com.l2jserver.gameserver.model.L2Party;
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.gameserver.model.zone.type.L2BossZone;

/**
* @author GKR
*/
public class SteelCitadelTeleport extends Quest
{
   private static final int BELETH = 29118;
   private static final int NAIA_CUBE = 32376;
   
   public SteelCitadelTeleport(int questId, String name, String descr)
   {
      super(questId, name, descr);
      
      addStartNpc(NAIA_CUBE);
      addTalkId(NAIA_CUBE);
   }
   
   @Override
   public String onTalk(L2Npc npc, L2PcInstance player)
   {
      switch (npc.getNpcId())
      {
         case NAIA_CUBE:
            if (GrandBossManager.getInstance().getBossStatus(BELETH) == 3)
            {
               return "32376-02.htm";
            }
            
            final L2CommandChannel channel = player.getParty() == null ? null : player.getParty().getCommandChannel();
            
            if ((channel != null && channel.getMemberCount() < Config.BELETH_MIN_PLAYERS) || (channel == null && player.getParty() != null && player.getParty().getPartyMembersCount() < Config.BELETH_MIN_PLAYERS) || (channel == null && player.getParty() == null))
            {
               return "32376-02a.htm";
            }


            if (GrandBossManager.getInstance().getBossStatus(BELETH) > 0)
            {
               return "32376-03.htm";
            }
            
            final L2BossZone zone = (L2BossZone) ZoneManager.getInstance().getZoneById(12018);
            if (zone != null)
            {
               GrandBossManager.getInstance().setBossStatus(BELETH, 1);
               
               for (L2Party party : channel.getPartys())
               {
                  if (party == null)
                  {
                     continue;
                  }
                  
                  for (L2PcInstance pl : party.getMembers())
                  {
                     if (pl.isInsideRadius(npc.getX(), npc.getY(), npc.getZ(), 3000, true, false))
                     {
                        zone.allowPlayerEntry(pl, 30);
                        pl.teleToLocation(16342, 209557, -9352, true);
                     }
                  }
               }
            }
      }
      return null;
   }
   
   public static void main(String[] args)
   {
      new SteelCitadelTeleport(-1, "SteelCitadelTeleport", "teleports");
   }
}

  • 0
Posted

I did with notepad... GoD... edit it with eclipse and change it if I put a method wrong...

Maybe it's getMembersCount()... just use eclipse to know it...

  • 0
Posted

Learn to read and drop that

 

            final L2CommandChannel channel = player.getParty() == null ? null : player.getParty().getCommandChannel();
            
            if ((channel == null) || (channel.getLeader().getObjectId() != player.getObjectId()) || (channel.getMemberCount() < Config.BELETH_MIN_PLAYERS))
            {
               return "32376-02a.htm";
            }

+ the import.

  • 0
Posted

Learn to read and drop that

Referring to me or to @author? :o

 

Anyway, only removing it I think it's not doing what he wants:

how can i make this code to where you only have to have x a-beep-t of people to enter,

I think he wants to keep the X minimum number of players to enter, but not necessary to be in a command channel.

  • 0
Posted

Ok so i edit it in eclipse and got the correct method, i dont get any error in game or in console but it still wont teleport me to beleth

 

/*
* 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 teleports.SteelCitadelTeleport;

import com.l2jserver.Config;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2CommandChannel;
import com.l2jserver.gameserver.model.L2Party;
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.gameserver.model.zone.type.L2BossZone;

/**
* @author GKR
*/
public class SteelCitadelTeleport extends Quest
{
   private static final int BELETH = 29118;
   private static final int NAIA_CUBE = 32376;
   
   public SteelCitadelTeleport(int questId, String name, String descr)
   {
      super(questId, name, descr);
      
      addStartNpc(NAIA_CUBE);
      addTalkId(NAIA_CUBE);
   }
   
   @Override
   public String onTalk(L2Npc npc, L2PcInstance player)
   {
      switch (npc.getNpcId())
      {
         case NAIA_CUBE:
            if (GrandBossManager.getInstance().getBossStatus(BELETH) == 3)
            {
               return "32376-02.htm";
            }
            
            final L2CommandChannel channel = player.getParty() == null ? null : player.getParty().getCommandChannel();
            
            if ((channel != null && channel.getMemberCount() < Config.BELETH_MIN_PLAYERS) || (channel == null && player.getParty() != null && player.getParty().getPartyMembersCount() < Config.BELETH_MIN_PLAYERS) || (channel == null && player.getParty() == null))
            {
               return "32376-02a.htm";
            }


            if (GrandBossManager.getInstance().getBossStatus(BELETH) > 0)
            {
               return "32376-03.htm";
            }
            
            final L2BossZone zone = (L2BossZone) ZoneManager.getInstance().getZoneById(12018);
            if (zone != null)
            {
               GrandBossManager.getInstance().setBossStatus(BELETH, 1);
               
               for (L2Party party : channel.getPartys())
               {
                  if (party == null)
                  {
                     continue;
                  }
                  
                  for (L2PcInstance pl : party.getMembers())
                  {
                     if (pl.isInsideRadius(npc.getX(), npc.getY(), npc.getZ(), 3000, true, false))
                     {
                        zone.allowPlayerEntry(pl, 30);
                        pl.teleToLocation(16342, 209557, -9352, true);
                     }
                  }
               }
            }
      }
      return null;
   }
   
   public static void main(String[] args)
   {
      new SteelCitadelTeleport(-1, "SteelCitadelTeleport", "teleports");
   }
}

 

 

I also tried Tryskell method:

 

so it looks like this

 

/*
* 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 teleports.SteelCitadelTeleport;

import com.l2jserver.Config;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Party;
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.gameserver.model.zone.type.L2BossZone;

/**
* @author GKR
*/
public class SteelCitadelTeleport extends Quest
{
   private static final int BELETH = 29118;
   private static final int NAIA_CUBE = 32376;
   
   public SteelCitadelTeleport(int questId, String name, String descr)
   {
      super(questId, name, descr);
      
      addStartNpc(NAIA_CUBE);
      addTalkId(NAIA_CUBE);
   }
   
   @Override
   public String onTalk(L2Npc npc, L2PcInstance player)
   {
      switch (npc.getNpcId())
      {
         case NAIA_CUBE:
            if (GrandBossManager.getInstance().getBossStatus(BELETH) == 3)
            {
               return "32376-02.htm";
            }
            


            if (GrandBossManager.getInstance().getBossStatus(BELETH) > 0)
            {
               return "32376-03.htm";
            }
            
            final L2BossZone zone = (L2BossZone) ZoneManager.getInstance().getZoneById(12018);
            if (zone != null)
            {
               GrandBossManager.getInstance().setBossStatus(BELETH, 1);
               
               for (L2Party party : channel.getPartys())
               {
                  if (party == null)
                  {
                     continue;
                  }
                  
                  for (L2PcInstance pl : party.getMembers())
                  {
                     if (pl.isInsideRadius(npc.getX(), npc.getY(), npc.getZ(), 3000, true, false))
                     {
                        zone.allowPlayerEntry(pl, 30);
                        pl.teleToLocation(16342, 209557, -9352, true);
                     }
                  }
               }
            }
      }
      return null;
   }
   
   public static void main(String[] args)
   {
      new SteelCitadelTeleport(-1, "SteelCitadelTeleport", "teleports");
   }
}

 

 

and i get this

1. ERROR in \SteelCitadelTeleport.java (at line 65)
        for (L2Party party : channel.getPartys())
                             ^^^^^^^
channel cannot be resolved
----------
1 problem (1 error)channel cannot be resolved
Failed executing script: C:\server\game\data\scripts\teleports\SteelCitadelTelep
ort\SteelCitadelTeleport.java. See SteelCitadelTeleport.java.error.log for detai
ls.

 

 

lol so mabey instead of terying to make this work if i just teleport to beleth spawn will he just spawn like he normally would, thanks so much both of you

  • 0
Posted
/*
* 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 teleports.SteelCitadelTeleport;

import com.l2jserver.Config;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Party;
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.gameserver.model.zone.type.L2BossZone;

/**
* @author GKR
*/
public class SteelCitadelTeleport extends Quest
{
   private static final int BELETH = 29118;
   private static final int NAIA_CUBE = 32376;
   
   public SteelCitadelTeleport(int questId, String name, String descr)
   {
      super(questId, name, descr);
      
      addStartNpc(NAIA_CUBE);
      addTalkId(NAIA_CUBE);
   }
   
   @Override
   public String onTalk(L2Npc npc, L2PcInstance player)
   {
      switch (npc.getNpcId())
      {
         case NAIA_CUBE:
            if (GrandBossManager.getInstance().getBossStatus(BELETH) == 3)
            {
               return "32376-02.htm";
            }

            if (GrandBossManager.getInstance().getBossStatus(BELETH) > 0)
            {
               return "32376-03.htm";
            }
            
            final L2BossZone zone = (L2BossZone) ZoneManager.getInstance().getZoneById(12018);
            if (zone != null)
            {
               GrandBossManager.getInstance().setBossStatus(BELETH, 1);
               L2Party party = player.getParty();
                  if (party != null)
                  {
                     for (L2PcInstance pl : party.getMembers())
                  {
                     if (pl.isInsideRadius(npc.getX(), npc.getY(), npc.getZ(), 3000, true, false))
                     {
                        zone.allowPlayerEntry(pl, 30);
                        pl.teleToLocation(16342, 209557, -9352, true);
                     }
                  }
                  }
                  else
{
zone.allowPlayerEntry(player, 30);
                        player.teleToLocation(16342, 209557, -9352, true);
}     
            }
      }
      return null;
   }
   
   public static void main(String[] args)
   {
      new SteelCitadelTeleport(-1, "SteelCitadelTeleport", "teleports");
   }
} 

Guest
This topic is now closed to further replies.


  • Posts

    • https://l2avokado.com/ Hello everyone,   After some time of development, we've decided to open L2Avokado to the public in its current development stage. We're looking for players who enjoy Interlude and would like to help shape the project before its official release.   This isn't a "launch" announcement. Instead, we're inviting the community to log in, explore the server, test the systems we've built, and provide honest feedback. Whether it's bug reports, balance suggestions, progression ideas, or quality-of-life improvements, we'd love to hear them.   Our goal has always been to create an Interlude server that feels familiar while offering a fresh progression experience. We've intentionally avoided custom weapons, armor, and client modifications. Instead, we've focused on redesigning progression through reworked hunting grounds, quests, crafting, and gameplay systems while remaining compatible with a clean Interlude client.   At this stage, the core progression path has been implemented, including the main hunting grounds, quests, custom systems, and events. However, as the project is still under active development, there will inevitably be bugs, balance issues, and areas that require further polishing.   This is exactly why we'd like your help.   We're looking for players who are willing to: Test gameplay and progression. Report bugs and exploits. Suggest balance improvements. Share ideas for new features or quality-of-life changes. Help us build a server that the community genuinely enjoys playing.   The Client and System downloads are already available on our website, so you can jump straight into the game. We're also working on a dedicated launcher that will simplify installation and future updates.   If you're interested in helping develop a unique Interlude project and want your feedback to genuinely influence the direction of the server, we'd love to have you with us.   We look forward to seeing you in-game and hearing your thoughts on Discord. https://l2avokado.com/
    • IAM one of customers of this project. Have anti cheat, have user panel everything is working. Blocking adrenaline trashy plans without any problems.  So just GL for all lin2 project. I get support every time I need it. 
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..