Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-12-28, 22:38


wgnsy123

#PrawaNieObowiązują






Wiek: 27
Na forum: 4632 dni
Posty: 91
Nick w MP: Stephen Mclauglin

Piwa: 109

Respekt: 50

Ostrzeżeń: 20%
Witam, ot?? czy kto? posiada jakikolwiek poradnik to tego, jak stworzy? ekwipunek do mta?

Tzw. podstaw?, ?e pod przyciskiem wy?wietla nam si? jaki? obrazek graficzny (np. nasz zrobiony obrazek ekwipunku) i mo?na tam doda? r??ne rzeczy, podczepi? przedmioty kt?re s? w dalszej fazie...

?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-28, 22:54


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

W naj?atwiejszy spos?b to tablica z przedmiotami i cyfry powiedzmy od 1 do 10. Na ka?dy button podany zostanie createElement bad? setElementData z liczb? z tablicy.

Podpis

https://shufflecode.pl
Static Codes and Graphics - Join our discord!
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 10:52


wgnsy123

#PrawaNieObowiązują






Wiek: 27
Na forum: 4632 dni
Posty: 91
Nick w MP: Stephen Mclauglin

Piwa: 109

Respekt: 50

Ostrzeżeń: 20%
A jak zrobi?, aby po klikni?ciu danego przycisku, np "N" otworzy?o nam si? okienko graficzne kt?re sobie zaprojektowali?my, np. jakie? kwadraty, a w nich przedmioty kt?re mo?na u?y? itp.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 11:02


Dixers

No-Life






Wiek: 26
Na forum: 4313 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

U?yj do tego BindKey.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 11:11


wgnsy123

#PrawaNieObowiązują






Wiek: 27
Na forum: 4632 dni
Posty: 91
Nick w MP: Stephen Mclauglin

Piwa: 109

Respekt: 50

Ostrzeżeń: 20%
Okej, etap za sob?, ale jak odtworzy? jaki? obrazek graficzny na ekranie z buttonami itp. ?

Chcia?bym zaprojektowa? obrazek graficzny na dole ekranu sk?adaj?cy si? z trzech, czterech p?l - gdy mamy bro? na scrollu to mamy w tym graficznym obrazku np. M4 czy co?.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 11:43


McDeKi







Wiek: 28
Na forum: 4844 dni
Posty: 95
Nick w MP: McDeKi

Piwa: 186

Respekt: 60

Na pocz?tek pobierz ten plik i wrzu? go do resources i odpal przez admin panel lub konsole:
http://www53.zippyshare.com/v/69811139/file.html
p??niej pobierz ten plik i tez wrzuc go do resources i odpal:
http://www75.zippyshare.com/v/42227251/file.html

Obecnie m?j kod na ekwipunek zawiera 4500 linjek ( 3000 klient, 1500 serwer ), ale uda?o mi si? podstawy podstaw zmie?ci? w 139 linijkach, mog? ci poradzi? jak zrobi? drag and drop itd, pisz je?eli b?dziesz czego? potrzebowa?.


--//EQ
local xguiGetScreenSize () 

local ValEQ = { }
ValEQ.otworzonyEQ false --//Czy ekwipunek jest otworzony
ValEQ.0.2 --//Polozenie ekwipunku X
ValEQ.0.2 --//Polozenie ekwipunku Y
ValEQ.szerokoscX 0.05 --//Szerokosc slotu X 64 piks
ValEQ.wysokoscY 0.088 --//Szerokosc slotu Y 64 piks
ValEQ.iloscSlotowX --//Ilosc slotow X ----
ValEQ.iloscSlotowY --//Ilosc slotow Y \\\
ValEQ.odlegloscX 0.0125 ValEQ.szerokoscX --//Odleglosc miedzy slotami X 16 piks
ValEQ.odlegloscY 0.0222 ValEQ.wysokoscY --//Odleglosc miedzy slotami Y 16 piks
ValEQ.PlecakGracza = {} --//Przedmioty gracza
ValEQ.waga 25 --//Maks waga, mozna ja spokojnie zmieniac

