Beiträge von RedDragon

    #define Menu 1 // für mehrere Menüs bitte jeweils andere Zahlen definieren!


    // Wenn du dem Spieler das Menü zeigen lassen willst, folgendes benutzen:
    ShowPlayerDialog(playerid, Menu, DIALOG_STYLE_LIST, "Bank", "Abheben\nEinzahlen", "Auswählen", "Abbrechen");
    // \n bedeutet neue Zeile im Menü


    // Erzeugt ein Menü (ID:1) mit der Überschrift Bank. Dann sind 2 Felder auswählbar, einmal Abheben und dann darunter Einzahlen. Außerdem
    // hat man zwei Buttons, die man drücken kann. (Auswählen und Abbrechen)


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Menu)
    {
    if(response == 1) // Falls der erste Knopf gedrückt wurde...
    {
    if(listitem == 0) // falls die erste Zeile markiert war... (Es wurde also Abheben gewählt)
    {
    //...... was passieren soll
    }


    if(listitem == 1) // falls die zweite Zeile markiert war... (Es wurde also Einzahlen gewählt)
    {
    //........ was passieren soll
    }
    }


    if(response == 0) // Falls der zweite Knopf gedrückt wurde...
    {
    //.... falls etwas passieren soll, dann hier rein schreiben
    }
    return 1;
    }
    return 0;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new SexAuto = GetPlayerVehicleID(playerid);
    if(vehicleid = SexAuto)
    {
    SendClientMessage(playerid, FARBE_WEISS, " Einer von euch hat das Fahrzeug verlassen, der Sex ist gescheitert!");
    KillTimer(timerhopping);
    KillTimer(timersex);
    }
    return 1;
    }


    Bei dir wird, wenn man das Fahrzeug verlässt, abgefragt ob "SexAuto" den selben Wert hat wie vehicleid, jedoch bekommt SexAuto den Wert 0, weil man zu dem Zeitpunkt ja in keinem Fahrzeug mehr sitzt... (weil man ja gerade aussteigt) also kann die if-Abfrage nie eintreffen. Und wieso hat deine SexAuto Variable [200] hintendran? -> new SexAuto[200];

    Bewirkt: Wenn jemand die Taste 2 drückt, wird der Befehl "/car lock" an den Server gesendet.
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_SUBMISSION) // Beispiel: Taste 2 (Nebenmissionstaste)
    {
    OnPlayerCommandText(playerid, "/car lock");
    return 1;
    }
    return 1;
    }

    Ein Bool ist eine Variable, nur dass du ihr keine Zahlenwerte geben kannst, sondern nur false oder true.


    Beispiel:


    new bool:Variable;


    Variable = false;
    Variable = true;

    MAX_PLAYERS ist für SA-Mp als 500 definiert. Also die maximale Spieleranzahl. Kills[MAX_PLAYERS]; Ist im Grunde dasselbe wie: Kills[500];


    Also erstellt Kills[MAX_PLAYERS]; : Kills[0], Kills[1], Kills[2], usw bis 500, für jede SpielerID eine Variable. Und anstatt die Zahl in die Klammern einzusetzen, kann man eben playerid einsetzen, falls es definiert ist.


    Nehmen wir an, Spielerid 7 macht einen Kill. Dann wird die public "OnPlayerDeath(playerid, killerid, reason)" aufgerufen. Die Killerid ist in dem Fall die 7. Wenn Kills[killerid] bzw. Kills[7] vorher den Wert 0 hatte, wird der nun um einen erhöht (Kills[killerid]++; ).

    Zu deiner ersten Frage:


    new Kills[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    Kills[playerid] = 0;
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    Kills[killerid]++;
    if(Kills[killerid] == 100)
    {
    GivePlayerWeapon(killerid, 35, 500); // gibt dem Spieler einen Raketenwerfer mit 500 Schuss...
    SetPlayerArmour(killerid, 100.0); // und eine Schutzweste...
    SetPlayerHealth(killerid, 100.0); // und volles Leben.
    }
    return 1;
    }

    pickupname = CreatePickup(PickupID,Wie es sich verhalten soll,PosX,PosY,PosZ);//die Position wo das Pickup sein soll


    nach PosZ musst du noch die VW angeben:


    ->


    pickupname = CreatePickup(PickupID,Wie es sich verhalten soll,PosX,PosY,PosZ,VirtualWorld);//die Position wo das Pickup sein soll

    Dazu gibt es das Script "gl_property". Da sind die Standart Ein- und Ausgänge weggemacht worden, und durch eigene Pickups ersetzt worden. Dort kannst du dann /enter und /exit benutzen, um Interiors zu betreten oder zu verlassen. Jedoch sind da keine Pickups an den Ausgängen, aber das kannst du ganz einfach selber dazuscripten.


    -> Jedes mal wenn jemand in ein Interior rein geht, erstellst du an der Position des Spielers ein Pickup. Und wenn der Spieler das Interior verlässt, stirbt oder das Spiel verlässt, einfach wieder zerstören lassen. Das Script findest du unter dem "filterscripts"-Ordner.

    Das sind einfach Scripts für das Spiel. Die sind eigentlich für den Singleplayer gedacht, daher muss es nicht synchron sein, kann aber.

    Nein, Objekte sind in jeder Virtuellen Welt und in jedem Interior sichtbar. Du kannst aber den Spieler in eine Virtuelle Welt setzen und dann die Spielerobjekte erstellen lassen. Und wenn der Spieler wieder VW 0 ist, dann wieder die Spielerobjekte zerstören lassen.

    Lad' dir doch einfach ein fertiges aus dem Internet runter, und falls der Macher des Scripts nichts dagegen hat, veränder das Script wie du es willst.