Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

amx_ips из IP в TIME

supergamer
сообщение 19.8.2016, 8:26
Сообщение #1
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Есть плагин, который при вводе amx_ips вываливает список игроков сервера с их IP адресами.
Нужно заменить, чтоб вместо IP вываливался список с ВРЕМЕНЕМ ОНЛАЙНА на сервере.
Например.
1. Gamer1 2ч:06мин
2. Gamer2 1ч:22мин
3. Gamer3 0ч:08мин
и т.д.
Код:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "IPTools"
#define VERSION "0.2"
#define AUTHOR "SYZo"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd("amx_ips", "admin_ips", ADMIN_LEVEL_H)
}

public admin_ips(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new szBuffer[1535], szName[32], szIP[17]

new iPlayers[32], iNum, iLen

get_players(iPlayers, iNum)

if(id == 0) {
iLen = formatex(szBuffer, charsmax(szBuffer), "^n%16s %-28.27s^n", "Nick", "IP address")
}
else {
iLen = formatex(szBuffer, charsmax(szBuffer), "<html><meta charset='utf-8'><body><pre>%16s %-28.27s^n", "Nick", "IPaddress")
}

for(new i = 0; i < iNum; i++)
{
get_user_name(iPlayers[i], szName, charsmax(szName))

get_user_ip(iPlayers[i], szIP, charsmax(szIP), 1)

iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "%16s %-28.27s^n", szName, szIP)
}

if(id == 0) {
server_print(szBuffer)
}
else {
iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "</pre></body></html>")

show_motd(id, szBuffer, "Player's IP")
}
return PLUGIN_HANDLED
}



Отредактировал: supergamer, - 13.9.2016, 11:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя usercn
сообщение 28.8.2016, 10:20
Сообщение #2


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Интересно было бы не только онлайн, а и общее время игры.
Игрок --- 4ireryugA ---- онлайн (часы:минуты:секунды) ---- общее время (дни:часы:минуты)


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 28.8.2016, 18:35
Сообщение #3
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Тоже можно. Кто возмется сделать?

И общее время не помешает. Кто возмется сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 31.8.2016, 13:28
Сообщение #4
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, в statsx shell от мастамана была такая функция, можете попробовать вырезать от туда.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
supergamer
сообщение 31.8.2016, 14:57
Сообщение #5
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Цитата(Algalon @ 31.8.2016, 14:28) *
supergamer, в statsx shell от мастамана была такая функция, можете попробовать вырезать от туда.

Случайно код не найдется?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 31.8.2016, 16:16
Сообщение #6
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, нет, кода от statsx shell у меня нет.
Это все очень просто гуглится в инете, находите описание всех плюшек плагина и кваров к ним,
а дальше уже находите нужную функцию с помощью квара и вырезаете её себе.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 31.8.2016, 19:27
Сообщение #7
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Algalon,
там не так - /time, /pt - показать статистику игроков по сыгранному времени
фактически это ТОР игроков отсортированый по времени ))
А мне нужно чтобы выводилось время, только для игроков которые в данный момент на сервере.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 1.9.2016, 12:10
Сообщение #8
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, ну и что? Принцип работы функции один и тот же, нужно лишь изменить чуть-чуть под себя
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 1.9.2016, 12:12
Сообщение #9
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

кстати он показывает время подключения. Общее время - сколько ты уже играл не показует
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 1.9.2016, 12:49
Сообщение #10
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, все там есть, может быть прям не так как вам нужно, но различия минимальны
Cкрытый текст
Цитата
// ПРИМЕЧАНИЕ: Для работы функции показа информации о последнем
// посещении, должна быть включена Система Сбора Статистики Сыгранного Времени

////////////////////////////////////////////////////////////////////////////////////
// СИСТЕМА СБОРА СТАТИСТИКИ СЫГРАННОГО ВРЕМЕНИ
////////////////////////////////////////////////////////////////////////////////////

// ПРИМЕЧАНИЕ: Данная функция является экспериментальной!

// Включить систему сбора и отображения статистики
// сыгранного времени (/pt)
// 0 - Выключить
// 1 - Включить
//
// Значение по умолчанию: 1
amx_statsx_pt_enabled "1"

