Jump to content
MrSharp

Объявления в системе

Recommended Posts

[Скрипт] Объявления в системе


Описание:

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

Установка:

Откройте functions.lua и добавьте код в cha_timer:

	local SetTime = 5	-- Время после которого будет добавляться сообщение
	local i = math.random( 1, 5 )	-- Рандом (1 из 5)

	if ( math.mod( now_tick, 60*SetTime ) == 0 and now_tick > 0 ) then	-- Проверки
		SystemNotice( TurnToCha( role ), NoticeX[i] ) -- Выводим сообщение
	end

Откройте variable.lua и добавьте код:

NoticeX		= {}
NoticeX[1]	= "Добро Пожаловать на приватный сервер Пиратии Online!"
NoticeX[2]	= "Если Вы обнаружили ошибку, то сообщите в наш баг-трекер "
NoticeX[3]	= "Наш сайт www.site.ru "
NoticeX[4]	= "Не забывайте голосовать за наш сервер "
NoticeX[5]	= "Не забывайте проверять последние обновления на нашем сайте!"

 

  • Like 1

Share this post


Link to post
Share on other sites

@MrSharp

Строку

local i = math.random( 1, 5 )	-- Рандом (1 из 5)

лучше заменить на 

local i = math.random( 1, table.getn(NoticeX))	-- Рандом (1 из N), где N - количество сообщений

Теперь мы можем добавлять в variable.lua произвольное количество сообщений и нам не надо править функцию cha_timer()

Строку

local SetTime = 5	-- Время после которого будет добавляться сообщение

Можно также вынести в variable.lua.

Потом. В твоем коде сообщения отправляются ВСЕМ объектам (игрокам, монстрам, деревьям и т.д. ). Надо добавить проверку IsPlayer(role) == 1

Функция math.rand() вызывается каждый тик (каждую секунду), а зачем? Нам нужно чтобы она вызывалась каждые 5 минут (интервал между сообщениями). Нужно добавить 

local i = math.random( 1, 5 )

Внутрь условия срабатывания сообщения.

 

В общем, получается что-то вроде такого:

variable.lua

interval = 5 -- Интервал между сообщениями в минутах
notices = {} -- Массив с сообщениями

functions.lua, функция cha_timer()

if IsPlayer(role) == 1 then

        if ( now_tick > 0 and math.mod(now_tick, interval * 60) == 0 ) then
            local rand = math.random(1, table.getn(notices))
            SystemNotice(role, notices[rand])
        end
		
 end

 

  • Like 1

Share this post


Link to post
Share on other sites
В 26.03.2016в09:39, V3ct0r сказал:

В твоем коде

Это не мой код, он был взят с pkodev.com, который уже закрыт, так что смысла указывать источник нет. А так спасибо за поправки)

Edited by MrSharp

Share this post


Link to post
Share on other sites

@MrSharp, вот почему бездумно лучше ничего не копировать, но за гайд спасибо


Share this post


Link to post
Share on other sites

А теперь все тоже самое, только возьмем код Виктора с мд, и не много его перепишем и дополним праздничными\выходными днями на сервере.

cha_timer()
 

	-----------------------------------------------------------------------------
	-- Рекламабъявления в системе	---------------------------------------------
	-----------------------------------------------------------------------------
	if (AdsInGameRND == 1) then
		if IsPlayer(role) == 1 then
			local interval = 1 -- Интервал между сообщениями в систему (35 секунд)
			if math.mod(now_tick, interval) == 0 then
				if (Holidays == 1) then
					rand = math.random(1, table.getn(notices_two))
					SystemInfo = notices_two[rand]
				else
					rand = math.random(1, table.getn(notices))
					SystemInfo = notices[rand]
				end
				SystemNotice( role, SystemInfo )
			end
		end
	end

Глобальные переменные в viriable.lua, добавляем в конец файла:
 

	-----------------------------------------------------------------------------
	-- Рекламабъявления в системе	---------------------------------------------
	-----------------------------------------------------------------------------
	Holidays				= 0		-- Переменная включения "праздничных дней" на сервере
	AdsInGameRND			= 0		-- Переменная включенияыключения объявлений в системе
      
	notices = {}
	notices_two = {}
	-- Обычные объявления
	notices[1] = "Обычные объявления"
	-- Праздничные дни
	notices_two[1] = "Праздничные объявления"

Теперь мы можем использовать как обычные объявления в чате, так некие праздничные, выходные и т.п., причем включать можно это довольно просто, стоит изменить одну цифру в глобальной переменной. :$

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...