рандом сообщения в шаут\трейд - Страница 3 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:эффект псевдо-игрока

Ответ
Опции темы
Непрочитано 22.05.2012, 19:04   #21
Пользователь

Автор темы (Топик Стартер) Re: рандом сообщения в шаут\трейд

Цитата:
Дык нпс тоже ведь орут, почему бы не сделать какого-то нпс и от его имени орать?
а можете привести кусок кода с примером? я не нашел ничего путного, собственно выше написанный квест кажеться довольно простым, без всяких лишних вмешательств.

помогите допилить его плз.
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 25.05.2012, 03:50   #22
Аватар для Zubastic
ZG troll squad

По умолчанию Re: рандом сообщения в шаут\трейд

Вообще нужно висталла тыкать, он это делал и может помочь. А так:
Цитата:
public void broadcastPacket(L2GameServerPacket... packets)
{
sendPacket(packets);
broadcastPacketToOthers(packets);
}
Возможно это, ковырял сборку ов и фениксов, а так хз...
Zubastic вне форума Ответить с цитированием
Непрочитано 25.05.2012, 12:10   #23
Пользователь

Автор темы (Топик Стартер) Re: рандом сообщения в шаут\трейд

нет это совершенно другое.. у меня есть квест

Код:
package com.l2jfrozen.gameserver.managers;

import java.util.List;
import java.util.Random;
import java.util.concurrent.Future;
import java.util.logging.Logger;
import javolution.util.FastList;
import com.l2jfrozen.util.random.Rnd;

import com.l2jfrozen.gameserver.datatables.sql.NpcTable;
import com.l2jfrozen.gameserver.idfactory.IdFactory;
import com.l2jfrozen.gameserver.model.L2Attackable;
import com.l2jfrozen.gameserver.model.L2Object;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

public class TradeChat
{
	private static final String[] TR_TEXT =
    {
        "Testchat1",
        "Testchat2",
        "TestChat3",
        "TestChat4",
        "TestChat5"
    };
	
	private static final String[] TR_PC =
    {
        "MrOne",
        "MrTwo",
        "MrThree",
        "MrFour",
        "MrFive"
    };

	public void init(L2PcInstance activeChar)
	{
		activeChar.sendMessage("trMSG Started!");
		startTradeMessagesAtFixedRate();
	}

	private void stopTradeMessagesAtFixedRate()
	{
		if(_TradeMessageTask != null)
		{
			_TradeMessageTask.cancel(true);
			_TradeMessageTask = null;
		}
	}

	private void startTradeMessagesAtFixedRate()
	{
		SendTradeMessage TradeMessage = new SendTradeMessage();
		_TradeMessageTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(TradeMessage, 0, 60000);
		TradeMessage = null;
	}

	class SendTradeMessage implements Runnable
	{
		public void run()
		{
			try
			{
				for(L2PcInstance pc : L2World.getInstance().getAllPlayers())
				{
					if(pc == null)
					{
						continue;
					}
					else if(pc.isOnline() == 0)
					{
						continue;
					}

					pc.sendPacket(getTradeMessage());
				}
			}
			catch(Throwable t)
			{
				if(Config.ENABLE_ALL_EXCEPTIONS)
					t.printStackTrace();
			}
		}
	}
	
	private CreatureSay getTradeMessage()
	{
		CreatureSay cs = new CreatureSay(0, 17, getRandomSender(), getRandomText());
		return cs;
	}
	 
	private String getRandomSender()
	{
		return TR_TEXT[Rnd.get(TR_PC.length)];
	}

	private String getRandomText()
	{
		return TR_TEXT[Rnd.get(TR_TEXT.length)];
	}
}
который я не до конца понимаю, как можно запустить правильно.. помогите разобраться с этим пожалуйста.
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 25.05.2012, 12:24   #24
Аватар для rage
Герой

По умолчанию Re: рандом сообщения в шаут\трейд

Это не квест, это просто какой то класс.
Как его "запустить" на твоей сборке никто не скажет.
rage вне форума Ответить с цитированием
Непрочитано 25.05.2012, 16:51   #25
Аватар для Zubastic
ZG troll squad

По умолчанию Re: рандом сообщения в шаут\трейд

Код:
			case SHOUT:
				if(activeChar.isCursedWeaponEquipped())
				{
					activeChar.sendPacket(Msg.SHOUT_AND_TRADE_CHATING_CANNOT_BE_USED_SHILE_POSSESSING_A_CURSED_WEAPON);
					return;
				}
				if(activeChar.isInObserverMode())
				{
					activeChar.sendPacket(Msg.YOU_CANNOT_CHAT_LOCALLY_WHILE_OBSERVING);
					return;
				}

				if(!activeChar.isGM() && !activeChar.antiFlood.canShout(_text))
				{
					activeChar.sendMessage("Shout chat is allowed once per 5 seconds.");
					return;
				}

				if(Config.GLOBAL_SHOUT)
					announce(activeChar, cs);
				else
					shout(activeChar, cs);

				activeChar.sendPacket(cs);
				break;
			case TRADE:
				if(activeChar.isCursedWeaponEquipped())
				{
					activeChar.sendPacket(Msg.SHOUT_AND_TRADE_CHATING_CANNOT_BE_USED_SHILE_POSSESSING_A_CURSED_WEAPON);
					return;
				}
				if(activeChar.isInObserverMode())
				{
					activeChar.sendPacket(Msg.YOU_CANNOT_CHAT_LOCALLY_WHILE_OBSERVING);
					return;
				}

				if(!activeChar.isGM() && !activeChar.antiFlood.canTrade(_text))
				{
					activeChar.sendMessage("Trade chat is allowed once per 5 seconds.");
					return;
				}

				if(Config.GLOBAL_TRADE_CHAT)
					announce(activeChar, cs);
				else
					shout(activeChar, cs);

				activeChar.sendPacket(cs);
				break;
