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
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...
?
Wysłany: 2014-12-28, 22:54
MeeShuffle
Programista/Grafik
Wiek: 32 Na forum: 4395 dni Posty: 2758
Nick w MP: Shuffle
Piwa : 8575
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.
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
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.
Wysłany: 2014-12-29, 11:02
Dixers
No-Life
Wiek: 26 Na forum: 4313 dni Posty: 549
Nick w MP: Dixers
Piwa : 412
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
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?.
Wysłany: 2014-12-29, 11:43
McDeKi
Wiek: 28 Na forum: 4844 dni Posty: 95
Nick w MP: McDeKi
Piwa : 186
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 x , y = guiGetScreenSize ()
local ValEQ = { }
ValEQ . otworzonyEQ = false -- //Czy ekwipunek jest otworzony
ValEQ . X = 0.2 -- //Polozenie ekwipunku X
ValEQ . Y = 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 = 5 -- //Ilosc slotow X ----
ValEQ . iloscSlotowY = 6 -- //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 = 1 , nazwa = "Maczeta" , waga = 1.5 , wartosc = "BronReczna" , uzycie = "Za??? maczet?" },
{ id = 2 , nazwa = "Siekiera" , waga = 1.75 , wartosc = "BronReczna" , uzycie = "Za??? siekier?" },
{ id = 3 , nazwa = "N?? my?liwski" , waga = 0.5 , wartosc = "BronReczna" , uzycie = "Za??? n??" },
{ id = 4 , nazwa = "Kij baseballowy" , waga = 2 , wartosc = "BronReczna" , uzycie = "Za??? kij baseballowy" },
{ id = 5 , nazwa = "Szpadel" , waga = 1 , wartosc = "BronReczna" , uzycie = "Za??? szpadel" },
{ id = 6 , nazwa = "?om" , waga = 4 , wartosc = "BronReczna" , uzycie = "Za??? ?om" },
{ id = 7 , nazwa = "Top?r stra?acki" , waga = 3.5 , wartosc = "BronReczna" , uzycie = "Za??? top?r stra?acki" },
{ id = 8 , nazwa = "Pi?a spalinowa" , waga = 5 , wartosc = "BronReczna" , uzycie = "Za??? pi?? spalinow?" },
{ id = 9 , nazwa = "Ga?nica" , waga = 2.5 , wartosc = "BronReczna" , uzycie = "Za??? ga?nic?" },
{ id = 10 , nazwa = "Colt M1911" , waga = 1.1 , wartosc = "Bron" , uzycie = "Za??? Colt M1911" },
}
-- //Tworzymy tablice slotow X
for i = 1 , ValEQ . iloscSlotowX do
ValEQ . PlecakGracza [ i ] = {}
end
-- //Wypelniamy sloty false == brak przedmiotu
for k , v in pairs ( ValEQ . PlecakGracza )do
for i = 1 , ( ValEQ . iloscSlotowX * ValEQ . iloscSlotowY ) do
ValEQ . PlecakGracza [ k ][ i ] = false
end
end
function otworzEkwipunek ()
if ValEQ . otworzonyEQ then
removeEventHandler ( "onClientRender" , root , renderujEkwipunek )
showCursor ( false )
ValEQ . otworzonyEQ = false
else
addEventHandler ( "onClientRender" , root , renderujEkwipunek )
ValEQ . otworzonyEQ = true
showCursor ( true )
end
end
bindKey ( "n" , "up" , otworzEkwipunek )
-- //Sprawdzamy czy w ekwipunku zostaly wolne miejsca
function SprawdzWolneMiejsca ( )
local liczbaPrzedmiotow = 0
for k , v in pairs ( ValEQ . PlecakGracza ) do
for i = 1 , ValEQ . iloscSlotowY do
if ( not ValEQ . PlecakGracza [ k ][ i ] == false ) then
liczbaPrzedmiotow = ( liczbaPrzedmiotow + 1 )
end
end
end
return liczbaPrzedmiotow
end
-- //Sprawdzamy calkowita wage przedmiotow
function SprawdzWagePrzedmiotow ( )
local wagaPrzedmiotow = 0
for k , v in pairs ( ValEQ . PlecakGracza ) do
for i = 1 , ValEQ . 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 == nil ) then -- // 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 . szerokoscX ) then -- //Czy w ekwipunku jest miejsce
for i = 1 , ValEQ . iloscSlotowY do
for k , v 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 pairs ( ValEQ . PlecakGracza )do
for i = 1 , ValEQ . iloscSlotowY do
local h = math . floor ((( k *( x * ValEQ . odlegloscX )+ x * ValEQ . szerokoscX )) - x * ValEQ . szerokoscX ) -- //Obliczanie wspolrzednych X
local d = math . floor ((( i *( y * ValEQ . odlegloscY )+ y * ValEQ . wysokoscY )) - y * ValEQ . wysokoscY ) -- //Obliczanie wspolrzednych Y
dxDrawRectangle ( h , d , x * ValEQ . szerokoscX , y * ValEQ . wysokoscY , tocolor ( 0 , 0 , 0 , 150 )) -- //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 ( h , x * ValEQ . szerokoscX , d , y * ValEQ . wysokoscY ) then -- //Czy kursor jest na przedmiocie
dxDrawRectangle ( h , d , x * ValEQ . szerokoscX , y * ValEQ . wysokoscY , tocolor ( 255 , 255 , 255 , 100 )) -- // Rysuj kwadrat nad przedmiotem
dxDrawText ( ValEQ . PlecakGracza [ k ][ i ]. nazwa , 900 , 500 ) -- //Rysuj nazwe przedmiotu
end
dxDrawImage ( math . ceil ( h ), math . ceil ( d ), ( 64 / 1280 )* x , ( 64 / 720 )* y , ValEQ . PlecakGracza [ k ][ i ]. id .. ".png" ) -- //Rysuj obrazek przedmiotu
end
end
end
end
for i = 1 , 10 do
dodajPrzedmiot ( i ) -- //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
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
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
Wysłany: 2014-12-29, 12:06
michal982010
Wiek: 29 Na forum: 4445 dni Posty: 69
Piwa : 1
A wiecie mo?e jak zrobi? ?e gdy klikniemy na jaki? item z gridlisty, to b?dzie on ca?y czas zaznaczony ?
Wysłany: 2014-12-29, 23:46
Dixers
No-Life
Wiek: 26 Na forum: 4313 dni Posty: 549
Nick w MP: Dixers
Piwa : 412
michal982010 , stw?rz nowy temat, a nie wbijasz komu? i zadajesz w?asne pytania.
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
"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 x , y = guiGetScreenSize ()
local ValEQ = { }
ValEQ . otworzonyEQ = false -- //Czy ekwipunek jest otworzony
ValEQ . X = 0.2 -- //Polozenie ekwipunku X
ValEQ . Y = 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 = 5 -- //Ilosc slotow X ----
ValEQ . iloscSlotowY = 6 -- //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 = 1 , nazwa = "Maczeta" , waga = 1.5 , wartosc = "BronReczna" , uzycie = "Za??? maczet?" },
{ id = 2 , nazwa = "Siekiera" , waga = 1.75 , wartosc = "BronReczna" , uzycie = "Za??? siekier?" },
{ id = 3 , nazwa = "N?? my?liwski" , waga = 0.5 , wartosc = "BronReczna" , uzycie = "Za??? n??" },
{ id = 4 , nazwa = "Kij baseballowy" , waga = 2 , wartosc = "BronReczna" , uzycie = "Za??? kij baseballowy" },
{ id = 5 , nazwa = "Szpadel" , waga = 1 , wartosc = "BronReczna" , uzycie = "Za??? szpadel" },
{ id = 6 , nazwa = "?om" , waga = 4 , wartosc = "BronReczna" , uzycie = "Za??? ?om" },
{ id = 7 , nazwa = "Top?r stra?acki" , waga = 3.5 , wartosc = "BronReczna" , uzycie = "Za??? top?r stra?acki" },
{ id = 8 , nazwa = "Pi?a spalinowa" , waga = 5 , wartosc = "BronReczna" , uzycie = "Za??? pi?? spalinow?" },
{ id = 9 , nazwa = "Ga?nica" , waga = 2.5 , wartosc = "BronReczna" , uzycie = "Za??? ga?nic?" },
{ id = 10 , nazwa = "Colt M1911" , waga = 1.1 , wartosc = "Bron" , uzycie = "Za??? Colt M1911" },
}
-- //Tworzymy tablice slotow X
for i = 1 , ValEQ . iloscSlotowX do
ValEQ . PlecakGracza [ i ] = {}
end
-- //Wypelniamy sloty false == brak przedmiotu
for k , v in pairs ( ValEQ . PlecakGracza )do
for i = 1 , ( ValEQ . iloscSlotowX * ValEQ . iloscSlotowY ) do
ValEQ . PlecakGracza [ k ][ i ] = false
end
end
function otworzEkwipunek ()
if ValEQ . otworzonyEQ then
removeEventHandler ( "onClientRender" , root , renderujEkwipunek )
showCursor ( false )
ValEQ . otworzonyEQ = false
else
addEventHandler ( "onClientRender" , root , renderujEkwipunek )
ValEQ . otworzonyEQ = true
showCursor ( true )
end
end
bindKey ( "n" , "up" , otworzEkwipunek )
-- //Sprawdzamy czy w ekwipunku zostaly wolne miejsca
function SprawdzWolneMiejsca ( )
local liczbaPrzedmiotow = 0
for k , v in pairs ( ValEQ . PlecakGracza ) do
for i = 1 , ValEQ . iloscSlotowY do
if ( not ValEQ . PlecakGracza [ k ][ i ] == false ) then
liczbaPrzedmiotow = ( liczbaPrzedmiotow + 1 )
end
end
end
return liczbaPrzedmiotow
end
-- //Sprawdzamy calkowita wage przedmiotow
function SprawdzWagePrzedmiotow ( )
local wagaPrzedmiotow = 0
for k , v in pairs ( ValEQ . PlecakGracza ) do
for i = 1 , ValEQ . 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 == nil ) then -- // 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 . szerokoscX ) then -- //Czy w ekwipunku jest miejsce
for i = 1 , ValEQ . iloscSlotowY do
for k , v 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 pairs ( ValEQ . PlecakGracza )do
for i = 1 , ValEQ . iloscSlotowY do
local h = math . floor ((( k *( x * ValEQ . odlegloscX )+ x * ValEQ . szerokoscX )) - x * ValEQ . szerokoscX ) -- //Obliczanie wspolrzednych X
local d = math . floor ((( i *( y * ValEQ . odlegloscY )+ y * ValEQ . wysokoscY )) - y * ValEQ . wysokoscY ) -- //Obliczanie wspolrzednych Y
dxDrawRectangle ( h , d , x * ValEQ . szerokoscX , y * ValEQ . wysokoscY , tocolor ( 0 , 0 , 0 , 150 )) -- //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 ( h , x * ValEQ . szerokoscX , d , y * ValEQ . wysokoscY ) then -- //Czy kursor jest na przedmiocie
dxDrawRectangle ( h , d , x * ValEQ . szerokoscX , y * ValEQ . wysokoscY , tocolor ( 255 , 255 , 255 , 100 )) -- // Rysuj kwadrat nad przedmiotem
dxDrawText ( ValEQ . PlecakGracza [ k ][ i ]. nazwa , 900 , 500 ) -- //Rysuj nazwe przedmiotu
end
dxDrawImage ( math . ceil ( h ), math . ceil ( d ), ( 64 / 1280 )* x , ( 64 / 720 )* y , ValEQ . PlecakGracza [ k ][ i ]. id .. ".png" ) -- //Rysuj obrazek przedmiotu
end
end
end
end
for i = 1 , 10 do
dodajPrzedmiot ( i ) -- //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.
Wysłany: 2015-01-02, 01:23
Gamber
Wiek: 29 Na forum: 4791 dni Posty: 11
Piwa : 36
Tagi: projektowanie :: ekwipunku
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: