←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Wymuszenie zakończenia pluginu

Zablokowany

  • +
  • -
Novy93 - zdjęcie Novy93 25.08.2010

Mógłby mi ktoś napisać, czy istnieje funkcja/komenda cokolwiek, która po sprawdzeniu, czy gracz ma flagę T (if) w zależności od wyniku wykona:
jeżeli nie ma flagi - nie udostępni mu dalszej części pluginu / zakończy go od razu / zatrzymie tylko dla tego gracza (no i innych bez flagi),
jeżeli ma flagę to normalnie bez przeszkód wykona plugin dalej.

No i najlepiej z jakimś krótkim wytłumaczeniem co i jak, żebym wiedział.
Odpowiedz

  • +
  • -
Siemir - zdjęcie Siemir 25.08.2010


if(!(get_user_flags(id)& ADMIN_LEVEL_H))//jeśli nie ma flagi "t"

    return PLUGIN_CONTINUE;
dajesz to na początku funkcji którą chcesz ograniczyć, oczywiście możesz dodać tekst w przypadku braku flagi czy co tam chcesz.
Odpowiedz

  • +
  • -
Novy93 - zdjęcie Novy93 25.08.2010

Po wielu, wielu próbach doszedłem do wynikowego kodu:

if ((get_user_flags(id)& ADMIN_LEVEL_H)) // jeśli ma flage T
	{
		return PLUGIN_CONTINUE;
	}
{ 
   Reszta kodu
}

Ale niestety działa to odwrotnie - gracze z flagą T nie mogą korzystać z pluginu. Jakieś pomysły na "odwrócenie procesu" ? (Zamiana "return PLUGIN_CONTINUE;" z "Reszta kodu" nie pomaga).
Użytkownik Novy93 edytował ten post 25.08.2010 15:58
Odpowiedz

  • +
  • -
Knopers - zdjęcie Knopers 25.08.2010

zapomniałeś o negacji ( ! )
if (!(get_user_flags(id)& ADMIN_LEVEL_H)) //Jeśli gracz nie ma flagi t
Odpowiedz

  • +
  • -
Novy93 - zdjęcie Novy93 26.08.2010

Trochę późno pisze, bo coś tam zepsułem to wreszcie udało mi się wrócić do tego momentu - więc tak:

}
if (! (get_user_flags(player) & ADMIN_RESERVATION ))
	{ 
            KOD
        }
        else
        {
	client_print(player, print_chat, "Wyswietla sie jak nie moze uzyc")
        }
}

Wynikiem czego jest, że nikt nie może korzystać z pluginu.
Odpowiedz

  • +
  • -
Owner123 - zdjęcie Owner123 26.08.2010

}

if (! (get_user_flags(player) & ADMIN_RESERVATION ))

	{ 

            client_print(player, print_chat, "Wyswietla sie jak nie moze uzyc")

        }

        else

        {

	    //kod

        }

}

Użytkownik Owner123 edytował ten post 26.08.2010 10:28
Odpowiedz

  • +
  • -
Novy93 - zdjęcie Novy93 26.08.2010

No proszę, dało radę ;D

Teraz mam ciut inny problem - ponieważ kod co pokazał Owner123 znajduje się w "public handle_say(id)" toteż użytkownikowi bez flagi T (Chodziło mi o flagę T ale jakoś zeszło na rezerwację), ciągle wyświetla się tekst "Wyswietla sie jak nie moze uzyc". W sensie, że cokolwiek napisze się w czacie - bez flagi T - pojawia się ten tekst w sayu. Da się to jakoś zmienić ?


#Edit
Zrobiłem każdą komendę z osobna na flagę T, więc problem rozwiązany. Wszyscy macie po plusie a temat można zamknąć.
No i jakby kto się interesował, pracowałem nad bankiem AP na flagę T pod ZombieModa. Jeszcze raz dzięki ;)
Użytkownik Novy93 edytował ten post 26.08.2010 18:02
Odpowiedz
Zablokowany