Технический форум damage
slapz0r 05.07.2019 в 19:03

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

--server
function playerDamage_text ( attacker, weapon, bodypart, loss, dmg ) --when a player is damaged
if bodypart then
local message
message = ("- "..loss.." hp")
outputChatBox(message, root)
end
end
addEventHandler ( "onPlayerDamage", getRootElement (), playerDamage_text )

--client
local dmg = dxDrawText("- "..hp.." hp", x + 10 - w / 4, y - 15 - h - 12, w, h, tocolor(255, 0, 0), 1, "default-bold","left","top",false,false,false,true)


При дамаге игрока в чат пишет урон, а как перенести этот текст в dxDrawText ?
LordOri 05.07.2019 в 21:32

Проверенный

Репутация: 45 бал.

Замечания: 0 бал.

slapz0r, почитай про OnClientRender
slapz0r 05.07.2019 в 23:40

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

LordOri, а есть инфа как сделать setVisible(false) для dxDrawText?
LordOri 06.07.2019 в 00:24

Проверенный

Репутация: 45 бал.

Замечания: 0 бал.

slapz0r, парень, госпаде, сделай переменную c TRUE и потом меняй каким для тебя удобно способом на FALSE

и отрисовуй при проверкe на TRUE или FALSE
introv3nous 06.07.2019 в 06:16

Пользователь

Репутация: 4 бал.

Замечания: 0 бал.

Client Side:


local screenSizeX, screenSizeY = guiGetScreenSize();
local dmg = false;
local tick = -1;

function dxdrawdmg()
dxDrawText("Damage!", screenSizeX, screenSizeY, 1.7, 1.7, tocolor(0, 0, 0, 255), 1.5, 1.5, "default-bold", "center", "center"); -- // Чёрный текст позади основного текста имитирующий тень!
dxDrawText("Damage!", screenSizeX, screenSizeY, 0, 0, tocolor(255, 255, 255, 255), 1.5, 1.5, "default-bold", "center", "center");

if getTickCount() - tick > 5000 then -- // Если с момента урона прошло более 5 секунд > убираем отрисовку dx текста на экране!
removeEventHandler("onClientRender", root, dxdrawdmg);
dmg = false;
end
end

addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, weapon, bodypart, loss)
if dmg == false then
dmg = true;
addEventHandler("onClientRender", root, dxdrawdmg);
tick = getTickCount();
end
end)
Войдие или зарегистрируйтесь что бы написать сообщение