// Предоставлять игроку денежный бонус за сыгранное время
// 0 - Выключить
// 1 - Включить
//
// Значение по умолчанию: 1
amx_statsx_pt_bonus "0"

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 1.9.2016, 13:30
Сообщение #11
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

какую версию смотришь? я нашел в интернете 2.0 таких функций там нет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 1.9.2016, 13:34
Сообщение #12
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, 2.0.0 Beta 2
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 1.9.2016, 17:40
Сообщение #13
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Не смогу собрать в один плагин. Неужели совсем нет ни у кого немного времени чтобы помочь? товарищи кодеры, отзовитесь!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 1.9.2016, 17:58
Сообщение #14


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Есть жеж какой-то натив, который выдает время игры.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iShot
сообщение 1.9.2016, 18:23
Сообщение #15


Стаж: 11 лет

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

supergamer, этот чем не устраивает http://1337.uz/played-time-v2/?


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
supergamer
сообщение 2.9.2016, 9:55
Сообщение #16
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

iShot,
"/pt" - вывод игроку в чат информации о его сыгранном времени на сервере (как в шапке)
"/pttop | /ptall" - вывод top игроков на сервере по времени

Это почти то шо надо но немного не то.............
/pt - выведет в чат инфу по 1 игроку
/pttop - выведет топ всех игроков по времени и онлайн и офлайн

А мне нужен список только по тем, кто играют прямо сейчас.
Типа в 1 посте со списком IP, но вместо IP - должно быть время.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iShot
сообщение 2.9.2016, 10:17
Сообщение #17


Стаж: 11 лет

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

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


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 2.9.2016, 10:24
Сообщение #18


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

http://amxxmodx.ru/core/amxmodxinc/190-get_user_time.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 2.9.2016, 13:01
Сообщение #19
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

supergamer, столько вариантов вам предоставили и все они выполняют эту функцию, но вам все не так.
С такими требованиями вам нужно было идти прямиком в раздел куплю.
Вот вам, без всех свисто-передлок, статистик и сохранений, надеюсь ваша душенька будет довольна.

Cкрытый текст
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Played Time"
#define VERSION "0.1"
#define AUTHOR "Player"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd("amx_ptime", "ConCmd_ShowPlayedTime", ADMIN_LEVEL_H)
}

public ConCmd_ShowPlayedTime(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new szBuffer[1535], szName[32], szTime[28], iLen

if(id == 0) {
iLen = formatex(szBuffer, charsmax(szBuffer), "^n%-3s %-32s %-28s^n^n", "#", "Name", "Played Time")
}
else {
iLen = formatex(szBuffer, charsmax(szBuffer), "<html><meta charset='utf-8'><body><pre>%-3s %-32s %-28s^n^n", "#", "Name", "Played Time")
}

new iPlayers[32], iNum, iPlayer

get_players(iPlayers, iNum, "h")

for(new i = 0; i < iNum; i++)
{
iPlayer = iPlayers[i]

get_user_name(iPlayer, szName, charsmax(szName))

get_time_ending(get_user_time(iPlayer), szTime, charsmax(szTime))

iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "%-3d %-32s %-28s^n", i + 1, szName, szTime)
}

if(id == 0) {
server_print(szBuffer)
}
else {
iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "</pre></body></html>")

show_motd(id, szBuffer, "Showing played time")
}
return PLUGIN_HANDLED
}

stock get_time_ending(time, output[], lenght)
{
new iLen = 0

new iHour = time / 3600
new iMinute = time % 3600 / 60
new iSecond = time % 60

if(iHour > 0)
iLen += formatex(output[iLen], lenght - iLen, "%d %s hours - ", iHour)

if(iMinute > 0)
iLen += formatex(output[iLen], lenght - iLen, "%d mins - ", iMinute)

iLen += formatex(output[iLen], lenght - iLen, "%d sec", iSecond)
}


Отредактировал: Algalon, - 2.9.2016, 13:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
supergamer
сообщение 2.9.2016, 14:46
Сообщение #20
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Algalon,
Спасибо. Вечером посмотрю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: