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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   [Мануал] Авто анонсы на Python (https://forum.zone-game.info/showthread.php?t=2246)

PROGRAMMATOR 12.11.2008 07:57

[Мануал] Авто анонсы на Python
 
Авто анонсы на Python

Будем создавать авто анонс ваших сообщений на Python. Конечно, это баян, но пусть новички учатся.

Что нам понадобится, для выполнения этого "урока":

1. Notepad++ (У меня он на все случаи жизни) качаем - http://notepad-plus.sourceforge.net/
2. Ява эмулятор L2jServer (Хотя подойдет и другой, если вы включите мозг) качаем - http://zone-game.info/la2/java/
3. Собственно ваш мозг и немного желания


И так, приступим. Создайте каталог announce в директории \gameserver\data\scripts\ и поместите в него файл auto_announce.py который вы можете создать с помощью Notepad++ или любого другого редактора. После этого, пишем в файле auto_announce.py следующие строки:

 
import sys
from net.sf.l2j.gameserver import Announcements
from net.sf.l2j.gameserver import ThreadPoolManager
from java.lang import Runnable
 
print "Auto Announce running."
 
# Ставим интервал в минутах.
INTERVAL = 10
 
# Наше сообщение
ANNOUNCE="I Love You www.zone-game.info"
 
class myTask( Runnable ): 
    def __init__( self ): 
        self.name = "autoAnnouncer" 
    def run( self ): 
        Announcements.getInstance().announceToAll(ANNOUNCE)
 
startInstance = myTask() 
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(startInstance,INTERVAL*60000,INTERVAL*60000)[/code]
Комментариями (#) я подчеркнул то, что вам нужно изменить под свои нужды. Как отредактируете, сохраните файл и пропишите его в загрузку. Для этого открываем файл [U]scripts.cfg[/U] находящийся в [U]\gameserver\data[/U] нашим текстовым редактором и в самом конце, пишем следующее:
 
[code]
# Announce
announce/auto_announce.py
[/code]
Все, теперь можете перезапускать\запускать сервер и тестировать.
 
[IMG]http://img.zone-game.info/pic_b/456ab69d44625f2227cad4f9a78e6ddf.jpg[/IMG]
 
Хочу добавить еще пару строк для понимания. Многие захотят создать еще пару строк и пойдут вопросы, "а как". Для этого нужно изменить и дописать в скрипт пару строк:
 
[code]
# Наше сообщение
ANNOUNCE_1="I Love You www.zone-game.info"
ANNOUNCE_2="Вторая строка"
ANNOUNCE_3="Третья строка"
ANNOUNCE_4="Четвертая строка"
Code: Python
И конечно вывод сообщений:

 
    def run( self ): 
        Announcements.getInstance().announceToAll(ANNOUNCE_1)
        Announcements.getInstance().announceToAll(ANNOUNCE_2)
        Announcements.getInstance().announceToAll(ANNOUNCE_3)
        Announcements.getInstance().announceToAll(ANNOUNCE_4)
Code: Python
На этом все, надеюсь вам пригодится данный мануал.

Aquanox 12.11.2008 08:58

Ответ: [Мануал] Авто анонсы на Python
 
если много лучше циклом =)

Код:

import sys
from net.sf.l2j.gameserver import Announcements
from net.sf.l2j.gameserver import ThreadPoolManager
from java.lang import Runnable

print "Auto Announce running."

# Ставим интервал в минутах.
INTERVAL = 10

# Наше сообщение
ANNOUNCEMENTS= ["announce #1", \
                "announce #2", \
                "announce #3"  ]

class myTask( Runnable ):
    def __init__( self ):
        self.name = "autoAnnouncer"
    def run( self ):
        for ann  in ANNOUNCEMENTS:
            Announcements.getInstance().announceToAll(ann )

startInstance = myTask()
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(startInstance,INTERVAL*60000,INTERVAL*60000)

В дополнение к этому - можно писать на питоне свои VoicedCommand UserCommand SkillHandler и т.д. путем реализации соответствующих интерфейсов и регистрации в нужном месте.

PROGRAMMATOR 12.11.2008 09:24

Ответ: [Мануал] Авто анонсы на Python
 
Отличное дополнение, спасибо.

ps: Честно, я знал что первый пост будет именно от вас :)

ElectroMySty 19.06.2009 11:11

Ответ: [Мануал] Авто анонсы на Python
 
Русский возможно сделать в Announce? :(

DrsDragon 23.07.2009 19:30

Ответ: [Мануал] Авто анонсы на Python
 
PROGRAMMATOR Благодарю за мануал.
Aquanox Благодарю за дополнение.

Aargon 26.07.2009 15:38

Ответ: [Мануал] Авто анонсы на Python
 
вы мне очень помогли но насколько я зная ингейм тоже можно сделать это
если не ощибаюсь команда //announce_menu на русском тоже можно сделать

PROGRAMMATOR 26.07.2009 19:02

Ответ: [Мануал] Авто анонсы на Python
 
Дату статьи прочитайте, а потом посмотрите в истории Java серверов, наличие этой команды.

Astend 10.03.2010 11:27

Re: [Мануал] Авто анонсы на Python
 
Оо спасибки интересная инфа...

MROBAR 25.06.2010 23:07

Re: [Мануал] Авто анонсы на Python
 
если у тебя серв-прога , то в ней есть настройка ... la2offline ... там есть такая функция ...

Devilop 26.06.2010 01:49

Re: [Мануал] Авто анонсы на Python
 
la2offline это Java а тут разговор про питон
не путай


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

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