Wysłany: 2017-01-14, 19:21
YakubTM
Wiek: 33 Na forum: 3446 dni Posty: 4
Witam. Chcia?bym zrobi? skrypt na serwer. Co? w stylu: /vote [pytanie] [czas w sekundach] (g?osowanie np: /vote Lubisz ten serwer? czas w senkundach, komenda /tak i /nie.
Kto? by?by w stanie mi powiedzie? jakich mam u?y? funkcji?
Wysłany: 2017-01-14, 19:25
_Haze
Peace Yo!
Wiek: 24 Na forum: 4184 dni Posty: 1648
Nick w MP: Haze
Piwa : 2628
Więcej informacji znajdziesz w Wikipedii MTA: dxDrawText
draw'ujesz pytanie
(dajesz eventem)
dodajesz komende
jesli masz range
wywolujesz triger zeby dalo pytanie
Więcej informacji znajdziesz w Wikipedii MTA: addEvent
dodajesz triger z pytaniem
table.concat link wiki lua
http://lua-users.org/wiki/TableLibraryTutorial
daje ci mozliwosc pisania czegos po spacji czyli np. /ogloszenie asd takas dfasdas sd asd sa
Więcej informacji znajdziesz w Wikipedii MTA: setTimer
sprawdzasz czy minal czas
jesli tak robisz triger z usunieciem zapytania i dajesz removeEventHandler
jesli dal ktos tak albo nie to daje mu date
potem dajesz petle pobierasz osoby z data i piszesz dxDrawem ile osob dalo tak ile nie i po czasie usuwasz date kazdemu
Wysłany: 2017-01-14, 21:11
YakubTM
Wiek: 33 Na forum: 3446 dni Posty: 4
Kurcze, nie wiem za bardzo jak si? za to zabra?. Dopiero zaczynam w lua i nie robi?em jeszcze takich skrypt?w. M?g?by? mi pokaza? mniej wi?cej jak to zacza??
Wysłany: 2017-01-14, 21:14
_Haze
Peace Yo!
Wiek: 24 Na forum: 4184 dni Posty: 1648
Nick w MP: Haze
Piwa : 2628
YakubTM , tworzysz komende dla adminstracji o zadanie pytania > dodaje ona komendy /tak /nie ktore nadaja date tak lub nie > po stronie clienta mozesz dac liczenie osob z elementdata tak i nie i podajesz je + ustawiasz setTimer
Wysłany: 2017-01-16, 14:52
maciek3286
LUA Developer
Wiek: 26 Na forum: 5201 dni Posty: 230
Nick w MP: maciek00
Piwa : 3207
Robione na szybko
kod s-side:
local skrzyniaglosow = createObject ( 980 , 0 , 0 , - 100 )
function zapytaj ( plr , cmd , czas , ...)
local pytanie = table . concat ( arg , " " )
local accName = getAccountName ( getPlayerAccount ( plr ) )
if isObjectInACLGroup ( "user." .. accName , aclGetGroup ( "Admin" ) ) then
if tonumber ( czas ) then
if getElementData ( skrzyniaglosow , "pytanie" == false then
setElementData ( skrzyniaglosow , "tak" , 0 )
setElementData ( skrzyniaglosow , "nie" , 0 )
setElementData ( skrzyniaglosow , "pytanie" , true )
outputChatBox ( "[Pytanie]" .. pytanie .. "?" , root , 255 , 255 , 255 , true )
setTimer ( setElementData , 1000 * czas , 1 , skrzyniaglosow , "pytanie" , false )
setTimer ( outputChatBox , 1000 * czas , 1 , "G?osowanie zako?czone" , root , 255 , 255 , 255 , true )
else
outputChatBox ( "Ju? trwa jedna ankieta." , plr , 255 , 255 , 255 , true )
end
else
outputChatBox ( "Czas musi by? podany liczbowo!" , plr , 255 , 255 , 255 , true )
end
end
end
addCommnadHandler ( "zpytanie" , zapytaj )
function tak ( plr )
local data = getElementData ( skrzyniaglosow , "tak" )
local pytanie = getElementData ( skrzyniaglosow , "pytanie" )
if pytanie then
setElementData ( skrzyniaglosow , "tak" , data + 1 )
outputChatBox ( "Pomy?lnie oddano g?os" , plr , 255 , 255 , 255 , true )
end
end
addCommnadHandler ( "tak" , tak )
function nie ( plr )
local data = getElementData ( skrzyniaglosow , "nie" )
local pytanie = getElementData ( skrzyniaglosow , "pytanie" )
if pytanie then
setElementData ( skrzyniaglosow , "nie" , data + 1 )
outputChatBox ( "Pomy?lnie oddano g?os" , plr , 255 , 255 , 255 , true )
end
end
addCommnadHandler ( "nie" , nie )
pytanie zadajesz /zpytanie [czas w sekundach] [tre??]
Wysłany: 2017-01-16, 17:07
zabijaka2000
Wiek: 26 Na forum: 4983 dni Posty: 147
Nick w MP: aleks556
Piwa : 13
Zamiast tworzy? obiekty i ustawia? im dat? lepiej operowa? na tablicy. Natomiast jak kto? zag?osuje ustawiasz elementDat? na graczu i przy probie oddania g?osu sprawdzasz czy istnieje ta data. Je?li tak to kod przerywasz, a je?li nie ma takiej daty to nast?puje kontynuacja. Uwa?am, ?e taki spos?b jest najlepszy.
Podpis
San Fierro Stories Roleplay
Wysłany: 2017-01-16, 18:02
MartinPanZycia
Zielony w LUA
Wiek: 27 Na forum: 3728 dni Posty: 476
Nick w MP: Rodzaje
Piwa : 878
Client Site
local x , y = guiGetScreenSize ()
local zapytanie = nil
function glosyNaTak ()
local policzone = {}
for i , v in ipairs ( getElementsByType ( "player" )) do
if getElementData ( v , "mojglos" ) == "tak" then
table . insert ( policzone , v )
end
end
return policzone
end
function glosyNaNie ()
local policzone = {}
for i , v in ipairs ( getElementsByType ( "player" )) do
if getElementData ( v , "mojglos" ) == "nie" then
table . insert ( policzone , v )
end
end
return policzone
end
function urnyOtwarte ( tresc )
zapytanie = tresc
addEventHandler ( "onClientRender" , root , kochamMame )
end
addEvent ( "createVoteTable" , true )
addEventHandler ( "createVoteTable" , root , urnyOtwarte )
function kochamMame ()
dxDrawText ( "/tak (" .. #glosyNaTak()..")",x*0.4,y*0.6+dxGetFontHeight(4.5,"default"),x*0.4,y*0.6+dxGetFontHeight(4.5,"default"),tocolor(255,255,255,255),1.5,"default","center","center")
dxDrawText ( "/nie (" .. #glosyNaNie()..")",x*0.6,y*0.6+dxGetFontHeight(4.5,"default"),x*0.6,y*0.6+dxGetFontHeight(4.5,"default"),tocolor(255,255,255,255),1.5,"default","center","center")
dxDrawText ( zapytanie , x * 0.5 + 1 , y * 0.6 , x * 0.5 + 1 , y * 0.6 , tocolor ( 0 , 0 , 0 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( zapytanie , x * 0.5 , y * 0.6 , x * 0.5 , y * 0.6 , tocolor ( 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
local suma = #glosyNaTak()+#glosyNaNie()
local int1 = #glosyNaTak()/suma
local int2 = #glosyNaNie()/suma
if suma == 0 then
dxDrawRectangle ( x * 0.3 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.2 , y * 0.03 , tocolor ( 0 , 125 , 0 ))
dxDrawRectangle ( x * 0.5 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.2 , y * 0.03 , tocolor ( 155 , 0 , 0 ))
else
dxDrawRectangle ( x * 0.3 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.4 * int1 , y * 0.03 , tocolor ( 0 , 125 , 0 ))
dxDrawRectangle ( x * 0.3 + x * 0.4 * int1 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.4 * int2 , y * 0.03 , tocolor ( 155 , 0 , 0 ))
end
end
function putin ()
removeEventHandler ( "onClientRender" , root , kochamMame )
zapytanie = nil
end
addEvent ( "forceVoteEnd" , true )
addEventHandler ( "forceVoteEnd" , root , putin )
function urnyOglaszaja ()
removeEventHandler ( "onClientRender" , root , kochamMame )
if #glosyNaTak() > #glosyNaNie() then
addEventHandler ( "onClientRender" , root , oglosWynik1 )
setTimer (function()
removeEventHandler ( "onClientRender" , root , oglosWynik1 )
zapytanie = nil
end , 4999 , 1 )
elseif #glosyNaTak() < #glosyNaNie() then
addEventHandler ( "onClientRender" , root , oglosWynik2 )
setTimer (function()
removeEventHandler ( "onClientRender" , root , oglosWynik2 )
zapytanie = nil
end , 4999 , 1 )
elseif #glosyNaTak() == #glosyNaNie() then
addEventHandler ( "onClientRender" , root , oglosWynik3 )
setTimer (function()
removeEventHandler ( "onClientRender" , root , oglosWynik3 )
zapytanie = nil
end , 4999 , 1 )
end
end
addEvent ( "voteEnd" , true )
addEventHandler ( "voteEnd" , root , urnyOglaszaja )
function oglosWynik1 ()
dxDrawRectangle ( x * 0.3 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.4 , y * 0.03 , tocolor ( 0 , 125 , 0 ))
dxDrawText ( zapytanie , x * 0.5 + 1 , y * 0.6 , x * 0.5 + 1 , y * 0.6 , tocolor ( 0 , 0 , 0 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( zapytanie , x * 0.5 , y * 0.6 , x * 0.5 , y * 0.6 , tocolor ( 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( "Tak!" , x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), tocolor ( 255 , 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
end
function oglosWynik2 ()
dxDrawRectangle ( x * 0.3 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.4 , y * 0.03 , tocolor ( 155 , 0 , 0 ))
dxDrawText ( zapytanie , x * 0.5 + 1 , y * 0.6 , x * 0.5 + 1 , y * 0.6 , tocolor ( 0 , 0 , 0 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( zapytanie , x * 0.5 , y * 0.6 , x * 0.5 , y * 0.6 , tocolor ( 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( "Nie!" , x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), tocolor ( 255 , 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
end
function oglosWynik3 ()
dxDrawRectangle ( x * 0.3 , y * 0.6 + dxGetFontHeight ( 1.5 , "default" ), x * 0.4 , y * 0.03 , tocolor ( 0 , 0 , 145 ))
dxDrawText ( zapytanie , x * 0.5 + 1 , y * 0.6 , x * 0.5 + 1 , y * 0.6 , tocolor ( 0 , 0 , 0 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( zapytanie , x * 0.5 , y * 0.6 , x * 0.5 , y * 0.6 , tocolor ( 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
dxDrawText ( "Remis!" , x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), x * 0.5 , y * 0.6 + dxGetFontHeight ( 4.5 , "default" ), tocolor ( 255 , 255 , 255 , 255 ), 1.5 , "default" , "center" , "center" )
end
Zrobi?em ci na szybko te? , Element date se zrobisz ,
Nie ,?eby co? ale maciek3286 , by? te? dobry tylko tutaj po szybkim przejrzeniu o co chodzi , pomy?la?em ,?e poka?e jak to na Dxdraw to wygl?da .
Jest to z mojego serwa bo ja akurat lubi? zabaw? z dxDraw , s? to wiele niepotrzebnych rzeczy , po za tym strone z serwa z mojego kodu musisz se drobi? .
Je?li chcia?by? zabajerowa? gracz? w?a?nie dxdraw to mo?esz si? wzorowa? na moim kodzie .
Ale polecam maciek3286 te? dobr? robot? zrobi? .
Podpis
Cześć w MTA jestem jako Rodzaje.
Wszystko jest po staremu nie zamierzam stawiać RPG.
Wysłany: 2017-01-16, 18:55
maciek3286
LUA Developer
Wiek: 26 Na forum: 5201 dni Posty: 230
Nick w MP: maciek00
Piwa : 3207
zabijaka2000 , Ka?dy pisze jak lubi. Po za tym pisa?em to na szybko wi?c nie bd tego jako? specjalnie rozbudowywa?.
Podpis
"Ludzie będą zawsze dla ciebie źli, jeżeli konieczność nie zmusi ich do tego, by byli dobrzy" ~~ Niccolò Machiavelli
Tagi: system :: głosowania :: serwerze
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: