Jump to content

Search the Community

Showing results for tags 'скрипт'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Russian section
    • Новости и объявления
    • Пиратия: Документация
    • Пиратия: Релизы
    • Пиратия: Разработка
    • Пиратия: Web
    • Пиратия: Помощь
    • Программирование
    • Совместные проекты / набор команды
    • Доска объявлений
    • Offtop
  • English Section
    • News & Announcements
    • Guides
    • Releases
    • Development
    • Web
    • Questions & Help
    • Programming
    • Shared Projects / Team search
    • Paid services & Requests
    • Offtopic
  • Porting the game to another engines
    • Tales of Pirates Unity3D
  • Server Advertisements
    • Russian servers
    • English servers

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 5 results

  1. С помощью данного PHP-скрипта Вы можете искать различные предметы в мешках, временных мешках и банках персонажей. Требования: PHP 7.0+; Поддержка PDO; Драйвер sqlsrv для PDO. Как установить и пользоваться: 1) Поместите скрипт в рабочую директорию Вашего веб-сервера, обычно она называется htdocs; 2) Откройте файл index.php и настройте его; Сначала укажите данные для подключения к MSSQL-серверу: // MSSQL Settings $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = 'GameDB'; Затем введите секретный код. Секретный код нужен для доступа к скрипту из веб-браузера: // Secret key $access_key = 'E10ADC3949BA59ABBE56E057F20F883E'; Заполните список предметов, которые необходимо искать: // List of items to search for // ID, Name, Icon $items = array( // new Item(ID предмета, 'Название предмета', 'Иконка предмета'), new Item(1, 'Short sword', 'w0001'), new Item(2, 'Long sword', 'w0002'), new Item(863, 'Gem of Rage', 'n1182'), new Item(855, 'Fairy Coin', 'n1482'), new Item(1847, 'Apple', 'n0275') ); На этом настройка скрипта завершена! 3) Запустите скрипт в Вашем веб-браузере и Вы увидите результаты поиска. http://localhost/search_items/index.php Скрипт основан на PHP-классе для работы с инвентарем от пользователя Matt с форума serverdev.net. Иконки предметов идут в комплекте. В целях безопасности, не используйте скрипт на рабочем сервере. Скачать
  2. Диалог с NPC в определенное время Привет! В данном гайде я расскажу как можно сделать диалог с NPC доступным только в определенное время. Например, с 18:00 до 19:45. Для начала напишем скелет скрипта NPC, который для примера назовем pn_FuncName: function pn_FuncName() InitTrigger() TriggerCondition(1, CheckTime, 1800, 1945) TriggerAction(1, JumpPage, 1) TriggerFailure(1, JumpPage, 2) Start(GetMultiTrigger(), 1) Talk( 1, "Я буду с тобой говорить!" ) Talk( 2, "Я НЕ буду с тобой говорить! Приходи в другое время!" ) end В самом начале скрипта мы определяем условие времени TriggerCondition(1, CheckTime, 1800, 1945) Для этого служит функция CheckTime(t1, t2), которую мы опишем позже. Она принимает два параметра: t1 - начальное время; t2 - конечное время. В данном примере, t1 и t2 соответствуют значения 1800 и 1945, что означает интервал времени от 18:00 до 19:45 включительно. Как Вы могли догадаться, время кодируется следующим образом: t = часы * 100 + минуты Итак, мы определили условие времени. Если оно выполняется, то игрок попадает на страницу 1 и видит сообщение "Я буду с тобой говорить!", в противном случае, игрок попадает на страницу 2 и видит сообщение "Я НЕ буду с тобой говорить! Приходи в другое время!". Все просто! Далее нам необходимо написать функцию CheckTime(t1, t2). Для этого открываем файл functions.lua (GameServer\resource\script\calculate) и помещаем в него следующий код: -- Функция для проверки времени -- Если текущее время попадает в интервал [t1, t2] -- , то функция возвращает true, в противном случае -- функция возвращает false function CheckTime(character, t1, t2) -- Получим текущее время local hour = tonumber(os.date("%H")) * 100 local minute = tonumber(os.date("%M")) -- Закодируем его по формуле -- t = часы * 100 + минуты local check = hour + minute -- Определяем, находится ли текущее время -- в интервале [t1, t2] if (check >= t1 and check <= t2) then -- Время находится в интервале return LUA_TRUE end -- Время не находится в интервале return LUA_FALSE end Чтобы функцию можно было использовать в диалогах NPC, а именно в функции TriggerCondition(...), которая определяет различные условия, её необходимо зарегистрировать в файле MissionSdk.lua (GameServer\resource\script\MisSdk). Найдите в этом файле функцию ConditionsTest(...), а в ней следующий код: if conditions[i].func == NoMission then PRINT( "ConditionsTest:NoMission, p1 = ", conditions[i].p1 ) local Ret = NoMission( character, conditions[i].p1 ) if Ret ~= LUA_TRUE then PRINT( "ConditionsTest: NoMission = false" ) return LUA_FALSE end После данного блока кода вставьте код для функции CheckTime(t1, t2): elseif conditions[i].func == CheckTime then PRINT( "ConditionsTest: CheckTime") local ret = CheckTime(character) if ret ~= LUA_TRUE then PRINT( "ConditionsTest: CheckTime = false" ) return LUA_FALSE end На этом все, теперь Вы можете создать NPC c функцией pn_FuncName (название взято для примера) и протестировать его. P.S. За идею были взяты NPC с о. Весны, которые говорят с игроком, только когда он прошел квест "Языковой барьер"; P.S.S. В функцию CheckTime(t1, t2) можно так же добавить проверку на день недели. См. Справочное руководство по языку Lua 5.1 - 5.8 – Функции операционной системы; P.S.S.S. По такому же принципу можно делать любые проверки, например, на расу и профессию персонажа игрока.
  3. С помощью данного скрипта Вы можете выводить список HD и GM онлайн на своем сайте или в лаунчере, чтобы игроки могли легко связываться с администрацией в игре. Сам список выводится через запятую в одну строку. Настройка скрипта очень простая и в комментариях не нуждается. <?php // Настройки подключения к MSSQL-серверу $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = 'GameDB'; $hd_level = 30; // Уровень до которого персонаж считается HD // Подключаемся к MSSQL-серверу if (mssql_connect($db_host, $db_user, $db_pass) == false) { die ('<b>Ошибка: </b> Не удалось подключиться к серверу баз данных!'); } // Выбираем базу данных if (mssql_select_db($db_name) == false) { die ('<b>Ошибка: </b> Не удалось открыть игровую базу данных!'); } // Делаем запрос $sql = 'SELECT c.cha_name, a.gm FROM character AS c LEFT JOIN account AS a ON (c.act_id = a.act_id) WHERE c.mem_addr > 0 AND a.gm > 0'; $query = mssql_query($sql); if ($query == false) { die ('<b>Ошибка: </b> Не удалось выполнить запрос на список HD и GM в игре!'); } // Формируем список HD и GM $stuff = array(); while ($cha = mssql_fetch_object($query)) { $stuff[] = $cha; } // Закрываем соединене с базой данных mssql_close(); ?> <html> <head> <title>Список HD и GM в игре</title> </head> <body> <h1>Список HD и GM в игре</h1> <?php // Выводим список HD и GM через запятую $stuff_online = ''; $n = count($stuff); if ($n > 0) { for ($i = 0; $i < $n; $i++) { if ($stuff[$i]->gm > $hd_level) { $stuff_online .= '[GM] ' . $stuff[$i]->cha_name; } else { $stuff_online .= '[HD] ' . $stuff[$i]->cha_name; } if ($i != ($n - 1)) { $stuff_online .= ', '; } else { $stuff_online .= '.'; } } } else { $stuff_online = 'HD и GM нет в игре.'; } print $stuff_online; ?> </body> </html>
  4. Добрейший вечерочек. Всвязи с частыми обновлениями сервера, он требует частых перезагрузок. Респаун боссов сбивается, и это создаёт неудобство игрокам. Вопрос в следующем - есть ли скрипт, который делает респавн независимым от перезагрузок, а записывает время смерти и спавнит именно спустя время заданное по задумке?
  5. [Скрипт] Объявления в системе Описание: Скрипт выводит рандомно в систему любое сообщение, которое Вы пропишите, в заданный промежуток времени. Очень удобно для напоминания об обновлениях и т.п. Установка: Откройте 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] = "Не забывайте проверять последние обновления на нашем сайте!"
×