Problem mit /carfind

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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);
    }

  • 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?

  • 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.