Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

jak pobrać 10 ostatnich banów


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 15.08.2016 21:59

interesuje mnie jak pobrać ostatnich 10 zbanowanych graczy żeby wyświetlić w menu na serverze

ktoś coś ? 

 


  • +
  • -
  • 0

#2 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

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 ?

  • Nie wiesz jak się za to zabrać ?
  • Nie wiesz jakie zapytanie wykonać ?
  • Czy nie wiesz jak to zrobić ?

  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#3 tytusek

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 15.08.2016 23:29

  • Nie wiem jak się za to zabrać 
  • Nie wiem jakie zapytanie wykonać 

 


  • +
  • -
  • 0

#4 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

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.

  • 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  ;)


  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#5 dredek

    Wszechobecny

  • Użytkownik

Reputacja: 162
Profesjonalista

  • Postów:476
  • GG:
  • Imię:Dawid
  • Lokalizacja:OLK
Offline

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? :D


  • +
  • -
  • 0

#6 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 18.08.2016 14:04

  • 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? :D

Nie, ponieważ bany zapisywane są w bazie danych, a nie plikach tekstowych.
  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#7 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

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;
	}
}

  • +
  • -
  • 2




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych