Hi wollte mal fragen ob mir jemand dabei helfen kann,
ein dynamisches System zu erstellen.
und zwar habe ich einen /veh Befehl, den nur Admins benutzen können.
Allerdings will ich nicht das überall alle Autos rumstehen und habe bereits ein Limit für
jeden Admin gesetzt.
Also jeder Admin kann für sich 10 Cars spawnen und muss dann /delcars eingeben damit sie wieder weg sind.
Das funktioniert ja auch soweit.
Aber ich will jetzt auch ein Dynamisches Dialogsystem einbauen, damit der Admin sich aussuchen kann,
zu welchem Auto er sich teleportieren will oder welches Auto er löschen will.
Habe da auch schon mit angefangen.
Aber sobald ich 3 Cars spawne, das 2. lösche, ist bei dem 3. die Vehicleid immer -1.
Kann mir jemand was dafür senden oder soll ich meinen Code senden?
Würde aber etwas dauern, da ich ihn erstmal ausbauen müsste
Schonmal vielen Dank.
Darkness321
//Edit
Hier mal mein Code:
Der Command
ocmd:acarlist(playerid, params[])
{
if(IsAAdmin(playerid, 6))
{
if(spawnedACars[playerid] > 0)
{
new msg[512], rows = 0;
for(new i = 0; i<MAX_ADMINCARS; i++)
{
if(AdminCar[playerid][vID][i] != -1)
{
new Float:ax, Float:ay, Float:az, zone[MAX_ZONE_NAME];
GetVehiclePos(AdminCar[playerid][vID][i], ax, ay, az);
Get2DZone(ax, ay, zone, MAX_ZONE_NAME);
if(rows == 0) format(msg, sizeof(msg), "%s in %s", GetVehicleName(GetVehicleModel(AdminCar[playerid][vID][i])), zone);
else format(msg, sizeof(msg), "%s\n%s in %s", msg, GetVehicleName(GetVehicleModel(AdminCar[playerid][vID][i])), zone);
AdminCar[playerid][DialogID][i] = rows;
rows += 1;
}
}
ShowPlayerDialog(playerid, CARLIST_DIAG2, DIALOG_STYLE_LIST, "Carlist", msg, "Auswählen", "");
}
else return SendClientMessage(playerid, COLOR_RED, "-Error- Du hast kein Auto gespawnt.");
return 1;
}
return 0;
}
Bei OnDialogResponse
if(response) // True Response
{
if(dialogid == CARLIST_DIAG)
{
AdminCar[playerid][UsedListitem] = listitem;
ShowPlayerDialog(playerid, CARLIST_DIAG2, DIALOG_STYLE_LIST, "Carlist", "Zum Auto teleportieren\nAuto löschen", "Weiter", "Abbrechen");
}
else if(dialogid == CARLIST_DIAG2)
{
if(listitem == 0)
{
new i = GetAdminIDFromListitem(AdminCar[playerid][UsedListitem], playerid);
new Float:vPos[3];
GetVehiclePos(AdminCar[playerid][vID][i], vPos[0], vPos[1], vPos[2]);
SetPlayerPos(playerid, vPos[0], vPos[1], vPos[2]);
PutPlayerInVehicle(playerid, AdminCar[playerid][vID][i], 0);
}
else if(listitem == 1)
{
new i = GetAdminIDFromListitem(AdminCar[playerid][UsedListitem], playerid);
DestroyVehicle(AdminCar[playerid][vID][i]);
AdminCar[playerid][vID][i] = -1;
}
}
}
Die extra Funktion:
stock GetAdminIDFromListitem(listitem, playerid)
{
for(new i = 0; i<MAX_ADMINCARS; i++)
{
if(AdminCar[playerid][DialogID][i] == listitem) return i;
}
return -1;
}