Objekt-Variable hochzählen

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
  • Also, ich habe um die 50 Objekte.
    Alle fangen mit "objekt" an, gefolgt von einer Zahl, also

    Code
    objekt1
    objekt2
    objekt3
    objekt4


    etc.


    Nun möchte ich aber nicht immer nachzählen (also

    Code
    if(params == 1)
    {
         SetObjectPos(objekt1,X,Y,Z);
    }


    Da dachte ich halt an:
    format(output,sizeof(output),"objekt%d",params);
    SetObjectPos(output,X,Y,Z);
    was anscheinend nicht geht, da der Fehler

    Zitat

    error 035: argument type mismatch (argument 1)


    auftritt.


    Gibt es eine ähnliche Möglichkeit, wodurch ich nicht alle möglichen Objekte einzeln durchsehen muss ?


    Mfg,
    Blasium


    /edit:
    Ich löse es jetzt mit Switch, lasse es aber offen, falls jemand antworten will ;)

    3 Mal editiert, zuletzt von Trooper[Y] ()

  • Hm ich weiß nicht obs richtig ist aber wenn die Position immer die selbe ist bei jedem Objekt kann man doch eine Schleife nehmen die alle objecte durchgeht.

    for(new objekt=0;objekt<50;objekt++) //50 = 50 Objekte
    {
    SetObjectPos(objekt,X,Y,Z);
    }


  • Zitat

    format(output,sizeof(output),"objekt%d",params);
    SetObjectPos(output,X,Y,Z);

    Du kannst keinen String als Objekt verschieben^^
    // Ein neues define:
    #define ReturnObjectVar(%1) objekt%1


    // Dann kannst du das so benutzen:
    SetObjectPos(ReturnObjectVar(params),X,Y,Z);


    // Wenn params ein String, ist dann:
    SetObjectPos(ReturnObjectVar(strval(params)),X,Y,Z);


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!