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.
|
Posted 15.08.2016 21:59
interesuje mnie jak pobrać ostatnich 10 zbanowanych graczy żeby wyświetlić w menu na serverze
ktoś coś ?
Posted 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++
Posted 15.08.2016 23:29
Posted 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++
Posted 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?
Posted 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++
Posted 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 members, 1 guests, 0 anonymous users