Hey,
ich versuche derzeit einen bestimmten Eintrag aus einem Array zu bekommen, der des angeklickten Listitems unter OnDialogResponse entspricht. ABER nehmen wir z.B. mein privates Fahrzeugsystem. Ich erstelle einen Dialog, der alle meine Autos anzeigt und ich klicke z.B. auf die zweite Zeile was dem Listitem 1 entspricht. Ich weiß, dass ich durch das Array loopen muss, nur nicht wie ich es in diesem Fall machen muss. Es soll entsprechen meines Beispiels das 2te Auto, dass mir gehört also der Kondition : cInfo[i][besitzer] == sInfo[playerid][id0]entspricht zu mir teleportieren. Hilfe wäre nett
Mein bisheriger Code:
if(dialogid==19){
if(response){
new Float:vehX,Float:vehY,Float:vehZ;
GetPlayerPos(playerid,vehX,vehY,vehZ);
for(new i=0;i<sizeof(cInfo);i++){
if(cInfo[i][besitzer] != sInfo[playerid][id0]) continue;
if(cInfo[i][besitzer] == sInfo[playerid][id0]) i=0;
if(i != listitem) continue;
SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
}
}
Bestimmten Eintrag aus einem Array bekommen
- Oskaar1994
- Geschlossen
- Erledigt
-
-
Der Listitem Dialog returnt doch schon den Inputtext. Wie sieht der string im Dialog aus ?
-
Den String und den Dialog habe ich so gemacht :
CMD:mycars(playerid,params[])
{
new carstring[800];
for(new i=0;i<sizeof(cInfo);i++){
if(cInfo[i][id_x]==0)continue;
if(cInfo[i][besitzer]!=sInfo[playerid][id0])continue;
format(carstring,sizeof(carstring),"%s%s\n",carstring,GetVehicleName(cInfo[i][id_x]));
}
ShowPlayerDialog(playerid,19,DIALOG_STYLE_LIST,"Owned cars:",carstring,"Select","Close");
return 1;
} -
if(dialogid==19)
{
if(response)
{
new Float:vehX,Float:vehY,Float:vehZ, count = -1;
GetPlayerPos(playerid,vehX,vehY,vehZ);
for(new i=0;i<sizeof(cInfo);i++)
{
if(cInfo[i][besitzer] == sInfo[playerid][id0]) count++;
if(count != listitem) continue;
SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
break;
}
}
} //fehlte??Und pass mit den Klammern auf. Ich hab dir unten noch eine dazu gemacht.
-
if(dialogid==19)
{
if(response)
{
new Float:vehX,Float:vehY,Float:vehZ, count = -1;
GetPlayerPos(playerid,vehX,vehY,vehZ);
for(new i=0;i {
if(cInfo[i][besitzer] == sInfo[playerid][id0]) count++;
if(count != listitem) continue;
SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
break;
}
}
} //fehlte??Und pass mit den Klammern auf. Ich hab dir unten noch eine dazu gemacht.
Vielen Dank
Hatte es schonmal so ähnlich, bin aber nie darauf gekommen count nur zu
erhöhen, wenn ich der Besitzer des Fahrzeuges bin. Und die Klammer
hatte ich, nur vergessen mit zu kopieren -
breadfish.de
Hat das Thema geschlossen.