Nur nochmal zur Erklärung
Also Bei meinem Feuerwehr System soll das Feuer nur ausbrechen Sobald man Feuerwehr Duty geht das auch Klappt.
Wen man aus dem Dienst geht bricht trotzdem Weiterhin das Feuer aus Hier sind nochmal die Codes
ocmd:fwduty(playerid,params[]){
#pragma unused params
if(!IsPlayerInFrakt(playerid,12))return 1;
if(!IsPlayerInRangeOfPoint(playerid,5,feuerwehrdutypoint))return ErrorMsg(playerid,"Hier nicht.");
if(fwduty[playerid]==0)
{
//hier rein gehen
fwduty[playerid]=1;
SetPlayerSkin(playerid,277);
GivePlayerWeapon(playerid,3,1);
GivePlayerWeapon(playerid,42,10000000);
SetPlayerColor(playerid,COLOR_BRIGHTRED);
SetPVarInt(playerid,"feuerwehrduty",1);
format(string,sizeof(string),"HQ: %s hat den Feuerwehr-Dienst begonnen.",SpielerName(playerid));
feuerwehrMessage(COLOR_BLUE,string);
return 1;
}
if(fwduty[playerid]==1)
{
//hier aus dem dienst gehen
fwduty[playerid]=0;
Feuer = 0;
SetPlayerColor(playerid,COLOR_WHITE);
ResetPlayerWeapons(playerid);
format(string,sizeof(string),"HQ: %s hat den Feuerwehr-Dienst beendet.",SpielerName(playerid));
feuerwehrMessage(COLOR_BLUE,string);
SetPlayerSkin(playerid,SpielerInfo[playerid][Skin]);
}
return 1;
}
#pragma unused params
if(!IsPlayerInFrakt(playerid,12))return 1;
if(!IsPlayerInRangeOfPoint(playerid,5,feuerwehrdutypoint))return ErrorMsg(playerid,"Hier nicht.");
if(fwduty[playerid]==0)
{
//hier rein gehen
fwduty[playerid]=1;
SetPlayerSkin(playerid,277);
GivePlayerWeapon(playerid,3,1);
GivePlayerWeapon(playerid,42,10000000);
SetPlayerColor(playerid,COLOR_BRIGHTRED);
SetPVarInt(playerid,"feuerwehrduty",1);
format(string,sizeof(string),"HQ: %s hat den Feuerwehr-Dienst begonnen.",SpielerName(playerid));
feuerwehrMessage(COLOR_BLUE,string);
return 1;
}
if(fwduty[playerid]==1)
{
//hier aus dem dienst gehen
fwduty[playerid]=0;
Feuer = 0;
SetPlayerColor(playerid,COLOR_WHITE);
ResetPlayerWeapons(playerid);
format(string,sizeof(string),"HQ: %s hat den Feuerwehr-Dienst beendet.",SpielerName(playerid));
feuerwehrMessage(COLOR_BLUE,string);
SetPlayerSkin(playerid,SpielerInfo[playerid][Skin]);
}
return 1;
}
und das hier
new Feuer; // Eine Variable erstellen, um zu überprüfen ob ein Feuer erstellt wurde
public OnGameModeInit() {
Feuer = 0;
SetTimer("CheckFeuer",900000,true); // Ist ein Timer der jede 15 Mins ausgeführt wird
return 1;
}
Feuer = 0;
SetTimer("CheckFeuer",900000,true); // Ist ein Timer der jede 15 Mins ausgeführt wird
return 1;
}
forward CheckFeuer();
public CheckFeuer() {
if(Feuer == 1) return 1; // Falls ein Feuer vorhanden ist wird kein neues mehr erstellt
if(!IsFWDuty()) return 1; // Falls kein Feuerwehrmann OnDuty ist wird es übersprungen
CreateFire(random(3));
return 1;
}
public CheckFeuer() {
if(Feuer == 1) return 1; // Falls ein Feuer vorhanden ist wird kein neues mehr erstellt
if(!IsFWDuty()) return 1; // Falls kein Feuerwehrmann OnDuty ist wird es übersprungen
CreateFire(random(3));
return 1;
}
public CreateFire(FeuerID) {
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayAudioStreamForPlayer(i,"",1920.2426,-1636.9709,19.0122,100,0);
Feuer = 1; // Feuer wird/wurde erstellt Variable auf 1 setzten.
switch(ID) {
case 0: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach in der {00FF00}LS Mall{FFFFFF} aus!");
AddFire(1109.7426,-1518.5206,15.7969, random(100), 0);
AddFire(1109.4607,-1517.0424,15.7969, random(100), 0);
AddFire(1110.8823,-1518.2303,15.7969, random(100), 0);
AddFire(1111.1472,-1519.8075,15.7969, random(100), 0);
AddFire(1108.0875,-1516.2218,15.7969, random(100), 0);
AddFire(1107.0024,-1516.8269,15.7969, random(100), 0);
AddFire(1108.9535,-1514.8013,15.7969, random(100), 0);
mx = 1109.7426;my=-1518.5206;mz=15.7969;
}
case 1: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach am {00FF00}LS Hospital{FFFFFF} aus!");
AddFire(2017.7671,-1437.9889,14.3000, random(100), 0);
AddFire(2019.3118,-1436.9531,14.3859, random(100), 0);
AddFire(2019.1769,-1438.8497,14.7842, random(100), 0);
AddFire(2018.9347,-1440.3239,15.0654, random(100), 0);
AddFire(2020.1074,-1440.3599,15.3154, random(100), 0);
AddFire(2021.1141,-1439.6196,15.3568, random(100), 0);
AddFire(2023.2761,-1441.0536,16.1249, random(100), 0);
mx=2017.7671;my=-1437.9889;mz=14.3000;
}
case 2: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach am {00FF00}LSPD{FFFFFF} aus!");
AddFire(1486.9941,-1667.0309,14.5532, random(100), 0);
AddFire(1486.4098,-1664.8375,14.5532, random(100), 0);
AddFire(1487.9250,-1664.5344,14.5532, random(100), 0);
AddFire(1484.6763,-1666.7335,14.5532, random(100), 0);
AddFire(1482.4634,-1667.3370,14.5532, random(100), 0);
AddFire(1482.3033,-1665.4377,14.5532, random(100), 0);
AddFire(1483.2228,-1663.8508,14.5532, random(100), 0);
mx=1486.9941;my=-1667.0309;mz=14.5532;
}
}
Icon=1;
SetMapIconsForAll();
return 1;
}
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayAudioStreamForPlayer(i,"",1920.2426,-1636.9709,19.0122,100,0);
Feuer = 1; // Feuer wird/wurde erstellt Variable auf 1 setzten.
switch(ID) {
case 0: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach in der {00FF00}LS Mall{FFFFFF} aus!");
AddFire(1109.7426,-1518.5206,15.7969, random(100), 0);
AddFire(1109.4607,-1517.0424,15.7969, random(100), 0);
AddFire(1110.8823,-1518.2303,15.7969, random(100), 0);
AddFire(1111.1472,-1519.8075,15.7969, random(100), 0);
AddFire(1108.0875,-1516.2218,15.7969, random(100), 0);
AddFire(1107.0024,-1516.8269,15.7969, random(100), 0);
AddFire(1108.9535,-1514.8013,15.7969, random(100), 0);
mx = 1109.7426;my=-1518.5206;mz=15.7969;
}
case 1: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach am {00FF00}LS Hospital{FFFFFF} aus!");
AddFire(2017.7671,-1437.9889,14.3000, random(100), 0);
AddFire(2019.3118,-1436.9531,14.3859, random(100), 0);
AddFire(2019.1769,-1438.8497,14.7842, random(100), 0);
AddFire(2018.9347,-1440.3239,15.0654, random(100), 0);
AddFire(2020.1074,-1440.3599,15.3154, random(100), 0);
AddFire(2021.1141,-1439.6196,15.3568, random(100), 0);
AddFire(2023.2761,-1441.0536,16.1249, random(100), 0);
mx=2017.7671;my=-1437.9889;mz=14.3000;
}
case 2: {
FlamesLeft = 7;
SendClientMessageToAll(0xFFFFFFFF, "[Feueralarm] Ein {FF0000}Feuer{FFFFFF} brach am {00FF00}LSPD{FFFFFF} aus!");
AddFire(1486.9941,-1667.0309,14.5532, random(100), 0);
AddFire(1486.4098,-1664.8375,14.5532, random(100), 0);
AddFire(1487.9250,-1664.5344,14.5532, random(100), 0);
AddFire(1484.6763,-1666.7335,14.5532, random(100), 0);
AddFire(1482.4634,-1667.3370,14.5532, random(100), 0);
AddFire(1482.3033,-1665.4377,14.5532, random(100), 0);
AddFire(1483.2228,-1663.8508,14.5532, random(100), 0);
mx=1486.9941;my=-1667.0309;mz=14.5532;
}
}
Icon=1;
SetMapIconsForAll();
return 1;
}
Das ist alles wo das Feuer benutzt wird.