Abfrage nach formatierung aufrufen

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
  • Hallo,


    Ich versuche eine Funktion, bevor ich diese dann weitergebe zu formatieren, damit diese dann auch für die darauf folgende Abfrage passt.


    Hier mein Code:


    Code
    format(string, sizeof(string), "Fraktionenranke[%d][name%d]" ,PlayerInfo[i][Team], PlayerInfo[i][rankteam]);
    			format(string2, sizeof(string2), "%s %s %d" ,string ,Spielername(i), i);


    Leider wird mir InGame aber nur:


    Code
    Fraktionenranke[1][name1] Name ID

    angezeigt.


    Also der String wird nicht in der Funktion Fraktionranke aufgerufen, sondern als String angezeigt..


    Wie mach ich das, damit der erst formatiert wird und dann richtig angezeigt wird?


    MFG Home

  • @m4a_X Das geht hier nicht, da er dann 4 Dimensionen hat, das ist nicht möglich.



    Das, was du da vor hast, ist so nicht möglich, du kannst keine Variable dir "zusammenformatieren" und dann auf diese per String zugreifen.
    Du musst dafür ein mehrdimensionales Array anlegen, das geht hier aber auch nicht mehr, da du dann wie gesagt 4 Dimensionen (Fraktion, Enum, Rang, Namenslänge) benötigst. Du könntest entweder die Namen aus dem enum auslagern, oder du machst es so:
    new team = PlayerInfo[i][Team];
    switch(PlayerInfo[i][rankteam])
    {
    case 1: format(string2, sizeof(string2), "%s %s %d" ,Fraktionenranke[team][name1] ,Spielername(i), i);
    case 2: format(string2, sizeof(string2), "%s %s %d" ,Fraktionenranke[team][name2] ,Spielername(i), i);
    case 3: format(string2, sizeof(string2), "%s %s %d" ,Fraktionenranke[team][name3] ,Spielername(i), i);
    }


    Beim Auslagern hättest du dann eine Variable:
    new frakRangNames[MAX_FRAKS][MAX_RANKS][32];
    Dann könntest du so darauf zugreifen:
    new team = PlayerInfo[i][Team], rank = PlayerInfo[i][rankteam];
    format(string2, sizeof(string2), "%s %s %d" ,frakRangNames[team][rank] ,Spielername(i), i);

  • Das geht hier nicht, da er dann 4 Dimensionen hat, das ist nicht möglich.

    Um das mal kurz nur anzumerken, das ist theoretisch schon möglich, allerdings muss man es richtig aufbauen...


    Also ein Beispiel sieht dann z.B. so aus:

    Output ist dann logischerweise: H

    ast2ufdyxkb1.png


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

  • Also ein Beispiel sieht dann z.B. so aus:

    Das würde aber keinen Sinn machen, da würde man Speicher verschwenden, dass es knallt. Außerdem war die Aussage auf den Code von m4a_X bezogen.



    Klappt bei mir wunderbar

    Sind auch keine 4 Dimensionen ;)



    wen dann aber so.

    Genau das wird dir auf Grund der 4 Dimensionen (zwei davon im enum) mehrere Errors bringen.


    Und zwar diese:
    error 001: expected token: "}", but found "["
    error 010: invalid function or declaration


    Das klappt also wie gesagt nicht.