Hallo,
Ich möchte hier um Hilfe bitten. Ich werde zunächst die
Problembeschreibung niederschreiben und anschliesend die; so glaube ich
zumindestens; erforderlichen Scriptauszüge beilegen.
Die Problembeschreibung:
Ich habe ein Fraktionscar-system, das bedeutet ich kann in 2 Fraktionen
als Fraktionsmitglied ( egal ob leader oder member ) den Befehl /fcar
eingeben und anschliesend wird mir in besagter Fraktion ein Fahrzeug
gespawnt. Das funktioniert bei den Medics ( Fraktionssnummer 4 ) und
beim Taxiteam ( Fraktionsnummer 10 ). Wenn ich also Fraktionsmitglied
oder Leader der Medics bin, mir ein Fraktionsfahrzeug erstelle
funktioniert auch alles recht gut. Wenn ich das Fahrzeug lösche ist auch
alles sehr gut. Wenn ich nach dem Löschen des Fahrzeuges mich aber zum
Leader des Taxiteams mache, und dort ein Taxi erstelle und einsteige
erhalte ich die Meldung: "Du bist kein Mitglied des Rettungsdienstes"
und ich werde wieder aus dem Fahrzeug geschmissen. Obwohl ich wie
bereits erwähnt kein Mitglied des Rettungsdienstes mehr bin, sondern
Taxifahrer.
Die Codeschnipsel:
new MedicCar[MAX_PLAYERS];
new MedicAuto[MAX_PLAYERS];
new TaxiCar[MAX_PLAYERS];
new TaxiAuto [MAX_PLAYERS];
#define DIALOG_MEDICCARS 1111
#define DIALOG_TAXICARS 1116
forward IsAnAmbulance(carid);//4
forward IsATaxiCar(carid);//10
if(strcmp(cmdtext,"/fcar",true)==0)
{
if(SpielerInfo[playerid][sLeader] == 4 || SpielerInfo[playerid][sMember] == 4)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,2036.8271,-1403.3060,17.2881))
{
if(MedicCar[playerid]==0)
{
if(SpielerInfo[playerid][pRank] >= 0)
{
ShowPlayerDialog(playerid,DIALOG_MEDICCARS,DIALOG_STYLE_LIST,"Rettungsdienst
Fahrzeugwahl","Ambulance\nMedicopter","Bestätigen","Abbrechen");
}
if(SpielerInfo[playerid][pRank] >= 4)
{
ShowPlayerDialog(playerid,DIALOG_MEDICCARS,DIALOG_STYLE_LIST,"Rettungsdienst
Fahrzeugwahl","Ambulance\nMedicopter\nNotarzt","Bestätigen","Abbrechen");
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast schon
ein Rettungsdienst Fahrzeug - lösch es bitte erst mit '/delfcar'");
}
}
return 1;
}
else if(SpielerInfo[playerid][sLeader] == 10 || SpielerInfo[playerid][sMember] == 10)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1236.2017,-1662.9456,11.7969))
{
if(TaxiCar[playerid]==0)
{
if(SpielerInfo[playerid][pRank] >= 0)
{
ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
Fahrzeugwahl","Taxi","Bestätigen","Abbrechen");
}
if(SpielerInfo[playerid][pRank] >= 2)
{
ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
Fahrzeugwahl","Taxi\nCabby","Bestätigen","Abbrechen");
}
if(SpielerInfo[playerid][pRank] >= 3)
{
ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
Fahrzeugwahl","Taxi\nCabby\nStretch","Bestätigen","Abbrechen");
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast schon ein Taxi - lösch es bitte erst mit '/delfcar'");
}
}
return 1;
}
else return SendClientMessage(playerid,COLOR_RED,"Du darfst dir kein Fahrzeug Spawnen!");
}
if(strcmp(cmdtext,"/delfcar",true)==0)
{
if(SpielerInfo[playerid][sLeader] == 4 || SpielerInfo[playerid][sMember] == 4)
{
if(MedicCar[playerid]==1)
{
DestroyVehicle(MedicAuto[playerid]);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dein gespawntes Fahrzeug Entfernt!");
MedicCar[playerid] = 0;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast noch kein Fahrzeug gespawnt!");
}
return 1;
}
else if(SpielerInfo[playerid][sLeader] == 10 || SpielerInfo[playerid][sMember] == 10)
{
if(TaxiCar[playerid]==1)
{
DestroyVehicle(TaxiAuto[playerid]);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dein gespawntes Fahrzeug Entfernt!");
TaxiCar[playerid] = 0;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast noch kein Fahrzeug gespawnt!");
}
return 1;
}
else return SendClientMessage(playerid,COLOR_RED,"Du kannst kein Fahrzeug löschen, da du keins erstellen kannst!");
}
if(dialogid == DIALOG_TAXICARS)
{
if(response)
{
if(listitem == 0)
{
TaxiAuto[playerid] = CreateVehicle(420,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Taxi als Fahrzeug gespawnt!");
TaxiCar[playerid] = 1;
}
else if(listitem == 1)
{
TaxiAuto[playerid]=CreateVehicle(438,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Cabby als Fahrzeug gespawnt!");
TaxiCar[playerid] = 1;
}
else if(listitem == 2)
{
TaxiAuto[playerid]=CreateVehicle(409,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Stretch Fahrzeug gespawnt!");
TaxiCar[playerid] = 1;
}
}
return 1;
}
if(dialogid == DIALOG_MEDICCARS)
{
if(response)
{
if(listitem == 0)
{
MedicAuto[playerid] = CreateVehicle(416,2014.5378,-1433.6283,13.7033,133.4530,1,3,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Ambulance als Fahrzeug gespawnt!");
MedicCar[playerid] = 1;
}
else if(listitem == 1)
{
MedicAuto[playerid] = CreateVehicle(563,2069.0349,-1425.1941,49.0407,86.4916,1,3,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Medicopter als Fahrzeug gespawnt!");
MedicCar[playerid] = 1;
}
else if(listitem == 2)
{
MedicAuto[playerid] = CreateVehicle(599,2014.5378,-1433.6283,13.7033,133.4530,1,3,-1);
SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Notarzt Fahrzeug gespawnt!");
MedicCar[playerid] = 1;
}
}
return 1;
}
public IsAnAmbulance(carid)//4
{
for(new i = 0; i < sizeof(MedicAuto); i++)
{
if(carid == MedicAuto[i])
{
return 1;
}
}
return 0;
}
public IsATaxiCar(carid)//10
{
for(new x = 0; x < sizeof(TaxiAuto); x++)
{
if(carid == TaxiAuto[x])
{
return 1;
}
}
return 0;
}
if(!IsPlayerInFrac(playerid,4))
{
for(new pv = 0; pv < sizeof(MedicAuto); pv++)
{
if(newcar == MedicAuto[pv])
{
SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied des Rettungsdienstes!");
RemovePlayerFromVehicle(playerid);
}
}
}
if(!IsPlayerInFrac(playerid,10))
{
for(new pv = 0; pv < sizeof(TaxiAuto); pv++)
{
if(newcar == TaxiAuto[pv])
{
SendClientMessage(playerid,COLOR_RED,"Du hast keine Schlüssel!");
RemovePlayerFromVehicle(playerid);
}
}
}
Weitere Informationen:
Compilen kann ich ohne Warnings / Errors, es funktioniert wie eingangs
erwähnt auch alles Auser dass wenn ein Medic ein Fahrzeug erstellt, es
auch wieder löscht, kein Taxifahrer mehr beim erstellen seines
fahrzeuges in dieses einsteigen kann. ( Also erstellen geht, einsteigen
nicht ).
Ich hoffe ich habe alles ausreichend erklärt und bitte um entsprechende Hilfe zur Lösung des "Bugs" ....
Liebe Grüße und vielen Dank bereits im Vorraus.
Timon
p.S. Entsprechende ewige Leerzeilen, falsches einrücken der klammern etc. bitte ich zu entschuldigen, das liegt etwas an meinem browser der das ganze falsch ans Forum wieder gibt, im Script ist alles richtig und die klammern sind auch richtig gesetzt und es sind da natürlich auch keine ewigen Leerzeilen drin.
Danke für ihr Verständnis.
p.p.S. Man hofft natürlich auf Hilfe ...