Auto spawnt extrem verzögert oder gar 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
  • Ich hab das nicht so genau kapiert
    meintest du das so???


    if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    // for(new count=1;count<MAX_VEHICLES;count++)
    format(string, sizeof(string),"Autos/vehicle_%d.sav",count);
    while(count<MAX_VEHICLES && !CreateINI(string))count++;
    {
    CreateINI(string);
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    count = MAX_VEHICLES;
    return 1;
    }
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    }


    // Edit überarbeitet

  • if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    while(count<MAX_VEHICLES && !CreateINI(string)){format(string, sizeof(string),"Autos/vehicle_%d.sav",count);count++;}
    if(count==MAX_VEHICLES && fexist(string))return 1;
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    return 1;
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    while(count<MAX_VEHICLES && !CreateINI(string)){format(string, sizeof(string),"Autos/vehicle_%d.sav",count);count++;}
    format(string, sizeof(string),"Autos/vehicle_%d.sav",count);
    if(count==MAX_VEHICLES && fexist(string))return 1;
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    return 1;
    }

    Versuchs jetzt mal

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • unverändert klappt nach wie vor nicht
    //edit so klappts
    if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count=1;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    format(string, sizeof(string),"Autos/vehicle_%d.sav",count);
    while(count<MAX_VEHICLES && !CreateINI(string))count++;
    {
    CreateINI(string);
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    count = MAX_VEHICLES;
    return 1;
    }
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    }


    Aber mit einem kleinen lagg der aber nicht so schlimm ist^^

  • Nein ich habe nun deins genommen genauer durch geschaut und den Fehler gefunden
    das was du dachstest was ich entfernen sollte ist FALSCH
    also hier mal Dein
    if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    while(count<MAX_VEHICLES && !CreateINI(string)){format(string, sizeof(string),"Autos/vehicle_%d.sav",count);count++;}
    format(string, sizeof(string),"Autos/vehicle_%d.sav",count);
    if(count==MAX_VEHICLES && fexist(string))return 1;
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    return 1;
    }


    Schau dir mal genau Zeile 26-28 an
    nun die verbesserte Version von deinem
    und mit new count=1 statt new count fangen nun die IDs von 1 an :)
    if(strcmp(cmd, "/auto", true)==0)
    {
    if(Account[playerid][Admin] == 3)
    {
    new modelid,respawn,count=1;
    new Float:isx,Float:isy,Float:isz;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    modelid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SCM(playerid, COLOR_WHITE, "Benutze: /auto [modelid] [Respawn Time]");
    return 1;
    }
    respawn = strval(tmp);
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    SCM(playerid,COLOR_LIGHTRED," Auto erstellt ");
    SCM(playerid,COLOR_GREEN,"/////////////////////////////////////////////////");
    GPP(playerid,Float:isx,Float:isy,Float:isz);
    CreateVehicle(modelid,isx,isy,isz,0,0,0,respawn);
    format(string, sizeof(string),"Autos/vehicle_%d.sav",count);
    while(count<MAX_VEHICLES && !CreateINI(string))
    if(count==MAX_VEHICLES && fexist(string))return 1;
    Autos[count][vModel] = modelid;
    Autos[count][vEingepackt] = 0;
    Autos[count][vArt] = 0;
    Autos[count][vX] = isx;
    Autos[count][vY] = isy;
    Autos[count][vZ] = isz;
    Autos[count][vA] = 0;
    Autos[count][vFarbe1] = 0;
    Autos[count][vFarbe2] = 0;
    Autos[count][vVerkauf] = 0;
    Autos[count][vPreis] = 0;
    Autos[count][vKMStand] = 0;
    Autos[count][vRKMStand] = 0;
    strmid(Autos[count][vBesitzer], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch1], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch2], "Niemand", 0, strlen("Niemand"), 255);
    strmid(Autos[count][vSch3], "Niemand", 0, strlen("Niemand"), 255);
    Autos[count][vBeschlagnahmt] = 0;
    Autos[count][vBX] = isx;
    Autos[count][vBY] = isy;
    Autos[count][vBZ] = isz;
    Autos[count][vBA] = 0;
    Autos[count][vRespawn] = respawn;
    OnVehicleDataUpdate(count);
    }
    else
    {
    SCM(playerid, COLOR_RED, "Du bist kein Admin!");
    return 1;
    }
    return 1;
    }


    Der Fehler lag darin:
    Du ladest was aus einem String
    anschließend kommt erst der String
    dann ladest du wieder was aus einem String
    du musstest den string selbst erst ganz nach oben paken^^
    man kann ja nicht erst aus einem string laden und ihn dannach erst "erstellen"


    //edit noch ein mal verbessert läuft nun ohne laggs und speichert optimal :)
    //edit2 doch ein problem
    Ich kann nur ein Auto spawnen das wird auch ohne probleme gespeichert
    doch wenn ich ein 2. Auto spawne erscheint es nicht aber die Datei wird auf das 2. Auto überschrieben
    obwohl für jedes gespawnte Auto extra einen Datei erstellt werden soll



    6 Mal editiert, zuletzt von Tomi93 ()

    • Solange hochzählen solange die Datei existiert sprich while schleife
    • nach der Schleife erstellst du deine neue Datei
    • Schreibst die Daten darein

    Ich hoffe du hast den Sinn der Sache verstanden

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Beispiel...
    new count;
    format(datei,sizeof datei,"vehicle_%d",count);
    while(fexist(datei))
    {
    count++;
    format(datei,sizeof datei,"vehicle_%d",count);
    }
    [...]
    danach erstellst du die Datei bzw. nach dieser Schleife da sie abgebrochen wird sobald die Datei existiert

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


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