Tworzymy 33 elementową tablicę, by pomieścić wszystkich w niej graczy
new gravity[33];
Będzie ona przyjmowała wartość prawda/fałsz by sprawdzić, czy gracz już wpisał daną komendę.
Przy wpisywaniu komendy nasz plugin sprawdza, czy ta wartość jest ustawiona na prawdę czy na fałsz, dla każdej osoby osobno ( po to stworzyliśmy tę tablicę ).
Przy połączeniu gracza jest ona zawsze ustawiana na fałsz, jeżeli wcześniej nie przypisaliśmy ( np. przy funkcji client_putinserver ) wartości na true.
Czyli to wygląda tak:
new gravity[33]; // deklaracja 33 elementowej tablicy na pomieszczenie graczy
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /g", "cmdgravity"); // rejestrujemy komende
}
public cmdgravity(id){ // po wpisaniu komendy odnosnik do funkcji
if(!is_user_alive(id)) // zeby miec pewnosc, ze martwy gracz nie bedzie ustawial sobie grawitacji
return; // sprawdzamy czy zyje
if(!gravity[id]){ // tu sprawdzamy czy gracz o swoim wlasnym id ma wartosc gravity na false
set_user_gravity(id, 0.5); // tak ma na falsz - ustawiamy mu grawitacje.
gravity[id] = true; // mowimy pluginowi o tym, ze gracz uzyl komendy i ma juz ustawiona grawitacje zmniejszona
}
else { // w innym wypadku - wartosc bool przyjmuje tylko true / false, czyli teraz jest na true.
set_user_gravity(id, 1.0) // ustawiamy normalna grawitacje
gravity[id]=false; // dajemy na falsz zmienna, by plugin znow wiedzial, ze zmienil sobie grawitacje na normalna.
}
}