--//Tablica z przedmiotami, mozna dodawac nowe indeksy, aby dodac przedmiota dodatkowe wlasciwosci
local EKWIPUNEK = {
{id 1nazwa "Maczeta"waga 1.5wartosc="BronReczna"uzycie="Za??? maczet?"},
{id 2nazwa "Siekiera"waga 1.75wartosc="BronReczna"uzycie="Za??? siekier?"},
{id 3nazwa "N?? my?liwski"waga 0.5wartosc="BronReczna"uzycie="Za??? n??"},
{id 4nazwa "Kij baseballowy"waga 2wartosc="BronReczna"uzycie="Za??? kij baseballowy"},
{id 5nazwa "Szpadel"waga 1wartosc="BronReczna"uzycie="Za??? szpadel"},
{id 6nazwa "?om"waga 4wartosc="BronReczna"uzycie="Za??? ?om"},
{id 7nazwa "Top?r stra?acki"waga 3.5wartosc="BronReczna"uzycie="Za??? top?r stra?acki"},
{id 8nazwa "Pi?a spalinowa"waga 5wartosc="BronReczna"uzycie="Za??? pi?? spalinow?"},
{id 9nazwa "Ga?nica"waga 2.5wartosc="BronReczna"uzycie="Za??? ga?nic?"},
{id 10nazwa "Colt M1911"waga 1.1wartosc="Bron"uzycie="Za??? Colt M1911"},
}

--//Tworzymy tablice slotow X
for 1ValEQ.iloscSlotowX do 
      ValEQ.PlecakGracza[i] = {}
end

--//Wypelniamy sloty false == brak przedmiotu
for k,v in pairsValEQ.PlecakGracza )do
    for 1, ( ValEQ.iloscSlotowX ValEQ.iloscSlotowY ) do 
        ValEQ.PlecakGracza[k][i] = false
    end
end

function otworzEkwipunek ()
    if ValEQ.otworzonyEQ then
        removeEventHandler"onClientRender"rootrenderujEkwipunek )
        showCursorfalse )
        ValEQ.otworzonyEQ false
        else
        addEventHandler"onClientRender"rootrenderujEkwipunek )
        ValEQ.otworzonyEQ true
        showCursortrue )
    end    
end
bindKey "n""up"otworzEkwipunek )

--//Sprawdzamy czy w ekwipunku zostaly wolne miejsca
function SprawdzWolneMiejsca ( )
  local liczbaPrzedmiotow 0
    for kv in pairs ValEQ.PlecakGracza ) do
        for 1ValEQ.iloscSlotowY do
            if ( not ValEQ.PlecakGracza[k][i] == false then
                liczbaPrzedmiotow = ( liczbaPrzedmiotow )
            end
        end
    end
    return liczbaPrzedmiotow 
end

--//Sprawdzamy calkowita wage przedmiotow
function SprawdzWagePrzedmiotow ( )
local wagaPrzedmiotow 0
    for kv in pairs ValEQ.PlecakGracza ) do
        for 1ValEQ.iloscSlotowY do
            if not ValEQ.PlecakGracza[k][i] == false then
                    wagaPrzedmiotow = ( wagaPrzedmiotow ValEQ.PlecakGracza[k][i].waga )
                end
            end
        end
    return wagaPrzedmiotow
end

