Hallo,
nach einiger Zeit habe ich mal wieder mit dem Scripten angefangen und möchte mir nun ein kleines Adminscript schreiben. Doch da habe ich Probleme mit dem Ban-CMD.
Ich nutze dini, dcmd + sscanf und möchte dann Ban immer mit 3 Parametern durchführen. Einmal die ID/Namen des zu bannenden Spielers, einen Grund und einen Zeitraum (in Tagen). Also /ban [ID] [Grund] [Tage].
dcmd_ban(playerid, params[])
{
new id, reason[128], time;
if(Spieler[playerid][alevel] < 2) SendClientMessage(playerid,COLOR_TOMATO,"Du erfüllst nicht die benötigten Berechtigungen.");
else if (sscanf(params, "uzi", id, reason, time)) SendClientMessage(playerid,COLOR_TOMATO,"Nutze /ban [ID] [Grund] [Tage].");
else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid,COLOR_TOMATO,"Dieser Spieler ist nicht online.");
else
{
new name[MAX_PLAYER_NAME], msg[128]/*, Jahr, Monat, Tag*/;
GetPlayerName(playerid,name,sizeof(name));
format(msg,sizeof(msg),"** %s hat dich für %i Tage vom Server verbannt (Grund: %z),",name,time,reason);
SendClientMessage(id,COLOR_TOMATO,msg);
// getdate(Jahr, Monat, Tag);
GetPlayerName(id,name,sizeof(name));
format(msg,sizeof(msg),"** Du hast %s erfolgreich gebannt.",name);
SendClientMessage(playerid,COLOR_GREEN,msg);
}
return 1;
}
So sieht der Code bisher aus, hat aber noch nicht wirklich eine Wirkung. Da es die Funktion getdate(year, month, day) gibt, könnte ich das derzeitige Datum in eine .ini Datei speichern. Allerdings ist da ja das Problem, dass manche Monate weniger Tage als andere haben. Jetzt ist meine Frage, wie ich es zum Beispiel bewerkstelligen könnte, dass ein Spieler der am 28. März für 7 Tage gebannt wird nicht am 35. März wieder entbannt wird, sondern am 04. April.
Ich würde das eigentlich so bewerkstelligen, dass ich jedem Monat eine bestimmte Zahl an Tagen zuweise und dann einfach "(Bantage+Heutiger Tag) > Tage des Monats" und wenn das so ist, zählt er den Monat um eins höher und gibt die Differenz der beiden Daten als Tag aus. Allerdings ist das ja eine etwas lange Lösung, deshalb wollte ich gerne wissen ob jemand weiß wie das einfacher zu lösen wäre.
Mit freundlichen Grüßen
Padarom