interesuje mnie jak pobrać ostatnich 10 zbanowanych graczy żeby wyświetlić w menu na serverze
ktoś coś ?
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 15.08.2016 21:59
interesuje mnie jak pobrać ostatnich 10 zbanowanych graczy żeby wyświetlić w menu na serverze
ktoś coś ?
Napisano 15.08.2016 23:20
interesuje mnie jak pobrać ostatnich 10 zbanowanych graczy żeby wyświetlić w menu na serverze
ktoś coś ?
A tak dokładniej ? W czym leży problem ?
★ HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


Napisano 15.08.2016 23:29
Napisano 16.08.2016 14:57
- Nie wiem jak się za to zabrać
- Nie wiem jakie zapytanie wykonać
Co do zapytania. To musiałbyś mi pokazać strukturę tabel, bo nie pamiętam w jaki sposób to zrobili.
Ale jakby nie było na pewno jest jakieś ID. Trzeba pobrać interesujące cię pola ( np. nick , powód bana zapewne ) i posortować wynik malejąco z ograniczeniem do 10 rekordów. ( Musiałbyś mi podać więcej info to bym ci podał gotowe zapytanie SQL. Ja niestety nie posiadam amxbans )
A jak się za to zabrać ? Prościzna.
np:
for(new i = 0; i < 10; i++)
{
new Item[120]
formatex(Item,119,"Zbanowany: \r %s \w Powód: \r %s", Zbanowani[i], Powody_banow[i]);
menu_additem(menu, Item)
}
menu_display(id,menu)
return plugin_continue ...
Jak coś jeszcze nie jest jasne bądź masz jeszcze jakieś pytania to wal śmiało ![]()
★ HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


Napisano 16.08.2016 22:39
- Nie wiem jak się za to zabrać
- Nie wiem jakie zapytanie wykonać
Co do zapytania. To musiałbyś mi pokazać strukturę tabel, bo nie pamiętam w jaki sposób to zrobili.
Ale jakby nie było na pewno jest jakieś ID. Trzeba pobrać interesujące cię pola ( np. nick , powód bana zapewne ) i posortować wynik malejąco z ograniczeniem do 10 rekordów. ( Musiałbyś mi podać więcej info to bym ci podał gotowe zapytanie SQL. Ja niestety nie posiadam amxbans )
A jak się za to zabrać ? Prościzna.
- Musisz stworzyć sobie tablice ( by przechowywać w nich powody itd )
- Przy starcie wykonujesz już zapytanie do bazy danych.
- Wyniki zapytania przypisujesz do tablicy ( pamiętaj, by nie wykonywać zapytań w czasie tworzenia menu, bo to głupota. Lepiej na tym wyjdziesz jak będziesz pobierał info raz na mapę bądź co kilka minut )
- Wywołując menu przelatujesz pętlą po tablicach i tworzysz interesujące cię itemy menu. ( np. za pomocą funkcji formatex )
np:
for(new i = 0; i < 10; i++) { new Item[120] formatex(Item,119,"Zbanowany: \r %s \w Powód: \r %s", Zbanowani[i], Powody_banow[i]); menu_additem(menu, Item) } menu_display(id,menu) return plugin_continue ...Jak coś jeszcze nie jest jasne bądź masz jeszcze jakieś pytania to wal śmiało
A gdyby tak użyć https://amxx.pl/doku...acja/f913/freadi od końca iść, pobierać cała linie > fread i parsować > parse https://amxx.pl/doku...cja/f1380/parse bo wtedy wszystko będzie elegancko w zmiennych bo parse wrzuca tekst do zmiennych co spacje. Zdałoby to test?
Napisano 18.08.2016 14:04
Nie, ponieważ bany zapisywane są w bazie danych, a nie plikach tekstowych.
- Nie wiem jak się za to zabrać
- Nie wiem jakie zapytanie wykonać
Co do zapytania. To musiałbyś mi pokazać strukturę tabel, bo nie pamiętam w jaki sposób to zrobili.
Ale jakby nie było na pewno jest jakieś ID. Trzeba pobrać interesujące cię pola ( np. nick , powód bana zapewne ) i posortować wynik malejąco z ograniczeniem do 10 rekordów. ( Musiałbyś mi podać więcej info to bym ci podał gotowe zapytanie SQL. Ja niestety nie posiadam amxbans )
A jak się za to zabrać ? Prościzna.np:
- Musisz stworzyć sobie tablice ( by przechowywać w nich powody itd )
- Przy starcie wykonujesz już zapytanie do bazy danych.
- Wyniki zapytania przypisujesz do tablicy ( pamiętaj, by nie wykonywać zapytań w czasie tworzenia menu, bo to głupota. Lepiej na tym wyjdziesz jak będziesz pobierał info raz na mapę bądź co kilka minut )
- Wywołując menu przelatujesz pętlą po tablicach i tworzysz interesujące cię itemy menu. ( np. za pomocą funkcji formatex )
for(new i = 0; i < 10; i++) { new Item[120] formatex(Item,119,"Zbanowany: \r %s \w Powód: \r %s", Zbanowani[i], Powody_banow[i]); menu_additem(menu, Item) } menu_display(id,menu) return plugin_continue ...Jak coś jeszcze nie jest jasne bądź masz jeszcze jakieś pytania to wal śmiało
A gdyby tak użyć https://amxx.pl/doku...acja/f913/freadi od końca iść, pobierać cała linie > fread i parsować > parse https://amxx.pl/doku...cja/f1380/parse bo wtedy wszystko będzie elegancko w zmiennych bo parse wrzuca tekst do zmiennych co spacje. Zdałoby to test?
★ HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


Napisano 19.08.2016 14:53
napisane szybko
#include <amxmodx>
#include <sqlx>
new Handle:g_hSqlTuple;
public plugin_cfg()
{
register_plugin("Last 10 Bans", "1.0", "asiap");
new iError, szError[128];
g_hSqlTuple = SQL_MakeDbTuple("host", "user", "pass", "db");
SQL_SetCharset(g_hSqlTuple, "utf8");
if(SQL_Connect(g_hSqlTuple, iError, szError, 127) == Empty_Handle)
{
set_fail_state("(%i) %s", iError, szError);
}
}
public Clcmd_ShowBans(id)
{
static iData[1];
iData[0] = id;
return SQL_ThreadQuery(g_hSqlTuple, "GetLastBans", "SELECT `player_name`, `ban_created` FROM `amx_bans` ORDER BY `bid` DESC LIMIT 10", iData, 1);
}
public GetLastBans(iFailState, Handle:hQuery, szError[], iError, iData[])
{
if(!SQL_NumRows(hQuery))
{
return;
}
static id, hMenu, szName[41], szCreated[12];
id = iData[0];
hMenu = menu_create("Ostatnie 10 banow", "HandleGetLastBans");
while(SQL_MoreResults(hQuery))
{
SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "player_name"), szName, 40);
format_time(szCreated, 11, "%d.%m.%Y - %H:%M:%S", SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "ban_created")));
menu_additem(hMenu, fmt("%s (%s)", szName, szCreated));
SQL_NextRow(hQuery);
}
menu_display(id, hMenu);
}
public HandleGetLastBans(id, hMenu, iItem)
{
if(iItem == MENU_EXIT)
{
return;
}
}
0 użytkowników, 1 gości, 0 anonimowych