Fraktionsfahrzeuge

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
    • Offizieller Beitrag

    Hallo zusammen!

    COMMAND:fcars(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") == 0) return SCM(playerid,COLOR_GREY,"Du bist in keiner Fraktion.");
    if(GetPVarInt(playerid,"Leader") == 0) return SCM(playerid,COLOR_GREY,"Du bist kein Leader.");

    new var,string[1256],lol[1256];
    printf("1");

    for(new i=0;i<MAX_FRAKCARS;i++)
    {
    if(FrakCarInfo[i][f_Fraktion] == GetPVarInt(playerid,"Fraktion"))
    {
    format(string,sizeof(string),"%s\n%s: Model: %i Vehicleid: %i",string,GetVehicleName(FrakCarInfo[i][f_ID]),FrakCarInfo[i][f_Model],FrakCarInfo[i][f_ID]);
    var++;
    printf("%i",FrakCarInfo[i][f_ID]);
    }
    }
    printf("1");
    if(!var) return SCM(playerid,COLOR_GREY,"Zurzeit besitzt deine Fraktion keine Fahrzeuge.");
    printf("1");


    format(lol,sizeof(lol),"{FFFFFF}Folgende Fahrzeuge besitzt deine Fraktion:\n\n%s",string);
    ShowPlayerDialog(playerid,DIALOG_ALL,DIALOG_STYLE_MSGBOX,"{FF9900}Fraktionsfahrzeuge",lol,"OK","");
    printf("1");
    return 1;
    }


    Die Schleife läuft korrekt durch und gibt auch über printf(); die korrekten Fahrzeug IDs zurück.
    Nur alles was nach der Schleife kommt wird nicht ausgeführt. Das Problem taucht aber erst auf, nachdem ein Fahrzeug gelöscht/verkauft wurde.


    Ein Beispiel für einen "Lösch"-Command (/verkfcar):

    COMMAND:verkfcar(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    if(GetPVarInt(playerid,"Fraktion") == 0) return SCM(playerid,COLOR_GREY,"Du bist in keiner Fraktion.");
    if(GetPVarInt(playerid,"Leader") == 0) return SCM(playerid,COLOR_GREY,"Du bist kein Leader.");

    if(IsAFrakCar(GetPlayerVehicleID(playerid)) != -1)
    {
    new car = IsAFrakCar(GetPlayerVehicleID(playerid));
    GivePlayerMoneyEx(playerid,FrakCarInfo[car][f_Preis]/2);
    format(squery,sizeof(squery),"DELETE FROM `Fraktionsfahrzeuge` WHERE `ID` = '%d'",car);
    mysql_query(squery);
    KillFrakCar(car);
    SCM(playerid,COLOR_GREY,"Fraktionsfahrzeug verkauft.");
    }
    else
    {
    SCM(playerid,COLOR_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
    }
    return 1;
    }

  • Schreibe das so:
    stock KillFrakCar(id)
    {
    DestroyVehicle(FrakCarInfo[id][f_ID]);
    FrakCarInfo[id][f_ID] = 0;
    }


    Und das:
    if(FrakCarInfo[i][f_Fraktion] == GetPVarInt(playerid,"Fraktion"))
    zu:
    if(FrakCarInfo[i][f_Fraktion] == GetPVarInt(playerid,"Fraktion") && FrakCarInfo[i][f_ID] > 0)




    EDIT:
    shoxinat0r: Gerne, kein Problem. Freut mich :)

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()