--//Dodanie przedmiotu client side ( NIE POLECAM )
function dodajPrzedmiot(ID)
    if not (ID == nilthen --// czy mamy id
        if not (#EKWIPUNEK < tonumber(ID)) then --// Czy id nie jest wieksze niz liczba przedmiotow
            if not (EKWIPUNEK[tonumber(ID)].waga > (ValEQ.waga-SprawdzWagePrzedmiotow())) then --//Czy uniesiemy ten przedmiot
                if not (SprawdzWolneMiejsca() == ValEQ.iloscSlotowY*ValEQ.szerokoscXthen --//Czy w ekwipunku jest miejsce
                    for 1ValEQ.iloscSlotowY do 
                        for kv in pairs ValEQ.PlecakGracza ) do
                            if ValEQ.PlecakGracza[k][i] == false then
                                ValEQ.PlecakGracza[k][i] = exports.nowaWartosc:rzad(EKWIPUNEK[tonumber(ID)]) --//Musimy wyeksportowac, aby zmienna przyjela nowe miejsce w pamiec ( nie musisz sie wtedy martwic czy przedmiot nie bedzie mial wlasciwocsci innego przedmiotu )
                                SprawdzWagePrzedmiotow ( ) --//Sprawdzamy wage przedmiotow jeszcze raz, np do rysowania w ekwipunku
                                return true
                            end
                        end
                    end
                    else
                    --//Brak miejsca
                end
                else
                return false
            end
        end
    end
end

function MyszkaNaSlocie(psx,pssx,psy,pssy) --//Sprawdzamy czy kursor jest na slocie
  if not isCursorShowing() then
    return false
  end
  cx,cy getCursorPosition()
  cx,cy cx*x,cy*y
  if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
    return true,cx,cy
  else
    return false
  end
end    

function renderujEkwipunek ( )
    for k,v in pairsValEQ.PlecakGracza )do
        for i=1ValEQ.iloscSlotowY do
            local h math.floor(((k*(x*ValEQ.odlegloscX)+x*ValEQ.szerokoscX)) - ValEQ.szerokoscX) --//Obliczanie wspolrzednych X
            local d math.floor(((i*(y*ValEQ.odlegloscY)+y*ValEQ.wysokoscY)) - ValEQ.wysokoscY) --//Obliczanie wspolrzednych Y
            dxDrawRectanglehdx*ValEQ.szerokoscXy*ValEQ.wysokoscYtocolor 000150)) --//Rysujemy slot jako prostokat, ale zawsze mozesz uzyc dxDrawImage
            if not ValEQ.PlecakGracza[k][i] == false then --//Czy w tym miejscu jest przedmiot     
                if MyszkaNaSlocie(hx*ValEQ.szerokoscXdy*ValEQ.wysokoscYthen    --//Czy kursor jest na przedmiocie
                    dxDrawRectangle(hdx*ValEQ.szerokoscXy*ValEQ.wysokoscYtocolor(255,255,255,100)) --// Rysuj kwadrat nad przedmiotem
                    dxDrawTextValEQ.PlecakGracza[k][i].nazwa900500 ) --//Rysuj nazwe przedmiotu
                end
                dxDrawImage math.ceil(h), math.ceil(d), (64/1280)*x, (64/720)*yValEQ.PlecakGracza[k][i].id..".png" ) --//Rysuj obrazek przedmiotu
            end
        end
    end
end
                            
for 110 do 
    dodajPrzedmiot ) --//Dodaj przedmiot
end    


EDIT: edytor na stronie co? pokopa? i zamiast [k][i] to wy?wietla "[i]", WTF? Nie kopiuj kodu z strony, bo nie zadziala

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 11:53


wgnsy123

#PrawaNieObowiązują






Wiek: 27
Na forum: 4632 dni
Posty: 91
Nick w MP: Stephen Mclauglin

Piwa: 109

Respekt: 50

Ostrzeżeń: 20%
Wiesz, bo ja og?lnie troch? zielony w lua, czyta?em o funkacjach, eventach itp.
Ale nie ogarniam jak w?a?nie zrobi? takie interaktywne eq ;p

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 12:06


michal982010







Wiek: 29
Na forum: 4445 dni
Posty: 69

Piwa: 1

Respekt: 50

A wiecie mo?e jak zrobi? ?e gdy klikniemy na jaki? item z gridlisty, to b?dzie on ca?y czas zaznaczony ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-12-29, 23:46


Dixers

No-Life






Wiek: 26
Na forum: 4313 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

michal982010, stw?rz nowy temat, a nie wbijasz komu? i zadajesz w?asne pytania.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-01, 22:37


wgnsy123

#PrawaNieObowiązują






Wiek: 27
Na forum: 4632 dni
Posty: 91
Nick w MP: Stephen Mclauglin

Piwa: 109

Respekt: 50

Ostrzeżeń: 20%
"McDeKi" napisał/a:

Na pocz?tek pobierz ten plik i wrzu? go do resources i odpal przez admin panel lub konsole:
http://www53.zippyshare.com/v/69811139/file.html
p??niej pobierz ten plik i tez wrzuc go do resources i odpal:
http://www75.zippyshare.com/v/42227251/file.html

Obecnie m?j kod na ekwipunek zawiera 4500 linjek ( 3000 klient, 1500 serwer ), ale uda?o mi si? podstawy podstaw zmie?ci? w 139 linijkach, mog? ci poradzi? jak zrobi? drag and drop itd, pisz je?eli b?dziesz czego? potrzebowa?.


--//EQ
local xguiGetScreenSize () 

local ValEQ = { }
ValEQ.otworzonyEQ false --//Czy ekwipunek jest otworzony
ValEQ.0.2 --//Polozenie ekwipunku X
ValEQ.0.2 --//Polozenie ekwipunku Y
ValEQ.szerokoscX 0.05 --//Szerokosc slotu X 64 piks
ValEQ.wysokoscY 0.088 --//Szerokosc slotu Y 64 piks
ValEQ.iloscSlotowX --//Ilosc slotow X ----
ValEQ.iloscSlotowY --//Ilosc slotow Y \\\
ValEQ.odlegloscX 0.0125 ValEQ.szerokoscX --//Odleglosc miedzy slotami X 16 piks
ValEQ.odlegloscY 0.0222 ValEQ.wysokoscY --//Odleglosc miedzy slotami Y 16 piks
ValEQ.PlecakGracza = {} --//Przedmioty gracza
ValEQ.waga 25 --//Maks waga, mozna ja spokojnie zmieniac

--//Tablica z przedmiotami, mozna dodawac nowe indeksy, aby dodac przedmiota dodatkowe wlasciwosci
local EKWIPUNEK = {
{id 1nazwa "Maczeta"waga 1.5wartosc="BronReczna"uzycie="Za??? maczet?"},
{id 2nazwa "Siekiera"waga 1.75wartosc="BronReczna"uzycie="Za??? siekier?"},
{id 3nazwa "N?? my?liwski"waga 0.5wartosc="BronReczna"uzycie="Za??? n??"},
{id 4nazwa "Kij baseballowy"waga 2wartosc="BronReczna"uzycie="Za??? kij baseballowy"},
{id 5nazwa "Szpadel"waga 1wartosc="BronReczna"uzycie="Za??? szpadel"},
{id 6nazwa "?om"waga 4wartosc="BronReczna"uzycie="Za??? ?om"},
{id 7nazwa "Top?r stra?acki"waga 3.5wartosc="BronReczna"uzycie="Za??? top?r stra?acki"},
{id 8nazwa "Pi?a spalinowa"waga 5wartosc="BronReczna"uzycie="Za??? pi?? spalinow?"},
{id 9nazwa "Ga?nica"waga 2.5wartosc="BronReczna"uzycie="Za??? ga?nic?"},
{id 10nazwa "Colt M1911"waga 1.1wartosc="Bron"uzycie="Za??? Colt M1911"},
}

--//Tworzymy tablice slotow X
for 1ValEQ.iloscSlotowX do 
      ValEQ.PlecakGracza[i] = {}
end

--//Wypelniamy sloty false == brak przedmiotu
for k,v in pairsValEQ.PlecakGracza )do
    for 1, ( ValEQ.iloscSlotowX ValEQ.iloscSlotowY ) do 
        ValEQ.PlecakGracza[k][i] = false
    end
end

function otworzEkwipunek ()
    if ValEQ.otworzonyEQ then
        removeEventHandler"onClientRender"rootrenderujEkwipunek )
        showCursorfalse )
        ValEQ.otworzonyEQ false
        else
        addEventHandler"onClientRender"rootrenderujEkwipunek )
        ValEQ.otworzonyEQ true
        showCursortrue )
    end    
end
bindKey "n""up"otworzEkwipunek )

--//Sprawdzamy czy w ekwipunku zostaly wolne miejsca
function SprawdzWolneMiejsca ( )
  local liczbaPrzedmiotow 0
    for kv in pairs ValEQ.PlecakGracza ) do
        for 1ValEQ.iloscSlotowY do
            if ( not ValEQ.PlecakGracza[k][i] == false then
                liczbaPrzedmiotow = ( liczbaPrzedmiotow )
            end
        end
    end
    return liczbaPrzedmiotow 
end

--//Sprawdzamy calkowita wage przedmiotow
function SprawdzWagePrzedmiotow ( )
local wagaPrzedmiotow 0
    for kv in pairs ValEQ.PlecakGracza ) do
        for 1ValEQ.iloscSlotowY do
            if not ValEQ.PlecakGracza[k][i] == false then
                    wagaPrzedmiotow = ( wagaPrzedmiotow ValEQ.PlecakGracza[k][i].waga )
                end
            end
        end
    return wagaPrzedmiotow
end

--//Dodanie przedmiotu client side ( NIE POLECAM )
function dodajPrzedmiot(ID)
    if not (ID == nilthen --// czy mamy id
        if not (#EKWIPUNEK < tonumber(ID)) then --// Czy id nie jest wieksze niz liczba przedmiotow
            if not (EKWIPUNEK[tonumber(ID)].waga > (ValEQ.waga-SprawdzWagePrzedmiotow())) then --//Czy uniesiemy ten przedmiot
                if not (SprawdzWolneMiejsca() == ValEQ.iloscSlotowY*ValEQ.szerokoscXthen --//Czy w ekwipunku jest miejsce
                    for 1ValEQ.iloscSlotowY do 
                        for kv in pairs ValEQ.PlecakGracza ) do
                            if ValEQ.PlecakGracza[k][i] == false then
                                ValEQ.PlecakGracza[k][i] = exports.nowaWartosc:rzad(EKWIPUNEK[tonumber(ID)]) --//Musimy wyeksportowac, aby zmienna przyjela nowe miejsce w pamiec ( nie musisz sie wtedy martwic czy przedmiot nie bedzie mial wlasciwocsci innego przedmiotu )
                                SprawdzWagePrzedmiotow ( ) --//Sprawdzamy wage przedmiotow jeszcze raz, np do rysowania w ekwipunku
                                return true
                            end
                        end
                    end
                    else
                    --//Brak miejsca
                end
                else
                return false
            end
        end
    end
end

function MyszkaNaSlocie(psx,pssx,psy,pssy) --//Sprawdzamy czy kursor jest na slocie
  if not isCursorShowing() then
    return false
  end
  cx,cy getCursorPosition()
  cx,cy cx*x,cy*y
  if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
    return true,cx,cy
  else
    return false
  end
end    

function renderujEkwipunek ( )
    for k,v in pairsValEQ.PlecakGracza )do
        for i=1ValEQ.iloscSlotowY do
            local h math.floor(((k*(x*ValEQ.odlegloscX)+x*ValEQ.szerokoscX)) - ValEQ.szerokoscX) --//Obliczanie wspolrzednych X
            local d math.floor(((i*(y*ValEQ.odlegloscY)+y*ValEQ.wysokoscY)) - ValEQ.wysokoscY) --//Obliczanie wspolrzednych Y
            dxDrawRectanglehdx*ValEQ.szerokoscXy*ValEQ.wysokoscYtocolor 000150)) --//Rysujemy slot jako prostokat, ale zawsze mozesz uzyc dxDrawImage
            if not ValEQ.PlecakGracza[k][i] == false then --//Czy w tym miejscu jest przedmiot     
                if MyszkaNaSlocie(hx*ValEQ.szerokoscXdy*ValEQ.wysokoscYthen    --//Czy kursor jest na przedmiocie
                    dxDrawRectangle(hdx*ValEQ.szerokoscXy*ValEQ.wysokoscYtocolor(255,255,255,100)) --// Rysuj kwadrat nad przedmiotem
                    dxDrawTextValEQ.PlecakGracza[k][i].nazwa900500 ) --//Rysuj nazwe przedmiotu
                end
                dxDrawImage math.ceil(h), math.ceil(d), (64/1280)*x, (64/720)*yValEQ.PlecakGracza[k][i].id..".png" ) --//Rysuj obrazek przedmiotu
            end
        end
    end
end
                            
for 110 do 
    dodajPrzedmiot ) --//Dodaj przedmiot
end    


EDIT: edytor na stronie co? pokopa? i zamiast [k][i] to wy?wietla "[i]", WTF? Nie kopiuj kodu z strony, bo nie zadziala



A je?eli projektujemy jakby dodatek do inventory od DayZ, to trzeba tam dodawa? przedmioty z nazwami jakie s? w grze? Jak to zrobi?, ?e je?eli mamy M1911 og?lnie w DayZ, to jak to podpi?? pod Tw?j kod?

Najlepiej, je?eli poda?by? mi Twojego skype, nie robi?c spamu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-02, 01:23


Gamber







Wiek: 29
Na forum: 4791 dni
Posty: 11

Piwa: 36

Respekt: 50

https://wiki.multitheftauto.com/wiki/Main_Page - przydatne, na 80% twoich pyta? tam znajdziesz odpowied?.

Postaw piwo autorowi tego posta
 

 
Tagi: projektowanie :: ekwipunku
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Projektowanie ekwipunku Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku