Beiträge von ErikSon

    Ist das nicht von ürgend einen Server ? Das ist 1x1 aber naja.


    5/10 Nix besonderes, aber nützlich.


    Naja, weiß nicht.. n paar Leute brauchten das, deswegen hab ich mich einfach mal dran gesetzt, und es mal gescriptet, wie die es mir gesagt haben..
    Mir wurde gesagt, dass es auf einem Server ist, und wenn das so ist, dann war ich nicht auf diesem Server..
    Und ja, ist eig auch nichts besonderes..

    Hey,
    hier mal ein kleines Todessystem.
    Also, wenn man stirbt, spawnt man am Friedhof, bekommt ein Jetpack und muss zum Todesort fliegen.
    Wenn man am Punkt angekommen ist, muss man 15 Sekunden warten, bis man wiederbelebt wird.
    Es ist nichts besonderes..


    Video

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Handyuser
    Youtube


    Download
    Pastebin
    Todessystem.pwn


    Include
    Danke an Azure für die 'A_Infobox' Include!
    Die musste ich ein wenig verändern, damit ich die String auch verwenden konnte.
    http://pastebin.com/iAmk12QQ


    Machen könnt ihr eig damit, was ihr wollt ;)
    Hoffe es gefällt euch ein wenig, auch wenn es ein sehr sehr kleines Filterscript ist ;)
    Falls ich da auch noch iwas verbessern soll, schreibt es bitte..


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SendDeathMessage(killerid, playerid, reason);
    if(sSpieler[playerid][dm] == 1 && sSpieler[killerid][dm] == 1)
    {
    sSpieler[playerid][dmdeaths] ++;
    sSpieler[killerid][dmkills] ++;
    }
    return 1;
    }


    Zu den TDs:
    Ja, mit einem Timer kannst du die Textdraws updaten..
    Du musst du TextDraws jedoch nicht immer wieder löschen und neu erstellen!
    Du setzt lediglich den String des Textdraws um..
    Dies kannst du mit TextDrawSetString machen.


    //E
    Code bearbeitet

    ja aber es wird doch trotzdem nur bei der Geld übergabe auf cheat/hack kontrolliert


    Wie meinst du das?
    Wenn er bei nem Sprunkautomaten Geld verliert ist es ja nicht schlimm, das wird beim AntiCheat nicht beachtet

    native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);


    Ich weiss, aber bei keinem Map Converter wird dieser Parameter automatisch hinzugefügt.


    Dann musst du das jetzt selber ändern ;)

    Wäre eig. auch eine simple Lösung aber beißt es sich nicht mit Sprunk PnS und Tuning Werkstätte vom Spiel?


    Ohh.. daran habe ich nicht gedacht..
    Mach doch einfach bei OnPlayerKeyState hin, wenn er die "F / Enter"Taste benutzt, dass er automatisch Geld abzieht..
    Es steht:
    if(GetPlayerMoney(i) > ACNewMoney[i]) // Wenn er mehr hat, als er eigentlich haben sollte
    Und nicht:
    if(GetPlayerMoney(i) < ACNewMoney[i]) // Wenn er weniger hat, als er eigentlich haben sollte

    In der Streamer.inc? Ja


    Warum denn in der Streamer include?
    CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, [b][u]Float:streamdistance = 300.0[/u][/b]);
    Wenn du ein Object erstellst, ganz hinten die streamdistance mal bisl hochpacken

    //CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 300.0);
    hast du die streamdistance auch versucht etwas höher zu stellen?

    Mach es doch einfach so:

    //Ganz Oben:
    new ACOldMoney[MAX_PLAYERS],
    ACNewMoney[MAX_PLAYERS];
    //Spieler laden
    ACNewMoney[playerid] = dini_Int(Spielerdatei,"Geld"); //Abändern ;)
    GivePlayerMoneyEx(playerid,dini_Int(Spielerdatei,"Geld")); //Abändern


    //
    stock GivePlayerMoneyEx(playerid,money)
    {
    ACOldMoney[playerid] = GetPlayerMoney(playerid); //Du speicherst ab, wie viel Geld er gerade hat
    ACNewMoney[playerid] = GetPlayerMoney(playerid) + money; //Du speicherst ab, wie viel Geld er danach haben soll
    return GivePlayerMoney(playerid,money);//Gibst ihm das Geld
    }


    //Erstellst nen Timer und packst das rein
    if(GetPlayerMoney(i) > ACNewMoney[i]) // Wenn er mehr hat, als er eigentlich haben sollte
    {
    SendClientMessageToAllX(Rot,"Spieler '%s' wurde vom Anti-Cheat gekickt. Grund: Moneyhack!",Name(i));//Wird eine Nachricht ausgegeben
    return Kick(i);//Und er wird gekickt.
    }



    Wie gesagt, abändern..