Beiträge von Templer

    @SenfToTopic strcmp ist noch immer besser als dcmd von der Leistung her, nur ist dcmd deswegen so toll, dass es bereits, wie es im dcmd gennant wird, in Parameter unterteilt und mann nicht extra Abfragen durchführen muss ob nach dem /lol ein Leerzeichen ist und Co.

    Unten im Dateianhang ist eine Include die ich auf die Schnelle geschrieben habe.. Einfach in dein GM oben folgendes einfügen
    #include <VehColor>
    Beispiel:


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new string[128], farbe1, farbe2;
    GetVehicleColor(vehicleid, farbe1, farbe2);
    format(string, sizeof(string), "Das Fahrzeug, welches du verlassen hast, hat die Farbe %d und %d!", farbe1, farbe2);
    SendClientMessage(playerid, 0xFFFFFF00, string);
    return 1;
    }

    @DogZone: Äh ja Entschuldigung, aber ich hab noch schnell (wie man oben sehen kann), dass Include so ins Forum schnell geklatscht ohne Achtung auf die Rechtschreibung und Co, war schon bissl Müde ^^ Wegen deiner Frage zur Zugriffsberechtigung. Dieser Code dort oben ist nur ein Beispiel von mir fürs GF! Das bedeutet es kann auch eine andere Abfrage sein. Was jedoch wichtig ist, dass diese Abfrage bei richtiger Abfrage, also ob der Spieler erlaubt ist, die Zahl 1 returnt und wenn es nicht der Fall wäre Zahl 0, ansonsten holt sich das System die Zugriffsberechtigung, ob der Spieler ein RCON-Admin ist. Natürlich haste es anders gemeint DogZone und ich falsch verstanden :P , wollte es aber hier für andere sagen bevor die Frage auftaucht.


    @Disco, LoCdoWn Jo Danke ^^


    @[NeS]Fischer Schön sowas zu hören ^^. Ich mache es ja Extra damit endlich ein paar Leute sich damit auch beschäftigen und daraus lernen

    Wiedermal Hallöle Leute ^^,


    Vorwort:

    Wiedermal stelle ich euch ein neues Include vor, diesmal aber nicht irgendein Kinderkram-Include. Sondern das Tolle

    SpeedoBombInclude by Templer
    (for Samp 0.3 or higher)

    vor, welches eine deartig tolle Funktion darbietet, wie Ihr es noch nie gesehen habt. Enstanden ist das Include mit dem Namen speedoBomb, weil die Fahrzeugbomben einen Geschwindigkeitsmesser intigriert haben. Dieser Messer Aktiviert die Bombe, wenn der Fahrer die angegebene Geschwindigkeit vom Bombenleger überschritten hat (sagen wir 60 km/h) und der Messer danach überprüft ob der Fahrer langsamer, als was angegeben wurden ist, fährt. Sollte der Spieler unter diese Marke kommen, tickt die Bombe schneller und verursacht (Standartmäßig nach 5 Sekunden) eine Explosion die in einem gewissen Radius alles in Grund und Boden verwüst (Mein Lieblingsteil :P). Natürlich finden manche Leute es toll, wie dann welche Tot mit dem Fahrzeug in die Luft fliegen und beim sterben sehen, wie das Fahrzeug auf den Boden prallt, jedoch ungünstig für eine höhere Person auf einem Reallife Server der zufällig Präsident ist und dann merkt, dass diese Fahrzeugbombe in seinem Fahrzeug ist ^^. Natürlich gibt es eine Möglichkeit die Bombe zu entschärfen, jedoch passiert dies derzeit bei dieser Version automatisch, da mir nichts besseres eingefallen ist und sagen wir aus Gründen von Drähten, aus dem Jahre Schnee, die Bombe Standartmäßig sich nach 15 Minuten selbst entschärft. Vorschläge zum verbessertem Entschärfen sind gebeten ^^.


    Screenshots:


    speedoBomb Screenshot´s-KLICK MICH :P
    (Vergrößert, damit auch die Leute kapieren das dies ein Link zu einer direkten zip-Datei ist wo die Screenshots liegen ^^)


    ServerBefehle:

    • /sbhelp ... Zeigt alle Befehle von diesem Include an
    • /sbstatus ... Zeigt wieviele Bomben ein Spieler besitzt
    • /sbkaufen ... Kauft Bomben an Bombenplätze (Selbst definierbar oben im Script)
    • /sblegen ... Legt die Bombe unter/in das Auto (Möglich von Innen und Außen)

    Funktionen:

    • Tolles BombTick-System zur Überprüfung der Geschwindigkeit
    • Ressourcendschonend trotz 500ms Timer (Wegen niedriger Auslastung der foreach Schleifen)
    • RAM-Speicher freundlich wegen Nutzung der Samp PVar´s
    • Definitionen ermöglichen einfaches verändern der Preise, Bombenplätze, Zeiten und vieles mehr...
    • Großartiger Spaßfaktor durch kontrollierte Explosionen
    • Eigene Error-Compiler Meldungen um Scriptfehler zu vermeiden (Bei den Präprozessoren)
    • Speicherung Anzahl der Bomben von jedem Spieler in einer *.ini Datei
    • Unterstützung derzeit nur für das GameMode
    • Plug & Play Bereitschaft, ohne jegliche Änderungen am eigenen GameMode
    • Bestmögliche Positionsberechnungen von Spieler und Fahrzeug
    • Dynamisch sich erstellende Textdraws (= Nur bei Notwendigkeit wird ein Textdraw erstellt und zerstört)
    • Nutzung von nur einem Timer mit Ressourcenschonendem Inhalt sowie von OnPlayerUpdate
    • Eigene Zugrifssberechtigung erstelltbar für Befehle
    • Schöner Textdraw-Farbverlauf um dem Spieler die Gefahr zu zeigen :P

    Warum ich OnPlayerUpdate für SpielerSchleifen Nütze (Zitat vom letzten Include Post):

    Zitat

    Da manche denken "Oh mein Gott er nützt OnPlayerUpdate" will ich für andere kurz Erläutern warum ich diese Variante ausgesucht habe. OnPlayerUpdate wird ja stehts ausgeführt, wenn ein Spieler InGame ist. (und nicht am Desktop oder GTA Menu) Aufgerufen wird OnPlayerUpdate in 0,5 Sekunden-Takt (wenn nicht kürzer). Anstatt das ich die Timerfunktion SetTimer oder SetTimerEx mit einer for Schleife, die alle Spieler durchgeht,verwende, nütze ich gleich OnPlayerUpdate mit einer Variable die überprüft ob so und soviele Sekunden vergangen sind und erst dann die Abfrage für diesen Spieler startet. Somit erspart man sich an Leistung und keine Geschwindigskeitsverluste wegen der mageren Abfrage. Da ich leider schwer zeigen kann wieviel Leistung dieses Script vom Server verbraucht, weil ich nicht weiß wie die Leistung von so etwas abgemessen wird, müsst ihr es leider selber austesten, wenn es unbedingt notwendig ist. Verbrauchen tut es trotz OnPlayerUpdate wenig an Auslastung, was ich vom Wissen her weiß.

    Vorraussetzungen für dieses Plugin:


    Für diese Include benötigst du folgende Sachen damit dieses Include so Ressourcenschonend wie möglich bleibt (Alle in Zip Datei vorhanden)...

    • [REL] sscanf Plugin by Y_Less (pawno/include/sscanf2.inc) & (plugins/sscanf.dll|sscanf.so)
    • [INCLUDE] foreach by Y_Less (pawno/include/foreach.inc)
    • [INCLUDE] SII by Slick (pawno/include/SII.inc)


    Installation:

    • Öffne dein GameMode mit PWNo
    • Füge oben im Script unter #include <a_samp> folgendes dazu: #include <speedoBomb>
    • Kompiliere dein GameMode PWNo
    • Starte deinen Testserver ;)

    Verwendung von eigenen Zugriffsberechtigung:


    Füge in dein GM folgendes ein:
    forward SB_AllowedPlayer(playerid);
    public SB_AllowedPlayer(playerid)
    {
    if(PlayerInfo[playerid][pTeam] == 5) return 1;
    else return 0;
    }
    Wie du sehen kannst ist dieser Code in dem Fall für das GF, der es den Fraktionen die alle in Team 5 sind erlaubt, Bomben zu benützen...


    Credits:
    /* SpeedBombv1 Include by Templer
    (for SAMP 0.3 / or higher)
    Dieses Script darf von jedermann verändert und benutzt werden!
    Mir ist es sogar egal, wenn Ihr was von hier für euren Vorteil rauskopiert!


    Credits:
    -Y_Less : Für sein foreach, sscanf und IsToPoint!
    -Darkrealm : Für sein GetClosestVehicle und GetDistanceToVehicle!
    -Double-O-Seven : Für das Zeigen wie Include und GM am besten kommunizieren!
    -Samp-Team : Die es überhaupt ermöglicht haben sowas Programmierbar für GTA zu machen!*/

    Download:


    speedoBomb Include (inkl. SII, foreach und sscanf)
    speedoBomb Pastebin-Link


    Für weitere Fragen oder Anregungen könnt Ihr natürlich unten posten und vielleicht auch einen Wunsch zum Entschärfen der Bombe ;)


    Mfg Templer


    Edit: Support only for GameModes....
    Edit2: Rechtschreibfehler und Grammatikfehler behoben...

    @ Neon, Nütz doch einfach die Koordinatensabfrage von der Funktion ApplyAnimation! Den bei der Animation wird der Spieler von Gebäuden / Wänden geblockt wenn dort welche sind, also lass ihn einfach nach vorne Fliegen xD Und vergiss das SetPlayerPos, denn beI ApplyAnimation kannst ja die Parameter wählen, dass er dort wieder aufsteht wohin die Animation Ihn "geschleudert" hat.

    @OffTopic


    Ne Sry hab ich nicht, finde es eh schon ne Frechheit das es keine Virtuelle Spitznamen mehr gibt die nicht vergeben sind xD Aber kannst ruhig mich ICQ Adden wennst willst, ned das noch ein pöser Moderator kommt und einen Warn verteilt :P ICQ: 358994580

    Für die Speedberechnung empfehle ich dir dieses stock hier (gibt die Zahl in km/h zurück)


    stock GetPlayerCarSpeed(playerid)
    {
    new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
    rtn = floatsqroot(Vx*Vx+Vy*Vy+Vz*Vz);
    return floatround(rtn * 100 * 1.61);
    }

    Zeig mal bitte die Zeilen 21 und 30 wo du versucht hast Präprozessoren zu verwenden :P


    Um den Error error 017: undefined symbol "split" wegzukriegen musst du dies in dein Script einfügen:


    forward split(const strsrc[], strdest[][], delimiter);
    public split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc))
    {
    if(strsrc[i]==delimiter || i==strlen(strsrc))
    {
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }

    und Betreffend PlayerInfo, fehlt dir die new und die enum Struktur vom Godfather... Bitte Zeig uns deshalb die Zeile 252


    Womöglich kommen danach noch mehr Fehler weil der Compiler wegen PlayerInfo abgebrochen hat!

    Templer´s NoDM-Zone Include

    (Geeignet für alle GameModes...)


    Hallo Liebe Leute,


    Vorwort:


    Ich stelle euch hiermit ein neues Include vor, was dem Spieler einfach mit einer Funktion eine DM Zone ohne große Aufwände ermöglichen soll. Die Idee enstand durch einen Breadfish Typen Namens Marco2406 der ein gutes NoDM System haben wollte und kurz darauf dachte ob es nicht besser wäre ein schönes Include daraus zu machen. Auch wenn sich diese Include für den Anfang eher langweilig anhört bzw. anscheinend bereits in einem Forum veröffentlicht wurde, hat diese Include ein paar tole Zusatzerweiterungen bzw. eine Viefalt an Änderungen in der Include durchzuführen ^^.
    Funktionen (inkl. v4):

    • DM-Zonen auf der MiniMap anzeigen lassen (selbst einstellbar für den Programmierer in der Include Datei!)
    • Waffen werden abgenommen wenn in NoDM-Zone und zurückgegeben wenn Spieler aus der NoDM-Zone geht / fährt. (Speziell für Fahrzeuge auch eingerichtet und Flugzeuge sind davon ausgeschlossen)
    • Schonendes Script durch Benützung von 'PVar' Funktionen und kleinen Strings (Arrays)
    • Vermeidung von Code Überschneidungen wie z.B.: das bereits definierte

    >> Aktuell in der Version 3:

    • Leichter Einbau ins GameMode (Unterstützung auch für Filterscripts *NEU*)
    • Verwendung des vordefinierten Textdraws bzw. Erstellung eines eigenen Textdraws ganz leicht *NEU*
    • Compiler-Fehler wenn falsche Werteingabe in Definitionen *NEU*
    • Verbesserte Geschwindigkeit als in der alten Version *NEU*
    • Auswählbare Einstellungen wie, ob die Waffen abgenommen werden sollen, in welchen Intervallen geprüft werden soll, ob Spieler in einer NoDM-Zone ist, oder welche Farbe die Markierung auf der Mini-Map haben soll. *NEU*

    >> Aktuell in der Version 4:

    • Erkennung von Spieler Angriffen, die außerhalb der NoDM Zonen auf Spieler, welche in der NoDM Zone sind, schießen.
    • Standartgemäßer Timer (Intervall 2 Sekunden : Default), welcher das OnPlayerUpdate ablösen soll, da viele nicht zufrieden damit waren.


    >> Neuerungen in der nächsten Version:

    • Erkennung von DM´ler, welche in der NoDM Zone mit Fahrzeugen Spieler angreifen.
    • Verbesserung der derzeitigen Erkennung von DM´ler.


    Credits:


    /* NoDM-Zone v4 Include by Templer

    (for SAMP 0.3 / or higher)

    (Inspiriert durch Marco2406 vom Breadfish Forum)

    Dieses Script darf von jedermann verändert und benutzt werden!

    Mir ist es sogar egal, wenn Ihr was von hier für euren Vorteil rauskopiert!

    Credits:
    -Marco2406 : Für die geistreiche Idee der NoDM Zone für Neulinge & für das einfache TextDraw
    -Double-O-Seven : Für das Zeigen wie Include und GM am besten kommunizieren!
    -Samp-Team : Die es überhaupt ermöglicht haben sowas für GTA SanAndreas Programmierbar zu machen!
    -creck : Für die wichtigen BugReport in v1 und v2

    -niCe : Für sein 'IsPlayerAimingAtPlayer'*/

    Installation:

    • Öffne dein GameMode

    • Füge oben in dein Script unter der Zeile #include folgendes ein:

    #include

    • Erstelle eigene NoDM-Zonen unter dem Callback OnGameModeInit


    public OnGameModeInit()
    {
    //restlicher Code oben...
    //AddNoDMZone(Float:minX, Float:maxX, Float:minY, Float:maxY)
    AddNoDMZone(1094.37, 1280.709, -1038.38, -864.6794); //BurgerShot Nord
    //restlicher Code unten...
    return 1:
    }

    • Kompiliere das Script und Starte deinen Server ;)

    Screenshots:


    Screenshot 1 Ego-Perspektive
    Screenshot 2 Karten-Perspektive



    !!Ab Version 4 nicht mehr in Benützung!!

    Zitat

    Erklärung zur Benützung von OnPlayerUpdate:
    Da manche denken "Oh mein Gott er benützt OnPlayerUpdate" will ich für andere kurz Erläutern warum ich diese Variante ausgesucht habe. OnPlayerUpdate wird ja stehts ausgeführt, wenn Spieler InGame ist (und nicht am Desktop oder GTA Menu) und es dann ca alle 0,5 Sekunden aufgerufen wird (wenn nicht kürzer). Anstatt das ich die Timerfunktionen SetTimer und SetTimerEx verwende, nütze ich gleich OnPlayerUpdate mit einer Variable die überprüft ob so und soviele Sekunden vergangen sind und erst dann die Überprüfung für diesen Spieler startet. Somit erspart man sich an Leistung und keine Geschwindigskeitsverluste wegen der mageren Abfrage. Da ich leider schwer zeigen kann wieviel Leistung dieses Script vom Server verbraucht, da ich nicht wisse wie die Leistung abgemessen wird, müsst ihr es leider selber austesten wenn es unbedingt notwendig ist. Verbrauchen tut es trotz OnPlayerUpdate Benützung wenig an Leistung, was ich vom Wissen her kenne.

    Downloads:


    Pastebin Link v1
    Pastebin Link v2
    Pastebin Link v3

    Pastebin Link v4


    Für weitere Fragen / Anregung / Kritik einfach unter das Thema Posten :rolleyes:


    Mfg Templer

    Edit: Include PWN-Code fix...
    Edit2: Screenshot Links eingefügt ...+ Beschreibung der Funktion +Links gefixxt
    Edit3: Neue Version von der NoDM-Zonen Include...
    Edit4: Dummheitsfehler in v2 gefixxt...
    Edit5: Wichtige Bugfixxes die schweren Bug auslösen...

    Edit6: Extreme BugFixes, sowie neue Erweiterungen

    Edit7: Versionsnummer Fix


    BITTE,
    Sollte wer von euch noch eine ältere Version besitzen so möge er sofort die v4 laden, da die v1, v2 und v3 einen oder mehrere schwerliegenden Fehler enthalten

    Jedoch biete ich euch ältere Versionen zum download an, damit Ihr den Fortschritt erkennen könnt ^^

    Äh du missverstehst wohl etwas. Also SpawnPlayer(playerid); ruft public OnPlayerSpawn(playerid) auf. Das AddPlayerClass verlangt auch nicht die Koordinate wo der Spieler bei der Skinauswahl steht, sondern den Spawnpunkt er bekommt beim Skin. Bedeutet Jeder Skin kann einen eigenen Spawnpoint haben zB der CJ in LosSantos, The Truth in LV und Co... Du müsstest also die Spawnpunkte in OnPlayerSpawn neu definieren. Schick uns mal deinen OnPlayerSpawn public hier rein, dann schauen wir mal was nicht klappt ^^.

    Huhu, hier im Anhang hab ich ne Include für dich gemacht ^^


    Funktionen:


    native SpeichereSpielerWaffen(playerid); //Speichern der Spielerwaffen in einer Datei!
    native LadeSpielerWaffen(playerid); //Laden der Spielerwaffen und zurückgeben per GivePlayerWeapon
    native TestDirectory(); //Zum Testen unter OnGameModeInit ob das Speichern der Spielerwaffendateien möglich ist!Bei Fehler siehe serverlog Datei


    Edit:
    Installation!
    1.Öffne dein GameMode mit Pawno
    2. Füge oben unter #include <a_samp> das ein
    #include <saveWaffen.inc>

    3. habe Spaß damit ^^



    Es gibt keine Überschneidungen mit anderen Definitionen und der einzige Fehler der nicht vom Script her ist, das Speichern der Waffen beim gmx! Deshalb muss vor dem gmx ein kleiner Timer laufen der dann nach 1Sek den richtigen gmx ausführt!


    Hoffe du hast Spaß damit ^^

    Kenne die v1 nicht, aber wegen der kleine Mühe, dass du PNS, Automat und Co erkennbar machst kriegste, wie die anderen es auch machen würden, 7 / 10 Punkten ^^


    Kritik:Wozu machst du es eigentlich das mit dem SetPlayerMoney ? Ich meine wer sagt, dass der Befehl bei mir genau so heißt, kann ja auch SetzeSpielergeld und Co sein ^^ und außerdem ein selbstgeschriebenes SetPlayerMoney sowieso auf das GivePlayerMoney von Samp zugreift und somit es nutzlos ist, wenn du das im AntiMoneyCheat drinnen hast ^^

    Naja 8D ist ja eigentlich nicht unser Problem, wenn die Leute was von anderen Scripts kopieren und dann blöd schauen wieso es ned funktioniert. Denn wenn Sie es ned gscheit erlernen, dann müssen Sie wohl auf unseren Support sagen wir manchmal 1 Tag länger warten, stattdessen Sie sich direkt damit beschäftigen und selber das Problem finden ^^ Also eigentlich ises mir eh wurscht und lasse auch einfach die blöden Kommentare wie "scheiß GF", wenn du weist was ich meine :P

    Jedoch denkt man da doch nach, dass er es ja so haben will, dass es so ein schöner Farbverlauf sein soll, also wenn einer weit weg ist, er dann eine dünklere Farbe sehen soll als wenn er Nahe wäre eine hellere Farbe. Dann kann man ja deinen Parameter in OnGamemodeInit auch vergessen, da man so oder so mit einer for oder while Schleife die Spieler abfragt in welcher Distanz sie vom Spieler sind. Nebenbei ist der Godfather Code ProxDetector kein Schlechter nur weil es damals kein IsPlayerInRangeOfPoint gab, er funktioniert ja doch. Natürlich wäre der Parameter LimitGlobalChatRadius(30.0); von dir schon sinvoller, wenn er meine Variante nehmen würde.