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

Wysłany: 2017-01-14, 19:21


YakubTM







Wiek: 33
Na forum: 3446 dni
Posty: 4



Respekt: 50

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?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-14, 19:25


_Haze

Peace Yo!






Wiek: 24
Na forum: 4184 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020


Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawText

draw'ujesz pytanie
(dajesz eventem)

Więcej informacji znajdziesz w Wikipedii MTA:

addCommandHandler

dodajesz komende

Więcej informacji znajdziesz w Wikipedii MTA:

isObjectInACLGroup

jesli masz range

Więcej informacji znajdziesz w Wikipedii MTA:

triggerClientServer

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

Więcej informacji znajdziesz w Wikipedii MTA:

removeEventHandler

jesli tak robisz triger z usunieciem zapytania i dajesz removeEventHandler

Więcej informacji znajdziesz w Wikipedii MTA:

setElementData

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-14, 21:11


YakubTM







Wiek: 33
Na forum: 3446 dni
Posty: 4



Respekt: 50

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??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-14, 21:14


_Haze

Peace Yo!






Wiek: 24
Na forum: 4184 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-16, 14:52


maciek3286

LUA Developer






Wiek: 26
Na forum: 5201 dni
Posty: 230
Nick w MP: maciek00

Piwa: 3207

Respekt: 101,5
Respekt: 101,5

Robione na szybko

kod s-side:

local skrzyniaglosow createObject 9800,0, -100 )

function zapytaj(plrcmdczas, ...)
local pytanie table.concat(arg" ")
local accName getAccountName getPlayerAccount plr ) ) 
    if isObjectInACLGroup ("user."..accNameaclGetGroup "Admin" ) ) then
        if tonumber(czasthen
            if getElementData(skrzyniaglosow"pytanie" == false then
                setElementData(skrzyniaglosow"tak"0)
                setElementData(skrzyniaglosow"nie"0)
                setElementData(skrzyniaglosow"pytanie"true)
                outputChatBox("[Pytanie]"..pytanie.."?"root255255255true)
                setTimer(setElementData1000*czas1skrzyniaglosow"pytanie"false)
                setTimer(outputChatBox1000*czas1"G?osowanie zako?czone" root255255255true)
            else
                outputChatBox("Ju? trwa jedna ankieta."plr255255255true)
            end
        else
            outputChatBox("Czas musi by? podany liczbowo!"plr255255255true)
        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"plr255255255true)
    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"plr255255255true)
    end
end
addCommnadHandler("nie"nie)


pytanie zadajesz /zpytanie [czas w sekundach] [tre??]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-16, 17:07


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
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
Postaw piwo autorowi tego posta
 

 
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

Respekt: 70,5

Ostrzeżeń: 40%
Client Site

local x,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.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-16, 18:55


maciek3286

LUA Developer






Wiek: 26
Na forum: 5201 dni
Posty: 230
Nick w MP: maciek00

Piwa: 3207

Respekt: 101,5
Respekt: 101,5

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
Postaw piwo autorowi tego posta
 

 
Tagi: system :: głosowania :: serwerze
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » System głosowania na serwerze 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