Hi,
es geht um mein Trashcan System. Mit Enter kann man also in der Nähe einer Mülltonne ein wenig durch den Müll wühlen. Dieser Wühlvorgang dauert 4 Sekunden. Nun wollte ich es einrichten, dass man in diesen 4 Sekunden den Vorgang per Enter wieder abbrechen kann.
Hat man fertig gewühlt, kann man dieselbe Tonne erst nach 30min wieder durchstöbern. Folgender Code setzt dies aber nicht um, bzw. ich kriege es nicht hin, dass, wenn eine Mülltonne durchwühlt worden ist, dass sie danach nicht mehr verfügbar ist. Desweiteren bin ich mir nicht sicher, wie ich die Zeit zurücksetze (siehe Code Zeile 25).
if(newkeys & KEY_SECONDARY_ATTACK)
{
for(new i = 0; i < MAX_TRASH_CANS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, TrashCans[i][0], TrashCans[i][1], TrashCans[i][2]))
{
if(!AlreadySearching[playerid]) //Wenn der Spieler an eine Mülltonne geht und sie durchsucht.
{
if(gettime() < TrashCans_ID[i])
{
new stringDE[128],
stringEN[128];
format(stringDE, sizeof(stringDE), "»WARNUNG« Diese Mülltonne wurde schon geplündert. Versuche es in %imin noch einmal.", (TrashCans_ID[i] - gettime())/60);
format(stringEN, sizeof(stringEN), "»WARNING« This trash can has already been emptied. Try again in %imin.", (TrashCans_ID[i] - gettime())/60);
TrashCans_ID[i] = gettime() + 30*60;
return SendLanguageMessage(playerid, C_RED, stringDE, stringEN);
}
TrashCanLootTimer[playerid] = SetTimerEx("TrashCanLoot", 4000, false, "i", playerid, i);
ApplyAnimation(playerid, "BD_FIRE", "BD_Panic_Loop", 4.1, 0, 0, 0, 0, 4000, 1);
SendLanguageMessage(playerid, C_PINK, "»SPIELER« Du stöberst in der Mülltonne rum...", "»PLAYER« You rummage through the trash...");
AlreadySearching[playerid] = true;
}
else //Wenn der Spieler bereits an einer Mülltonne ist und schon am Wühlen ist.
{
TrashCans_ID[i] = 0; //Wenn Abbruch, dann Zeit zurücksetzen.
SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du hast aufgehört im Müll zu wühlen.", "»WARNING« You stopped rummaging through the trash.");
ClearAnimations(playerid);
KillTimer(TrashCanLootTimer[playerid]);
AlreadySearching[playerid] = false;
}
}
}
}