Guten Abend,
habe wieder mal eine Frae
Wie kann ich es machen, dass ma zum Beispiel einen Befehl nur 3x am Tag benutzen darf ! ??!?!
Guten Abend,
habe wieder mal eine Frae
Wie kann ich es machen, dass ma zum Beispiel einen Befehl nur 3x am Tag benutzen darf ! ??!?!
new darf[MAX_PLAYERS];
cmd....
darf[playerid]++;
if(darf[playerid]==3)
{
SendClientMessage.....
}
Ich weis es jetzt nicht genau, aber ich würde ne Variable definieren die jedes mal beim benutzen des Befehls hochzählt. Dann wenn es 00:00 Uhr ist dann die Variable wieder auf Null setzen.
MfG
Okey,
Wie würde es dan hier aussehen ?
if(strcmp(cmdtext,"/test",true)==0)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, 1218.4249, 6.4601, 1000.9219))
{
SetPlayerCameraPos(playerid, 1219.81,7.63,1000.92);
SendClientMessage(playerid,RED,"Du solltest dir lieber Kondome besorgen! Viel Spaß");
{
}
}
Hallo
Wenn Du MySQL hast ist das kein Problem, geh durch un setz alle Werte auf 0. Wenn Du kein MySQL hast, mach eine Datei. Wenn jmd den Befehl benutzt wird er reingeschrieben, Anzahl 1, bei wiederholter Benutzung zählste hoch. Um Mitternach löscht/leerst Du dann den Dateiinhalt.
dUDA
Willst den Puff für GRP machen hm?
Bin mir nicht sicher ob das eine Gemeinschaftsproduktion sein soll... xD
Haha InternetInk
Naja ich habe so ziemlich alles Fertig
nur das mit dem Befehl fehlt^^
xDDDDDDDDDD
der war echt gut: Gemeinschaftsproduktion
Ne Spaß bei Seite
Klar wird auch das Breadfish Forum erähnt wegen der Hilfe
Push
/edit ich habe es jetzt Drinnen
if (strcmp("/test", cmdtext, true, 10) == 0)
{
ApplyAnimation(playerid,"DANCING","dance_loop",4.1,1,1,1,0,0,1);
darf[playerid]++;
if(darf[playerid]==3)
{
SendClientMessage(playerid, 0xaa3333aa,"[Achtung] Du hast diesen Befehl bereits 3 mal Benutzt!");
}
Wie kann ich ejtzt machen, dass er Nach 00:00 Uhr immer Restartet
Also dass man jeden Tag wieder auf 0 Gesetzt wird und man 3 mal noch benutzen darf
MfG
Also 1. du hast da nen kleinen Fehler reingehauen..
Du gibst nämlich bei deinem Code an, dass die Animation durchgeführt wird, dann die Variable erhöht wird und dann die Nachricht kommt.
Das heißt es bringt dir genauso viel wie vorher, nur dass du jetzt noch ne Nachricht bekommst
So würde das richtig aussehen:
if (strcmp("/test", cmdtext, true, 10) == 0)
{
if(darf[playerid] == 3)
{
SendClientMessage(playerid, 0xaa3333aa,"[Achtung] Du hast diesen Befehl bereits 3 mal Benutzt!");
}
else
{
ApplyAnimation(playerid,"DANCING","dance_loop",4.1,1,1,1,0,0,1);
darf[playerid]++;
}
return 1;
}
Bei dem Zurücksetzen gibt es viele Methoden.
Ich würde da die Methode bevorzugen, dass du immer um genau 0:00 einen GMX durchführen lässt, wo nebenbei auch die "darf"-Variable auf "0" gesetzt wird.
Danke,
Ich bevorzuge lieber Anders
Das mit dem Gmx ist auch einerseits Dumm..
Gibt es ne Möglichkeit, es anders zu machen ?
Mit einer Variable?
Wenn ja Wie..
MfG
Probiers doch einfach mit einer Zeit bzw. Datumsabfrage.
http://wiki.sa-mp.com/wiki/Gettime
http://wiki.sa-mp.com/wiki/Getdate
Hey,
Habe es gerade so drin:
public OnPlayerUpdate(playerid) // Nicht sicher ob das Funktioniert!!
{
// new time[1];
// gettime(time[0]);
// if(time[0] == 00) //Wenn es 00 Uhr ist!
// {
// SendClientMessage(playerid,RED,"XX: Du hast nun wieder die Möglichkeit, den Befehl zu nutzen!!");
// darf[playerid] = 0;
//
// }
return 1;
}
Aber es haut nicht hin...
Was ist hier Falsch
Mach es lieber wie Dudalus gesagt hat, da so hast du viele Schwierigkeiten und du müsstest da noch die Variable "darf" speichern da ich sonst einfach neu connecten würde und dann die Variable neuzählt...
Alles anzeigen...
if (strcmp("/test", cmdtext, true, 10) == 0)
{
if(darf[playerid] == 3)
{
SendClientMessage(playerid, 0xaa3333aa,"[Achtung] Du hast diesen Befehl bereits 3 mal Benutzt!");
}
else
{
ApplyAnimation(playerid,"DANCING","dance_loop",4.1,1,1,1,0,0,1);
darf[playerid]++;
}
return 1;
}
Bei dem Zurücksetzen gibt es viele Methoden.
Ich würde da die Methode bevorzugen, dass du immer um genau 0:00 einen GMX durchführen lässt, wo nebenbei auch die "darf"-Variable auf "0" gesetzt wird.
So würde ich den Befehl auch einbauen.
Aber nen GMX? GMX bedeutet doch das der GM neu gestartet wird, oder? Sorry falls ich da falsch liege bin (noch) kein so super Scripter xD Und wenns so ist dann wäre das nicht gerade schön wenn jemand grad was aufm Server macht und der Server restartet einfach.
Gibt es keinen Timer in deinem Script der eh die Uhrzeit abruft? Falls nicht würde ich einfach in einen bestehenden Timer eine Abfrage einbauen wie spät es ist. Und falls es nach 0:00Uhr ist wird die Variable auf 0 gesetzt.
Aber nicht unbedingt in nen Sekundentimer^^ (außer darin wird eh schon die Uhrzeit ermittelt )
Nachteile:
- Falls du z.B. das ganze in nen 5 Minuten oder 15 Minuten Timer einbauen solltest dann wird die Variable nicht unbedingt genau um 0:00Uhr zurück gesetzt wenn nicht grad da der Timer aufgerufen wird.
- Wenn die Variable nicht gespeichert wird kann sich der Spieler nach den 3x einfach ausloggen und wieder ein und schon ist die Variable auch wieder auf 0 gesetzt ( //edit: Wie DurtyFree vor mir auch schon erwähnt hat, ups^^)