[GÖSTERİ] Covid-19 Toplist

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
: 27 Mart 2020, 15:32:01
Covid-19 virüsü sayılarında ilk 15 ülkeyi ve Türkiye'yi gösteren bir panel. Veriler internetten çekilir. /covid19 komutu ile açılıp bir süre ekranda durduktan sonra gider.  :-[

Esinlenilen script için Linki görebilmek için Kayıt olun yada Giriş yapın..

Linki görebilmek için Kayıt olun yada Giriş yapın.

system
 
Mesajı Beğenenler: Yavuzay, MertA178, GrandX


MTASATURK

[GÖSTERİ] Covid-19 Toplist
« : 27 Mart 2020, 15:32:01 »

Çevrimdışı GrandX

  • Yeni Üye
  • *
    • İleti: 55
Yanıtla #1 : 27 Mart 2020, 15:58:34
Eline sağlık, hem kullanışlı hemde görünüşü şık.
 


Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
Yanıtla #2 : 06 Eylül 2020, 16:23:15
Kod: server.lua
covid19 = {}
lastUpdate = 0

function updateToplist()
fetchRemote("https://corona.lmao.ninja/v2/countries", function(rd,errno)
if errno == 0 then
covid19 = fromJSON("["..rd.."]")
table.sort(covid19,function(a,b) return a.cases>b.cases end)
for i,v in ipairs(covid19) do
if v["country"] == "Turkey" then
turkey = i
break
end
end
if turkey > 16 then
covid19[16] = covid19[turkey]
end
for i,v in ipairs(covid19) do
if i > 16 then
covid19[i] = nil
end
end
end
end, "", false)
end
updateToplist()

addCommandHandler("covid19",function(pl)
if getTickCount() - lastUpdate > 60*1000*10 then
updateToplist()
end
triggerClientEvent(pl,"toplistToClient",pl,covid19,turkey)
end)

Kod: client.lua
sx,sy = guiGetScreenSize()
res = 1920
w = 640
rate = sx/res

addEventHandler("onClientRender",root,function()
if renderTarget and isElement(renderTarget) then
local x,y = (sx-w*rate)/2,(sy-h*rate)/2
local x,y,a = interpolateBetween(x+20,y+20,0,x,y,255,(getTickCount()-renderTick)/250,"Linear")
if getTickCount()-renderTick > 6000 then
local fark = getTickCount()-renderTick-6000
x,y,a = interpolateBetween(x,y,255,x+20,y+20,0,fark/500,"Linear")
if fark > 500 then
destroyElement(renderTarget)
renderTarget = nil
return
end
end
dxDrawImage(x,y,w*rate,h*rate,renderTarget,nil,nil,tocolor(255,255,255,a))
end
end)

addEvent("toplistToClient",true)
addEventHandler("toplistToClient",root,function(t,turkeyOrder)
if renderTarget then return end
h = 430 + (turkeyOrder > 15 and 40 or 0)
-- set render target
renderTarget = dxCreateRenderTarget(w,h,true)
dxSetRenderTarget(renderTarget)
dxDrawRectangle(0,0,w,h,tocolor(0,0,0,225))
dxDrawRectangle(0,0,w,30,tocolor(140,140,140,255))
dxDrawText("Ülke",0,0,7*w/16,30,nil,1.2,"default-bold","center","center")
dxDrawText("Vaka (Bugün)",7*w/16,0,10*w/16,30,nil,1.2,"default-bold","center","center")
dxDrawText("Ölüm",10*w/16,0,13*w/16,30,nil,1.2,"default-bold","center","center")
dxDrawText("Tedavi Edilen",13*w/16,0,w,30,nil,1.2,"default-bold","center","center")
for i=1,15 do
local v = t[i]
local countryWidth = dxGetTextWidth(v["country"]:sub(1,25),1.2,"default-bold")
dxDrawRectangle(0,30+(i-1)*25,w,25,tocolor(80,80,80,i%2*100))
dxDrawImage((7*w/16-countryWidth)/2-20,37+(i-1)*25,16,11,":admin/client/images/flags/"..v["countryInfo"]["iso2"]:lower()..".png")
dxDrawText("#"..i,2,30+(i-1)*25,w/3,30+i*25,nil,1,"default-bold","left","center")
dxDrawText(v["country"]:sub(1,25),0,30+(i-1)*25,7*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["cases"]).." ("..comma_value(v["todayCases"])..")",7*w/16,30+(i-1)*25,10*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["deaths"]),10*w/16,30+(i-1)*25,13*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["recovered"]),13*w/16,30+(i-1)*25,w,30+i*25,nil,1.2,"default-bold","center","center")
end
if turkeyOrder > 15 then
local v = t[16]
local i = 16.7
local countryWidth = dxGetTextWidth(v["country"]:sub(1,11),1.2,"default-bold")
dxDrawRectangle(0,30+(i-1)*25,w,25,tocolor(80,80,80,255))
dxDrawImage((7*w/16-countryWidth)/2-20,37+(i-1)*25,16,11,":admin/client/images/flags/"..v["countryInfo"]["iso2"]:lower()..".png")
dxDrawText("#"..turkeyOrder,2,30+(i-1)*25,w/3,30+i*25,nil,1,"default-bold","left","center")
dxDrawText(v["country"]:sub(1,11),0,30+(i-1)*25,7*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["cases"]).." ("..comma_value(v["todayCases"])..")",7*w/16,30+(i-1)*25,10*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["deaths"]),10*w/16,30+(i-1)*25,13*w/16,30+i*25,nil,1.2,"default-bold","center","center")
dxDrawText(comma_value(v["recovered"]),13*w/16,30+(i-1)*25,w,30+i*25,nil,1.2,"default-bold","center","center")
end
dxDrawText("#EvdeKal   #HayatEveSığar",0,h-20,w-5,h,nil,1,"default-bold","right","center")
dxSetRenderTarget()
renderTick = getTickCount()
end)

function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end

bu ne olm
system
 
Mesajı Beğenenler: Leaver


Çevrimdışı #Ceo

  • Acemi Üye
  • *
    • İleti: 100
  • Mekan Gaming
Yanıtla #3 : 06 Eylül 2020, 17:24:08
amaç
 


Çevrimdışı Strong

  • Deneyimli Üye
  • *
    • İleti: 455
  • After Roleplay Developer
Yanıtla #4 : 06 Eylül 2020, 19:56:41
Çok yararlı resource :) Ellerine sağlık