(Repost) Wie benutze ich DataStructure? / How to use DataStructure?

  • #1, by NoComTuesday, 20. May 2014, 17:18 11 years ago
    Hallo Community,

    ich weiß zwar nicht was gerade passiert ist, aber irgendwie ist mein post weg, also schreib ich ihn nochmal.

    ich habe mal wieder eine kleine frage:
    wie benutze ich die DataStructure?

    bit.ly/1jRhzID


    z.B. wird mir hier unter Object das Field "ObjectVisibility" wie muss ich diese information nutzen um in Visionair 3.7.1 die transparentz eines objektesmit einem lua-script zu beeinflussen?
    ich habe folgendes versucht:

    function AudioVisible()
    local g_Speech = getVolume(eSpeechVolume)
    local g_Speech_vis = getObject('Scenes[Optionen].SceneObjects[Button_speech_loud_'..g_Speech.. '].ObjectVisibility')
    if g_Speech_vis then
    g_Speech_vis:setValue(VValueInt, 50)
    end
    end


    MfG,
    NoComm


    Hello Community,

    i don't know why, but my post was gone, so i made a new one.

    i have a little question:
    How do i use the DataStructure?

    bit.ly/1jRhzID


    e.g. you can read in the subcategory "Object" the Field "ObjectVisibility". How can i use this information in visionair 3.7.1 to influence the transparency of an object with a lualscript?
    i tried the following script:

    function AudioVisible()
    local g_Speech = getVolume(eSpeechVolume)
    local g_Speech_vis = getObject('Scenes[Optionen].SceneObjects[Button_speech_loud_'..g_Speech.. '].ObjectVisibility')
    if g_Speech_vis then
    g_Speech_vis:setValue(VValueInt, 50)
    end
    end


    Best Regards,
    NoComm

    Newbie

    24 Posts


  • #2, by SimonSTuesday, 20. May 2014, 19:36 11 years ago
    Moie, hast du die Fehlermeldung parat? Was ich sehe ist dass du versuchst einen Int als Objekt zu holen und dann was an einem Value ändern willst, das geht anders. Das Objekt ist das Szenen Objekt, also
    getObject('Scenes[Optionen].SceneObjects[Button_speech_loud_'..g_Speech.. ']') und der Wert den du änderst ist ObjectVisibility. Also musst du es so machen:
    getObject('Scenes[Optionen].SceneObjects[Button_speech_loud_'..g_Speech.. ']'):setValue(VObjectVisibility,50)
    

    Grüße

    Thread Captain

    1593 Posts

  • #3, by NoComSaturday, 24. May 2014, 10:06 11 years ago
    Hi,
    tschuldigung das es so lange gedauert hat mit meiner antwort, wart ein bisschen krank :/
    also bei deiner zeile kommt keine fehlermeldung, es funktioniert einfach nicht. D:

    kann ich ein bild evtl irgendwie verschieben? ich will nur so ein kreuz haben, das sich auf knopfdruck nach links oder rechts verschiebt (und da ich es für 30 plätze brauche, wäre mir das zusammenziehen des scripts mit visionair ohne lua zu aufwändig)

    Newbie

    24 Posts

  • #4, by NoComSaturday, 24. May 2014, 10:27 11 years ago
    Kann man ein Szenenobjekt nicht einfach von a nach b schieben oder so ähnlich?
    Irgendwo muss es doch ein einfaches beispiel dafür geben, damit ich mir mal anschauen kann, wie das funktioniert.

    Newbie

    24 Posts

  • #5, by SimonSSaturday, 24. May 2014, 11:28 11 years ago
    Hast du Loglevel auf info gestellt ? Du musst in der messages.log nachschauen, die findest wenn du ausführen / %localappdata% und dann im Ordner <Firmenname> / <Spielname>

    Meinst du zur Laufzeit ? Nicht ohne lua, und es speichert sich wahrscheinlich nicht im Savegame. Wenn du nur ein Objekt verstecken willst gehst du besser über Bedingungen, da brauchst du kein Lua für.

    Thread Captain

    1593 Posts

  • #6, by NoComMonday, 26. May 2014, 19:45 11 years ago
    Hm, mir gehts eher darum, dass ich gerne einen richtigen einstieg in diese scriptsprache finden will. Die lua basics beherrsche ich, aber wie ich auf einzelne objecte zugreiffe, wird nicht so klar . :/

    Newbie

    24 Posts

  • #7, by BigStansMonday, 26. May 2014, 23:59 11 years ago
    Im wiki gibt's mittlerweile gute HowTo's zu den Lua commands. Suche dort mal nach CMS.
    Das sind in der Regel script's von Lee.

    Great Poster

    361 Posts

  • #8, by NoComWednesday, 28. May 2014, 10:46 11 years ago
    Ich will kein HowTo sondern eine vollständige bzw brauchbare API.
    z.B.
    Ich versuche gerade ein Objekt von A nach B zu verschieben (nicht sliden, ein von A nach B teleportieren reicht).
    Wo finde ich das im Wiki?

    weil diese funktion:

    local Vorhang1 = getObject('Scenes[Loading].SceneObjects[PIC_Vorhang_1]')
    Vorhang1:setValue(ObjectPosition,{x =100,y=100})

    funktioniert nicht.

    Newbie

    24 Posts

  • #9, by BigStansWednesday, 28. May 2014, 12:01 11 years ago
    Das schon fast richtig.
    Ändere mal ObjectPosition in VObjectPosition

    A field constant starts with a 'V' followed by the field name. E.g. to access the field GameCurrentScene you would have to use the constant VGameCurrentScene (the scripting command could look like this: "game:getLink(VGameCurrentScene)").
    


    wiki.visionaire-tracker.net/wiki/Data_Structure

    Great Poster

    361 Posts

  • #10, by afrlmeWednesday, 28. May 2014, 12:36 11 years ago
    Not all data structure fields are writable, some are read only.

    VObjectPosition for instance, is not scriptable. You can however adjust the position of the objects polygon & an active animation linked to the object. You can not however move the object or the static image.

    In the data structure, the scriptable table entries are the ones highlighted with a bright green background. If it is not highlighted, then it is read only.

    As David said: you have to add "V" in front of the data fields when using them inside of a script.

    Imperator

    7285 Posts

  • #11, by NoComWednesday, 28. May 2014, 12:56 11 years ago
    ok nur damit ich das richtig verstanden habe, das was in der letzten Spalte in der Data Structure steht, muss vor das geschrieben werden was ich in der zweiten spalte steht?
    Je nachdem unterschieden ob es ein Value (V) oder ein String (S) ist.
    Damit wird mir so einiges klar :O

    Jetzt nochmal zu meinen Script, ich denke mal, es funktioniert jetzt, nach deiner korrektur, richtig, aber das ist nicht die funktion die ich suche.
    (nachdem ich mir den punkt ausgeben habe lassen, hab ich gemerkt, dass da iwas nicht stimmt)
    anscheinend verschiebt er dort den punkt, an dem das objekt seinen ausrichtungspunkt hat. ich will aber das Bild des kulissenobjekts verschieben. Ich denke mal, das ObjectPosition dann das falsche ist.
    Muss das dann mit dieser snoopanimation gemacht werden?

    p.s. Tschuldigung das ich da oben etwas Pissy klang, aber iwann wird sowas einfach frustierend xD

    p.p.s. wollte das eig. vor AFRLme posten, hab nur vergessen auf senden zu drücken xD
    Danke für die Hilfe, das bringt mich sicher weiter ^^

    Newbie

    24 Posts