Problem mit einer Fahrzeugabfrage

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 Liebe Brotfische ich hab da ein kleines Problem was die Fahrzeugabfrage für ein Befehl von mir angeht...


    Problem ist es, dass der Befehl nicht funktioniert und ich mit keinem Fahrzeug irgendwie mehr Produkte kaufen kann.
    Und zwar möchte ich das man nur wenn man in bestimmten Fahrzeugen sitzt, dass man seine Produkte dann kaufen kann, das ganze habe ich schon probiert und sieht so aus:



    ocmd:produktekaufen(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") !=1 && GetPVarInt(playerid,"Leader") !=1)return SCM(playerid,rot,"Du bist kein Trucker");
    if(!IsPlayerInVehicle(playerid,478) && !IsPlayerInVehicle(playerid,600) && !IsPlayerInVehicle(playerid,554) && !IsPlayerInVehicle(playerid,543) && !IsPlayerInVehicle(playerid,422))return SCM(playerid,rot,"Du bist in keinem Truckerfahrzeug.");
    if(!IsPlayerInRangeOfPoint(playerid,10,abholpunktderprodukte))return SCM(playerid,rot,"Sie sind nicht in der nähe des Kaufbereiches.");
    {
    new anzahl,string2[128],string3[128];
    new Geld;
    new string[256];
    if(GetPVarInt(playerid,"Produkte") == maxkaufprodukte) return SCM(playerid,rot,"Du kannst keine Produkte mehr bei dir führen, da du die maximal Menge bereits bei trägst.");
    if(sscanf(params,"i",anzahl))return SCM(playerid,hblau,"/produktekaufen [Produkte]");
    if(GetPlayerMoney(playerid) < anzahl*produktkosten)
    {
    format(string2,sizeof(string2),"Nicht genug Geld dabei. Kosten pro Produkt: %i$",produktkosten);
    SCM(playerid,rot,string2);
    return 1;
    }
    format(string,sizeof(string),"Sie können soviele Produkte nicht mehr kaufen. Derzeit: %i/%i",GetPVarInt(playerid,"Produkte"),maxkaufprodukte);
    if(anzahl + GetPVarInt(playerid,"Produkte") > maxkaufprodukte) return SCM(playerid,rot,string);
    SetPVarInt(playerid,"Produkte",GetPVarInt(playerid,"Produkte")+anzahl);
    Geld = anzahl*produktkosten;
    GivePlayerMoney(playerid,-Geld);
    SpielerSpeichern(playerid);
    format(string3,sizeof(string3),"Sie haben %i Produkte für %i$ gekauft.",anzahl,Geld);
    SCM(playerid,grün,string3);
    }
    return 1;
    }


    Dieses " ! " vor jeder IsPlayerInVehicle Abfrage, steht doch für ist nicht, wenn ich mich recht entsinne und wird somit von der SendClientMessage bei mir returnt.
    Aber das ist leider nicht der Fall.
    Könnt ihr mir vielleicht helfen, dass ich den Befehl so hinbekomme, dass ich NUR mit den oben angegeben Fahrzeugen Produkte kaufen kann?


    Mit freundlichem Gruß


    Ulti


    //edit Problem hinzugefüt

    Don't Flame get Aim.

  • Thema noch nicht erledigt obwohl schon abgehackt... falscher knopf ^^


    ocmd:produktekaufen(playerid,params[]){
    if(GetPVarInt(playerid,"Fraktion") !=1 && GetPVarInt(playerid,"Leader") !=1)return SCM(playerid,rot,"Du bist kein Trucker");
    if(!IsPlayerInVehicle(playerid,478) && !IsPlayerInVehicle(playerid,600) && !IsPlayerInVehicle(playerid,554) && !IsPlayerInVehicle(playerid,543) && !IsPlayerInVehicle(playerid,422))return SCM(playerid,rot,"Du bist in keinem Truckerfahrzeug.");
    if(!IsPlayerInRangeOfPoint(playerid,10,abholpunktderprodukte))return SCM(playerid,rot,"Sie sind nicht in der nähe des Kaufbereiches.");
    {
    new anzahl,string2[128],string3[128];
    new Geld;
    new string[256];
    if(GetPVarInt(playerid,"Produkte") == maxkaufprodukte) return SCM(playerid,rot,"Du kannst keine Produkte mehr bei dir führen, da du die maximal Menge bereits bei trägst.");
    if(sscanf(params,"i",anzahl))return SCM(playerid,hblau,"/produktekaufen [Produkte]");
    if(GetPlayerMoney(playerid) < anzahl*produktkosten)
    {
    format(string2,sizeof(string2),"Nicht genug Geld dabei. Kosten pro Produkt: %i$",produktkosten);
    SCM(playerid,rot,string2);
    return 1;
    }
    format(string,sizeof(string),"Sie können soviele Produkte nicht mehr kaufen. Derzeit: %i/%i",GetPVarInt(playerid,"Produkte"),maxkaufprodukte);
    if(anzahl + GetPVarInt(playerid,"Produkte") > maxkaufprodukte) return SCM(playerid,rot,string);
    SetPVarInt(playerid,"Produkte",GetPVarInt(playerid,"Produkte")+anzahl);
    Geld = anzahl*produktkosten;
    GivePlayerMoney(playerid,-Geld);
    SpielerSpeichern(playerid);
    format(string3,sizeof(string3),"Sie haben %i Produkte für %i$ gekauft.",anzahl,Geld);
    SCM(playerid,grün,string3);
    }
    return 1;
    }

    Don't Flame get Aim.

  • Versuch es mal mit dieser Abfrage:


    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,farbe,"Du bist in keinem Fahrzeug.");
    und dann halt deine Abfrage ob er in dem bestimmten Fahrzeug ist.


    MfG

    Ihr habt das normale Pawno satt? Notepad ++ mit allen Pawnofunktionen, hier zum Downloaden, Klick

  • Er fragt nur ab ob ich einenm Fahrzeug sitze das ist klar und funktioniert auch, ich möchte aber das der Fahrer in einem Speziellen Fahrzeug sitzt.


    Sagen wir Bobcat, die FahrzeugID dafür ist: 422
    Es könnte auch sein das diese Abfrage für die Fahrzeug id falsch ist, also diese hier:
    if(!IsPlayerInVehicle(playerid,422))return SCM(playerid,rot,"Du bist in keinem Truckerfahrzeug.");


    Es könnte ja auch sein das ich die Model Id von dem Fahrzeug abfragen muss, oder?


    //Edit Model Id abfrage ausprobiert... funktioniert auch nciht slebst mit der gleichen ModelID

    Don't Flame get Aim.

    Einmal editiert, zuletzt von Ultimegastriker ()