Свой телепорт скрипт

citadel

Heir
По хорошему, самое безопасное, назначать в передаваемом скрипте какой то парам игроку (получил степ квеста допустим, да хоть чего угодно в целом, можешь заюзать этот скрипт с телепортом), скажем он получил такой то степ и далее в него запихивать допустим координаты, и ими уже оперировать.
Но в целом это рабочий вариант, обери его по своему желанию дополнительными проверками или что то в этом духе
Что-то пошло не так)
Крит сервера - [12:05:24] ERROR Script class MyTeleport not found!

package Functions;

import l2.gameserver.cache.Msg;
import l2.gameserver.model.Player;
import l2.gameserver.scripts.Functions;
import l2.gameserver.utils.Location;

public class MyTeleport extends Functions
{
public void Gatekeeper(String[] param)
{
if(param.length < 3)
throw new IllegalArgumentException();

Player player = getSelf();
if(player == null)
return;

long price = Long.parseLong(param[param.length - 1]);

if(price > 0 && player.getAdena() < price)
{
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
return;
}

if(player.getMountType() == 2)
{
show("scripts/wyvern-no.htm", player);
return;
}

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

Location pos;
pos = new Location(x, y, z).correctGeoZ();

if(price > 0)
player.reduceAdena(price, true);
player.teleToLocation(pos);
}
}
 
package Functions;
.....

Создай свой экстеншен в пакете service


Code:
package services;

import l2.gameserver.cache.Msg;
import l2.gameserver.model.Player;
import l2.gameserver.scripts.Functions;
import l2.gameserver.utils.Location;

public class MyTeleport extends Functions
{
  public void Gatekeeper(String[] param)
  {
    if(param.length < 3)
      throw new IllegalArgumentException();

    Player player = getSelf();
    if(player == null)
      return;

    long price = Long.parseLong(param[param.length - 1]);

    if(price > 0 && player.getAdena() < price)
    {
      player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
      return;
    }

    if(player.getMountType() == 2)
    {
      show("scripts/wyvern-no.htm", player);
      return;
    }

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

    Location pos;
    pos = new Location(x, y, z).correctGeoZ();

    if(price > 0)
      player.reduceAdena(price, true);
    player.teleToLocation(pos);
  }
}

 
package Functions;
.....

Создай свой экстеншен в пакете service


Code:
package services;

import l2.gameserver.cache.Msg;
import l2.gameserver.model.Player;
import l2.gameserver.scripts.Functions;
import l2.gameserver.utils.Location;

public class MyTeleport extends Functions
{
  public void Gatekeeper(String[] param)
  {
    if(param.length < 3)
      throw new IllegalArgumentException();

    Player player = getSelf();
    if(player == null)
      return;

    long price = Long.parseLong(param[param.length - 1]);

    if(price > 0 && player.getAdena() < price)
    {
      player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
      return;
    }

    if(player.getMountType() == 2)
    {
      show("scripts/wyvern-no.htm", player);
      return;
    }

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

    Location pos;
    pos = new Location(x, y, z).correctGeoZ();

    if(price > 0)
      player.reduceAdena(price, true);
    player.teleToLocation(pos);
  }
}

та же беда
Безымянный.webp
 
файл называется SomeExt.ext.jar ? или ты забыл про .ext.jar ?
 
Back
Top