Hallo,
ich hab ein Problem und zwar, ich will das er automatisch die CarID's ausliest und wenn man auf eins drauf klickt (wird im Dialog angezeigt) dann wird das makiert.
Der Code:
ocmd:carfind(playerid, params[]){
new str[1500],headline[64],count;
for(new i; i != MAX_VEHICLES; ++i){
if(!sCarInfo[i][scName][0])continue;
if(strcmp(PlayerName(playerid),sCarInfo[i][scName],false) == 0){
format(str,sizeof(str),"%s{FFFFFF}Name: %s | Suchen & Makieren\n",str,GetVehicleName(sCarInfo[i][CarModelID]));
++count;
}
}
if(!count)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug");
format(headline,sizeof(headline),"Du hast %d Fahrzeug(e).",count);
return ShowPlayerDialog(playerid,AUTO_FIND,DIALOG_STYLE_LIST,headline,str,"Bestätigen","Schließen");
}
if(dialogid == AUTO_FIND){
if(!response)return SendClientMessage(playerid,-1,"Suche wurde abgebrochen!");
strdel(inputtext,0,strfind(inputtext,";")+2);
new veh = strval(inputtext);
new Float:Pos[3];
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
format(string,sizeof(string),"Dir wurde ein Checkpoint gesetzt! (CarID: %i) - Mache wieder /carfind um den Checkpoint zu löschen!",veh);
SendClientMessage(playerid,-1,string);
return SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 6);
}
Problem mit /carfind
- tobialvarez
- Geschlossen
- Erledigt
-
-
if(dialogid == AUTO_FIND)
{
if(!response)return SendClientMessage(playerid,-1,"Suche wurde abgebrochen!");
new veh, count = -1;
for(new i; i != MAX_VEHICLES; ++i)
{
if(!sCarInfo[i][scName][0])continue;
if(strcmp(PlayerName(playerid),sCarInfo[i][scName],false) == 0)
{
++count;
if(count == listitem)
{
veh = sCarInfo[i][real_vehicle_ID];
break;
}
}
}
new Float:Pos[3];
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
format(string,sizeof(string),"Dir wurde ein Checkpoint gesetzt! (CarID: %i) - Mache wieder /carfind um den Checkpoint zu löschen!",veh);
SendClientMessage(playerid,-1,string);
return SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 6);
}
So? -
veh = sCarInfo[i][real_vehicle_ID];dieses real_vehicle_ID besitze ich nicht ... :<
/E:
Oder kannst du mir sagen, eine Funktion die ähnelt wie GetPlayerVehicleID ... ich will ja nur die CarID auslesen können -
Naja, das sollst du ja auch ersetzen.
Wie erstellst du denn die Autos nach denen du suchst? -
Naja, das sollst du ja auch ersetzen.
Wie erstellst du denn die Autos nach denen du suchst?
stock CreatePlayerCar(playerid,modelid, Float:X, Float:Y, Float:Z, Float:A, repPreis, kaufPreis){
new id = getFreeSlot();
//new veh = GetPlayerVehicleID(playerid);
if(id == -1)return SendClientMessage(playerid,-1,"Du kannst dir kein Auto kaufen das Limit ist erreicht.");
sCarInfo[id][CarModelID] = modelid;
sCarInfo[id][pCarPos_X] = X;
sCarInfo[id][pCarPos_Y] = Y;
sCarInfo[id][pCarPos_Z] = Z;
sCarInfo[id][pCarPos_A] = A;
AHCarKauf[id][RepPreis] = repPreis;
sCarInfo[id][VKPreis] = kaufPreis;
sCarInfo[id][CarTank] = GetGasMax(GetVehicleModel(id));
strcat(sCarInfo[id][scName],PlayerName(playerid),MAX_PLAYER_NAME);
format(query,256,"INSERT INTO `autos` (`Name`,`ModelID`,`AutoX`,`AutoY`,`AutoZ`, `AutoA`,`ReparaturPreis`, `VKPreis`, `CarTank`, `CarKM`) VALUES ( '%s', %d, %f , %f, %f, %f, %d, %d, %f, %f);",PlayerName(playerid),sCarInfo[id][CarModelID],sCarInfo[id][pCarPos_X],sCarInfo[id][pCarPos_Y],sCarInfo[id][pCarPos_Z],sCarInfo[id][pCarPos_A],AHCarKauf[id][RepPreis],sCarInfo[id][VKPreis],sCarInfo[id][CarTank],sCarInfo[id][CarKM]);
mysql_query(query);
sCarInfo[id][CarID] = mysql_insert_id();
sCarInfo[id][VehID] = CreateVehicle(sCarInfo[id][CarModelID],sCarInfo[id][pCarPos_X],sCarInfo[id][pCarPos_Y],sCarInfo[id][pCarPos_Z],sCarInfo[id][pCarPos_A],0,0,-1);
PutPlayerInVehicle(playerid,sCarInfo[id][VehID],0);
return 1;
}Oder die letzte Parkplatz Position geht auch .. ich hab das so gemacht, zeigt mir aber auch ID 0 an ... irgendwas läuft schief.
-
veh = sCarInfo[i][vehID];
-
veh = sCarInfo[i][vehID];
Soll ich den Befehl dann so lassen, also so wie er im ersten Beitrag von mir steht?
-
Ja.
-
breadfish.de
Hat das Thema geschlossen.