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

is_user_steam(id)


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

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 986
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 18.07.2010 13:55

funkcja zwraca false jeśli gracz to ns lub true jeśli steam w razie wystąpienia błędu zwraca -1


stock bool:is_user_steam(id){
if(!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id)){
return -1;
}
new pos;
new authid[64];
get_user_authid(id,authid,63)
if((pos = containi(authid,"VALVE_")) != -1 || (pos = containi(authid,"ID_LAN")) != -1 || (pos = containi(authid,"ID_PENDING")) != -1 || equal(authid,"STEAM_666:88:666") || (pos = containi(authid,"HLTV")) != -1 )
{
return false;
}
new ip[64]
get_user_ip(id,ip,63,1)
if((pos = containi(authid,ip)) != -1 ){
return false;
}
return true;
}


nie miałem możliwości sprawdzenia jak dproto generuje sid z ip także działałem po omacku w większości przypadków powinno działać
wymagany moduł amxmodx

Użytkownik DarkGL edytował ten post 25.09.2010 11:37

  • +
  • -
  • 1

#2 kam821

    Początkujący

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:10
Offline

Napisano 01.08.2010 14:40

Przykład użycia dla dproto:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>

#define PLUGIN "Nowy plugin"
#define VERSION "1.0"
#define AUTHOR "KaMaZZ"

#define AUTH_STEAM 2

new pcv_dp_r_id_provider;

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

pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
}

stock bool: is_user_steam(id)
{
server_cmd("dp_clientinfo %d", id);
server_exec();

static uClient;
uClient = get_pcvar_num(pcv_dp_r_id_provider);

if ( uClient == AUTH_STEAM )
return true;

return false;
}

Użytkownik kam821 edytował ten post 01.08.2010 14:41

  • +
  • -
  • 0

#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 17.05.2011 11:07

Sry za odkop, ale można też użyć czegoś takiego
stock bool:is_steam(auth[]) {
return bool:(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1);
}

Bo przecież ten kto ma steam, zawsze początek ma "0:0", albo "0:1".

Użytkownik sebul edytował ten post 06.05.2012 15:15

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 17.05.2011 16:08

albo też można tak :P no ale zależy jak mamy wtedy dproto ustawione.


stock bool:is_user_steam(id)
{
new authid[32];
get_user_authid(id, authid, 31);
return containi(authid , ":") != -1 ? true : false;
}

Użytkownik Cypis' edytował ten post 17.05.2011 16:10

  • +
  • -
  • 0

#5 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 17.05.2011 20:18

albo też można tak :P no ale zależy jak mamy wtedy dproto ustawione.


stock bool:is_user_steam(id)
{
new authid[32];
get_user_authid(id, authid, 31);
return containi(authid , ":") != -1 ? true : false;
}


Przez sam dwukropek nie wyczytasz czy to steam czy nie xD
  • +
  • -
  • 0

#6 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 19.05.2011 21:40

GoQ, nonsteamy też mają steam_0:8:XXXXXXX - grałem z takimi haha ;d (może to dproto takie generuje albo nie wiadomo co d;)

Użytkownik funfel edytował ten post 19.05.2011 21:41

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#7 Rafal_94

    Wszechpomocny

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:383
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Woźniki
Offline

Napisano 20.05.2011 06:51

dawne patche do cs v42 takie coś jedynie mogą robić
dproto daje steam_id_lan czy coś takiego
ewentualnie jak jakiś plugin generuje graczom sidy na serwie
  • +
  • -
  • 0

#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.05.2012 15:06

Sry za odkop, ale można też użyć czegoś takiego

stock bool:is_steam(auth[]) {
if(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1)
return true;

return false;
}

Bo przecież ten kto ma steam, zawsze początek ma "0:0", albo "0:1".


Numer STEAM_4:4:4 jest poprawnym STEAM_ID (HLDS.pl/SteamID | Developer.VALVEsoftware.com/wiki/SteamID), a zwróciłbyś go jako Non-Steam :o
Wiem, że raczej taki numer nie pojawi się na serwerze, ale funkcja jest niezgodna ze specyfikacją, a tym samym błędna.
PS. Przepraszam za odkop, ale nie mogłem tak tego zostawić w obliczu faktu, że nikt nie zwrócił na to uwagi.

#9 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.05.2012 15:14

A widziałeś kiedykolwiek kogoś z takim sidem, kto gra w csa? Bo ja nie, więc używając dproto taki kod jest wystarczający.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.05.2012 15:23

Wiem, że raczej taki numer nie pojawi się na serwerze

Pisałem, że taki numer raczej się nie pojawi i osobiście takiego nie widziałem i praktycznie, funkcja spełni swoje zadanie.
Jednak jeśli podajesz kolejną metodę, to chciałem dodać, że nie uwzględnia ona wszystkich możliwości zgodnie ze specyfikacją.
Gdybym, przykładowo, wszedł na serwer jako deweloper (STEAM_4:1:6154), to byłbym uznany za Non-Steama, co jest fałszem.

edit.
Ponadto, zauważ, że CS nie jest jedynym produktem, który używa do identyfikacji
numeru STEAM_ID, a nikt nie napisał, że funkcja ma działać tylko i wyłącznie dla CSa.

Niektóre produkty VALVE już używają numerów innych, niż STEAM_0_(0|1),
np. dla kafejek internetowych w Japonii, czy deweloperów zatrudnionych na umowę o dzieło.

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.05.2012 18:18

Na początku, tego drugiego zdania nie miałeś napisanego ^ ^ a ja właśnie widziałem jeszcze nie edytowany post.
Ogólnie wiem o co Ci chodzi, ale raczej wszystko, a na pewno większość jest tutaj pisana pod csa i ważne, aby to w tej grze wszystko działało, a nie żeby funkcja zgadzała się ze specyfikacją, po co sobie utrudniać życie?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.05.2012 20:43

No właściwie, jak teraz to napisałeś, to muszę Ci przyznać rację. Twoje argumenty mnie przekonały.
Przynajmniej powstała dodatkowa informacja jako ciekawostka :)




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

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