//goto - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Aion > Серверная часть

Важная информация

Серверная часть Обсуждения вопросов по установке и настройке эмулятора Aion-Emu, для совершенно новой и необыкновенно красивой игры - Aion.

Ответ
Опции темы
Непрочитано 21.10.2010, 23:51   #1
Аватар для Wolfas
Пользователь

Автор темы (Топик Стартер) //goto

Здравствуйте!
Дал игрокам на своём сервере возможность использования команды //goto
(не плохая вещь для пвп сервера)

Возникла очевидная проблема: игроки убегают от смерти, портуясь

Необходимо запретить её использование в боевом режиме
Или добавить ей каст по примеру //unctuck

Есть у кого нибудь идеи?
Цитата:
package admincommands;

import com.aionemu.gameserver.configs.administration.Admi nConfig;
import com.aionemu.gameserver.model.gameobjects.player.Pl ayer;
import com.aionemu.gameserver.services.TeleportService;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCom mand;
import com.aionemu.gameserver.world.WorldMapType;


/**
* Admin moveto command
*
* @author Dwarfpicker
*/

public class GoTo extends AdminCommand
{

/**
* Constructor.
*/
public GoTo()
{
super("goto");
}

@Override
public void executeCommand(Player admin, String[] params)
{
if(admin.getAccessLevel() < AdminConfig.COMMAND_GOTO)
{
PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command!");
return;
}

if(params == null || params.length < 1)
{
PacketSendUtility.sendMessage(admin, "syntax //goto <location>");
return;
}

if(params[0].toLowerCase().equals("poeta"))
{
TeleportService.teleportTo(admin, WorldMapType.POETA.getId(), 806, 1242, 119, 0);
PacketSendUtility.sendMessage(admin, "Teleported to Poeta.");
}
//unstuck

Цитата:
package admincommands;

import com.aionemu.gameserver.configs.administration.Admi nConfig;
import com.aionemu.gameserver.configs.main.CustomConfig;
import com.aionemu.gameserver.model.gameobjects.player.Pl ayer;
import com.aionemu.gameserver.services.TeleportService;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCom mand;


/**
* @author Nemiroff
* Date: 11.01.2010
*/
public class Unstuck extends AdminCommand
{

public Unstuck() {
super("unstuck");
}


/**
* Execute admin command represented by this class, with a given list of parametrs.
*
* @param admin the player of the admin that requests the command
* @param params the parameters of the command
*/
@Override
public void executeCommand(Player admin, String[] params)
{
if (admin.getAccessLevel() < AdminConfig.COMMAND_UNSTUCK) {
PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command");
return;
}
if (admin.getLifeStats().isAlreadyDead())
{
PacketSendUtility.sendMessage(admin, "You dont have execute this command. You die");
return;
}
TeleportService.moveToBindLocation(admin, true, CustomConfig.UNSTUCK_DELAY);
}
}
__________________
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".

Последний раз редактировалось Wolfas; 22.10.2010 в 14:22.
Wolfas вне форума Ответить с цитированием
Непрочитано 22.10.2010, 11:58   #2
Пользователь

По умолчанию Re: //goto

Код:
public static boolean teleportTo(Player player, int worldId, float x, float y, float z, int delay)

Код:
if(params[0].toLowerCase().equals("poeta"))
{
TeleportService.teleportTo(admin, WorldMapType.POETA.getId(), 806, 1242, 119, 0);
PacketSendUtility.sendMessage(admin, "Teleported to Poeta.");
}
в goto строка телепортсервис.телепортТу() последняя цифра 0 - это время в секундах(наверное в секундах) через которое нужно телепортироваться. можно вместо 0 поставить CustomConfig.UNSTUCK_DELAY - тогда время для телепортации будет браться из конфигов время команды unstuck
pppok вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.10.2010, 14:33   #3
Аватар для Wolfas
Пользователь

Автор темы (Топик Стартер) Re: //goto

Спс биг!
Время там в миллисекундах 1/1000 секунды

Блин вот я тупая обезьяна, я думал это поворот персонажа после телерепортаци "h"

Не посмотрел конфиги для teleportTo

И не увидел int delay (

Добавлено через 10 минут
ММ, кстати не будет идей, как сделать этот каст сбиваемым, или отключение каста в боевом режиме, или запрет на передвигание во время каста, или сбивание каста во процессе передвижения

Код:
	public static boolean teleportTo(Player player, int worldId, float x, float y, float z, int delay)
	{
		int instanceId = 1;
		if(player.getWorldId() == worldId)
		{
			instanceId = player.getInstanceId();
		}
		return teleportTo(player, worldId, instanceId, x, y, z, delay);
	}
__________________
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".

Последний раз редактировалось Wolfas; 22.10.2010 в 14:45. Причина: Добавлено сообщение
Wolfas вне форума Ответить с цитированием
Непрочитано 22.10.2010, 15:58   #4
Пользователь

По умолчанию Re: //goto

ну я так, любитель айона просто, я почти не играл и с сервером не разбирался, тч я хз как там и что. Чисто логически - бери ищи действие в игре которое сбивается скорее всего гдето в скилах и просто портируй логику оттуда меняя под себя. Щас гляну попробую... но врядли подскажу.
pppok вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вместо //goto - //тп Nikoz Серверная часть 3 05.07.2010 08:43
GoTo.java Hylop Серверная часть 2 10.03.2010 22:51


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 19:35. Часовой пояс GMT +3.

Вверх