Ja wie die Überschrift schon sagt, bin ich auf der Suche nach der Einstellung, dass ein CMD, beispielsweise /leben, welcher Leben und Armor auffüllt und Geld abzieht, nur alle 5 Minuten nutzbar ist. Ich hoffe ihr habt verstanden, was ich möchte und könnt mir helfen...
CMD nur in Zeitabständen nutzbar
- Max Power
- 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
-
-
new playacanuse[MAX_PLAYERS];
if(!playacanuse[playerid]){
playacanuse[playerid] = GetTickCount();}else{
if((GetTickCount()-playacanuse[playerid]) < 1000)return 1;
playacanuse[playerid] = 0;
}
Einfach Ticks vorher abfragen & danach die neuen abfragen & Zeit Abstand ausrechnen ( ms )
-
SetPlayerHealth
SetPlayerAmour
GivePlayerMoney
Die 3Sachen benutze für den Hauptbefehl,
danach neue variable und ein Timer.Ansonsten guck dir den Thread an da steht auch alles drinne + Lösung :)
MfG
Ed_Hardy -
Danke euch beiden, hab mir den Thread von Ed Hary angeguckt, habe das getan :
forward CheckTime();
new
CmdTime //das nach oben[MAX_PLAYERS];public OnGameModeInit()
{
SetTimer("CheckTime",1000,1); // globaler Timer der jede sec aufgerufen wird
return 1;
}public OnPlayerConnect(playerid)
{
CmdTime[playerid] = -1;
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/leben", true) == 0 )
{
SendClientMessage(playerid,0xAFAFAFAA,"Dein Leben und deine Rüstung wurde aufgefüllt!");
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerMoney(playerid,-75);
CmdTime[playerid] = 1; // 1 für 1 Minute
new
string[64];
if(CmdTime[playerid] > 0)
{
format(string,sizeof(string),"Du kannst den Befehl in %d wieder benutzen", CmdTime[playerid]);
SendClientMessage(playerid,COLOR,string);
return 1;
}
return 1;
}
return 0;
}public CheckTime()
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(CmdTime[i] > 0)
{
CmdTime[i]--;
}
if(CmdTime[i] == 0)
{
CmdTime[i] = -1;
}
}
}
}(96) : error 029: invalid expression, assumed zero
(96) : warning 215: expression has no effect
(96) : error 001: expected token: ";", but found "]"
(96) : error 029: invalid expression, assumed zero
(96) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Zeile 96 = das in OnPlayerConnect, also der Teil mit CmdTime :
public OnPlayerConnect(playerid)
{
CmdTime[playerid] = -1;
return 1;
}Was nu ?
-
wäre nett wenn das jmd beantworten kann ....
würd mich auch mal interessieren wie das geht -
GetTickCount()
-
Könntest du bitte das mal eintragen und posten
Danke wäre echt nett
wo genau kommt das GetTickCount hin ich bekomme das nicht hin
-
breadfish.de
Hat das Thema geschlossen.