Hallo,
ich hab mir einen Wantedsystem für meinen GM gebaut, jedoch hatte ich vorhin, als ich mit jemanden den Server getestet habe, einen schwerwiegenden Bug, und zwar, ist er in das Knast gekommen, weil er Wanteds hatte, danach bin ich in den Knast gekommen ( soweit so gut ). Dann ist er, logischerweise früher als ich raus gekommen, und er bekam die Nachricht " Du wurdest aus dem Knast entlassen". Kurze Zeit darauf, bekam er die selbe Nachricht nochmal und wurde nochmal an die Stelle geportet, wo man entlassen wird. Ich bekam dann aber keine Nachricht mehr, und kam nicht mehr aus dem Knast.
Das Wantedsystem:
public OnPlayerSpawn(playerid)
{
if(GetPlayerWantedLevel(playerid) >= 1)
{
new GeldAnzahl[12];
new Wanted[12];
if(GetPlayerWantedLevel(playerid) == 1)
{
GeldAnzahl= "2000";
SetTimer("Wanted1",180000,0);
GivePlayerMoney(playerid,-2000);
Wanted= "1";
}
else if(GetPlayerWantedLevel(playerid) == 2)
{
GeldAnzahl= "4000";
SetTimer("Wanted2",360000,0);
GivePlayerMoney(playerid,-4000);
Wanted= "2";
}
else if(GetPlayerWantedLevel(playerid) == 3)
{
GeldAnzahl= "6000";
SetTimer("Wanted3",540000,0);
GivePlayerMoney(playerid,-6000);
Wanted= "3";
}
else if(GetPlayerWantedLevel(playerid) == 4)
{
GeldAnzahl= "8000";
SetTimer("Wanted4",720000,0);
GivePlayerMoney(playerid,-8000);
Wanted= "4";
}
else if(GetPlayerWantedLevel(playerid) == 5)
{
GeldAnzahl= "10000";
SetTimer("Wanted5",900000,0);
GivePlayerMoney(playerid,-10000);
Wanted= "5";
}
else if(GetPlayerWantedLevel(playerid) == 6)
{
GeldAnzahl= "12000";
SetTimer("Wanteds6",1080000,0);
GivePlayerMoney(playerid,-12000);
Wanted= "6";
}
new string[124];
SetPlayerPos(playerid, 264.6288,77.5742,1001.0391);
SetPlayerInterior(playerid,6);
format(string,sizeof string,"Da du %s Wanteds hast, kommst du in den Knast und bezahlst %s$.",Wanted,GeldAnzahl);
SendClientMessage(playerid,COLOR_WHITE,string);
SetPlayerWantedLevel(playerid, 0);
}
return 1;
}
public Wanted1(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
public Wanted2(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
public Wanted3(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
public Wanted4(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
public Wanted5(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
public Wanted6(playerid)
{
SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
}
Wantedsystem
- Key
- 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
-
-
SetTimerEx verwenden für Spieler Timer sonst ist es ein Timer für alle, außer du nutzt eine Variable die jede Sekunde runtergeht dann kannst du einen SetTimer unter OnGameModeInit verwenden mit Interval von 1Sek.
-
Hmm.. mit SetTimerEx kenne ich mich nicht aus. Kannst du mir mal ein Beispiel machen?
-
Hier bitteschön
[ SCRIPTING ] SetTimer & SetTimerEx -
Dankeschön.
Habs jetzt hinbekommen.