Witam , utworzy?em skrypt kt?ry nazwa?em afk ,gdy gracz zminimalizuje gre , nad jego nickiem pojawia sie napis ?e jest afk , jednak niestety dzia?a to tak ?e gdy kto? zminimalizuje gre to u wszystkich sie takie co? pojawia , prosi?bym o pomoc ewentualnie poprawienie mojego zasobu :
screenX,screenY=guiGetScreenSize()
addEventHandler("onClientRender",getRootElement(),function()
local cx,cy,cz,ctx,cty,ctz=getCameraMatrix()
for k,v in ipairs(getElementsByType("player")) do
if getElementData(v,"player:AFK") == true and v ~= getLocalPlayer() then
local target_x,target_y,target_z=getElementPosition(v)
local X,Y=getScreenFromWorldPosition(target_x,target_y,target_z+1)
local scale=(1)-(getDistanceBetweenPoints3D(cx,cy,cz,target_x,target_y,target_z+1)/25)
if scale < 0 then
scale=0
end
local width=dxGetTextWidth(tostring(getPlayerName(v) .. " is afk.", playerSource),scale,"pricedown")/2
X=tonumber(X or 0)-width
if X > 0 and X < screenX and Y > 0 and Y < screenY and isLineOfSightClear(cx,cy,cz,target_x,target_y,target_z,true,true,false,true,true,false,false,(getPedOccupiedVehicle(v) or v)) then
dxDrawText(tostring(getPlayerName(v) .. " is afk.",playerSource),X,Y,50,50,tocolor(255,255,0,255),scale,"pricedown")
end
end
end
end)
function handleMinimize()
callServerFunction("setElementData",source,"player:AFK", true )
end
addEventHandler( "onClientMinimize", getRootElement(), handleMinimize )
function handleRestore( didClearRenderTargets )
callServerFunction("setElementData",source,"player:AFK", false )
end
addEventHandler("onClientRestore", getRootElement(), handleRestore )
function callServerFunction(funcname, ...)
local arg = { ... }
if (arg[1]) then
for key, value in next, arg do
if (type(value) == "number") then arg[key] = tostring(value) end
end
end
-- If the serverside event handler is not in the same resource, replace 'resourceRoot' with the appropriate element
triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg))
end
Hm mo?e dlatego, ?e osoba, kt?ra poprawnie potrafi zrobi? taki skrypt nie wie jak on dzia?a Troch? to dla mnie dziwne (zw?aszcza, ?e wiem ile to trudu i wysi?ku zmajstrowa? takie co?).
Dobra to teraz tak - linijk?:
local width=dxGetTextWidth(tostring(getPlayerName(v) .. " is afk.", playerSource),scale,"pricedown")/2
zmie? na:
local width=dxGetTextWidth(getPlayerName(v) .. " is afk.",scale,"pricedown")/2
i linijk?:
dxDrawText(tostring(getPlayerName(v) .. " is afk.",playerSource),X,Y,50,50,tocolor(255,255,0,255),scale,"pricedown")
na:
dxDrawText(getPlayerName(v) .. " is afk.",X,Y,50,50,tocolor(255,255,0,255),scale,"pricedown")
Nadal to samo , wszystkim graczom pokazuje informacj? o zminimalizowanej grze.
screenX,screenY=guiGetScreenSize()
addEventHandler("onClientRender",getRootElement(),function()
local cx,cy,cz,ctx,cty,ctz=getCameraMatrix()
for k,v in ipairs(getElementsByType("player")) do
if getElementData(v,"player:AFK") == true and v ~= getLocalPlayer() then
local target_x,target_y,target_z=getElementPosition(v)
local X,Y=getScreenFromWorldPosition(target_x,target_y,target_z+1)
local scale=(1)-(getDistanceBetweenPoints3D(cx,cy,cz,target_x,target_y,target_z+1)/25)
if scale < 0 then
scale=0
end
local width=dxGetTextWidth(getPlayerName(v) .. " zminimalizowa? gr?.",scale,"pricedown")/2
X=tonumber(X or 0)-width
if X > 0 and X < screenX and Y > 0 and Y < screenY and isLineOfSightClear(cx,cy,cz,target_x,target_y,target_z,true,true,false,true,true,false,false,(getPedOccupiedVehicle(v) or v)) then
dxDrawText(getPlayerName(v) .. " zminimalizowa? gr?.",X,Y,50,50,tocolor(255,255,0,255),scale,"pricedown")
end
end
end
end)
function handleMinimize()
callServerFunction("setElementData",source,"player:AFK", true )
end
addEventHandler( "onClientMinimize", getRootElement(), handleMinimize )
function handleRestore( didClearRenderTargets )
callServerFunction("setElementData",source,"player:AFK", false )
end
addEventHandler("onClientRestore", getRootElement(), handleRestore )
function callServerFunction(funcname, ...)
local arg = { ... }
if (arg[1]) then
for key, value in next, arg do
if (type(value) == "number") then arg[key] = tostring(value) end
end
end
-- If the serverside event handler is not in the same resource, replace 'resourceRoot' with the appropriate element
triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg))
end
function callServerFunction(funcname, ...)
local arg = { ... }
if (arg[1]) then
for key, value in next, arg do
if (type(value) == "number") then arg[key] = tostring(value) end
end
end
-- If the serverside event handler is not in the same resource, replace 'resourceRoot' with the appropriate element
triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg))
end
i zamie?
function handleMinimize()
callServerFunction("setElementData",source,"player:AFK", true )
end
addEventHandler( "onClientMinimize", getRootElement(), handleMinimize )
function handleRestore( didClearRenderTargets )
callServerFunction("setElementData",source,"player:AFK", false )
end
addEventHandler("onClientRestore", getRootElement(), handleRestore )
na
function handleMinimize()
setElementData(localPlayer,"player:AFK", true )
end
addEventHandler( "onClientMinimize", getRootElement(), handleMinimize )
function handleRestore( didClearRenderTargets )
setElementData(localPlayer,"player:AFK", false )
end
addEventHandler("onClientRestore", getRootElement(), handleRestore )
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