Beiträge von Klemmlampe


    if(!strcmp(cmdtext,"/flip",true)) {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFF0000AA,"Du bist nicht in einem Auto!");
    new Float:angle, Float:x,Float:y,Float:z, currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    GetVehiclePos(currentveh,x,y,z); // Sinn?
    SetVehiclePos(currentveh, x,y,z); //Sinn?
    return SendClientMessage(playerid,ROT,"{FFFF00}*SERVER: Fahrzeug geflippt!");//flip
    }

    Die mit "// Sinn?" gekennzeichneten Zeilen können entfernt werden, da das Auto schon durch das Setzen von der Angle "geflipt"/umgedreht wird.

    Das ! ist da schon richtig, wenn der Spieler NICHT (Not-Operator !) in einem Fahrzeug ist, beende die Funktion.
    new currentveh;
    if(IsPlayerInVehicle(playerid,currentveh))

    Kann 1. nicht funktionieren, da currentveh=0 ist (Initiationswert) und 2. ist es sinnlos, da durch IsPlayerInAnyVehicle überprüft wird, ob der Spieler in einem Fahrzeug ist.

    Eben den Test nochmal mit 100.000.000 durchgeführt und das ist das Ergebnis:

    Code
    Durchgang 	Ternary		Normal
    1		2906		3542
    2		2924		3534
    3		2907		3544
    4		2922		3540


    Wenn sich nun schon bei 4 Durchgängen ein solch riesiger Unterschied aufzeigt, wird sich das mit mehr Durchläufen nicht ändern. Interessant zu wissen wäre allerdings, wie sich viel Code innerhalb eines Ternaries und einer normalen Abfrage verhält, da beim Test nur eine Variable geändert wurde.

    Wenn die Moderatoren "besseres" zu tun haben, sollen sie doch bitte keine Moderatoren sein. Es ist ihre Aufgabe, sich um das Forum zu kümmern und es zu "bewachen", natürlich nicht rund um die Uhr, das verlangt aber auch niemand.


    Sie wollen auch mal spielen? Warum sollten sie das nicht können, ist hier doch kein Vollzeitjob.

    Wie ich bereits im IRC sagte, werden Ternary-Abfragen gerne auch als Inline-Abfragen (Inline-IF) bezeichnet und genau das ist ihr Sinn und größter Vorteil.
    // Ternary sinnvoll
    new bool:test;
    SendClientMessage(playerid, Farbe, (test) ? ("true") : ("false")); // Sendet true an den Spieler, wenn test wahr ist, andernfalls false

    Für größere Abfragen, wie bereits von BlackAce und BloodyEric erwähnt, lohnt sich ein Ternary nicht mehr, da er wie eine normale Abfrage agiert.

    ! ist verneint (== 0/false), also zwei Möglichkeiten:
    // 1. Möglichkeit
    if(!IsPlayerAdmin(playerid)) return 1; // Beendet die Funktion (OnPlayerCommandText), alternativ kann eine eine Funktion, z.B. SendClientMessage returnt werden
    /*
    Code
    */
    // 2. Möglichkeit
    if(IsPlayerAdmin(playerid)) {
    /*
    Code
    */
    }
    return 1;

    Absolut sicher, wenn du jemanden von einem fremden Webspace Zugriff auf deine Datenbank gewährst. Eine Möglichkeit wäre aber eine kleine API zu schreiben, die du über PHP aufrufen kannst, wie diese genau aussieht solltest du dir passend zum Script überlegen. Außerdem ist die Implementierung wichtig, denn wenn man dein System ganz leicht ausbauen/außer Kraft setzen (Nullen) kann, hat es keinen Sinn mehr.

    StopAudioStreamForPlayer und PlayAudioStreamForPlayer sind Funktionen, die erst seit 0.3d implementiert sind, also einfach mal das aktuelle Serverpaket von sa-mp.com laden, das sollte doch echt Grundlage sein, immer mit aktuellen Includes und Serverfiles zu hantieren und nicht mit einer veralteten Version. Entschuldigt, aber keinerlei Verständnis, für jene deren Gehirn zu klein für diesen Schritt ist.

    Mein Ansatz wäre folgender: Wenn Angle (Rotation) des Spielers weniger als 10 von dem des Autos abweicht und die des Autos annähernd 180 (größer als 170 / kleiner als 190) ist, dann ist es wahr (1) ansonsten falsch (0).


    http://deadinat0r.tk/uploads/skizze6109499.png



    stock isPlayerAtTrunk(playerid, vehicleid) {
    new Float:rotation[2];
    GetVehicleZAngle(vehicleid, rotation[0]);
    GetPlayerFacingAngle(playerid, rotation[1]);


    if(rotation[0] >= 170 && rotation[0] <= 190 && floatadd(roatation[1], 10) >= rotation[0] || floatsub(roatation[1], 10) <= rotation[0]) return 1;
    return 0;
    }


    Ein anderer Interessanter Ansatz wäre dieser.

    Besorg dir selbst welche.
    Lies den Text.
    Verarbeitet ihn.
    Bemerke, wie sinnlos deine Antwort ist.


    B2T: Du bekommst sie ohne Rezept, allerdings zahlt dann, ja in manchen Fällen tut sie das tatsächlich, die Krankenkasse nichts. Ich würde einfach mal mit deinen Erziehungsberechtigten hingehen, kann manchmal echt Wunder wirken.


    // Edit: @NekoSteamBoy: Das kann der Optiker ebenfalls, der Augenarzt hat im Grunde nichts damit zu tun.

    Ein sehr simples und schönes Blogsystem wäre Nibbleblog. Einfach mal anschauen, kann man sehr leicht anpassen und verwalten, benötigt keine Datenbank, wenn gewünscht kann aber eine genutzt werden. Sonst gilt: ausprobieren und zufrieden sein.

    public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid);
    playerid = Person die schießt (Schaden verursacht).
    damageid = Person die getroffen wird (Schaden erleidet).
    amount = Erlittener Schaden.
    weponid = ID der Waffe, mit der geschossen wurde.
    Gesundheit in diesem Callback auf 100 setzen und noch ein bisschen denken, fertig.