Zollstation (Koordinaten) == Schranke 1 oder Schranke 2

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



    Wie im Thema INSERT INTO klappt nicht angefangen,


    brauche ich da noch 1 mal Hilfe


    da das da ja nicht reingehört schreibe ich da jetzt mal einen neuen Beitrag





    also wie die Überschrift schon sagt brauche ich eine Abfrage ob


    Zollstation(Koordinaten) mit der dementsprechenden ID == Schranke 1 oder 2



    ich habe das ganze erstmal basieren lassen auf dem Haussystem von MR Monat.


    aus Createhaus wurde dann Createzoll und mit setpreis wurde setzollpreis



    nun brauche ich halt diese Abfrage um zu gucken. Welche Zollstation ist das. und zu jeder Zollstation muss ich dann die 2 Schranken zuordnen können.



    Hier habt ihr mal mein /buyzollticket befehl mit DIALOG


    ocmd:buyzollticket(playerid,params[])
    {
    new string[128];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5,1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {

    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5,1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {

    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }

    }




    und hier die dialoge die meine schranken dann bewegen



    Spoiler anzeigen
    //ZollSystem

    //LV
    if(dialogid == DIALOG_ZOLL_LS_LV)
    {
    if(response)
    {
    //Zollticketprozess (kaufen)

    if(GetPlayerMoney(playerid)<zInfo[playerid][z_preis])
    {
    SendClientMessage(playerid,RED,"Du hast nicht genügend Geld um dir ein Zollticket zu kaufen");

    return 1;
    }
    GivePlayerMoney(playerid,-zInfo[playerid][z_preis]);
    //Schranke Bewegen
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    MoveObject(ZLV1L,1648.6, -42.1, 36.4,3);
    SetObjectRot(ZLV1L,0, 0, 31.5);
    SetTimerEx("ZLVL1",7000,false,"i",playerid);
    SendClientMessage(playerid,CLGREEN,"Du hast dir erfolgreich ein Zollticket gekauft! Gute Fahrt!");
    SendClientMessage(playerid,CL_ORANGE,"Du kannst nun weiterfahren");

    return 1;
    }
    else
    {

    SendClientMessage(playerid,RED,"Du hast den Kauf des Zolltickets abgebrochen");
    return 1;
    }
    }




    if(dialogid == DIALOG_ZOLL_LV_LS)
    {
    if(response)
    {
    //Zollticketprozess (kaufen)

    if(GetPlayerMoney(playerid)<zInfo[playerid][z_preis])
    {
    SendClientMessage(playerid,RED,"Du hast nicht genügend Geld um dir ein Zollticket zu kaufen");

    return 1;
    }
    GivePlayerMoney(playerid,-zInfo[playerid][z_preis]);
    //Schranke Bewegen
    //ZLV1R/auf CreateObject(968, 1656.6, -35.6, 36.5, 0, 2.748, 23.744);
    //ZLV1R/zu CreateObject(968, 1656.6, -35.5, 36.5, 0, 267.747, 26.491);
    MoveObject(ZLV1R,1648.6, -42.1, 36.4,3);
    SetObjectRot(ZLV1R,0, 0, 31.5);
    SetTimerEx("ZLVR1",7000,false,"i",playerid);
    SendClientMessage(playerid,CLGREEN,"Du hast dir erfolgreich ein Zollticket gekauft! Gute Fahrt!");
    SendClientMessage(playerid,CL_ORANGE,"Du kannst nun weiterfahren");

    return 1;
    }
    else
    {

    SendClientMessage(playerid,RED,"Du hast den Kauf des Zolltickets abgebrochen");
    return 1;
    }
    }



    und die entsprechenden Timer die die Schranke schließen



    Spoiler anzeigen
    forward ZLVL1(playerid);
    public ZLVL1(playerid)
    {

    MoveObject(ZLV1L,1648.5996, -42.09961, 36.4,10);
    SetObjectRot(ZLV1L,0, 268.25, 22.998);
    SendClientMessage(playerid,-1,"Die Schranke wird geschlossen");
    return 1;
    }

    Spoiler anzeigen
    //1656.6, -35.5, 36.5, 0, 267.747, 26.491

    Spoiler anzeigen
    forward ZLVR1(playerid);
    public ZLVR1(playerid)
    {

    MoveObject(ZLV1R,1656.6, -35.5, 36.5,10);
    SetObjectRot(ZLV1R, 0, 267.747, 26.491);
    SendClientMessage(playerid,-1,"Die Schranke wird geschlossen");
    return 1;
    }



    Anmerkung

    Spoiler anzeigen
    DIALOG_ZOLL_LV_LS sagt aus dass die schranke von LV nach LS gemeint ist.
    Beim anderen Dialog umgekehrt also LS nach LV




    VIelen dank wenn mir jmd die abfrage sagen kann



    MFG

  • Da du ja gemeint hast, dass es fest gesetzt werden soll, würde es so aussehen:
    ocmd:buyzollticket(playerid,params[])
    {
    new string[145];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    zInfo[playerid][z_preis] = 250;
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    zInfo[playerid][z_preis] = 500;
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist bei keiner Zollstation.");
    }

  • Dann kannst du das aber nicht über playerid steuern.
    ocmd:buyzollticket(playerid,params[])
    {
    new string[145];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist bei keiner Zollstation.");
    }



    Beim Dialog:
    LS_LV:
    GivePlayerMoney(playerid,-zInfo[0][z_preis]);


    LV_LS:
    GivePlayerMoney(playerid,-zInfo[1][z_preis]);



    Beim Befehl mit dem du den Preis änderst:
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    zInfo[0][z_preis] = WERT_DER_EINGEGEBEN_WIRD;
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    zInfo[1][z_preis] = WERT_DER_EINGEGEBEN_WIRD;
    }

  • ich wollte die position der zollstation ja mit der der schranken überprüfen und dann mit der ID verbinden die in der DB steht



    also so



    ID ZOLL X Y Z = INRANGE X von SCHRANKE 1 XYZ oder SCHRANKE 2 XYZ


    preis = X


    nur dafür muss ich ja die IDS zuordnen der schranken



    ... ?( ?( ?(