Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
//Morph
#1
Доброго времени суток!

Предложу такую идею:
Существует такая отличная GM команда //Morph

Хочу дать игрокам возможность ей использования, это будет приятное для игроков нововведение, прекрасно подходящее для проведения всевозможных ивентов, и просто игрокам будет интересно.

Но необходимо установить на команду, проверку ID локации в которой находиться игрок, т.к. разрешать использовать её везде приведёт к хаосу и лагам.
А вот разрешить её использование на нескольких локациях будет самое то!

Может кто нибудь, подумать или дать идеи как дописать необходимый скрипт к команде?

Вот сам код команды:


[SOURCE="java"]package admincommands;

import com.aionemu.gameserver.configs.administration.AdminConfig;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.network.aion.serverpackets.SM_TRANSFORM;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCommand;

/**
*
* @author ATracer
* @modified By aionchs- Wylovech
*/
public class Morph extends AdminCommand
{

public Morph()
{
super("morph");
}

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

if (params == null || params.length != 1)
{
PacketSendUtility.sendMessage(admin, "syntax //morph <NPC Id | cancel> ");
return;
}

Player target = admin;
int param = 0;

if (admin.getTarget() instanceof Player)
target = admin;

if (!("cancel").startsWith(params[0].toLowerCase()))
{
try
{
param = Integer.parseInt(params[0]);

}
catch(NumberFormatException e)
{
PacketSendUtility.sendMessage(admin, "Parameter must be an integer, or cancel.");
return;
}
}

if ((param != 0 && param < 200000) || param > 298021)
{
PacketSendUtility.sendMessage(admin, "Something wrong with the NPC Id!");
return;
}

target.setTransformedModelId(param);
PacketSendUtility.broadcastPacketAndReceive(target, new SM_TRANSFORM(target));

if (param == 0)
{
if (target.equals(admin))
{
PacketSendUtility.sendMessage(target, "Morph successfully cancelled.");
}
else
{
PacketSendUtility.sendMessage(target,"Your morph has been cancelled by " + admin.getName() + ".");
PacketSendUtility.sendMessage(admin, "You have cancelled " + target.getName() + "'s morph.");
}
}
else
{
if (target.equals(admin))
{
PacketSendUtility.sendMessage(target, "Successfully morphed to npcId " + param + ".");
}
else
{
PacketSendUtility.sendMessage(target, admin.getName() + " morphs you into an NPC form.");
PacketSendUtility.sendMessage(admin, "You morph " + target.getName() + " to npcId " + param + ".");
}

}
}
}[/SOURCE]
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#2
плять, две строчки кода

автор, просмотри весь код внимательно, и ты сам сможешь это решить
[Изображение: 017aa5195ccf75c2357a4e09cc3254d3.jpg]
Ответ
#3
Arch1S вы что советуете?

Не вижу ни одного упоминания, о локациях...
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#4
вытащи кусок из другой комманды
Ответ
#5
Не забудь, что при выходе из зоны тебе нужно снять морф. Иначе смысла нет привязывать к локации Smile
Ответ
#6
Snion Написал:вытащи кусок из другой комманды
Да вот что то не припоминаю команд использующих, привязки к локациям, да и в принципе не наблюдал к сожалению, каких либо операций сервера, с условиями локации, ну кроме полётов..

White_Wolf Написал:Не забудь, что при выходе из зоны тебе нужно снять морф. Иначе смысла нет привязывать к локации Smile
Ну это пока не так важно, хотя думаю к teleport_service можно прикрутить, операцию на снятие трансформации
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#7
как нибудь

[SOURCE="java"]if(ZoneName = name)
{
target.setTransformedModelId(param);
PacketSendUtility.broadcastPacketAndReceive(target, new SM_TRANSFORM(target));

if (param == 0)
{
if (target.equals(admin))
{
PacketSendUtility.sendMessage(target, "Morph successfully cancelled.");
}
else
{
PacketSendUtility.sendMessage(target,"Your morph has been cancelled by " + admin.getName() + ".");
PacketSendUtility.sendMessage(admin, "You have cancelled " + target.getName() + "'s morph.");
}
}
else
{
if (target.equals(admin))
{
PacketSendUtility.sendMessage(target, "Successfully morphed to npcId " + param + ".");
}
else
{
PacketSendUtility.sendMessage(target, admin.getName() + " morphs you into an NPC form.");
PacketSendUtility.sendMessage(admin, "You morph " + target.getName() + " to npcId " + param + ".");
}
}
else
{
PacketSendUtility.sendMessage(target,"Вы не в той локации");
}
}
}
}[/SOURCE]


короч вечром ещё подумаю
Ответ
#8
Вот скиллы бездны можно юзать только в бездне, можно взять от них нужную операцию и отредактировать..

Поищю кусок кода....
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#9
то что я выложил не пашет?(
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Morph Timka 9 3,144 05-09-2010, 09:22 PM
Последний пост: Hylop

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)