←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

szukanie sekwencji danych w nicku

Zablokowany

  • +
  • -
WHineye - zdjęcie WHineye 06.02.2009

dziendobry.

mam pytanie:

Czy jest jakas funkcja dzięki której po wsadzeniu jej do pluginu, amx mógłby przeszukiwac nicki graczy, w celu znalezienia jakiej sekwencji znakow? np. ip,tag klanowy, itp.
Odpowiedz

  • +
  • -
wizu - zdjęcie wizu 06.02.2009

Nie wiem, czy oto Ci chodziło, ale mam takie coś:
http://www.amxmodx.o... ... &go=search
Przeszukuje, czy dany ciąg zawiera drugi ciąg. Przykład
contain ( "mam fajny plugin", "plugin" )
Zwróci 1 ;)
Odpowiedz

  • +
  • -
WHineye - zdjęcie WHineye 06.02.2009

moge do pierwszej zmiennej wlozyc get_user_name( id, name, 31 ), a do drugiej get_cvar_num?
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 06.02.2009

tak
Odpowiedz

  • +
  • -
WHineye - zdjęcie WHineye 06.02.2009

dobrze.
Dziekuje, chyba juz wszystko wiem, temat do zamkniecia
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 06.02.2009

Nie wiem, czy oto Ci chodziło, ale mam takie coś:
http://www.amxmodx.o... ... &go=search
Przeszukuje, czy dany ciąg zawiera drugi ciąg. Przykład

contain ( "mam fajny plugin", "plugin" )
Zwróci 1 ;)


to akurat jest nie prawda. zwraca pozycje w ciagu znakowym. sam if postawiony bez zadnego operatora arytmetycznego zwraca 1 jezeli warunek jest > 0.
Odpowiedz

  • +
  • -
wizu - zdjęcie wizu 06.02.2009

A faktycznie, popatrzyłem na opis containi i tam pisało o pozycji, na samo contain nie popatrzyłem, sądziłem, iż ono nie zwraca pozycji, bo i po co dwie takie same funkcje. Ale się myliłem :P
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 06.02.2009

A faktycznie, popatrzyłem na opis containi i tam pisało o pozycji, na samo contain nie popatrzyłem, sądziłem, iż ono nie zwraca pozycji, bo i po co dwie takie same funkcje. Ale się myliłem :P


o ile sie nie myle(gdzies mi sie o oczy obilo) containi rozni sie od contain tylko tym ze rozroznia w danym stringu duze litery przy sprawdzaniu, sam tego nie testowałem. z equali/equal jest chyba tak samo.
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 07.02.2009

A faktycznie, popatrzyłem na opis containi i tam pisało o pozycji, na samo contain nie popatrzyłem, sądziłem, iż ono nie zwraca pozycji, bo i po co dwie takie same funkcje. Ale się myliłem :P


o ile sie nie myle(gdzies mi sie o oczy obilo) containi rozni sie od contain tylko tym ze rozroznia w danym stringu duze litery przy sprawdzaniu, sam tego nie testowałem. z equali/equal jest chyba tak samo.


Dokładnie tak. containi/equali bierze pod uwagę wielkość liter
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 07.02.2009

moge do pierwszej zmiennej wlozyc get_user_name( id, name, 31 ), a do drugiej get_cvar_num?

tak

Czy tylko ja widze oczywista watpliwosc? ;>
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 07.02.2009

tzn chyba zaszło nieporozumienie, możesz wsadzić zmienną name po uprzednim pobraniu do niej ciągu znaków za pomocą podanej przez Ciebie funkcji, natomiast get_cvar_num powinieneś najpierw zamienić na ciąg znaków funkcją num_to_str(num,str,len)

Porównywać możesz tylko ciągi znaków lub pojedyncze znaki (zmienne lub stałe typu char)
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 07.02.2009

grankee, ale kombinujesz... Od kiedy nicki mozna zapisac w formie cyfer xD (czyt. wszystkie). Wystarczy chyba uzyc get_cvar_string prawda? ;>
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 07.02.2009

Prawdę mówiąc nie próbowałem pobierać stringu z cvaru z cyfrą w wartości, myślałem, że można jedynie w przypadku stringu.
Odpowiedz

  • +
  • -
WHineye - zdjęcie WHineye 08.02.2009

moge do pierwszej zmiennej wlozyc get_user_name( id, name, 31 ), a do drugiej get_cvar_num?

tak

Czy tylko ja widze oczywista watpliwosc? ;>


num napisalem z rozpedzenia ;>
chodzilo mi oczywiscie o string :]
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 08.02.2009

Nie wiem po jakiemu piszesz ale dam przykład.
#include <amxmodx>

new nametag

public plugin_init()
{
	register_plugin("Sprawdz Name", "0.01", "NoName")
	nametag = register_cvar("amx_nametag", "CHEATER")
}
public client_authorized(id)
{
	new username[33], checktag[33]
	get_user_name(id, username, 32)
	get_pcvar_string(nametag, checktag, 32)
	
	if (contain(username, checktag)!=-1)
	{
		server_cmd("kick #%d", get_user_userid(id))
		client_print(0, print_chat, "%s KICKED", username)
	}
	
}
Odpowiedz

  • +
  • -
WHineye - zdjęcie WHineye 17.02.2009

grankee, ale kombinujesz... Od kiedy nicki mozna zapisac w formie cyfer xD (czyt. wszystkie). Wystarczy chyba uzyc get_cvar_string prawda? ;>


właściwie to chyba by sie dało... jakby w enum wypisać wszystkie możliwe nicki świata xD.

ps. dzięki pavulon za przykładzik :)
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 17.02.2009

stary tylko powiedz mi jak chcesz zapisać string w enumie? :D
Odpowiedz

  • +
  • -
WHineye - zdjęcie WHineye 17.02.2009

teraz to nie wiem ale jak pare godin temu myślałem to wiedziałem, albo myślałęm że wiedziałem. :P
Odpowiedz
Zablokowany