Beiträge von Sapd

    Hallo ein kleines Tutorial für alle die ab 0 anfangen wollen.
    Also als erstes müsst ihr euren Pawn Editor starten und am besten die "new.pwn" öffnen.
    So ihr seht jetzt die includes ganz oben, die braucht der Compiler.
    Hm, wenn ihr das Script anschaut dann sieht es am Anfang ziemlich kompliziert aus nicht? Wenn ihr euch erstmal eingearbeitet hat dann schaut es ziemlich einfach aus.


    1. Die Defines


    Dann gibts #define man könnte das als Variablen bezeichnen. Sie werden häufig als Farben benutzt.
    Die werden so eingesetzt( Ein Farb beispiel):

    Code
    #define blau 0x33AAFFAA
    SendClientMessage(playerid, blau, "Farben Test");


    Dies Sendet einen text "farben test" an playerid in blau. was das mit Playerid auf sich hat kommt gleich.
    Es gibt noch die spezielle Definition

    Code
    #define FILTERSCRIPT


    Das muss ihr reinmachen wenn ihr ein Filterscript macht.


    2. Das Script intalasieren und alle Spawns und AutoSpawns


    So jetzt wollen wir den Gamemode/filterscript starten (also das machen was am starten des Scripts passiert.
    Es gibt jetzt erstmal einen Allgemeinen Start

    Code
    main()
    {
    }


    Er intaliersirt das was drin ist egal ob Gamemode oder Filterscript.
    So aber das wollen wir nicht verwenden.
    Wir verwenden das:

    Code
    public OnGameModeInit()
    {
    }


    bzw.

    Code
    public OnFilterScriptInit()
    {
    }


    Hier könnt ihr nun allles reintun was intaalisirt werden sollen.
    Um euren Script namen zu setzen benutz das( nur für gamemode):

    Code
    SetGameModeText("Euer name des Scripts");


    Das Spawnt ein Auto bzw. Player (oder macht besser gersagt ein Player Spawn):

    Code
    AddStaticVehicle(Modelid,x Axis, y axis, z axis, z rotation, farbe 1, farbe2);
    AddPlayerClass(skinid,x axis, y axis, z axis, z rotation, waffe 1, waffe2, waffe 3, w 4, w5, w6);


    Dabei gibts ein Auto Limit von 700 autos, und 50 - 70 verschiedene Auto Models.


    Wo krieg ich die Coordinaten her?
    Ganz einfach geht in den SA:MP debug. Geht zum euren Ort wo ein Spawn gemacht werden soll. (Mit gewünschten Auto für auto Spawn oder mit Player für Player Spawn).
    Wenn ihr da seit gibt /save ein.
    Ihr könnt mit /vsel ein auto auswählen.
    Der Fertige code wird dann in die Datei namens "savedpositions.txt" in deinen sa ordner gespeichert


    3. Die Commandos


    Was wäre denn ein Server ohne Commandos?
    So jetzt kommen wir dazu.


    Also mit um die überhaupt zu machen, fangen wir mit denn Callback an.

    Code
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 0;
    }


    Hier kommt alles rein was passieren soll, wenn irgendein Befehl, also mit / angegeben wird. Egal welcher befehl.
    Aber da wir bestimmte Befehle Filtern wollen, benutzen wir:

    Code
    if (strcmp("/befehl", cmdtext, true) == 0)
    {
    // Hier kommt der Code rein was passieren soll bei den Befehl.
    }


    Ein beispiel mit den /kill befehl.

    Code
    if (strcmp(cmdtext, "/kill", true)==0)
    {
    SetPlayerHealth(playerid, 0);
    return 1;
    }


    So jetzt wollen wir mal ein /me befehl machen

    Code
    if(strcmp(cmdtext, "/me", true)==0) { 
    new str[256], sname[256];
    GetPlayerName(playerid, sname, 256);
    format(str, 256, "%s %s", sname, cmdtext[4]);
    SendClientMessageToAll(0x33CCFFAA, str);
    return 1;
    }


    So das schaut ja am Anfang ziemlich komplex aus, ist es aber nicht wirklich wenn man es sich näher anschaut.


    Als erstes erstellen wir neue variablen: str Das benutzen wir als Text und pname für denn namen des Spielers.
    Jetzt müssen wir natürlich herausfinden, wie der Spieler Name überhaupt heißt.
    GetPlayerName(playerid, sname, 256); tut herausfinden wie der Player heißt, und tut ihn in dieser Variable abspeichern.
    Das format tut jetzt den Text generieren, sname und cmdtext tuen jetzt definieren was statt %s rein soll (es geht nicht anders), in der Reihenfolge wie sname oder cmdtext.
    Cmdtext ist der restliche Text, sonst wird es nur ein Wort oder Zahl verwendet.
    Jetzt wird das genierte Format ausgegeben, in leutblau. Unswar mit SendClientMessageToAll.


    Wie man es mit z.b. /spawn id macht kommt noch.


    So das Tut ist noch nicht ganz fertig. Weist mich bitte auf Fehler aufmerksam, wenn ich einen gemacht habe.

    Ne das sind Pro Spieler. Sonst würde ja der Server crashen und nicht der Client...
    Die crashen nur meistens alle gleichzeitig weil die on Gamemodeint sind damit werden die für alle gespawnt.
    Wenn man aber so macht das wenn nur bei einen Player viele Objekte gespwant werden dann Crasht auch nur er.

    Hi,
    ich finde dein FS ziemlich gut und leicht zu bedienen, hab nur ein Problem:
    Ich hab also das gestartet und eine Insel erstehlt, dann habe ich die coordinaten in CreateObject umgewandelt und in mein Script getan. Dann habe ich es complimilt server neugestartet und es ausprobiert, es ging. Also wollte ich noch ein paar Dinge hinzufügen es ging, aber wurde dennach nicht in dieser .txt gespeichert wie behebe ich das Problem? :P