Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
рандом сообщения в шаут\трейд
#11
Конечно возможно, почитайте хоть какую то литературу по языку. Для ваших целей достаточно прочитать пару страниц любого гайда по языку.
[src=java]
// Получить рандомное сообщение.
String randomMessage = TR_TEXT[Rnd.get(TR_TEXT.length)];
[/src]
Ответ
#12
благодарю вас!)

ну вот, исходя из ваших подсказок получилось что то вроде:

Код:
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)];
    }
}

подскажите, что не так?

Добавлено через 41 секунду
предполагаю делать загрузку через AILoader
[Изображение: ck.gif]
Ответ
#13
........upSad
[Изображение: ck.gif]
Ответ
#14
..............up
[Изображение: ck.gif]
Ответ
#15
Запускать то пробовал?
Ответ
#16
нет.
я не могу понять, откуда лучше запускать, и как лучше именно его прогружать. допустим что с частью реализации уже все стало понятным.

Цитата:package com.l2jfrozen.gameserver.managers;

отсюда, как-то не корректно будет, мне кажется.
[Изображение: ck.gif]
Ответ
#17
Цитата:отсюда, как-то не корректно будет, мне кажется.
а разница? подключайте хоть в com.l2jfrozen.gameserver
Ответ
#18
а как правильно выделить память под него и запустить из package com.l2jfrozen.gameserver.managers?

я просто ранее запускал квесты, которые работают по другому принципу, только из AI
[Изображение: ck.gif]
Ответ
#19
................up
[Изображение: ck.gif]
Ответ
#20
ANZO Написал:Для анонсов нпц не требуется. Для CreatureSay (который вам и нужен) в пакете обязательно наличие objectId персонажа, который эту фразу говорит.
оффтоп
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Системные сообщения volumeOne 34 5,118 01-03-2013, 02:04 AM
Последний пост: orionpvp
  Системные сообщения volumeOne 2 1,475 10-25-2012, 08:39 PM
Последний пост: volumeOne
  пустой трейд Bagoc 3 1,869 01-31-2012, 04:31 PM
Последний пост: Bagoc
  Трейд jaccass 2 1,693 07-15-2011, 11:46 AM
Последний пост: MROBAR
  Налоги на трейд HastemaNS 2 1,829 12-10-2010, 04:29 PM
Последний пост: HastemaNS

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


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