Zmiana int32 - 64

Discussion in 'Support' started by mldo, Mar 9, 2017.

  1. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Witam, mam problem przy kompilacji, mianowicie wyleciał mi błąd:

    Code (Text):
    1. ../luascript.cpp: In member function `virtual void LuaInterface::registerFunctions()':
    2. ../luascript.cpp:1406: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    3. ../luascript.cpp:1406: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    Błędów jest kilka, podobna struktura, tylko do czego innego odwołanie. Nie mam pojęcia gdzie leży przyczyna, może mnie nakierujecie, lub znacie podobny przypadek

    Kompilacja trunk.r3884, powiększenie wartości z int32 do int64.
     
    Last edited: Mar 9, 2017
  2. Qbazzz

    Qbazzz Kulfon

    Joined:
    Jul 3, 2009
    Messages:
    24
    Likes Received:
    13
    Best Answers:
    0
    bo funkcja lua_pushcclosure oczekuje w argumencie drugim inta a nie int64. Po prostu twoj kod jest niekompletny. Plus moglbys wiecej informacji podac, co robisz itp.
     
  3. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Zwiększam życie, mane, obrażenia w silniku z int32 do 64. Potworek/Gracz
    Lina przykładowa: 1406
    Code (C++):
    1.     //getCreatureHealth(cid)
    2.     lua_register(m_luaState, "getCreatureHealth", LuaInterface::luaGetCreatureHealth);
    3.  
    4.     //getCreatureMaxHealth(cid[, ignoreModifiers = false])
    5.     lua_register(m_luaState, "getCreatureMaxHealth", LuaInterface::luaGetCreatureMaxHealth);
    6.  
    7.     //getCreatureMana(cid)
    8.     lua_register(m_luaState, "getCreatureMana", LuaInterface::luaGetCreatureMana);
    9.  
    10.     //getCreatureMaxMana(cid[, ignoreModifiers = false])
    11.     lua_register(m_luaState, "getCreatureMaxMana", LuaInterface::luaGetCreatureMaxMana);
    12. (...) w sumie 11 odczytów
    Pozmieniane jest tam gdzie znalazłem, nadal nie znalazłem przyczyny
     
    Last edited: Mar 9, 2017
  4. Qbazzz

    Qbazzz Kulfon

    Joined:
    Jul 3, 2009
    Messages:
    24
    Likes Received:
    13
    Best Answers:
    0
    wydaje mi się, że musisz zmienić w kompilatorze wersje lua na wyższą.
    Znalazłem coś takiego w lua.h:
    Code (C++):
    1. typedef int (*lua_CFunction) (lua_State *L);
    2. LUA_API void  (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n);
    Chyba dopiero od lua 5.3 można używać int64.
    Jeśli się mylę proszę mnie poprawić.
     
  5. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Nie dodawałem jeszcze nigdy biblioteki lua, i mam nie lada problem z tym, jest poradnik, lub wyjaśnił byś mi w kilku krokach jak to poprawnie dodać? Puki co mam więcej błędów niż miałem wcześniej.

    PS: jest lua 5.1, ktoś wie do jakiej wartości sięga lua 5.3?
     
  6. Don Daniello

    Don Daniello /root Staff Member Administrator

    Joined:
    Apr 11, 2008
    Messages:
    3,236
    Likes Received:
    508
    Best Answers:
    3
  7. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Wytłumaczy dobra dusza, jak dodać biblioteke xd?
     
  8. Lukanio

    Lukanio ### Own3D ###

    Joined:
    Nov 25, 2008
    Messages:
    324
    Likes Received:
    4
    Best Answers:
    0
    Nie musisz nic dodawac w TFS masz do int64, no chyba ze dalej Ci malo... ale jak piszesz hp/mp to 64 wystarczy
     
  9. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Nadal nie znalazłem przyczyny błędu:
    Code (Text):
    1. ../luascript.cpp: In member function `virtual void LuaInterface::registerFunctions()':
    2. ../luascript.cpp:1406: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    3. ../luascript.cpp:1406: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    4. ../luascript.cpp:1409: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    5. ../luascript.cpp:1409: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    6. ../luascript.cpp:1412: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    7. ../luascript.cpp:1412: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    8. ../luascript.cpp:1415: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    9. ../luascript.cpp:1415: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    10. ../luascript.cpp:1984: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    11. ../luascript.cpp:1984: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    12. ../luascript.cpp:1987: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    13. ../luascript.cpp:1987: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    14. ../luascript.cpp:1993: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    15. ../luascript.cpp:1993: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    16. ../luascript.cpp:1999: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    17. ../luascript.cpp:1999: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    18. ../luascript.cpp:2002: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    19. ../luascript.cpp:2002: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    20. ../luascript.cpp:2005: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    21. ../luascript.cpp:2005: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    22. ../luascript.cpp:2008: error: invalid conversion from `int64_t (*)(lua_State*)' to `int (*)(lua_State*)'
    23. ../luascript.cpp:2008: error:   initializing argument 2 of `void lua_pushcclosure(lua_State*, int (*)(lua_State*), int)'
    24. make.exe: *** [obj//luascript.o] Error 1
    Męczę to od kilku dni, i kicha. @Lukanio, skoro to nie to, to co? Dajcie mi plik, myśl, co bym mógł poszukać.
     
  10. mldo

    mldo New Member

    Joined:
    Jun 29, 2014
    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    odświeżam
     

Share This Page

Loading...