←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zmiana wartości zmiennej komendą.

Zablokowany

  • +
  • -
luner - zdjęcie luner 28.08.2011

Witam,
nie wiedziałem w jakim dziale to umieścić, ani jaką dać nazwę tematu (wybaczcie, jeśli są złe to może ktoś mnie skieruje na dobrą drogę?). Mianowicie chcę, zmienić wartość zmiennej z 1 na 2, jednym klawiszem, przykład Zmienna ma domyślną wartość 1, jeśli wpiszę w konsoli zmien_zmienna, zmieni wartość na 2, jeśli znów wpiszę tą komendę w konsolę, wartość zmieni się znów na 1. Czy mógłby mi ktoś pomóc? Próbowałem tego wszędzie szukać, ale nie zbyt mi to wychodzi. Liczę na szybką pomóc.

Dziękuję.
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 28.08.2011

new zmienna[33]

zarejestruj komendę np
register_clcmd("zmien_zmienna", "zmien")
teraz
public zmien(id)
{
       	if(zmienna[id] == 1)
            {
                     	zmienna[id]--;
            }
       	if(zmienna[id] == 0)
       	{
                        zmienna[id]++;
            }
}

Użytkownik Gh0st edytował ten post 28.08.2011 14:45
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.08.2011

new zmienna[33];
 
 
public plugin_init()
	register_clcmd("zmien","zmiana")
public zmiana(id){
	if(zmienna[id]==1) zmienna[id]=2;
	else zmienna[id]=1;
	client_print(id,print_chat,"wartosc to: %d",zmienna[id])
}

dodaj include'y sobie i skompiluj komenda to zmien

@ down jest else wiec kod dziala
Użytkownik G[o]Q edytował ten post 28.08.2011 15:50
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 28.08.2011

GOQ BYŁEM PIERWSZY Dołączona grafika
G[o]Q twój kod nie będzie działać
if(zmiena[id]==1) zmienna[id]=2

Bo jeżeli pamiętam to zmienna domyślną wartość ma 0 Dołączona grafika
Użytkownik Gh0st edytował ten post 28.08.2011 14:49
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 28.08.2011

Co z tego, że byłeś 1. skoro dałeś kod, który nie będzie działał?
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 28.08.2011

@up. co nie bedzię działać . wyjaśnij :)
Odpowiedz

  • +
  • -
luner - zdjęcie luner 28.08.2011

sposób GoQ'a mi działa, a sposobu Ghosta jeszcze nie próbowałem, w każdym razie dzięki lecą plusy Dołączona grafika

Można zamknąć.


Edit
ehh.. jest jakiś limit i mogę tylko 1 dodać :(.
Użytkownik luner edytował ten post 28.08.2011 15:08
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 28.08.2011

GOQ BYŁEM PIERWSZY Dołączona grafika
G[o]Q twój kod nie będzie działać

if(zmiena[id]==1) zmienna[id]=2

Bo jeżeli pamiętam to zmienna domyślną wartość ma 0 Dołączona grafika

Autor prosił o wyjaśnienie jak zrobić to na 1 i 2, no i zresztą tam masz samo else, czyli nawet jeśli zmienna będzie równa 0 to zamieni ją na 1. Można jeszcze zrobić to tak, zamiast
if(zmienna[id]==1) zmienna[id]=2;
else zmienna[id]=1;

dodać
zmienna[id] = zmienna[id] == 1 ? 2 : 1;
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 28.08.2011

public zmien(id)
{
if(zmienna[id] == 1)
{
zmienna[id]--;
}
if(zmienna[id] == 0)
{
zmienna[id]++;
}
}


Przeanalizuj to co napisałeś.
Tak skonstruowana funkcja zmieni wartość z 0 na 1 ale z 1 na 0 już nie
Odpowiedz
Zablokowany