Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   //Morph (https://forum.zone-game.info/showthread.php?t=11000)

Wolfas 10.11.2010 05:45

//Morph
 
Доброго времени суток!

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

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

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

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

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


[SOURCE="java"]package admincommands;

import com.aionemu.gameserver.configs.administration.Admi nConfig;
import com.aionemu.gameserver.model.gameobjects.player.Pl ayer;
import com.aionemu.gameserver.network.aion.serverpackets. SM_TRANSFORM;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCom mand;

/**
*
* @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]

Arch1S 10.11.2010 18:14

Re: //Morph
 
плять, две строчки кода

автор, просмотри весь код внимательно, и ты сам сможешь это решить

Wolfas 10.11.2010 21:58

Re: //Morph
 
Arch1S вы что советуете?

Не вижу ни одного упоминания, о локациях...

Snion 11.11.2010 01:27

Re: //Morph
 
вытащи кусок из другой комманды

White_Wolf 11.11.2010 04:30

Re: //Morph
 
Не забудь, что при выходе из зоны тебе нужно снять морф. Иначе смысла нет привязывать к локации :)

Wolfas 11.11.2010 04:52

Re: //Morph
 
Цитата:

Сообщение от Snion (Сообщение 95876)
вытащи кусок из другой комманды

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

Цитата:

Сообщение от White_Wolf (Сообщение 95885)
Не забудь, что при выходе из зоны тебе нужно снять морф. Иначе смысла нет привязывать к локации :)

Ну это пока не так важно, хотя думаю к teleport_service можно прикрутить, операцию на снятие трансформации

Snion 11.11.2010 08:06

Re: //Morph
 
как нибудь

[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]


короч вечром ещё подумаю

Wolfas 11.11.2010 20:06

Re: //Morph
 
Вот скиллы бездны можно юзать только в бездне, можно взять от них нужную операцию и отредактировать..

Поищю кусок кода....

Snion 11.11.2010 22:42

Re: //Morph
 
то что я выложил не пашет?(


Текущее время: 13:27. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot