Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
LUA/ Pomoc w skrypcie
#1
Witajcie, mam problem w języku LUA. Ogólnie to chciałem napisać skrypt po którym po kliknięciu klawisza "F9" Otwierałaby mi się textura i tym samym klawiszem mógłbym ją zamknąć.
Po kliknięciu "F9" Texturka pojawia się normalnie, ale niestety gdy chce ją już zamknąć to nic się nie dzieje. Pomożecie? :b

Code:
function OnGamemodeInit()
Enable_OnPlayerKey(1)
end

function OnPlayerKey(playerid, key_wl, key_wyl)
        if key_wl == KEY_F9 then
        local gui = CreateTexture(500,300,8000,7500,"Frame_GMPA.TGA");
            ShowTexture(playerid,gui);
        
        elseif key_wyl == KEY_F9 then
        Enable_OnPlayerKey(0);
        local key_wyl = HideTexture(playerid,gui);
        HideTexture(playerid, key_wyl);
    end
end

Załączam również zdjęcie jak to wygląda: 
https://zapodaj.net/images/83a3d07ac6d81.png
Reply
#2
Code:
function OnGamemodeInit()
   Enable_OnPlayerKey(1)
end

local gui = CreateTexture(500,300,8000,7500,"Frame_GMPA.TGA");
local bool = false;

function OnPlayerKey(playerid, key)

    if key == KEY_F9 then
    
        if not bool then
            ShowTexture(playerid, gui);
        else
            HideTexture(playerid, gui);
        end
        
        bool = bool not bool
    end
    
end


Tak chyba działało to LUA

Tak w ogóle, to każdy gracz będzie miał taką samą wartość bool.

Na początek sugerowałbym uświadomić sobie, że to nie ta platforma, i tutaj jest język Squirrel.
[Image: dvdsvpx.gif]
Reply
#3
Nie Hades, nie podziała xD.
1.To nie G2O, zmienna powinna być dla kilku graczy wyznaczona a nie dla każdego jedna
2.callback OnPlayerKey ma 3 argumenty, nie dwa, (pid, keyPressed, keyReleased)
Reply
#4
Jak nie podziała, jak podziała. to nie Squirrel, gdzie każdy argument musisz mieć. Wystarczy mu pressed.
[Image: dvdsvpx.gif]
Reply
#5
Jakim cudem Ci się w ogóle wyświetla ta tekstura, przecież G2O ma zbindowanego squirrela, a nie lua XD

Taki żarcik Tongue

To co robisz nie ma sensu, przy wciśnięciu klawisza F9 tworzysz i wyświetlasz teksture, a ponieważ deklarujesz zmienną lokalną 'gui' w bloku funkcji OnPlayerKey ona przepada po wciśnięciu tego klawisza i nie możesz już potem na niej operować Tongue Potem przy 'puszczeniu' F9 tj. zdjęciu palca z tego klawisza wyłączasz w ogóle event OnPlayerKey i od tego momentu on już nie reaguje na żadne klawisze XD W dodatku przypisujesz do zmiennej zawierającej id klawisza to co zwraca funkcja HideTexture (czyli nic) i ponownie wywołujesz funkcje HideTexture tym razem już nawet nie wiem z czym w drugim argumencie, prawdopodobnie z id klawisza, a powinno tam być id tekstury Tongue

Musisz się jeszcze trochę poduczyć ;-)

Trzymaj gotowca, ale zapoznaj się z tym co napisałem wyżej, to Ci może jedynie pomóc:
Lua
  1. local Player = {};
  2.  
  3. local gui = CreateTexture(500,300,8000,7500,"Frame_GMPA.TGA");
  4.  
  5. function OnGamemodeInit()
  6. Enable_OnPlayerKey(1);
  7. createPlayerStructure();
  8. end
  9.  
  10. function createPlayerStructure()
  11. for i = 0, GetMaxPlayers() - 1 do
  12. Player[i] = {};
  13. Player[i].gui_state = 0;
  14. end
  15. end
  16.  
  17. function resetPlayerStructure(playerid)
  18. Player[playerid].gui_state = 0;
  19. end
  20.  
  21. function OnPlayerDisconnect(playerid, reason)
  22. resetPlayerStructure(playerid);
  23. end
  24.  
  25. function OnPlayerKey(playerid, keyDown, keyUp)
  26. if keyDown == KEY_F9 then
  27. if Player[playerid].gui_state == 0 then
  28. ShowTexture(playerid,gui);
  29. Player[playerid].gui_state = 1;
  30. else
  31. HideTexture(playerid, gui);
  32. Player[playerid].gui_state = 0;
  33. end
  34. end
  35. end


Reply
#6
(21.10.2018, 19:32)Profesores Wrote: Jakim cudem Ci się w ogóle wyświetla ta tekstura, przecież G2O ma zbindowanego squirrela, a nie lua XD

Taki żarcik Tongue

To co robisz nie ma sensu, przy wciśnięciu klawisza F9 tworzysz i wyświetlasz teksture, a ponieważ deklarujesz zmienną lokalną 'gui' w bloku funkcji OnPlayerKey ona przepada po wciśnięciu tego klawisza i nie możesz już potem na niej operować Tongue Potem przy 'puszczeniu' F9 tj. zdjęciu palca z tego klawisza wyłączasz w ogóle event OnPlayerKey i od tego momentu on już nie reaguje na żadne klawisze XD W dodatku przypisujesz do zmiennej zawierającej id klawisza to co zwraca funkcja HideTexture (czyli nic) i ponownie wywołujesz funkcje HideTexture tym razem już nawet nie wiem z czym w drugim argumencie, prawdopodobnie z id klawisza, a powinno tam być id tekstury Tongue

Musisz się jeszcze trochę poduczyć ;-)

Trzymaj gotowca, ale zapoznaj się z tym co napisałem wyżej, to Ci może jedynie pomóc:
Code:
local Player = {};

local gui = CreateTexture(500,300,8000,7500,"Frame_GMPA.TGA");

function OnGamemodeInit()
    Enable_OnPlayerKey(1);
    createPlayerStructure();
end

function createPlayerStructure()
    for i = 0, GetMaxPlayers() - 1 do
        Player[i] = {};
        Player[i].gui_state = 0;
    end
end

function resetPlayerStructure(playerid)
    Player[playerid].gui_state = 0;
end

function OnPlayerDisconnect(playerid, reason)
    resetPlayerStructure(playerid);
end

function OnPlayerKey(playerid, keyDown, keyUp)
    if keyDown == KEY_F9 then
        if Player[playerid].gui_state == 0 then
            ShowTexture(playerid,gui);
            Player[playerid].gui_state = 1;
        else
            HideTexture(playerid, gui);
            Player[playerid].gui_state = 0;
        end
    end
end


Dziękuje, działa. Postaram się wyciągnąć z tego wnioski i się dostosować pod wszystko co napisałeś. Nauka na błędach zawsze pomaga, przynajmniej w moim wypadku  Big Grin
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Nauczyciele squirrela albo lua Liberal 8 7,021 12.04.2018, 23:15
Last Post: Spray
  Pomoc w stworzeniu GM Karpas 33 24,495 29.05.2016, 15:43
Last Post: Quarchodron
  Pomoc w serwerze Gooby 8 6,385 21.04.2016, 23:37
Last Post: Gooby
  Pomoc CursePL 2 2,768 22.01.2016, 19:05
Last Post: CursePL
  Pomoc 424531 0 1,516 01.01.2016, 21:00
Last Post: 424531
  Pomoc z Zpackiem Mord 2 2,579 10.10.2015, 11:58
Last Post: Sative

Forum Jump:


Users browsing this thread: 1 Guest(s)