Problem mit Dialog Paramtern im Array

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
  • Hey,
    da ich eien gewisse Ordnung mag, möchte ich (fast) alle Dialog Paramter in einem Array machen.
    Nur kommt da ein Error argument type mismatch (argument 2)


    Nur verstehe ich nicht warum -__-



    new GermanDialoge[1][6][256]=
    {
    // {DialogID,DialogStyle"Überschrift","Inalt","Button1","Button2"}


    {diaRegistration,diaPasswort,"Registration","Der Account wurde nicht gefunden!\nBitte gebe dein gewünschtes Passwort ein um dich zu registrieren!","Registrieren","Abbrechen"}
    };


    diaPasswort ist DIALOG_STYLE_PASSWORD (defined)


    Jetzt wollte ich es so anwenden
    ShowPlayerDialog(playerid,GermanDialoge[0][0],GermanDialoge[0][1],GermanDialoge[0][2],GermanDialoge[0][3],GermanDialoge[0][4],GermanDialoge[0][5]);


    ShowPlayerDialog(playerid, dialogid, dialogstyle,titel,text,button1,button2);
    Letztens hats noch geklappt, ich verstehe nicht wo der Fehler ist, ich hab ja (eig.) alle Paramter ausgefüllt :huh:


    Hoffe mir kann wer helfen:P


    edit: Pawn Code

    Einmal editiert, zuletzt von Rawr ()

  • Hey,


    da ich eien gewisse Ordnung mag, möchte ich (fast) alle Dialog Paramter in einem Array machen.


    Nur kommt da ein Error argument type mismatch (argument 2)

    Das ganze würde so auch niemals gehen da dies als string gewertet wird.


    Den selben error erzielst du auch mit
    ShowPlayerDialog(playerid,"","",GermanDialoge[0][2],GermanDialoge[0][3],GermanDialoge[0][4],GermanDialoge[0][5]);


    Der Datentyp für das jeweilige argument passt nichz zusammen daher benutz doch ein enum


    enum dialog {
    Did,
    DStyle,
    DHeadline[64],
    DContent[256],
    DButton1[20],
    DButton2[20],
    };
    new GermanDialoge[1][dialog]= {
    // {DialogID,DialogStyle"Überschrift","Inalt","Button1","Button2"}
    {diaRegistration, DIALOG_STYLE_PASSWORD,"Registration","Der Account wurde nicht gefunden!\nBitte gebe dein gewünschtes Passwort ein um dich zu registrieren!","Registrieren","Abbrechen"}
    };


    und um dir die verwendung zu vereinfachen ein einfaches define

    #define ShowDialog(%0,%1) ShowPlayerDialog(%0,GermanDialoge[%1][Did],GermanDialoge[%1][DStyle],GermanDialoge[%1][DHeadline],GermanDialoge[%1][DContent],GermanDialoge[%1][DButton1],GermanDialoge[%1][DButton2])

  • Hey
    Vielen Dank, hast mir sehr geholfen :)!


    edit


    Ich kann den DialogText nicht formatieren, also bspw. den Namen, die ID o.ä. auslesen lassen, oder? :S
    @IPrototypeI:

    Einmal editiert, zuletzt von Rawr ()

  • Hey
    Vielen Dank, hast mir sehr geholfen :)!


    edit


    Ich kann den DialogText nicht formatieren, also bspw. den Namen, die ID o.ä. auslesen lassen, oder? :S
    @IPrototypeI:


    warum solltest du den Dialog string nicht formatieren können


    format(GermanDialoge[0][DContent],256,"Der Account %s wurde nicht gefunden!\nBitte gebe dein gewünschtes Passwort ein um dich zu registrieren!",PlayerName(playerid));");


    du kannst dort nicht sizeof verwenden das hab ich dir schon geschrieben in der Erklärung von der Benutzung der MySQL r7 plugins.


  • warum solltest du den Dialog string nicht formatieren können


    format(GermanDialoge[0][DContent],256,"Der Account %s wurde nicht gefunden!\nBitte gebe dein gewünschtes Passwort ein um dich zu registrieren!",PlayerName(playerid));");


    du kannst dort nicht sizeof verwenden das hab ich dir schon geschrieben in der Erklärung von der Benutzung der MySQL r7 plugins.

    Hey,
    vielen dank, klappt wunderbar :)


    Stimmt :P

  • aber immer schön aufpassen beim verwenden von "sizeof"


    bei einem Mehrdimensionalen Array sprich


    new array[5][7];

    fragt "sizeof" nicht automatisch die Größe der letzten Dimension ab sondern immer so wie es vorgegeben wurde , willst du die letzte Größe Abfragen so musst du je nach Dimension ein [] setzen


    will ich jetzt wissen welche Größe Dimension Nummer ( optional ) 2 hat so müsste ich dies folgendermaßen abfragen


    sizeof(array[]);


    hätte ich jetzt 3 Dimensionen


    new array[5][7][8];


    und will die jeweilige Dimension abfragen sprich die letzte so müsste dies so aussehen



    sizeof(array[][]);


    ich kann aber auch noch immer 0,1,2 Abfragen indem ich eine Array Angabe weniger mache.



    Sollte nur ein Hinweis sein :)

    Mfg. BlackFoX_UD_ alias [BFX]Explosion