Kann mir bitte einer kurz und verständlich erklären, wie man zum Beispiel einen Job Frist Timer von 5 Stunden speichert & abruft?
Wäre sehr nett
mfg
Kann mir bitte einer kurz und verständlich erklären, wie man zum Beispiel einen Job Frist Timer von 5 Stunden speichert & abruft?
Wäre sehr nett
mfg
Bin mir nicht sicher , aber vllt. mit einer Variable[MAX_PLAYERS] , die du beim Timer immer um 1 erhöhst , und beim ausloggen abspeicherst -> einloggen lädst , und wenn sie einen bestimmten wert hat , einen Boolean auf True setzen oder so
Und genau das kann ich ja nicht Kannst du mir vllt ein Beispiel geben ? Also mit einem PWN Code?
Ich könnte dir ein kleines Beispiel von meinem Payday System geben
new pSincePayday[MAX_PLAYERS]; // Die Variable , [MAX_PLAYERS] weil wir ja für jeden Spieler einzeln haben wollen :D
public pimer(playerid) //Der Timer
{
if(pSincePayday[playerid] >= 10)// Wenn die Variable 10 erreicht hat , in diesem Fall 10 Minuten , weil der Timer jede minute aufgerufe nwird
{
//was passieren soll
}
else
{
pSincePayday[playerid]++; // ZEit seit Payday wird um 1 erhöht
}
return 1;
}
Und wie sieht der Timer aus?^^
/edit: wie geht das denn nun ? Kann mir das bitte einer erklären ?
Kommt drauf an.
Soll die Zeit auch vergehen, wenn der Spieler offline ist oder muss er 5 Stunden online sein um wieder arbeiten zu können?
Kommt drauf an.
Soll die Zeit auch vergehen, wenn der Spieler offline ist oder muss er 5 Stunden online sein um wieder arbeiten zu können?
Er muss 5 Stunden online sein
Also, man kann keine Timer speichern, nur ihre Variable, also hier mal ein Beispiel (mit 5 Stunden):
//oben im Script
new time[MAX_PLAYERS];
//Bei deinem cmd
time[playerid] = 1;
SetTimerEx("Abzug", 1000, 1, "i", playerid);
//Bei OnPlayerConnect
if(time[playerid] >= 1)
{
SetTimerEx("Abzug", 1000, 1, "i", playerid);
}
//Der Callback
forward Abzug(playerid);
public Abzug(playerid)
{
if(time[playerid] != 18000 && time[playerid] > 0) // 18000 = soviele Sekunden haben 5 Stunden
{
time[playerid]++;
}
else
{
//Was passieren soll, wenn er halt etwas 5std gemacht hat
}
return 1;
}
Du musst natürlich diese Variable bei OnPlayerDisconnect speichern und bei OnPlayerConnect (bevor du die Variable Abfrage machst) laden !
mfg.
Alles anzeigenAlso, man kann keine Timer speichern, nur ihre Variable, also hier mal ein Beispiel (mit 5 Stunden):
//oben im Script
new time[MAX_PLAYERS];
//Bei deinem cmd
time[playerid] = 1;
SetTimerEx("Abzug", 1000, 1, "i", playerid);
//Bei OnPlayerConnect
if(time[playerid] >= 1)
{
SetTimerEx("Abzug", 1000, 1, "i", playerid);
}
//Der Callback
forward Abzug(playerid);
public Abzug(playerid)
{
if(time[playerid] != 18000 && time[playerid] > 0) // 18000 = soviele Sekunden haben 5 Stunden
{
time[playerid]++;
}
else
{
//Was passieren soll, wenn er halt etwas 5std gemacht hat
}
return 1;
}
Du musst natürlich diese Variable bei OnPlayerDisconnect speichern und bei OnPlayerConnect (bevor du die Variable Abfrage machst) laden !
mfg.
Solangsam versteh ich es, danke
Wie kann ich die Variable denn mit dini abspeichern und wo ? :O
Wie kann ich die Variable denn mit dini abspeichern und wo ? :O
Wenn du dini nutzt, kannst du es natürlich damit abspeichern
Na, du wirst bestimmt einen stock haben, wo du die Sachen speicherst und lädst, da einfach rein
ungefähr so:
dini_IntSet(Spielerdatei,"Beispielzeit",time[playerid]);
mfg.
Jaaaa es hat funktioniert, vielen dank!
Warst echt meine letzte Rettung