Beiträge von Mr. Maccaroni

    Es ist logisch, dass Sebihunter mehr Chancen auf eine offizielle Seite hat. Er arbeitet an der Mod mit und hat wohl mehr Informationen, als irgendein anderer hier. Was bringt es, wenn jemand eine offizielle Infopage zur Mod führt, aber das gleiche Wissen wie die Besucher der Seite verfügt?


    "Soll es schnell gehen?"


    PAWN Solutions erstes Script namens MyPorts! bietet dem Scripter das einfache Erstellen von Teleports in kürzester Zeit und komfortabelster Übersicht.
    Über eine Datei kann der Scripter selbst entscheiden, wohin es wie teuer gehen soll. Und das alles nur mit einer kleinen Zeile.


    "Was bietet dieses Script?" - MyPorts! bietet komfortabele Einstellungen und Ergänzungen in komfortabeler Übersicht, ohne Scriptvorkenntnisse zu haben und den Gamemode neuladen zu müssen.
    Einstellungen wie Befehlsname, Locationname, Kosten, Interior, Virtuelle Welt und die Koordinaten der Wunschlocation können über eine beigelegte Datei definiert und jederzeit erneuert werden. Dieses Script ersetzt lästige, unübersichtliche Scriptwirrwarrs und bietet somit jede Menge Vorteile.


    "Downloaden?" - Da die Seite von PAWN Solutions noch bearbeitet wird, stellen wir dieses Script ausnahmsweise ohne jegliche Anmeldung direkt zum Download frei.
    » Pawncode (4,21 kB)
    » Kompiliert (3,57 kB)
    » Konfigurationsdatei (0,26 kB)


    "Wie baue ich das Script ein?" - Zuallererst sollten alle oben angegebenen Dateien runtergeladen werden.
    Den Pawncode und die kompilierte Datei des Filterscripts werden in den Ordner Filterscripts eures San Andreas: Multiplayer-Serververzeichnis gespeichert. Die andere Konfigurationsdatei wird dementsprechend im Ordner Scriptfiles gespeichert.
    Zu Anfang ist nur ein Teleport gespeichert - Vinewood.

    Code
    /vinewood, Vinewood, 500, 0, 0, 1413.38, -813.26, 73.05, 183.83
    
    
    -, -, 255, 255, 255, 255.255, 255.255, 255.255, 255.255


    Die untere Zeile ist sagen wir mal eine "Brücke". Diese Zeile darf nicht gelöscht werden, da es sonst zu Fehlern kommt.
    Sie steht immer am Ende der Datei. Jeder Teleport bekommt eine Zeile.
    Soll ein neuer Teleport hinzugefügt werden, muss eine neue Zeile über der "Brücke" erstellt werden.

    Code
    /vinewood, Vinewood, 500, 0, 0, 1413.38, -813.26, 73.05, 183.83
    /skatepark, Skatepark, 250, 0, 0, 1908.88, -1410.36, 13.57, 235.98
    
    
    -, -, 255, 255, 255, 255.255, 255.255, 255.255, 255.255


    Die einzelnen Zeileninhalte sind folgen angeordnet:
    Befehl, Name der Location, Kosten, Interior, Virtuelle Welt, X, Y, Z, Rotation


    Dieses Dokument unterliegt dem © Copyright und deutschen Urheberrecht. Es darf nicht ohne jegliche Angaben von uns veröffentlicht werden. Alle Texte, Grafiken, Codes und Ähnliches sind selbst erstellt und Eigentum des Pawn Solutions Team.


    http://www.Pawn-Solutions.de.vu

    Das sind solche Themen, die völlig überflüssig sind.
    Lass denen doch ihren Spaß mit dem Modifizieren von The Godfather. Und wenn sie eine Werbung schreiben, musst du ja nichts dazuschreiben.


    Manche interessieren sich halt für The Godfather, manche eben nicht, trotzdem müssen die Werbungen von denen nicht durch irgendwelche Aussagen eingeschränkt werden ...
    Und breadfish würde schon längst solch etwas einführen, würde es ihm auch nerven.

    Deswegen verstehe ich das Problem auch selber nicht wirklich.
    Ich könnte testen, ob etwas an der Funktion an sich falsch ist, aber habe das Problem nun schon beim Testen von 3 Scripts gehabt.


    // Nein, auch nach einer ganz normalen Funktion mit print(); startet der Timer nicht planmäßig.

    Ich habe seit letztem irgendwie Probleme bei SetTimer und SetTimerEx.


    SetTimer("GoNext", 5000, 1);


    GoNext soll alle 5 Sekunden ausgeführt werden, nur auf meinen Homeserver dauert es wesentlich länger (um die 5 Minuten).
    Liegt das an dem Server oder mache ich irgendetwas falsch? Ich kann mir das echt nicht erklären.

    Ich wollte in meinen Gamemode eine Abfrage machen, dass mein ein angezeigtes Wort anderesherum schreiben muss.


    Hier mein OnPlayerText:
    public OnPlayerText(playerid, text[])
    {
    if(PlayerInAbfrage[playerid] == 1)
    {
    if(strcmp(text, AbfrageWoerter[fragewort][1], true) == 0) // Die Variable fragewort wurde zuvor von einem Random festgelegt
    {
    SendClientMessage(playerid, GELB, "Abfrage korrekt!");
    return 0;
    }
    else
    {
    SendClientMessage(playerid, GELB, "Abfrage falsch!");
    return 0;
    }
    }


    Und hier die Möglichen Abfragewörter:
    new AbfrageWoerter[12][0] = {
    {"TIEZLHAM", "mahlzeit"},
    {"RETTUB", "butter"},
    {"TORBDNEBA", "abendbrot"},
    {"GATTIM", "mittag"},
    {"EDNUTSNEGROM", "morgenstunde"},
    {"GATSTRUBEG", "geburtstag"},
    {"BREWEBTTEW", "wettbewerb"},
    {"ESAN", "nase"},
    {"LESE", "esel"},
    {"LEGNUHCSD", "dschungel"},
    {"REBEIF", "fieber"},
    {"EGANOIPS", "spionage"}
    };


    Der erste string ist das Wort, welches falschherum vom Server ausgegeben wird.
    Der zweite string ist das Wort, welches man eingeben muss, damit "Abfrage korrekt!" angezeigt wird.


    Nur immer wenn ich das eigentlich richtige Wort eingebe, kommt trotzdem die Nachricht "Abfrage falsch!".


    Ich kenn mich mit OnPlayerText nicht gerade gut aus, deswegen hoffe ich, dass mir hier jemand helfen kann ;)

    Die Grundlagen


    Vorwort - In diesem Tutorial zeigen wir Ihnen den Aufbau eines funktionierenden Scripts und die Aufgaben der einzelnen Kategorien - auch "Callbacks" genannt.
    Im Laufe des Tutorials werden wir nur noch die fachsprachigen Ausdrücke benutzen, da diese auch generell in den meisten Script-Foren von Gebrauch sind.
    Unsere deutschsprachige Scriptvorlage (Template) , auch bei uns im Downloadbereich verfügbar, enthält bereits alle wichtigen und standartmäßigen Callbacks, sowie kleine Einstiegshilfen und Extras.


    ___________________________


    Nun aber zum Eigentlichen - Öffnet das Template mit dem PAWN-Editor (Wir empfehlen den meistverwendeten namens "Pawno") und schaut euch das Script ein wenig an.
    Nun denkt ihr vielleicht "Da ist aber schon eine Menge gemacht worden.", jedoch täuscht das. Die grünmarkierten Zeilen sind nur kleine Randinformationen. Sie sind im Script
    nicht von Gebrauch und sind deshalb "undefinied". Um etwas zu undefinieren setzt man // vor die Zeile bzw. vor die Randinformation. Um mehrere Zeilen zu undefinieren,
    setzt man /* am Anfang der Randinformation und */ am Ende der Randinformation (Siehe Bild 1).


    1 Randinformationen in 2 verschiedenen Varianten


    ___________________________


    Nun sehen wir ziemlich weit am Anfang des Scripts folgendes "#include <a_samp>". Dies definiert die INC-Datei, welche die verfügbaren und im Script zu verwendeten Funktionen. Die INC-Dateien befinden sich im "include"-Ordner im Installationsverzeichnis des PAWN-Editors. Standartmäßig sind schon einige vorhanden (a_samp.inc, float.inc, core.inc, ...). Also das "#include <a_samp>" definiert die entsprechende INC-Datei, jedoch gibt es hier einen Sonderfall. Die Includes "a_players", "a_objects", "a_sampdb" und "a_vehicles" müssen nicht im Script definiert werden, solang "a_samp" definiert wurde. Wenn wir nämlich die "a_samp.inc" mit dem Texteditor öffnen, sehen wir, dass schon einige vorhandene Includes in der "a_samp.inc" definiert sind (Siehe Bild 2).


    2 Alle definierten Includes in der "a_samp.inc"


    ___________________________


    Weiter im Script treffen wir auf "#define GROVE 0". Dies ist eine Definition eines Werts. Diese Definitionen haben die Aufgabe, Zahlen im Script durch Wörter zu ersetzen,
    um sich zum Beispiel Team-ID's oder Skin-ID's besser merken zu können (Kleines Beispiel - Siehe Bild 3).


    3 Ein Beispiel zur Verwendung einer Wertedefinition


    Also die Definition "FRAUENSKIN" ersetzt die Zahl "13" im Script. Jedoch ist einem das selbst überlassen, ob, wo und wann man eine Definition einbaut (Sie sind nicht notwenig, sondern dienen
    der Orientierung im Script und um anstelle einer Zahl ein Wort einzufügen).
    Es gibt jedoch noch 2 weitere Definitionsarten - Die Stringdefinitionen (Um Wörter oder einzeilige Texte zu definieren - Strings) und die Hexcode bzw. Pawncodedefinition (Häufig verwendet, um lange
    Farbcodes in Chatnachrichten zu ersetzen). Sie werden genau wie bei der Wertdefinition (Siehe Bild 3 und oben) angewendet und geschrieben, jedoch muss man bei der Stringdefinition vor und nach dem zu
    ersetzenden String " setzen (anders als bei Variablen in einem String, muss man keinen formaten Text erstellen - Siehe Bild 4).


    4 Ein Beispiel zur Verwendung einer Stringdefinition


    ___________________________


    Nun die Definitionen abhacken - Weiter geht's im Script.
    Dort sehen wir als nächstes "newString[256];" und "new Spielername[256];". Dies sind sogenannte Variablen. Es gibt auch hier wieder 2 verschiedene Arten - "Deklaration" und "Einstellung bzw. Setting".
    Deklarationen definieren Variablen mit einem zurzeit noch unbestimmten Wert. Ein Setting dagegen definiert Variablen mit einem bestimmten, jedoch doch Funktionen veränderbaren Wert (Siehe Bild 5).


    5 Beispiel einer Deklaration und einer Einstellung bzw. Setting



    Variablen können genause verwendet werden, wie eine Definition, nur das deren Wert durch eine Funktion verändert werden kann. Um einen Wert einer Variable in einer Chatnachricht einzublenden, müssen
    wir erstmal einen formaten Text erstellen (Siehe Bild 6).


    6 Beispiel eines formaten Textes mit der Verwendung von einer Deklaration und einer Einstellung



    Ein wichtiger Hinweis - Eine Deklaration sollte stets nur in einer Funktion oder in einer Chatnachricht verwendet werden, wenn ihr zuvor ein Wert bestimmt wurde, ansonsten ist das Ergebnis 0 und somit erscheint auch in der Nachricht eine 0 (Deklarationen sollten möglichst unter der Kategorie "public OnGameModeInit()" einen Wert bekommen).
    Um einer Variable einen neuen Wert zu definieren, schreiben wir NameDerVariable = Wert; (Beispiel: AnzahlDerAutos = 52;).


    ___________________________


    Nun begeben wir uns langsam aber sicher zu den Kategorien - "Callbacks". In Callbacks werden Handlungen und Funktionen (Zum Beispiel Erscheinen einer Nachricht oder Ändern des Wertes einer Variable) gesteuert. Die Handlungen und Funktionen könnt ihr rechts in der Spalte sehen. Dort sind sie nach ihren Includes geordnet, in denen sie sich befinden.


    Die Funktionen in einem Callback werden nur ausgelöst, wenn der Callback aktiv ist (Kleines Beispiel - Siehe Bild 7).


    7 Beispiel des Callbacks "OnGameModeInit()"


    OnGameModeInit() bestimmt die Handlungen, die beim Starten des Servers auftreten, zB. SetGameModeText, SetWeather, uvm. (Die Handlungen von OnGameModeInit() treten nur auf, während der Server startet).


    Wenn ihr mit eurem Script zufrieden seid, kontrolliert es noch einmal und startet den Kompiler mit der F5-Taste oder mit dem
    -Button in der Navigationsleiste. Speichert das Script nun im Ordner "gamemodes" unseres SA:MP-Server-Ordners und tragt es in die server.cfg ein. Nun sollten alle Vorbereitungen getroffen sein und ihr könnt euer Script testen.


    ___________________________




    Viel Spaß und Erfolg wünscht euch
    MaCcA
    San Andreas Script Crew.



    Dieses Dokument unterliegt dem © Copyright und deutschen Urheberrecht. Es darf nicht ohne jegliche Angaben von uns veröffentlicht werden. Alle Texte sind selbst erstellt und Eigentum der SA Script Crew.
    http://www.SA-Script-Crew.de.tf

    Die Servererstellung


    Vorwort - In diesem Tutorial zeigen wir Ihnen die Konfigurationen und Erstellung eines eigenen sogennanten "Homeservers".
    Im Laufe des Tutorials werden wir nur noch die fachsprachigen Ausdrücke benutzen, da diese auch generell in den meisten Script-Foren von Gebrauch sind.
    Unsere deutschsprachige Scriptvorlage (Template), auch bei uns im Downloadbereich im Serverpack verfügbar, enthält bereits alle wichtigen und standartmäßigen Callbacks, sowie kleine
    Einstiegshilfen und Extras.


    ___________________________


    Zuallererst müssen wir das 0.2.2 Serverpack runterladen, welches es bei uns im Downloadbereich bereitgestellt wurde.
    Extrahiert die Dateien dahin, wo ihr wollt. In dem Serverpack sind bereits alle Standart-Modes, -Scripts, -Filterscripts, -Includes und der PAWN-Editor "Pawno"
    vorhanden.
    Nun müssen wir uns zu allererst versichern, ob unsere Firewall ausgeschaltet ist und die Ports UDP 7777 und TCP 7777 auf unserem Router geöffnet sind
    (Die Ports können auch mit einer anderen Zahl geöffnet werden, dies ist abhängig von der server.cfg-Konfiguration).
    Ist dies nicht der Fall, greifen wir auf unseren Server zu (Wie das geht ist meist unterschiedlich, Fritz!Box-Router können unter folgender Adresse erreichbar sein
    "http://fritz.box") und gehen unter Einstellungen zu den Portfreigaben. Dort schalten wir nun die beiden Ports UDP 7777 und TCP 7777 frei.
    Danach kann das Fenster geschlossen werden.
    Nun kommen wir zur Serverkonfiguration. Im Installationsverzeichnis des soeben heruntergeladenen Serverpacks finden wir eine Datei namens server.cfg, diese
    öffnen wir mit dem Texteditor und sehen folgendes:


    1 Beispiel der server.cfg


    ___________________________


    Erklärungen der einzelnen Konfigurationszeilen:


    echo - Unwichtig
    lanmode - Definiert das Netzwerkspiel (1 - An, 0 - Aus)
    rcon_password - Passwort, um sich als Administrator einzuloggen (mit "/rcon login")
    maxplayers - Maximale Anzahl der zulässigen Spieler auf dem Server (Version 0.2.2 kann max. 200 Spieler zulassen)
    port - Die Zahl, der geöffneten Ports (siehe oben)
    hostname - Name des Servers
    gamemode0 - Dateiname des zu abspielenden Gamemodes (Im Ordner "gamemodes" zu finden)
    filterscripts - Dateiname des zu abspielenden Filterscripts (Im Ordner "filterscripts" zu finden, mehrere Filterscripts durch ein Leerzeichen trennen)
    announce - Definiert die Anzeige in der Internetliste (1 - An, 0 - Aus)
    query - Unwichtig
    anticheat - Definiert den Anticheatmodus (1 - An, 0 - Aus)
    weburl - Die Adresse, die im Serverclienten angezeigt werden soll


    ___________________________


    Habt ihr euren Server eingstellt, speichert ihr die server.cfg ab und schließt das Fenster.
    Nun könnt ihr euren Server mit der samp-server.exe im soebenen heruntergeladenen Serverpacks starten.
    Sollte das schwarze Fenster ohne Probleme und Meldungen geöffnet bleiben, haben wir alles richtig gemacht, ansonsten müssen wir noch einmal kontrollieren,
    ob auch die in der server.cfg definierten Gamemodes im gamemodes-Ordner vorzufinden sind und dementsprechend auch die Filterscripts.


    Startet nun den San Andreas: Multiplayer und fügt folgende IP-Adresse zu euren Favoriten hinzu: 127.0.0.1: 7777 (Siehe Bild 2).


    2 Hinzufügen eures eigenen Servers


    Nun müsste euer Server online erscheinen.
    (Eure Freunde können den Server in der Internetliste oder mit der Internetadresse eures Servers hinzufügen, die Internetadresse eures Servers könnt ihr unter http://www.wieistmeineip.de nachschauen mit dem Port 7777 hinzufügen)


    Nun könnt ihr euch mit euren Freunden auf dem soeben erstellten Server treffen und spielen.


    ____________________________________________



    Viel Spaß und Erfolg wünscht euch
    MaCcA
    San Andreas Script Crew



    Dieses Dokument unterliegt dem © Copyright und deutschen Urheberrecht. Es darf nicht ohne jegliche Angaben von uns veröffentlicht werden. Alle Texte sind selbst erstellt und Eigentum der SA Script Crew.
    http://www.SA-Script-Crew.de.tf

    Wer weiß, wer weiß ...


    Ich habe mal gelesen, weiß aber nicht ob es stimmt, dass daran gearbeitet wird, Grafiken und Sounds, die im Scriptfiles-Ordner sind, ins Script einzubinden.


    Fragt mich aber bitte nicht, wo ich das herhabe, ich weiß es nicht mehr :whistling:

    Wisst ihr überhaupt was ihr macht? 8|


    @ Black Sun: Sch*iß auf die Befehlslänge, damit arbeitest du doch sowieso nicht.
    @ Viking: Sag nichts, was du nicht weißt.
    @ Marchell: Ob es eingerückt ist oder nicht, spielt keine Rolle. (Aber ich bevorzuge es ;))


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/hilfe", true) == 0)
    {
    SendClientMessage(playerid, FARBE_GELB, "wird erweitert");
    SendClientMessage(playerid, FARBE_GELB, "... Falls du aber ein Cop bist, schau mal unter /cophilfe .kommt noch xD");
    SendClientMessage(playerid, FARBE_GELB, "Viel");
    SendClientMessage(playerid, FARBE_ROT, "Spass");
    return 1;
    }
    if (strcmp(cmdtext, "/cophilfe", true) == 0)
    {
    SendClientMessage(playerid, FARBE_GELB, "Text");
    return 1;
    }
    return 1;
    }


    PS: Was sind PWN-Klammern? :D

    Genauso.
    Gehe zum Callback OnGameModeInit und Füge diese Zeile hinzu:


    EnableStuntBonusForAll(0);


    Viking, beides was du geschrieben hast, ist falsch.Standartmäßig ist der Stuntbonus aktiviert, das heißt du musst ihn über das Script deaktivieren mit
    EnableStuntBonusForAll(0);
    Lässt du die Zeile nur weg, dann ist der Bonus trotzdem noch beibehalten.
    Und den Befehl kann man auch anderswo im Script einfügen, nicht nur unter OnGameModeInit.


    Das war wohl nix, Viking :thumbdown: