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

Pobranie cvaru gracza


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

#1 csMaster

    Wszechwiedzący

  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2019 20:40

new cvar[33][12];

public client_authorized(id)
{
    query_client_cvar(id, "s_polykeep", "check_cvar");
}

public check_cvar(id, const cvar[], const value[])
{
    if(equali(cvar, "s_polykeep"))
        copy(cvar[id], charsmax(cvar[]), value);
}

Rezultat powyższego kodu w log_amx():

L 08/26/2019 - 21:19:54: [0.amxx] cvar[id] = 

Tablica cvar[] dalej jest pusta. Czy ja coś źle robię ? Czy może nie da się w ten sposób pobrać wartości s_polykeep ? Jeśli tak, to w jaki sposób mogę pobrać wartość tego cvaru ?


Użytkownik csMaster edytował ten post 26.08.2019 20:42

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.08.2019 20:53

Kolizja nazw?


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 Żuk

    Wszechwidzący

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:291
  • Lokalizacja:Katowice
Offline

Napisano 26.08.2019 20:56

A da się pobrać wartość cvar'u gracza? WIem, że można sprawdzić czy wartość = x, inaczej nie chciało mi to nigdy działać.


  • +
  • -
  • 0

#4 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2019 21:08

A da się pobrać wartość cvar'u gracza? WIem, że można sprawdzić czy wartość = x, inaczej nie chciało mi to nigdy działać.

Dlaczego miałoby nie działać ? Pod const value[] jest wartość cvara.

 

 

Kolizja nazw?

Co masz na myśli ?


  • +
  • -
  • 0

#5 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.08.2019 21:23

Zmienna i argument nazwane tak samo


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#6 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2019 22:15

Rzeczywiście nie zauważyłem tego w przykładzie.

Ale w oryginale nazwy są inne, tylko w przykładzie wyżej zrobiłem błąd w nazwach.


  • +
  • -
  • 0

#7 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.08.2019 22:27

Jeśli spróbujesz zrobić

log_amx("%i (%s)", userCvar[index], userCvar[index]);

to powinno w konsoli wypisać error, jesli coś jest nie tak.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#8 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2019 23:53

Może podam bardziej szczegółowy kod:

enum { nonsteam[32] = 0, steam[32], ip[16], userinfo[12], polykeep[12], line, size }
new playerdata[33][size];

public client_authorized(id)
{
	if(is_user_steam(id)) get_user_authid(id, playerdata[id][steam], 31);
	else get_user_authid(id, playerdata[id][nonsteam], 31);
	get_user_ip(id, playerdata[id][ip], 15, 1);
	get_user_info(id, "_game3", playerdata[id][userinfo], 11);
	query_client_cvar(id, "s_polykeep", "check_cvar");
}

public check_cvar(id, const cvar[], const value[])
{
	if(equali(cvar, "s_polykeep"))
		copy(playerdata[id][polykeep], 11, value);
}

Rezultat podanego przez Ciebie log_amx() w dalszej części kodu:

L 08/27/2019 - 00:51:49: [code.amxx] 0 ()

i w check_cvar():

L 08/27/2019 - 00:58:06: [code.amxx] 57 (997561779)

s_polykeep = "997561779"


Użytkownik csMaster edytował ten post 27.08.2019 00:01

  • +
  • -
  • 0

#9 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 27.08.2019 08:10

Co to za cvar?

L 08/27/2019 - 09:09:06: [testinPlugin.amxx] #1 = 66 (Bad CVAR request)

Swoją drogą, możesz też tak:

enum dataSize: { nonsteam[32] = 0, steam[32], ip[16], userinfo[12], polykeep[12], line }
new playerdata[33][dataSize];

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#10 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 27.08.2019 17:41

 

Co to za cvar?

L 08/27/2019 - 09:09:06: [testinPlugin.amxx] #1 = 66 (Bad CVAR request)

U Ciebie ten cvar nie działa prawdopodobnie przez steam. U mnie na ns na każdej grafice ten cvar istnieje.

 Problem już rozwiązałem. query_client_cvar() pobiera wartość cvaru trochę wolniej niż myślałem  :X


  • +
  • -
  • 0




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

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