Code SpecialTeleport System – Acceso VIP por Tickets (Custom Gatekeeper)

EmptyPirsys

Vassal
Customer
╔══════════════════════════════════════════════════════╗
SPECIAL VIP TELEPORT SYSTEM - Gatekeeper Script
╚══════════════════════════════════════════════════════╝


.:: DESCRIPTION ::.
Professional teleport system for Lineage 2 servers that requires special VIP tickets/items to access specific locations. Perfect for creating premium teleport services, VIP zones, or monetization features.

.:: FEATURES ::.
Multi-Ticket Support - Works with 3 different ticket types
Player Validation - Checks player status before teleport
Custom Messages - Clear feedback system
Easy Configuration - Simple setup process
Optimized Code - Lightweight & production-ready
Error Handling - Full exception management
Console Logging - Track script status

.:: HOW IT WORKS ::.
The script checks if the player has one of the configured VIP tickets before allowing teleportation to specified coordinates.
Perfect for:
VIP-only areas
Premium teleport services
Cash shop items
Event access control
Donator benefits

.:: CONFIGURATION ::.
// Item IDs (customize these)
TICKET_VIP_1 = 91579
TICKET_VIP_2 = 91580
TICKET_VIP_3 = 9210
// Usage in scripts:
teleportWithTicket("x", "y", "z")

.:: USE CASES ::.
Create exclusive teleport NPCs for VIP players
Monetize special zone access
Reward donators with premium teleports
Control access to custom instances/zones
Event-based teleportation system

.:: INSTALLATION ::.
1. Compile the script
2. Place the generated ext inside the gameserver directory
3. Configure item IDs in the script
4. Add teleport NPCs with the function call
5. Reload scripts and test

.:: WHY USE THIS? ::.
Increase revenue - Sell VIP tickets
Player retention - Exclusive benefits
Flexible - 3 ticket tiers
Professional - Production-ready

PM FOR QUESTIONS & SUPPORT
Price: FREE
⚡ Fast Delivery | ⚡ Professional Support | ⚡ Quality Code

Java:
package custom.gatekeeper;

import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import l2.gameserver.data.xml.holder.ItemHolder;
import l2.gameserver.model.Player;
import l2.gameserver.network.l2.components.SystemMsg;
import l2.gameserver.network.l2.s2c.SystemMessage;
import l2.gameserver.templates.item.ItemTemplate;
import l2.gameserver.utils.Location;

public class SpecialTeleport extends Functions implements ScriptFile {

    private static final int TICKET_VIP_1 = 91579;
    private static final int TICKET_VIP_2 = 91580;
    private static final int TICKET_VIP_3 = 9210;

    @Override
    public void onLoad() {
        System.out.println("=== SpecialTeleport: Script cargado ===");
    }

    @Override
    public void onReload() {
        System.out.println("=== SpecialTeleport: Script recargado ===");
    }

    @Override
    public void onShutdown() {
        System.out.println("=== SpecialTeleport: Script apagado ===");
    }

    public void teleportWithTicket(String[] args) {

        Player player = getSelf();

        if (player == null || player.isDead() || player.isInObserverMode()) {
            return;
        }

        if (args.length < 3) {
            player.sendMessage("Invalid teleport data.");
            return;
        }

        try {
            int x = Integer.parseInt(args[0]);
            int y = Integer.parseInt(args[1]);
            int z = Integer.parseInt(args[2]);

            boolean hasTicket1 = getItemCount(player, TICKET_VIP_1) > 0;
            boolean hasTicket2 = getItemCount(player, TICKET_VIP_2) > 0;
            boolean hasTicket3 = getItemCount(player, TICKET_VIP_3) > 0;

            if (hasTicket1 || hasTicket2 || hasTicket3) {
                player.teleToLocation(new Location(x, y, z));
            } else {
                String name1 = getItemName(TICKET_VIP_1);

                player.sendPacket(
                    new SystemMessage(SystemMsg.S1)
                        .addString("Only those bearing " + name1 + " may access this sacred teleport.")
                );
            }

        } catch (Exception e) {
            player.sendMessage("Invalid teleport data.");
        }
    }

    private String getItemName(int itemId) {
        try {
            ItemTemplate template = ItemHolder.getInstance().getTemplate(itemId);
            if (template != null && template.getName() != null) {
                return template.getName();
            }
        } catch (Exception e) {
        }
        return "Item #" + itemId;
    }
}
bypass -h scripts_custom.gatekeeper.SpecialTeleport:teleportWithTicket 184360 -62665 -2976
 
Back
Top