/carlock funktioniert nicht

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
  • Etwas mehr bitte. Was soll ich denn damit anfangen? Wenigstens die ganze Zeile davon. :|


    sry war ein fail hab net alles kopiert gehabt
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=sInfo[playerid][db_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }

  • Danke. :P


    ocmd:carlock(playerid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective, vID, bool:privateVeh = false;
    if(!IsPlayerInAnyVehicle(playerid))
    {
    new Float:x, Float:y, Float:z;
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    GetVehiclePos(i, x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
    {
    vID = i;
    break;
    }
    }
    }
    else vID = GetPlayerVehicleID(playerid);
    if(vID == 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in einem Auto, oder nahe genug an einem Auto.");
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(vID == cInfo[i][id_x])
    {
    privateVeh = true;
    break;
    }
    }
    if(!privateVeh) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieses Auto ist kein privates Auto.");
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    switch(doors)
    {
    case 1:
    {
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    new string[144];
    format(string, sizeof(string), "{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0xE10000FF}aufgeschlossen", GetVehicleFriendlyName(vID));
    SendClientMessage(playerid,weiß, string);
    }
    default:
    {
    SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
    new string[144];
    format(string, sizeof(string),"{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0x00FF00FF}abgeschlossen", GetVehicleFriendlyName(vID));
    SendClientMessage(playerid,weiß, string);
    }
    }
    return 1;
    }

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • Großes Dankeschön funktioniert jetze alles so wie ich das will aber eine Kleine frage hätte ich noch
    frage 1 wenn ich ein car Kaufe soll das direkt abgeschlossen sein und nicht offen wie machen ich das und
    frage 2 wie speichere ich ob das car abgeschlossen ist ?
    was braucht ihr für codes dafür ?


    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    new rand = random(sizeof(RandomSpawn));
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2],RandomSpawn[rand][3]);
    SetPlayerCheckpoint(playerid, RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2], 3.0);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Es wurde dir ein Marker auf der Map gesetzt");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Du kannst nun dein Fahrzeug hinter der Truckerbase in Ls abholen");
    printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Mit der Funktion GetVehicleParamsExkannst du Türen, auf/zuschließen.


    wenn ich das jetze so einfüge kommt ein Error
    C:\Users\papa\Desktop\Selfmadescript\gamemodes\Reallife-Kopie.pwn(1720) : error 017: undefined symbol "vID"
    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    new rand = random(sizeof(RandomSpawn));
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2],RandomSpawn[rand][3]);
    SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
    SetPlayerCheckpoint(playerid, RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2], 3.0);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Es wurde dir ein Marker auf der Map gesetzt");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Du kannst nun dein Fahrzeug hinter der Truckerbase in Ls abholen");
    printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }

  • Das
    SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
    wieder weg machen und bei deiner createPlayerCar Funktion hinschreiben, und zwar unter CreateVehicle:


    SetVehicleParamsEx(cInfo[i][id_x],engine,lights,alarm,1,bonnet,boot,objective);

  • SetVehicleParamsEx(cInfo[i][id_x],engine,lights,alarm,1,bonnet,boot,objective);


    dann bekomme ich diesen Error
    C:\Users\papa\Desktop\Selfmadescript\gamemodes\Reallife-Kopie.pwn(1720) : error 017: undefined symbol "i"
    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    new rand = random(sizeof(RandomSpawn));
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2],RandomSpawn[rand][3]);
    SetVehicleParamsEx(cInfo[i][id_x],engine,lights,alarm,1,bonnet,boot,objective);
    SetPlayerCheckpoint(playerid, RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2], 3.0);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Es wurde dir ein Marker auf der Map gesetzt");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Du kannst nun dein Fahrzeug hinter der Truckerbase in Ls abholen");
    printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }

  • Das muss in die Funktion in der du das Vehicle erstellst unter dem CreateVehicle stehen ;)


    C:\Users\papa\Desktop\Selfmadescript\gamemodes\Reallife-Kopie.pwn(693) : error 017: undefined symbol "engine"
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=sInfo[playerid][db_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    SetVehicleParamsEx(cInfo[i][id_x],engine,lights,alarm,1,bonnet,boot,objective);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }

  • Poste den Code mit dem du deine Autos speicherst und mit dem du sie lädst.


    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)continue;
    if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
    DestroyVehicle(cInfo[i][id_x]);
    cInfo[i][id_x]=0;
    }
    savePlayer(playerid);
    resetPlayer(playerid);
    if(newbie[playerid]) DestroyVehicle(newbie[playerid]),newbie[playerid]=0;
    return 1;
    }


    loadPlayerCars(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
    return 1;
    }


    public carSavedToDB(carid)
    {
    cInfo[carid][db_id]=cache_insert_id(dbhandle);
    return 1;
    }


    saveCarToDB(playerid,carid)
    {
    new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
    return 1;
    }

  • OnPlayerCarsLoad


    fail :D


    public OnPlayerCarsLoad(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
    }
    return 1;
    }


    loadPlayerCars(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
    return 1;
    }

  • public OnPlayerCarsLoad(playerid)
    {
    new num_fields,num_rows, doors;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    doors=cache_get_field_content_int(i,"doors",dbhandle);
    cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
    SetVehicleParamsEx(cInfo[id][id_x],0,0,0,doors,0,0,0);
    }
    return 1;
    }


    saveCarToDB(playerid,carid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(cInfo[carid][id_x],engine,lights,alarm,doors,bonnet,boot,objective);
    new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,doors) VALUES ('%i','%i','%f','%f','%f','%f','%d')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r],doors);
    mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
    return 1;
    }


    Beachte, dass du die Spalte "doors" auch in der Datenbank erstellen musst.
    Außerdem fehlt noch immer der Teil, mit dem du ein Auto speicherst, aktualisierst (nicht hinzufügst!).

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen