LuaPlus: eine Tabelle in einer Tabelle



  • Bin erst vor kurzen auf LuaPlus gestoßen und da es nur relativ wenig tut gib habe ich jezt schon ein kleines Problem.
    Im Prinzib würde ich gerne in c++ eine Tabele erstellen die in sich noch eine Tabelle besitzt, also wie ein 2 dim Array.
    Wenn ich z.B. Tabelle1 & Tabelle2 anlege und dann Tabelle2 in Tabelle1 einfüge(mit SetObject oder AssigneObject) stürzt das Prog ab.

    LuaState * pState = g_pApp->m_pLuaStateManager->GetGlobalState().Get();
    
    Tabelle1.AssignNewTable( pState );
    Tabelle2.AssignNewTable( pState );
    
    Tabelle1.AssignObject((LuaObject&) Tabelle2);
    

    Im script sollte es dann so aussehen: Tabelle1.Tabelle2.valueA

    Vielen dank fürs helfen 🙂



  • Du willst in einer Tabellenzelle eine Tabelle einfügen, oder wie ist das gemeint?



  • Ja eigentlich schon.
    Etwas schwer zum erklären aber in etwa so:

    Haushalt A
    {
    Name = "Hannes"
    Id = 10
    Param:
    Geld = 100
    Frau = "Anna"
    Kinder = 2
    }

    A.Param.Geld = 20



  • #include <iostream>
    
    struct Haushalt
    {
        std::string name;
        unsigned char id;
        unsigned char geld;
        std::string frau;
        unsigned char kinder;
    }
    
    //...
    
    int main()
    {
        Haushalt *Liste;
    	Liste=new Haushalt [1];
    	Liste[0].frau="Anne";
        //...
    }
    

    Oder gleich mit Klasse. 😉



  • Verfehlt leider das Ziel etwas. 😃
    Also versuch ich es noch einmal zu erklären.
    Grundsätzlich soll ein Event System verwiklicht werden und ein script soll zugriff auf das EventData Objekt haben, welches in c++ ich mit hilfe von LuaPlus erstellen muss. Also muss ich die von dir oben gennante structur als ein LuaObject anlegen... sehr verwirrend gg



  • Und du kannst nicht einfach ein Array dieser Objekte erstellen?



  • Seit wann gibts Objekte in Lua?



  • Okey war eindeutig der falsche ausdruck.

    Hier einmal das \1:

    //////////////////////////////////////////////////////////////////////

    --Define the listener function.
    function Update( eventData )
    print("New Actor Created:\n" )
    print(" ID = ".. eventData.ActorId )
    print(" Name = ".. eventData.Params.Name )
    print(" Size = ".. eventData.Params.Size )
    end

    EventManager:AddScriptListener( "new_actor", Update )

    //////////////////////////////////////////////////////////////////////

    Die eventData wird eben in c++ angelegt. ActorId ausgeben funktioniert aber wie das mit den Params funktioniert weiß ich nicht -.-
    Weiters sind die Params für jeden Actor verschieden.


Anmelden zum Antworten