N'abend zusammen,
Dieses Tutorial befasst sich mit der neuen HTTP Funktion, die seit Samp 0.3b verfügbar ist.
Ich werde hier allerdings nur auf den Typ HTTP_GET eingehen !
Dieses Tutorial ist vor allem für Anbieter von Filterscripts, die ihre Anwender sofort über Updates informieren möchten.
Aber zunächst müsst ihr sicherstellen, dass ihr die Serverdateien der Version Samp 0.3b habt. Desweiteren muss jeder Anwender eures Produkts die neuste Sampversion besitzen.
Wenn diese Anforderungen erfüllt sind kanns auch schon losgehen :
// Unter #include <a_samp> fügen wir folgendes ein :
#include <a_http>
// Dieses Include ist dafür da, damit ihr die HTTP Funktion verwenden könnt.
// ===================================================================
// Bevor wir überhaupt nach Updates ausschau halten können, müssen wir diesem
// Script eine Versionsnummer geben
#define Version "0.1"
// In diesem Beispiel wäre das 0.1
Wenn ihr nun ein Update veröffentlicht, müsst ihr wie folgt vorgehen :
Ihr erstellt auf eurem Desktop eine neue Text-Datei : version.txt.
Diese öffnet ihr mit dem Editor und fügt eure neue Versionsnummer ein ( In meinem Beispiel 0.2).
Nun müsst ihr diese Datei hochladen. Für alle die keinen eigenen Root/V-server haben, gibt es natürlich auch eine Lösung.
Auf der Seite http://www.autohotkey.net könnt ihr die Datei hochladen. (Bevor Fragen aufkommen : Ich habe früher mit AHK gescriptet, daher kenne ich die Seite.
Ihr könnt die Datei natürlich auch woanders hochladen. Dies ist nur eine Möglichkeit).
So, jetzt gehts an die HTTP Funktion :
HTTP(index, type, url[], data[], callback[])
//index : Die ID der Anfrage (Nur wichtig, wenn man mehrere HTTP-Anfragen auf ein Callback richtet)
//type : Typ der Anfrage (In unserem Fall HTTP_GET)
// url[] : Die URL von der die Daten geladen werden sollen (ohne http:// davor)
// data[] : Daten, die mit der Anfrage mitgesendet werden sollen (In unserem Fall wird dies nicht benötigt,
// da wir nichts versenden, sondern nur Daten abrufen)
// callback[] : An dieses Callback wird das Ergebniss der Anfrage gesendet
// So sieht mein HTTP-Befehl aus :
HTTP(1,HTTP_GET,"www.autohotkey.net/~Snail/version.txt","","Updatetest");
Ihr müsst bei eurem Befehl lediglich die URL ändern.
Es gibt verschiedene Möglichkeiten, diesen Befehl auszuführen. Ihr könnt es z.B. unter OnFilterScriptInit() einfügen.
Dann wird allerdings nur beim Laden des Filterscripts nach Updates überprüft.
Meine Empfehlung : ein Timer der alle 24 Stunden nach Updates sucht. Wie man einen Timer erstellt erkläre ich jetzt aber nicht, dazu gibt es andere Tutorials.
Wie euch wahrscheinlich schon aufgefallen ist, wird meine HTTP-Anfrage an das Public Updatetest gesendet. Dieses sieht folgendermaßen aus :
forward Updatetest(index, response_code, data[]);
public Updatetest(index, response_code, data[])
{
if(response_code == 200) //Response_Code 200 bedeuted, dass die Anfrage erfolgreich war (s. Wiki)
{
if(strcmp(data,Version, false)) // Hier wird nun das Ergebniss der Anfrage mit der Version dieses Scripts verglichen.
{
// Falls diese Ungleich sind kommt folgendes :
printf("Ein neues Update ist verfügbar (Version %s).",data);
// Ihr könnt natürlich auch SendClientMessage oder ähnliches machen
}
}
return 1;
}
Bei Fragen/Problemen einfach hier posten.
Gruß Snail
PS : Über eine Bewertung würde ich mich freuen
//Edit : Tut mir Leid wegen Einrücken, aber dieser Editor hat alles kaputt gemacht -_-