Advanced Functions


  • Hallo Breadfish, heute möchte ich euch ein neues Plug-in für den SA:MP Server von mir Vorstellen.
    Es dient dazu Funktionen (Natives) o. Callbacks hinzuzufügen die Nützlich sind bzw. mit denn man einige schöne Sachen anstellen kann.
    Die momentane Version von Advanced Functions bietet 4 Callbacks (Darunter 1 einzigartig) und 9 Einzigartige Funktionen (Natives).


    Dieses Plugin funktioniert unter Windows so wie Linux für die SA-MP Server Versionen "0.3X-R2 - 0.3z-R1-2".


    Hier eine Liste der Callbacks:
    forward OnPlayerTargetPlayerChange(playerid, oldtarget, newtarget);
    forward OnPlayerSirenStateChange(playerid, oldstate, newstate);
    forward OnPlayerHoldWeaponChange(playerid, oldweapon, newweapon);
    forward OnPlayerWeaponStateChange(playerid, oldstate, newstate);
    Es müssen nicht alle Callbacks aktiviert werden, wenn keine Aktiviert sind werden keine Überprüfungen Stattfinden.



    Hier eine Liste der Funktionen (Natives):
    // Player Functions
    native InsertPlayerToChecks(playerid);
    native DeletePlayerFromChecks(playerid);


    native GetPlayerQuaternion(playerid, &Float:x, &Float:y, &Float:z, &Float:angle);
    native GetPlayerSurfingOffsets(playerid, &Float:x, &Float:y, &Float:z);
    native CreatePlayerExplosion(playerid, Float:X, Float:Y, Float:Z, type, Float:radius);
    native SetPlayerTeamForPlayer(forplayerid, playerid, teamid);
    native GetPlayerTeamForPlayer(forplayerid, playerid);
    native SetPlayerGravity(playerid, Float:gravity);
    native Float:GetPlayerGravity(playerid);
    native SetObjectMaterialForPlayer(playerid, objectid, materialindex, modelid, txdname[], texturename[], materialcolor);
    native TextDrawSetStringForPlayer(playerid, Text:Text, text[]);
    native GetPlayerSireneState(playerid);


    native GetPlayerWeaponInSlot(playerid, slot);
    native GetPlayerAmmoInSlot(playerid, slot);
    native SendDeathMessageForPlayer(forplayerid, killerid, playerid, reason);


    native SendClientMessageX(playerid, color, const msg[], {Float,_}:...);
    native SendClientMessageToAllX(color, const msg[], {Float,_}:...);


    native GameTextForPlayerX(playerid, time, style, const format[], {Float,_}:...);
    native GameTextForAllX(time, style, const format[], {Float,_}:...);


    native TextDrawSetStringForPlayerX(playerid, Text:Text, text[], {Float,_}:...);



    Informationen:

    Ich empfehle für alle die ein Login oder Ähnliches System besitzen die Funktion "ToggleManualAdding" zu Verwenden, damit werden auch nur wirklich die Spieler überprüft die Nötig sind.


    Nochmals CreatePlayerExplosion führt beim Fahrzeug Fahren zu einer "Desynchronization", da das Auto für andere Spieler "wie mit Magie" Schaden nimmt.


    Fehler gefunden ?:
    Falls du Fehler gefunden hast benachrichtige mich per PN oder Schreibe eine Detaillierte Fehler Meldung in das Thema.



    Download(s) 0.3z:
    Include Datei
    Windows .dll
    Linux .so
    All-in-one Package


    Download(s) 0.3x <:
    Hier Klicken


    Alle Downloads sind auch im Dateianhang zu finden.


    Changelog:
    Better Format funktionen hinzugefügt und Optimiert.*
    Neue Native und kleiner Bug fixes.

    0.3z Update (2/26/2014):

    Kompatibilität zu 0.3z-R1 und R1-2
    GetVehicleQuaternion entfernt, existiert bereits (GetVehicleRotationQuat).
    GetPlayerTeamForPlayer hinzugefügt.
    Alle Nachrichten die an den ganzen Server gesendet werden funtionieren nun.


    2/27/2014
    EditPlayerClass hinzugefügt.
    GetPlayerSpawnPosition hinzugefügt.
    Linux Fehler behoben (... Verschiebung Interner Daten)


    Weitere Informationen:
    Der Release ohne Source-Code wurde von [DT]Sniper genehmigt.
    Falls Interesse besteht wie das Plug-in Arbeitet kann man mich gerne Anschreiben (unprofessionelle Anfragen werden Ignoriert).

    Dateien

    • ADF-AllInOne.zip

      (47,27 kB, 47 Mal heruntergeladen, zuletzt: )

    10 Mal editiert, zuletzt von MyU () aus folgendem Grund: Changelog + Updated Natives /E2: Changelog + 1 New Native

  • Super ;D
    Nur wozu ist OnSirenChange gut?

    [tabmenu]
    [tab='','https://cdn3.iconfinder.com/data/icons/humano2/32x32/emblems/emblem-people.png']
    [subtab='Signatur','https://cdn3.iconfinder.com/data/icons/seo-internet-marketing-flat-icons/128/browser-window.png']


    [subtab='Projekt','https://cdn3.iconfinder.com/data/icons/seo-internet-marketing-flat-icons/128/web-code.png']


    [subtab='Kontakt','https://cdn1.iconfinder.com/data/icons/unique-round-blue/93/mail-128.png']


    hellyeah420@outlook.de


    hellyeah784


    Private Nachricht


    bevorzugt wird derzeit der Kontakt per privater Nachricht.


    [/tabmenu]

  • Welche sollen die einzigartigen Sachen sein?


    Dann kannst ja eigentlich alle zeigen wenn sie nicht einzigartig sind?

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung


  • Dann kannst ja eigentlich alle zeigen wenn sie nicht einzigartig sind?

    oO


    Wovon redest du überhaupt? Bitte poste nichts wenn du kein Plan hast was ich grad überhaupt frage...


    Ich fragte welches einzigartig ist da es mich halt interessiert und ich mir angucken will, doch konnte halt grad keins auf anhieb entdecken vom namen her

  • oO


    Wovon redest du überhaupt? Bitte poste nichts wenn du kein Plan hast was ich grad überhaupt frage...


    Ich fragte welches einzigartig ist da es mich halt interessiert und ich mir angucken will, doch konnte halt grad keins auf anhieb entdecken vom namen her



    Deine Frage hat sich aber so angehört nach dem Motto "Sind nicht einzigartig"!

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • Nichts besonderes. Bisschen unnötig ein Plugin dafür zu machen.


    Für Anfänger wohl ganz gut geeignet.

    Dann Zeig mir mal wie man diese Funktionen ohne Injection in den Prozess erstellen kann.


    Welche sollen die einzigartigen Sachen sein?

    native GetPlayerQuaternion(playerid, &Float:x, &Float:y, &Float:z, &Float:angle);
    native GetPlayerSurfingOffsets(playerid, &Float:x, &Float:y, &Float:z);
    native CreatePlayerExplosion(playerid, Float:X, Float:Y, Float:Z, type, Float:radius);
    native SetPlayerTeamForPlayer(forplayerid, playerid, teamid);
    native SetPlayerGravity(playerid, Float:gravity);
    native Float:GetPlayerGravity(playerid);
    native SetObjectMaterialForPlayer(playerid, objectid, materialindex, modelid, txdname[], texturename[], materialcolor);
    native TextDrawSetStringForPlayer(playerid, Text:Text, text[]);
    native GetPlayerSireneState(playerid);
    native GetVehicleQuaternion(vehicleid, &Float:x, &Float:y, &Float:z, &Float:angle);


    Diese Funktionen sind in der Hinsicht einzigartig da man sie so nicht finden kann bzw mit Pawn Rekonstruieren kann (Sirene, Gravity, Spielerseitge Explosionen, und die anderen "kleinen" Dinge).
    Mit den "Quaternion" Funktionen kann man zB gute Anticheats gegen Spider, Wallride und Player "Fly" Hacks machen.


    /E:
    TextDrawSetStringForPlayer hat zB Denn sinn das man Normale Textdraw TEXTE bei einen einzelnen Spieler ändern kann das heißt man brauch nicht unbedingt Player Textdraws (was Memory auf beiden Seiten spart).

  • native SetObjectMaterialForPlayer(playerid, objectid, materialindex, modelid, txdname[], texturename[], materialcolor);


    Schönes Plugin, wie immer ;)


    Wollte mal wissen, was der Unterschied zwischen meinem Zitat und dieser Funktion ist: http://wiki.sa-mp.com/wiki/SetPlayerObjectMaterial


    mfg. :thumbup:


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

  • Super ;D
    Nur wozu ist OnSirenChange gut?


    PS: Gilt der Target Callback auch bei NPC's?

    [tabmenu]
    [tab='','https://cdn3.iconfinder.com/data/icons/humano2/32x32/emblems/emblem-people.png']
    [subtab='Signatur','https://cdn3.iconfinder.com/data/icons/seo-internet-marketing-flat-icons/128/browser-window.png']


    [subtab='Projekt','https://cdn3.iconfinder.com/data/icons/seo-internet-marketing-flat-icons/128/web-code.png']


    [subtab='Kontakt','https://cdn1.iconfinder.com/data/icons/unique-round-blue/93/mail-128.png']


    hellyeah420@outlook.de


    hellyeah784


    Private Nachricht


    bevorzugt wird derzeit der Kontakt per privater Nachricht.


    [/tabmenu]

  • Ich muss sagen es sind schon enige sehr nützliche Funktionen dabei womit man so einiges zaubern kann.
    Wirklich gute Arbeit ein kleiner Verbesserungsvorschlag in deine Funktion
    TextDrawSetStringForPlayer(playerid, Text:Text, text[]);
    Köntest du ja den Bug mit Codierung noch zusätzlich fixen im Zusammenhang mit den Fonts.