Как сделать гуманоида убиваемым и заставить его возродиться? (Роблокс)

Заголовок. Все найденные мною уроки объясняют только, как создать человеческую модель, а не как сделать ее убиваемой. Я установил здоровье и максимальное здоровье гуманоида на 100, и он показывает полоску здоровья, но не может получать урон. Спасибо!


person yota08    schedule 27.08.2018    source источник
comment
Хм? По умолчанию игроков / гуманоидов можно убивать автоматически.   -  person Lua Tutoring    schedule 12.09.2018
comment
Как вы пытаетесь нанести ему ущерб?   -  person NetherGranite    schedule 19.10.2018


Ответы (1)


Это зависит от того, откуда гуманоид получает урон. Если он получает урон от LocalScript, который не поддерживает FE, то Humanoid не получит повреждений.

Если вы хотите заставить гуманоида получить урон или мгновенно убить его, вот несколько методов:

Мгновенное уничтожение (из сценария, отличного от LocalScript)

local character = nil; -- replace nil with the character
character:BreakJoints();

Мгновенное уничтожение (из LocalScript)

В локальном скрипте:

local character = game:service("Players").LocalPlayer.Character -- replace this to the character. if you don't replace it, it will kill your character.
local rep = game:service("ReplicatedStorage");
local event = rep:WaitForChild("killEvent");

event:FireServer(character);

В обычном скрипте:

local rep = game:service("ReplicatedStorage");
local ev = Instance.new("RemoteEvent",rep);
ev.Name = "killEvent";

ev.OnServerEvent:connect(function(plr, char)
    if not char then char = plr.Character end;
    char:BreakJoints();
end);

Получение ущерба (из-за не-LocalScript)

local character = nil; -- replace nil with the character
local humanoid = character:WaitForChild("Humanoid");
local damage = 50; -- Change this to the damage you want the humanoid to take

humanoid:TakeDamage(damage);

Получение ущерба (из LocalScript)

В локальном скрипте:

local rep = game:service("ReplicatedStorage");
local event = rep:WaitForChild("damageEvent");

local character = game:service("Players").LocalPlayer.Character; -- replace this to the character. if you don't change it, it will automatically damage your character.

local humanoid = character:WaitForChild("Humanoid");

local damage = 50; -- Change this to the damage you want the player to take

event:FireServer(humanoid, damage);

В обычном скрипте:

local rep = game:service("ReplicatedStorage");

local event = Instance.new("RemoteEvent", rep);
event.Name = "damageEvent";
event.OnServerEvent:connect(function(player, hum, damage)
    if not hum then hum = player.Character.Humanoid; end;
    hum:TakeDamage(damage);
end);

Это должно сделать так, чтобы Гуманоид получил урон или убил его. Вы также можете использовать эти методы для убийства других игроков, поскольку мы используем Remote для местных.

Надеюсь, мой ответ поможет!

person Community    schedule 11.11.2018