@turson: Trochę o tym poczytałem, coś kombinowałem i wystrugałem coś takiego. Ale nie pykło. (kod niżej)
@nospor: Tak wyszło, mój błąd. Wyleciało z głowy, aby opisać dokładniej problem.
@mitorski: Dzięki, za pomoc.
@ZaXaZ: Nie do końca, ale zabezpieczenie floodowe jest.
class bot {
private $SpamBotInfo;
private $SpamBotInfoNr;
private $SpamBotFlood;
public function SpamBot() {
if(empty($this->SpamBotInfo)) { $this->SpamBotSet(true, 1); //Ustawienie parametrow podczas pierwszego wywolania.
}
if($this->SpamBotInfo) { // Zabezpieczenie Floodowe
echo ("Wiadomosc nr.".$this->SpamBotInfoNr."</br>");
if ($this->SpamBotInfoNr = 10) { // Jesli funkcja wykona sie 10 razy reset $InfoNr
$InfoNr = 1;
} else {
$this->SpamBotAddInfo($InfoNr); // Jesli nie, wykona sie funkcji ktora doda do +1
}
$Flood = time() + 60; // Ustawienie Anty Floodu na 1 min $InfoBot = false; // I zmiana ustawienie false, aby funkcja nie mogla sie wykonac.
$this->SpamBotSet($InfoBot, $InfoNr, $Flood); // Wstawienie wszystkich argumentow
} else {
if(time() > $this->SpamBotFlood) { // jesli aktualny czas jest wiekszy od anty floodu $this->SpamBotSet(true); // ustawie SpamBotInfo na true
}
}
}
private function SpamBotAddInfo(&$InfoNr) {
$InfoNr++;
}
private function SpamBotSet($InfoBot, $InfoNr = null, $Flood = null) {
$this->SpamBotInfo = $InfoBot;
if($InfoNr != null) $this->SpamBotInfoNr = $InfoNr;
if($Flood != null) $this->SpamBotFlood = $Flood;
}
}
$bot = new bot();
do {
$bot->SpamBotHitbox();
} while(true);
Problem jest w tym, że nie działa AntyFlood. Tutaj udało mi się to naprawić mianowicie z true i false zrobic zmienne typu string. I w ifie dać $this->SpamBotInfo == "true", ale na mój gust wygląda to dziwnie.
Drugim problemem jest $InfoNr tzn. bez przerwy ma przypisaną wartość 1. @turson mnie naprowadził, ale nie potrafię tego ogarnąć.
#Edit, Zaraz dam w kodzie opisy co i jak.
#Edit2, Teraz tak myślę, gapiąc się na ten kod, że można by było wywalić cały $SpamBotInfo i zrobić w pierwszym if'ie
if(time() > $this->SpamBotFlood)