Nützliche Funktionen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Morgen liebe Brotfische,


    mir war mal langweilig und da habe ich überlegt, welche Funktionen denn in Pawn noch so recht praktisch sind/wären.


    Aus diesem Grund habe ich ein paar Funktionen geschrieben die ich gleich erläutern werde, zunächst aber mal, wenn euch noch irgendwelche coolen Funktionen einfallen die ihr haben wollt, könnt ihr sie gerne posten:


    [tabmenu]


    [tab='Informationen','http://the-devils-playground.org/wcf/icon/infoM.png']
    [subtab='Funktionen','http://forum.gamerzhost.de/wcf/icon/codeS.png']
    GetPickupPos(pickupid, &Float: X, &Float: Y, &Float: Z); //Siehe "Wichtig"
    GivePlayerJetpack(playerid, bool: var);//wenn var = true, bekommt er ein Jetpack | wenn var = false, wird dem Spieler das Jetpack genommen
    GetIP(playerid); //Gibt die Ip (als String) aus
    GetVehicleDriver(vehicleid); //Gibt die Spielerid vom Fahrer wieder
    CountAllObjects(); //Zählt alle Objekte im Script
    CountAllPickups(); //Zählt alle Pickups im Script *Wichtig lesen*
    CountAllVehicles(); //Zählt alle Vehicles
    InRange(playerid, Float: range, Float: X, Float: Y); //Tab Beispiele mal schauen
    GetVehicleColor(veh, &color1, &color2); //Schreibt die Farbeid in die Variable color1 und color2
    VehiclePort(playerid, modelid, Float: range); //Portet alle vehicleids mit dieser modelid in dieser Range zu dir
    RangeFreeze(playerid, Float: range, bool: var); //Range freeze (true = freeze) | (false = unfreeze) | Beispiel Tab mal schauen
    GetVehicleInterior(vehicleid); //Gibt den Interior von dem Fahrzeug wieder (Siehe Wichtig !)
    CutIp(Ip[]);//Siehe Beispiel Tab
    GetVehicleSeats(vehicleid); //Gibt die Anzahl der Sitze eines Fahrzeuges wieder !
    GetVehicleEmptySeats(vehicleid); //Gibt die Anzahl der Freien Sitze in einem Fahrzeug an !
    IsAlpha(text[]); //Prüft ob der Text nur aus Buchstaben besteht ! (Beispiel Tab)
    GetIDFromName(name[]); //Man gibt dort den Namen eines Spielers ein und erhält seine ID
    LogMessage(filename[], msg[]); //Schreibt die Nachricht in die Datei
    WriteList(nam[]); //Schaue Beispiel Tab
    ListActive(playerid); //Schaue Beispiel Tab
    GetVehicleCoDriver(vehicleid); //gibt die playerid von dem CoDriver wieder
    GetOnlinePlayers();//Returnt die Anzahl der Spieler die online sind
    SetEngine(vehicleid, bool:var);//Motor an/aus (Beispiel Tab)
    SetDoors(vehicleid, bool:var);//Türen auf/zu
    SetLights(vehicleid, bool:var);//Lichter an/aus
    SetAlarm(vehicleid, bool:var);//Alarm an/aus
    SetBonnet(vehicleid, bool:var);//Motorhaube auf/zu
    SetBoot(vehicleid, bool:var);//Kofferraum auf/zu
    SetObjective(vehicleid, bool:var);//Objective an/aus

    [subtab='Anleitung','https://webmail.server.uni-frankfurt.de/horde/themes/graphics/problem.png']
    Um die Include Datei nutzen zu können, muss sie in diesen Ordner/Pfad kopiert werden:

    Code
    /pawno/includes


    und in seinem Script wo man die Funktionen nutzen möchte muss oben stehen:
    #include <kaliber>
    [subtab='Beispiele','http://www.damen-eishockey.de/images/lampe.gif']
    Hier ein paar Beispiele zu den Funktionen:



    //SetEngine
    SetEngine(GetPlayerVehicleID(playerid), false);//Motor ist ausgeschaltet


    //Whitelist System
    new WhiteListName[3][64] = {"Kaliber","Test","Penner"}; //nur ein Bsp muss man natürlich anpassen
    public OnGameModeInit()
    {
    for(new i; i<sizeof(WhiteListName); i++)
    {
    WriteList(WhiteListName[i]);
    }
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
    ListActive(playerid);//und wenn der Spieler nicht oben eingetragen wurde, wird er hier gekickt !
    return 1;
    }


    //IsAlpha
    new text[128];
    format(text, 128, "Hey was geht ab ?!");
    if(IsAlpha(text))
    {
    //Der Text enthält keine Zahlen !
    }


    //InRange
    if(InRange(playerid, 15.0, X, Y))
    {
    //Der Spieler ist in der Nähe von dieser X oder Y Koordinate !
    }


    //Ip Cutter
    new Ip[16];
    GetPlayerIp(playerid, Ip, 16);
    printf("Cuttet Ip: %s",CutIp(Ip));
    //->OutPut 127.0. (Wenn die Ip 127.0.0.1 war)


    //Range Freeze
    RangeFreeze(playerid, 15.0, true); //User in einer Range von 15.0 werden gefreezt !
    [subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
    SourceCode: Pastebin
    Mediafire: Mediafire
    [/tabmenu]


    Bitte um Feedbacks und um mehr Funktionen !


    mfg. :thumbup:


    //Edit:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    21 Mal editiert, zuletzt von Kaliber ()

  • Sehr interessant.


    Finde ich gut gemacht von dir :)


    Aber eine Frage habe ich zu CountAllObjects();
    Zählt diese Funktion nur die Standart Objecte Sprich CreateObject(...
    Oder auch die Objekte von Streamern Sprich CreateStreamObject(.../ CreateDinamyc(Object(... ?


    Mit freundlichen Grüßen
    Me

    Stahlbau Azubi deswegen kaum Aktiv

  • Zählt diese Funktion nur die Standart Objecte Sprich CreateObject(...
    Oder auch die Objekte von Streamern Sprich CreateStreamObject(.../ CreateDinamyc(Object(... ?


    Sie zählt beide mit ;)


    Sehr interessant.


    Dankeschön, hast du Verbesserungsvorschläge ?


    Simple aber Nice.


    Danke, hast du noch Verbesserungsvorschläge ?


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich poste alle meine Vorschläge in einen Post, damit es nicht als SPam gilt.


    // Edit: Ist es auch möglich alle User die eine IP Adresse haben, aufzulisten in einem Dialog?
    // Edit: Ist es möglich, Alle User die den selben Skin haben aufzulisten? (Ist einwenig unnötig, aber irgendwann nötig)
    // Edit: Ist es möglich Alle Member einer Fraktion aufzulisten?
    // Edit: Ist es möglich, alle Fahrzeug eines bestimmten Types (Also nicht die Server.CarID, sondern die normale Carid z.B Infernus 411) zu sich zuporten? Praktisch für Evnts etc.
    // Edit: Ist es möglich, alle user die in der nähe sind (Radius definier bar) zufreezen / unzufreezen =

    Einmal editiert, zuletzt von Fipsi. ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Weite Vorschläge ;)

    Joar, klar:

    • GetVehicleColor
    • GetVehiclePaintjob
    • GetVehicleInterior
    • CreateVehicleEx mit Interior als Parameter (Linken von Fahrzeugen an Interiors
    • Dann könnteste Funktionen schreiben wie IsBike, IsTruck etc.. (Nur so als Anregung)
    • Funktionen zum Abfragem, wieviele Sitzplätze ein Fahrzeug hat
  • schöne sache :) Kannst du evtl auch eine Funktion machen, wie z.B "IsPlayerInRangeOfPoint", wobei aber nur die X und die Y achse eine rolle spielen, und natürlich der radius ? Also die höhe dann egal. (Falls dies überhaupt möglich ist)


    Sehr gute Idee ;)


    Werde ich gleich mal machen (das ist möglich) ;)


    Ich poste alle meine Vorschläge in einen Post, damit es nicht als SPam gilt.


    Wäre cool :)



    Thx ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich poste alle meine Vorschläge in einen Post, damit es nicht als SPam gilt.


    // Edit: Ist es auch möglich alle User die eine IP Adresse haben, aufzulisten in einem Dialog?
    // Edit: Ist es möglich, Alle User die den selben Skin haben aufzulisten? (Ist einwenig unnötig, aber irgendwann nötig)
    // Edit: Ist es möglich Alle Member einer Fraktion aufzulisten?
    // Edit: Ist es möglich, alle Fahrzeug eines bestimmten Types (Also nicht die Server.CarID, sondern die normale Carid z.B Infernus 411) zu sich zuporten? Praktisch für Evnts etc.
    // Edit: Ist es möglich, alle user die in der nähe sind (Radius definier bar) zufreezen / unzufreezen =


    1. Die Funktion gibt es ja, aber sie anwenden muss man schon selber machen ;)
    2. Das könnte ich zwar in einen String packen, der wird aber übelst lang und mega unnötig...also lass ich es lieber :S
    3. Nein, da ich nicht weiß, wie man die Fraktionsvariable deklariert.
    4. Ja, dass kann ich auch machen, obwohl das auch überflüssig ist...(d.h.modelid)
    5. Jo


    mfg. :thumbup:


    //Edit: Verbessert
    //Edit2: Neue Funktionen hinzugefügt ! Weitere Vorschläge bitte...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    2 Mal editiert, zuletzt von Kaliber ()

  • Kaliber es gefällt mir


    eine kleine sache fin dich da nicht so schön
    #pragma tabsize 0
    ((Das kannste besser :D))


    Aber eine idee hab ich noch


    Du wirst lachen, aber in diesem Fall ist das notwendig !


    Ich habe alles eingerückt, aber wenn jetzt einer auf die schlaue Idee kommt und das von pastebin kopiert ist es nicht mehr eingerückt, aus diesem Grund das #pragma als Sicherheit um Warnings vorzubeugen ;)


    Zitat

    Aber eine idee hab ich noch


    Welche :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Die Idee finde ich auch gut.. das man abfragen kann auch, ob einer hinter einem Auto steht oder so (Könnte ich z.B gebrauchen)


    Mal sehen...


    Wenn jemand sonst noch Vorschläge hat, gerne posten :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Bei GetVehicleDriver ist ein Fehler. Die Schleife überprüft nur 250 Spieler


    Glaubst du ein deutscher Server, der diese Hilfe benötigt hat mehr als 250 Spieler :huh:


    PS: Wenn dir das zu wenige sind, kannst du das jederzeit editieren ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen