Beiträge von Kaliber

    Warum so kompliziert? :huh:


    Du kannst das ganze einfach splitten:


    PHP
    <?php
        $req = mysqli_query($sqlcon, "SELECT members FROM gangs WHERE id= 1 ");
        $row = mysqli_fetch_array($req);
        $haystack = explode(",",$row[members]); //$row[members] = [`2165265875123`,`2165265875123`]
        for($i=0; $i<count($haystack); $i++) //Hat 2 durchläufe, beide male hat tmp den Wert 2165265875123
        {
            $tmp = substr(str_replace(array("[","]"), "", $haystack[$i]), 1, -1); //$tmp = 2165265875123
        }
    ?>


    mfg. :thumbup:


    //Edit: Code & DJ Deagle:

    Schreibe es so:


    <html>
    <head>
    <meta charset="UTF-8" />
    <script type="text/javascript">
    const euro = 3.0;
    function add() {
    for(var i=0,doc=document.getElementById("content"); i<5; i++) {
    doc.options[""+i].value = parseFloat(doc.options[""+i].value) + euro;
    doc.options[""+i].text = doc.options[""+i].text.slice(0,doc.options[""+i].text.indexOf("|")) + " | " + doc.options[""+i].value.replace(/\./g, ",") + "€";
    }
    return 1;
    }
    function r_z() {
    for(var i=0,doc=document.getElementById("content"); i<5; i++) {
    doc.options[""+i].value = (parseFloat(doc.options[""+i].value) - euro).toFixed(2);
    doc.options[""+i].text = doc.options[""+i].text.slice(0,doc.options[""+i].text.indexOf("|")) + " | " + doc.options[""+i].value.replace(/\./g, ",") + "€";
    }
    return 1;
    }
    </script>
    </head>
    <body>
    <div align="center">


    <br>
    <br>
    <p><img src="Mainlogo.png" alt="Logo"></p>
    <br>



    <p>
    <a href="Ticketverkauf.html"><img src="button1.png" width="160" height="34" border="0" alt="Home"></a>
    <a href="News.html"><img src="button2.png" width="160" height="34" border="0" alt="zurück"></a>
    <a href="Fragen.html"><img src="button3.png" width="160" height="34" border="0" alt="weiter"></a>
    <a href="thema.html"><img src="button4.png" width="160" height="34" border="0" alt="THEMA"></a>
    </p>


    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="payPalForm">
    <input type="hidden" name="item_number" value="Ticketverkauf (Test)">
    Vor und Nachname:<br><input type="text" size="16" name="item_name" value=""><br><br>
    <input type="radio" checked name="color" onClick="r_z();" value="rot"> Stehplatz
    <input type="radio" name="color" onClick="add();" value="grün"> Sitzplatz (+3 Euro)<br><br><br>
    Dies ist eine Demo<br><br>
    <select style="color:#000" name="amount" id="content" size="1">
    <option name="0" value="0.99">100 Coins | 0,99&euro;</option>
    <option name="1" value="11.50">HPDN Event | 11,50&euro;</option>
    <option name="2" value="18.50">Molotow die Bude brennt | 18,50&euro;</option>
    <option name="3" value="7.99">Badenheimer Zerstoerungsquinett | 7,99&euro;</option>
    <option name="4" value="4.50">Scherz Lachen backen | 4,50&euro;</option>
    </div>
    <input type="hidden" name="cmd" value="_donations">
    <input type="hidden" name="business" value="testmail@testmaileqg2t.de">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="no_note" value="0">
    <br><br>
    <input type="image" src="https://igsw.versus-wf.de/idesk/file/pass.php/Files/Homepage/Spenden.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
    </form>
    </body>
    </html>


    mfg. :thumbup:

    1. Den Automaten Mappen
    2. Unter OnPlayerKeyStateChange abfragen ob man enter drückt und vor dem Automaten steht checken (newkeys & KEY_SECONDARY_ATTACK)
    3. Animation ausführen lassen (ApplyAnimation)
    4.


    new Float:h;
    GetPlayerHealth(playerid,h);
    if(h >= 100) return SendClientMessage(playerid,-1,"Sie können nichts mehr trinken!");
    SetPlayerHealth(playerid,h+25.0);


    mfg. :thumbup:

    aber könnte man die Objekte möglicherweise beim auswählen direkt so positionieren, dass
    man nicht die Möglichkeit hat die Objekte in der Luft schweben zu lassen?


    Nein, das ist nicht möglich, da du nicht weißt, wie groß das model von dem Objekt ist, wie weit du vom Boden exakt entfernt bist (mit einer .hmap oder dem San Andreas Plugin würdest du zwar die Z-Koordinate rausbekommen, aber du kannst ja noch in einem Objekt sein oder auf einem Auto...etc etc) und somit kannst du nicht die exakte Z-Koordinate bestimmen.


    Aber ich denke, es ist nicht so schlimm, das Objekt ein wenig zu bewegen :rolleyes:

    Ich sehe das Label mit den Rotationen hängt da oben einfach nur rum xD


    Schreib das mal so:


    //und unter OnPlayerEditObject
    if(response == EDIT_RESPONSE_FINAL)
    {
    Delete3DTextLabel(label);
    }
    if(response != EDIT_RESPONSE_FINAL)
    {
    new string[128];
    format(string,128,"X: %.02f | Y: %.02f | Z: %.02f",fRotX,fRotY,fRotZ);
    Delete3DTextLabel(label);
    label = Create3DTextLabel(string,0xFF4800FF,fX,fY,fZ+2.5,20.0,0,0);
    }


    Jetzt würde sich das Label mit dem Objekt mitbewegen und am Ende auch verschwinden ;)


    mfg. :thumbup:

    Ist es eigentlich möglich, bei drehen eines Objekts den Winkel anzeigen zu lassen?


    Wenn du mit "Winkel" die Rotations-Achsen meinst, dann natürlich :)


    new Text3D:label; //Oben ins Skript


    label = Create3DTextLabel("X: 0.0 | Y: 0.0 | Z: 0.0",0xFF4800FF,p[0],p[1],p[2]+2.5,20.0,0,0); //Dahin wo auch das Objekt erstellt wird


    //und unter OnPlayerEditObject
    new string[128];
    format(string,128,"X: %.02f | Y: %.02f | Z: %.02f",fRotX,fRotY,fRotZ);
    Update3DTextLabelText(label, 0xFF4800FF, string);


    mfg. :thumbup:

    DIALOG_GEBAEUDE_EINRICHTUNG


    Naja, du machst das dann einfach so:


    case DIALOG_GEBAEUDE_EINRICHTUNG: {
    if(!response) return 1; //hier hat er auf Beenden geklickt
    const Float:distance = 5.0;
    new Float:p[4];
    GetPlayerPos(playerid,p[0],p[1],p[2]),GetPlayerFacingAngle(playerid,p[3]);
    p[0] += (distance * floatsin(-p[3], degrees)); //Damit das Objekt vor dem Spieler erstellt wird
    p[1] += (distance * floatcos(-p[3], degrees)); //Damit das Objekt vor dem Spieler erstellt wird
    new object = CreateObject(EinrichtungObjeckte[listitem][_:0],p[0],p[1],p[2],0,0,0);
    return EditObject(playerid, object);
    }


    Da wo ich _:0 geschrieben habe, musst du den Namen von deinem Enumerator Item einsetzen, also z.B. attachid oder was du da halt geschrieben hast :)


    new string[4000+1];


    Du kannst das genau bestimmen durch:


    new string[sizeof(EinrichtungObjeckte[]) * sizeof(EinrichtungObjeckte)];


    new EinrichtungObjeckte[][ObjekteEnum]


    und schreib das so:


    stock const EinrichtungObjeckte[][ObjekteEnum]


    Dann kannst du schneller auf die Werte zugreifen und nicht ausversehen mal verändern ;)


    mfg. :thumbup:


    //Edit: Code

    Wie viele Kentnisse brauche ich???


    Du musst wissen, wie man etwas speichert (hier wäre My/SQL/ite von Vorteil).


    Und dann musst du wissen, wie du es lädst und eine Variable mit einem MAX_VEHICLES Array erstellt, der du das alles zuweist...


    Und wissen, wie man einen Dialog erstellt wäre auch gut :)


    und die Nutzung von format wäre auch nicht verkehrt xD


    Ansonsten, kein Hexen-Werk :)


    mfg. :thumbup:

    OnQueryError() - Called


    Füge das mal ein:


    public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle)
    {
    switch(errorid)
    {
    case CR_COMMAND_OUT_OF_SYNC:
    {
    printf("Commands out of sync for thread ID: %d",resultid);
    }
    case ER_SYNTAX_ERROR:
    {
    printf("Something is wrong in your syntax, query: %s",query);
    }
    }
    return 1;
    }


    und zeig dann mal den server_log ;)

    Dann würde ich aber jedem Spieler eine andere virtuelle Welt geben, weil die doch sonst hässlich ineinander buggen, oder?


    Naja, was heißt jedem Spieler, wenn dann dem Spieler, der gerade das Ding benutzt.


    Ich meine, es sollen ja eh nicht mehrere Leute gleichzeitig in ein Ding reinfahren, aber das mit der virtuellen Welt ist eine gute Idee, falls wer schon im anderen PNS/Transfender ist von GTA aus.


    SetPlayerVirtualWorld(playerid,playerid+1);
    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),playerid+1);


    Damit setzt du den Spieler in eine eigenen Virtuelle Welt :)


    mfg. :thumbup: