Standardowo, jeżeli chcemy, żeby podczas gdy coś zachodzi wykonała się jakaś funkcja używamy operatora
if(warunek) wykonaj_funkcje();
Przykład kodu:
#include <amxmodx> public plugin_init() { register_plugin("Tutorial", "Tutorial", "Tutorial"); register_clcmd("test", "cmd_test"); } public cmd_test(id){ if(is_user_alive(id)) client_print(id, print_chat, "Jestes zywy"); else client_print(id, print_chat, "Jestes martwy"); }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Napisany kod drukuje na chacie graczowi czy jest żywy lub martwy przy wpisaniu w konsoli komendy test. Nie chodzi jednak o sam kod i co on wywołuje, tylko o to jak prosto można zastąpić operator if(). Mianowicie można użyć formułki:
warunek ? jeżeli zwraca true(1) wykonaj xx : kiedy zwraca false wykonaj zz
Przykład kodu:
#include <amxmodx> public plugin_init() { register_plugin("Tutorial", "Tutorial", "Tutorial"); register_clcmd("test", "cmd_test"); } public cmd_test(id){ is_user_alive(id) ? client_print(id, print_chat, "Jestes zywy") : client_print(id, print_chat, "Jestes martwy"); }
W istocie kod działa tak samo jak pierwszy, tylko jego struktura jest troche inna. Nie ogranicza się to tylko do funkcji zwracających 0 lub 1, można tego też użyć w inny sposób np:
warunek == 2 ? client_print(id, print_chat, "Zmienna warunek ma wartość 2") : client_print(id, print_chat, "Zmienna warunek ma wartość inną niż 2")
Zachęcam do używania tej metody.