guten tag
ich habe ein pickup vor einem graffiti gemacht. wenn man im graffiti steht, kommt ein gametext: /graffiti.
wenn man nun im umkreis dieses pickups ist, kann man /graffiti eingeben und man bekommt 1000$.
man übersprüht das graffitie net wirklich, es ist sogedacht, wenn man ein graffiti findet und dann /graffiti macht (singleplayer >> übersprühen) das man dann geld als belohnunh bekommt.
durch hilfen aus diesen forum, habe ich es geschaft ein timer zu erstellen, das man nur alle 15 minuten den befehl eingeben kann.
nun habe ich folgendes problem: die voraussetzung ist, dass der befehl an ist,also auf true. sobald man den befehel eingiebt, wird er abgeschlatet, also false.
und durch den timer nach 15 minuten wieder an gemacht, also true.
Ich habe nun folgendes problem: ich kann nicht /graffiti eingeben, da die voraussetzung ist, das der befehl an ist (true). der geht aber erst an, wenn ich das graffiti übersprüht habe und 15 minuten warte.
script:
new pickup;//graffiti 1
new bool:pickupcan[MAX_PLAYERS];
forward pickupwiederaufnehmbar(playerid);
pickup = CreatePickup(1239,1,2422.5283,-1682.1741,13.8021,-1);
//OnPlayercmdtextblablabla
if (strcmp(cmdtext, "/graffiti", true) == 0)
{
if(pickupcan[playerid] == true)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,2422.5283,-1682.1741,13.8021))
{
SendClientMessage(playerid,GREEN,"Du hast das Grafitti übersprüht und bekommst nun 1000$");
SendClientMessage(playerid,GREEN,"Das Graffiti kann in 15 minuten wieder übersprüht werden!");
GivePlayerMoney(playerid,1000);//
SetTimer("pickupwiederaufnehmbar",900000,0);//900000 = Zeit bis Variable auf true gesetzt wird und der Spieler wieder /grafitti machen kann
pickupcan[playerid] = false; // Variable = false; Spieler kann nichtmehr /grafitti machen
}
}
return 1;
}
return 1;
}
public pickupwiederaufnehmbar(playerid)
{
pickupcan[playerid] = true;
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
//andere pickups
else if(pickupid == pickup)
{
GameTextForPlayer(playerid,"~r~/graffiti",3000,6);
return 1;
}
reutrn 1:
}
ich habe nun folgende lösung erstmal testweise gemacht.
ich habe es so gemacht, das wenn jemand connected, das der befehl an gemacht wird, also auf true:
public OnPlayerConnect(playerid)
{
pickupcan[playerid] = true;
return 1;
}
Das problem: egal ob timer an oder aus, jedesmal wenn sich jemand connected, wird der timer bedeutungslos und der befehl ist wieder an,auf true
er soll aber an sein, und nach dem /graffiti ausgehen und nach 15 minuten wieder angehen, was soweit auch klappt bisauf den 1. schritt: das er zu anfang an ist.
//edit habs schon: false und true tauschen