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.


Dodatki SourceMod













