Beiträge von Snail

    Es wird immer eins abgezogen.
    Im Moment ist der Timer auf 5 Minuten gestellt, kannst du aber ändern, indem du die 300000 durch deine Zeitspanne (in Millisekunden) änderst.

    Verwende SetTimerEx :



    // oben im Script :
    forward Wantedsweg(playerid);


    //Außerhalb eines Publics :
    public Wantedsweg(playerid)
    {
    if(GetPlayerWantedLevel(playerid) != 0)
    {
    SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)-1);
    SetTimerEx("Wantedsweg", 300000, false, "i", playerid);
    }
    }


    // So und bei OnPlayerDeath kommt das hier hin :
    SetTimerEx("Wantedsweg", 300000, false, "i", killerid);


    Damit wird nach einer bestimmten Zeit immer ein Wanted gelöscht
    Du musst nur die 300000 durch deine gewünschte Zeit ersetzten (in Millisekunden)

    Denk doch mal ein bisschen logisch.
    SETplayerWantedlevel


    SET = setzen --> man setzt das Wantedlevel für einen Spieler.
    Wenn man jemanden tötet, wird OnPlayerDeath aufgerufen.
    D.h. er wird bei jedem Mord auf 1 gesetzt.



    Lösung :



    SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid)+1);


    Edit : Playerid durch killerid ersetzt, da es ja bei OnPlayerDeath ist :)

    Aber das Problem mit den Spammern hätten wir dann auch nicht behoben.

    Das kann man auch nicht wirklich beheben, allerdings würde es das Spammen einschränken.
    Man sieht ja ab und zu, dass irgendwelche neue User, in Threads von 2008 Kommentare schreiben, die bloß "Tolles Script" enthalten (Oftmals ist der Threadersteller dann auch noch gebannt und kann das eh nicht mehr lesen). Dies würde durch die Bewertung durch Sterne wegfallen, denn man dürfte dann keine Bewertungen mehr im Showroom posten (Ver-/Warnung).

    Wurde schon mal gesagt, dort sind wir eigentlich zum Entschluss gekommen das ein persönliches Danke wirklich besser herüber kommt &
    nicht mal eben vor die Füße geschmissen.

    Naja der Danke Button würde dann aber die unzähligen posts ala

    Zitat

    cool. oder 10/10

    ersetzen. Das fänd ich persönlich besser, den Antworten auf Themen sollten nur Verbesserungsvorschläge enthalten und nicht so nen scheiß.


    Das Beste wäre, wenn man unter jedes Thema vom Showroom eine kleine Leiste hinmacht, in der man zwischen einem und 5 Sternen bewerten kann. Wenn man abgestimmt hat sieht man den Durchschnitt der Bewertungen.
    Die Sterne gibt es ja meines wissens nach schon im wbb. Man müsste die dann nur noch in jeden ersten beitrag des showrooms integrieren.

    Ich finde das video total schlecht.
    Bevor man CamHack benutzt sollte man erst mal lernen damit umzugehen (sanft bewegen)
    Dann den einen Spieler bei der Pee-Animation zu filmen ist auch nicht gerade ein highlight.

    Nein kannst du nicht.
    Das sind Variablen, die sich auf einen Spieler beziehen und dass kannst du nicht ändern.
    Für Fahrzeuge musst du weiterhin arrays oder enums verwenden.


    Mal schauen was in samp 0.3b so neues kommt.
    vielleicht sind ja Vehicle-Variablen dabei :rolleyes:

    Wenn ich mich nicht irre, kann man mit s0beit auch TextDraws ausblenden.
    Du solltest dich aber vorher mit dem Serverbesitzer absprechen, ob du das Programm für Videozwecke verwenden darfst.


    public OnPlayerText(playerid, text[])
    {
    new strpos = strfind(text, "www", true);
    if(strpos != -1) {
    strdel(text, strpos , strpos+3);
    SendClientMessage(playerid, 0xAA0000AA, "Url festgestellt!");
    }
    if(strfind(text, ".", true) != -1 && strfind(text, ":", true) != -1 && strlen(text) > 8)
    {
    strdel(text, strpos , strfind(text, ".", true), strfind(text, ":", true));
    SendClientMessage(playerid, 0xAA0000AA, "Server Ip festgestellt!");
    }
    return 1;
    }


    So sollte es gehen


    forward explosion1();
    forward explosion2();
    // usw


    public explosion1()
    {
    CreateExplosion();
    // deine Explosionen
    }


    public explosion2()
    {
    CreateExplosion();
    // deine Explosionen
    }


    // dann bei /explosion :


    SetTimer("explosion1", ZEIT, 0);
    SetTimer("explosion2", ZEIT2, 0);
    // Das in "" ist das Public, welches aufgerufen wird
    // Für ZEIT und ZEIT2 jeweils die Zeit einsetzten nach dem die Aktion durchgeführt werden soll
    // Die 0 am Ende bedeuted, dass es sich nicht wiederholen soll




    Verwendest du ein Filterscript für die animationen ?
    Wenn ja dann kommt das bestimmt aus dem Script.
    Desweiteren vermute ich mal dass du bei der Class-Wahl eine Animation hast.
    --> Das Script weiß du hast gerade eine Animation am Laufen.
    --> Diese wird dann aber von deinem Gamemode aus beendet und dein Animations-Filterscript weiß nicht, dass
    die Animation schon beendet ist
    --> TextDraw : "Durch Leertaste beenden" wird dauerhaft angezeigt


    Beheben kannst du das ganze durch eine Variable im Filterscript :

    new spawned[MAX_PLAYERS];
    //OnPlayerConnect :
    spawned[playerid] = 0;


    // OnPlayerSpawn :
    spawned[playerid] = 1;
    OnPlayerRequestClass :
    spawned[playerid] = 0;


    Dann an der Stelle wo das TextDraw angezeigt wird :



    // müsste irgendwas mit TextDrawShowForPlayer(....) sein
    if(spawned[playerid] == 1)
    {
    TextDrawShowForPlayer(....);
    }



    Somit wird das TextDraw nur angezeigt wenn man gespawnt ist und nicht in der Class-Selection

    http://wiki.sa-mp.com/wiki/CreatePlayer3DTextLabel
    Damit erstellst du ein Textlabel, das nur für einen bestimmten Spieler sichtbar ist.
    --> Mit ner For-Schleife verbinden und wenn Cop dann anzeigen lassen.
    Dann benötigst du noch eine Forschleife


    am besten schreibst du ein public, dass eine Forschleife enthält :



    forward wantedcheck();
    public wantedcheck()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Wantedlevel[i] != 0) // oder wie die variable/enum genannt ist
    {
    for(new j=0;j>MAX_PLAYERS;j++)
    {
    if(Cop[j] == 1) // hier die abfrage ob er in der Cop fraktion ist. Ka wie das bei Godfather ist
    {
    CreatePlayer3DTextLabel(playerid, text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, attachedplayer, attachedvehicle, testLOS)
    // Die Infos zu dem Befehl sind im Wiki (link : siehe oben)
    }
    }
    }
    }
    }
    }


    Das ganze rufts dú dann bei der Wantedvergabe/Löschung auf und wenn ein Spieler Connected/Disconnected.
    Du musst das Label aber noch zerstören wenn einer Disconnected bzw. wenn sich der wantedstand ändert musst du das alte löschen bevor duein neues erstellst.


    Aber das sollte keine schwierigkeit sein, steht ja alles im wiki


    Ich hab das jetzt mal so aus dem stegreif gemacht, also keine garantie das es funktioniert ;)

    Ich würde das ganze noch mit dem public OnPlayerKeyStateChange verbinden, sodass die waffe beim rennen nicht im Rücken steckt wie es auf deinem Screen der Fall ist ;)

    Das ganze gehört ins Public OnPlayerCommandText



    if(strcmp(cmd, "/befehl", true) == 0)
    {
    if(IsPlayerAdmin(playerid)
    {
    SetPlayerPos(playerid, 1467.5845,-1012.2585,26.8438);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bist kein Admin.");
    }
    return 1;
    }