Вот оно, интересно даже самому стало, правда как юзать - хз.
Zubastic вне форума Ответить с цитированием
Непрочитано 28.05.2012, 17:15   #26
Пользователь

Автор темы (Топик Стартер) Re: рандом сообщения в шаут\трейд

Цитата:
Вот оно, интересно даже самому стало, правда как юзать - хз.
спс. да вот я и хочу разобраться в том как его запустить, не то что бы уж то юзать)
я просто промышлял только с квестами, именно с квестами из AI, загружая их из AILoader.

Цитата:
Это не квест, это просто какой то класс.
Как его "запустить" на твоей сборке никто не скажет.
видно, что сборка l2jfrozen)
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 09.07.2012, 19:11   #27
Пользователь

Автор темы (Топик Стартер) Re: рандом сообщения в шаут\трейд

ребят, тема все еще актуальна. помогите плз разобраться до конца..
Цитата:
спс. да вот я и хочу разобраться в том как его запустить, не то что бы уж то юзать)
я просто промышлял только с квестами, именно с квестами из AI, загружая их из AILoader.
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 09.07.2012, 19:22   #28
Аватар для Srkzm
Пользователь

По умолчанию Re: рандом сообщения в шаут\трейд

ThreadPoolManager.getInstance().scheduleGeneral(Ru nnable r, long delay) - как вариант, либо заставляйте кричать при каком-то событии, вариантов уйма
Srkzm вне форума Отправить сообщение для Srkzm с помощью ICQ Ответить с цитированием
Непрочитано 11.07.2012, 03:57   #29
Пользователь

Автор темы (Топик Стартер) Re: рандом сообщения в шаут\трейд

Код:
package com.l2jfrozen.gameserver.managers;

import java.util.List;
import java.util.Random;
import java.util.concurrent.Future;
import java.util.logging.Logger;
import javolution.util.FastList;
import com.l2jfrozen.util.random.Rnd;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.datatables.sql.NpcTable;
import com.l2jfrozen.gameserver.idfactory.IdFactory;
import com.l2jfrozen.gameserver.model.L2Attackable;
import com.l2jfrozen.gameserver.model.L2Object;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

public class TradeChat
{

	protected Future<?> _TradeMessageTask = null;
	
	private static final String[] TR_TEXT =
    {
        "Testchat1",
        "Testchat2",
        "TestChat3",
        "TestChat4",
        "TestChat5"
    };
	
	private static final String[] TR_PC =
    {
        "MrOne",
        "MrTwo",
        "MrThree",
        "MrFour",
        "MrFive"
    };

	public void init(L2PcInstance activeChar)
	{
		activeChar.sendMessage("trMSG Started!");
		startTradeMessagesAtFixedRate();
	}

	private void stopTradeMessagesAtFixedRate()
	{
		if(_TradeMessageTask != null)
		{
			_TradeMessageTask.cancel(true);
			_TradeMessageTask = null;
		}
	}

	private void startTradeMessagesAtFixedRate()
	{
		SendTradeMessage TradeMessage = new SendTradeMessage();
		_TradeMessageTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(TradeMessage, 0, 60000);
		TradeMessage = null;
	}

	class SendTradeMessage implements Runnable
	{
		public void run()
		{
			try
			{
				for(L2PcInstance pc : L2World.getInstance().getAllPlayers())
				{
					if(pc == null)
					{
						continue;
					}
					else if(pc.isOnline() == 0)
					{
						continue;
					}

					pc.sendPacket(getTradeMessage());
				}
			}
			catch(Throwable t)
			{
				if(Config.ENABLE_ALL_EXCEPTIONS)
					t.printStackTrace();
			}
		}
	}
	
	private CreatureSay getTradeMessage()
	{
		CreatureSay cs = new CreatureSay(0, 17, getRandomSender(), getRandomText());
		return cs;
	}
	 
	private String getRandomSender()
	{
		return TR_TEXT[Rnd.get(TR_PC.length)];
	}

	private String getRandomText()
	{
		return TR_TEXT[Rnd.get(TR_TEXT.length)];
	}
}
подскажите, что я делаю не так?

ведь здесь внутри идет вызов:

ThreadPoolManager.getInstance().scheduleGeneralAtF ixedRate(TradeMessage, 0, 60000);

а в GS - просто добавлен сам импорт этого класса. (по подобию ChristmasEventManager.java)

Добавлено через 3 часа 41 минуту
все, уже разобрался) спасибо большое всем)
__________________

Последний раз редактировалось mego4el; 11.07.2012 в 07:38. Причина: Добавлено сообщение
mego4el вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает шаут (чат) InTerior Lineage II 2 22.01.2011 01:08
Функция рандом vitlav Java 5 17.01.2011 12:18
2 Вопроса: Aion-Top + Мои сообщения. ViAl О форуме / About Zone-Game 4 03.03.2010 13:40
Рандом спавн мобов в L2Emu SWnet Lineage II 3 29.05.2009 23:52
Двойной клик по итему - выпадает рандом итем Nytrex Lineage II 19 27.07.2008 02:34


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

Вверх