Neue Dialoge in SA:MP | Alpha Test 2 | Entwicklung eingestellt

  • Nach einiger Zeit Entwicklung, die dieses Plugin in Anspruch genommen hat,
    päsentiere ich euch hier die erste Testversion dieses wunderbaren Plugins.


    Es kann noch nicht sonderlich viel, aber das was es kann muss nunmal durch den Härtetest
    und der seid nunmal IHR.
    [tabmenu]
    [tab=Alpha]
    [subtab=Test 2]
    Die Umfrage war ja sehr sehr eindeutig.


    Das heißt es gibt nun die Möglichkeit die Knöpfe/Buttons auf die Rechte Seite zu bringen.
    Ferner ist die Scrollleiste nun fast vollständig vorhanden.


    Wieso nur fast?
    Nunja es ist leider noch nicht ersichtlich wie weit man vom jeweiligen Ende entfernt ist.
    Das merkt man momentan nur dann, wenn sich die Zeilen nicht mehr bewegen.


    Soweit so gut, einige haben sich ja auch gewünscht, das man mehr als nur zwei Buttons am Dialog anbringen kann, dies ist nun gesehen,
    bisher sind 4 möglich ;)


    Weiterhin habe ich einige Limits aufgehoben, z.B. das Limit an möglichen Farben in der Headerline(vorher 30)


    Hier eine neue Übersicht über die aktuellen Funktionen:


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]CreateDialog(Float:x, Float:y, CaptionLine[], Body[], Button1[], Button2[], Button1Color=-1, Button2Color=-1); [*] Erstellt einen Listdialog
    [*] Float:x, Float:y [*] die Kordinaten auf dem Bildschirm (800 x 600) an der der Dialog angezeigt werden soll
    [*] Captionline [*] Die Überschrift des Dialogs. Multicolorinsterion fähig! | Die ~ Funktionen sind hier Blockiert
    [*] Body [*] Der Inhalt des Dialogs mit \n wird eine neue Zeile angelegt. Nicht Multicolorinsertionfähig | Die ~ Funktionen sind hier Blockiert
    [*] Button1, Button2 [*] Die Inhalte der Knöpfe. Knöpfe passen sich bisher noch nicht den Texten an | Bleibt Button 2 Leer, weird nur der erste Button angezeigt.
    [*] Button1Color, Button2Color [*] Optionale Parameter(müssen nicht angegeben werden). Falls sie angegeben werden, müssen sie nach den RGBA Format eingetragen werden.
    [*] Rückgabe(return) [*] Die ID des Dialogs im Format Dialog:ID. Sprich es wird ein neuer Tag benötigt. Erstellung der Variable: new Dialog:ID;
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]native DialogShow(Dialog:ID,playerid); [*] Zeigt den Dialog für einen bestimmten Spieler an
    [*]Dialog:ID [*] Die ID des Dialogs der Angezeigt werden soll
    [*]playerid [*] Der Spieler der den Dialog sehen soll.
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]DialogSetMultiSelectable(Dialog:ID,bool:MultiSelectable); [*] Legt fest ob der Dialog mehr als ein Listitem aufnehmen kann
    [*]Dialog:ID [*] Die ID des Dialogs, der Multiselect unterstüzen soll
    [*]bool:MultiSelectable [*] True(1) Multiselect | False(0) Singleselect
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]OnListDialogResponse(playerid,Dialog:ID,Button,Listitem[],AnzSelected); [*] Wird aufgerufen, wenn ein auf ein Dialogbutton geklickt wird
    [*]playerid [*] Der Spieler, der auf einen der Buttons geklickt hat
    [*]Dialog:ID [*] Die ID des Dialogs
    [*]Button [*] Button links ist 0 | Button rechts ist 1 | Button unten links ist 2 | Button unten rechts ist 3
    [*]Listitem[] [*] Beinhaltet alle Listitems die angeklickt worden sind. Beispiel: 1,2,4,7,
    [*]AnzSelected[*] Beinhaltet die Anzahl der angeklickten Listitems
    [/table]



    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]DialogChangeButtonPos(Dialog:ID,pos); [*] Ändert die ausrichtung der Buttons
    [*]Dialog:ID [*] Die ID des Dialogs
    [*]pos [*] Entweder BUTTONS_DOWN oder BUTTONS_RIGHT - sollte selbsterklärend sein
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]CreateButton(Dialog:ID,ButtonText[],Color=-1); [*] Erstellt einen neuen Button
    [*]Dialog:ID[*] Die ID des Dialogs
    [*]ButtonText[][*]Der Text der auf dem Btton erscheinen soll
    [*]Color[*]Optionale Farbe des Buttons
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]DialogDestroy(Dialog:ID);[*] Zerstört einen erstellten Dialog
    [*]Dialog:ID[*] Die ID des zu zerstörenden/löschenden Dialogs
    [/table]


    Später werden die Funktionen DialogChangeButtonPos und CreateButton einen weiteren Parameter erhalten,
    damit man die Dialoge auch weiter individualisieren kann.


    Zum Source:
    Ich weiß das weiter unten steht das es keinen freien Source gibt, aber seis drum,
    es gibt nun die Möglichkeit den Source zu erhalten, ihr dürft ihn aber weder verkaufen, verändern, zum Download anbieten oder als euren ausgeben.
    Falls ihr den Source haben wollt, meldet euch bei mir, sofern ich euch den anvertraue.


    Weiterhin suche ich jemanden, der mir das Plugin auf Linux kompiliert, damit es auch eine Linux version davon gibt ;)


    Installation:


    Windows:
    Zuerst ladet ihr euch das Plugin runter,
    das macht ihr einfach hier.
    Dann fügt ihr die .dll im Plugin Ordner eurem Pluginsordner hinzu und die .inc in euren Pawno/Includes Ordner.


    Wichtig
    Zum starten des Servers braucht ihr die beiliegende sampgdk3.dll diese fügt ihr einfach in euren Serverordner hinzu,
    also dort wo eure server.exe liegt.


    Linux:
    Keine Version bzw informationen dafür vorhanden.




    [subtab=Test 1]
    Ein paar Bilder gibt es natürlich auch ;)



    Wenn der Härtetest gut verläuft und wenn nötig die Fehler korrigiert sind, kommen neue Dialogtypen und ein paar neue Extras zu den Listdialogen, z.B. die Scrollbar.



    Gut zum eigentlichen Plugin.


    Bisher gibt es ein Limit von 80 Dialogen, das sollte definitv vorerst reichen.
    Das Limit wird später natürlich noch erhöht bzw entfernt, aber erst wenn die Zeit reif ist.
    Das ist sie bisher ja noch nicht :D


    Bisherige Funktionen:
    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]CreateDialog(Float:x, Float:y, CaptionLine[], Body[], Button1[], Button2[], Button1Color=-1, Button2Color=-1); [*] Erstellt einen Listdialog
    [*] Float:x, Float:y [*] die Kordinaten auf dem Bildschirm (800 x 600) an der der Dialog angezeigt werden soll
    [*] Captionline [*] Die Überschrift des Dialogs. Multicolorinsterion fähig! | Die ~ Funktionen sind hier Blockiert
    [*] Body [*] Der Inhalt des Dialogs mit \n wird eine neue Zeile angelegt. Nicht Multicolorinsertionfähig | Die ~ Funktionen sind hier Blockiert
    [*] Button1, Button2 [*] Die Inhalte der Knöpfe. Knöpfe passen sich bisher noch nicht den Texten an
    [*] Button1Color, Button2Color [*] Optionale Parameter(müssen nicht angegeben werden). Falls sie angegeben werden, müssen sie nach den RGBA Format eingetragen werden.
    [*] Rückgabe(return) [*] Die ID des Dialogs im Format Dialog:ID. Sprich es wird ein neuer Tag benötigt. Erstellung der Variable: new Dialog:ID;
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]native DialogShow(Dialog:ID,playerid); [*] Zeigt den Dialog für einen bestimmten Spieler an
    [*]Dialog:ID [*] Die ID des Dialogs der Angezeigt werden soll
    [*]playerid [*] Der Spieler der den Dialog sehen soll.
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]DialogSetMultiSelectable(Dialog:ID,bool:MultiSelectable); [*] Legt fest ob der Dialog mehr als ein Listitem aufnehmen kann
    [*]Dialog:ID [*] Die ID des Dialogs, der Multiselect unterstüzen soll
    [*]bool:MultiSelectable [*] True(1) Multiselect | False(0) Singleselect
    [/table]


    [table=2]
    [*]Funktion + Parameter [*] Beschreibung
    [*]OnListDialogResponse(playerid,Dialog:ID,Button,Listitem[],AnzSelected); [*] Wird aufgerufen, wenn ein auf ein Dialogbutton geklickt wird
    [*]playerid [*] Der Spieler, der auf einen der Buttons geklickt hat
    [*]Dialog:ID [*] Die ID des Dialogs
    [*]Button [*] Button links ist 0 | Button Rechts ist 1
    [*]Listitem[] [*] Beinhaltet alle Listitems die angeklickt worden sind. Beispiel: 1,2,4,7,
    [*]AnzSelected[*] Beinhaltet die Anzahl der angeklickten Listitems
    [/table]


    Eine Anmerkung um an die Listitems zu kommen,
    dafür könnt ihr wunderbar die Funktion Split und dann strval benutzen.
    Ich pack sie unten mit rein ;)


    Ich werde natürlich noch eine bessere Lösung dafür kreieren, aber da es erst Alpha T1 ist,
    habe ich diese Lösung bevorzugt :)


    Der Downloadlink ist hier zu finden:
    Bitte klicken!


    [/tabmenu]


    Einen Sourcecode dazu gibt es nicht.
    Bevor ihr jetzt damit kommt, es MUSS ein Quellcode vorliegen,
    sage ich NEIN muss es nicht, wenn es von einem Moderator abgesegnet wurde.


    Aber ich hoffe ihr vertraut mir soweit, das ich euch keine Viren einschleusen will.


    Virustotal:
    https://www.virustotal.com/fil…23b6/analysis/1342959722/


    BTW:
    Weitere Infos und Updates sind immer hier zu finden ;)


    Die Split Funktion

    stock split(const strsrc[], strdest[][], delimiter = '|')
    {
    new i, li, aNum, len, srclen = strlen(strsrc);
    while(i <= srclen)
    {
    if (strsrc[i] == delimiter || i == srclen)
    {
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i + 1;
    aNum++;
    }
    i++;
    }
    }



    Dialog Plugin von BlackAce steht unter einer Creative Commons Namensnennung-NichtKommerziell-KeineBearbeitung 3.0 Unported Lizenz.
    Beruht auf einem Inhalt unter https://github.com/Zeex/sampgdk.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

    8 Mal editiert, zuletzt von Akino Kiritani ()

  • Wooooooooooowwwwwwwwwwwwww


    Boss Ace haste es doch zur Alpha geschafft?
    fette und geile sache
    Was soll ich sagen?


    Bombe ich kanns nicht bewerten, da man nicht überbewerten darf^^
    Freu mich schon auf Beta

  • Ohne Source downloade ich nichts.

    dann lad es nicht
    Wenn black den rausgibt brauch er ja nicht weitermachen
    das was er da jetzt hat dauerte schon sehr lange und das gibt er nicht eben mal her

  • Ohne Source downloade ich nichts. Denke mal da sollte es keine Vor/Nachteile geben egal welcher Admin Rang.


    Niemand zwingt dich dazu.
    Aber den Source gebe ich vorerst nicht frei, denn es ist eine heiden arbeit.
    Außerdem wüsste ich keinen Grund warum ich euch einen Virus einschleusen sollte.


    Drebin
    Multiple Choice...
    Du meinst Checkboxen?
    Ja die sind in Planung

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ohne Source downloade ich nichts. Denke mal da sollte es keine Vor/Nachteile geben egal welcher Admin Rang.
    Sieht aber ganz gut aus.
    mfg


    Der Meinung bin ich nicht ;)


    Punkt A: Hier steckt ein Haufen Arbeit hinter
    Punkt B: Mit dem Source wird die Mehrheit nichts anfangen können.


    Punkt C: Wird er bestimmt irgendwann den Code freigeben an Interessenten.
    Punkt D: Es ist keine Schadware


    Black : Super Arbeit!

  • Black ist hier Mod.
    Sprich er wird schon keine Viren mitliefern :D


    Black :
    Ich glaube ich hab Mich verliebt :love:
    Wenn du das Plugin weiter ausbaust werde ich es bestimmt benutzen,
    Aber derzeit brauche ich es nicht.


    Alleine für die Idee sollte man dir n Preis verleihen!

  • Ah, darauf habe ich gewartet. Man hat ja nun schon einige Male ein paar Bilder zu dem neuen Plugin gesehen, aber was man da sieht, sprich die ganzen Parameter, da haut' es einen ja glatt um.
    Wäre bestimmt gut zu verkaufen. :D


    10/10

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.