Hay wie mache ich das man /usedrugs nur alle 15 sekunden benutzen kann? also SPieler macht /usedrugs wenn er wieder /usedrugs macht kommt "Du musst 15 Sekunden warten bis du diesen Befehl wieder nutzen kannst!"
mein /usedrugs code:
if (strcmp("/usedrugs", cmdtext, true, 10) == 0)
{
if(pInfo[playerid][drugs] >= 2)
{
new Float:health;
GetPlayerHealth(playerid,health);
if (health < 160.0)
{
SendClientMessage(playerid,COLOR_GREY,"Du bist nun auf Drogen!");
new Float:Health; GetPlayerHealth(playerid,Health);
ApplyAnimation(playerid,"ped","Smoke_in_car",4.1,1,1,1,1,1);
SetTimerEx("Walkanim",1500,0,"i",playerid);
SetTimerEx("EffectGone",15000,0,"i",playerid);
pInfo[playerid][drugs] -= 2;
SetPlayerDrunkLevel (playerid, 25000);
SetTimerEx("drunk",15000,false,"d",playerid);
SetPlayerHealth(playerid,Health+15);
new name[MAX_PLAYER_NAME], drugsmsg[128];
GetPlayerName(playerid, name, sizeof(name));
format(drugsmsg, sizeof(drugsmsg), "* %s nimmt Drogen.", name);
ProxDetector(30.0, playerid, drugsmsg, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du hast schon genug Leben!");
}
}
else if(pInfo[playerid][drugs] <= 1)
{
SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Drogen!");
}
return 1;
}
/usedrugs 15sek warten bis wieder?
- Tommyx3
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Mach ne Statusabfrage, wenn er es benutzt hat machst du sie auf 1 und aktivierst 'nen Timer.
Wenn der Timer zu ende ist setzt du sie wieder auf 0, oder so. -
new PlayerUseDrugs[MAX_PLAYERS];
if (strcmp("/usedrugs", cmdtext, true, 10) == 0)
{
...
if(PlayerUseDrugs[playerid]) return 1; // 15 Sekunden nicht um.
PlayerUseDrugs[playerid] = 1;
SetTimerEx("PlayerUnUseDrugs", 15000, 0, "i", playerid);
...
}
public PlayerUnUseDrugs(playerid)
{
PlayerUseDrugs[playerid] = 0;
}
Das ist eine Möglichkeit. -
Wenn du es mit "MAX_PLAYERS" und "XXX[playerid]" machen willst, dann würde ich dir aus Ressourcengründen einen bool empfehlen:
new bool:DrugsUsed[MAX_PLAYERS]
Dann anstatt das ganze auf 1 und 0 zu setzen benutzt du für 1 true und für 0 false.mfg Lambo
-
-
breadfish.de
Hat das Thema geschlossen.