MrSharp 47 Report post Posted March 25, 2016 [Скрипт] Объявления в системе Описание: Скрипт выводит рандомно в систему любое сообщение, которое Вы пропишите, в заданный промежуток времени. Очень удобно для напоминания об обновлениях и т.п.Установка: Откройте 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] = "Не забывайте проверять последние обновления на нашем сайте!" 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted March 26, 2016 @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 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
MrSharp 47 Report post Posted March 26, 2016 (edited) В 26.03.2016в09:39, V3ct0r сказал: В твоем коде Это не мой код, он был взят с pkodev.com, который уже закрыт, так что смысла указывать источник нет. А так спасибо за поправки) Edited March 27, 2016 by MrSharp Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted March 26, 2016 @MrSharp, вот почему бездумно лучше ничего не копировать, но за гайд спасибо Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
e1mer 100 Report post Posted March 27, 2016 А теперь все тоже самое, только возьмем код Виктора с мд, и не много его перепишем и дополним праздничными\выходными днями на сервере. 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] = "Праздничные объявления" Теперь мы можем использовать как обычные объявления в чате, так некие праздничные, выходные и т.п., причем включать можно это довольно просто, стоит изменить одну цифру в глобальной переменной. Quote Share this post Link to post Share on other sites