SA:MP Улучшить скрипт

Kirillka121212

Известный
Автор темы
10
0
Версия SA-MP
  1. 0.3.7-R2
  2. 0.3.7-R3
  3. 0.3.7-R4
Вчера на просторах интернета нашел .lua для SA:MP, который при введении /actor - спавнит на наших координатах NPC болванчика со скином CJ. Причем можно несколько.

function main()
sampRegisterChatCommand("actor", function()
x, y, z = getCharCoordinates(PLAYER_PED)
createPlayer(1, x, y, z)
end)

wait(-1)
end


Его можно бить, пинать, расстреливать и тд, он ведет себя в этом плане как и другие игроки, разве что не шевелится.
Можно ли доработать этот код так, чтобы у NPC устанавливался другой скин, например через /actor skinID и никнейм какой нибудь подобной командой?
Если такой скрипт уже есть или похожий - прошу ссылку в чат.
 

unk0wmn.

Участник
41
9
function main()
local targetSkin = 0

sampRegisterChatCommand("skinid", function(param)
local skinId = tonumber(param)
if skinId ~= nil and skinId >= 0 and skinId <= 311 then
targetSkin = skinId
sampAddChatMessage(string.format("Установлен скин с ID: %d", targetSkin), 0x1cd031)
else
sampAddChatMessage("Некорректный ID скина! Допустимые значения: 0-311", 0xFF0000)
end
end)

sampRegisterChatCommand("actor", function()
local x, y, z = getCharCoordinates(PLAYER_PED)
local actor = createPlayer(1, x, y, z)
if actor ~= nil then
setPlayerModel(actor, targetSkin)
sampAddChatMessage(string.format("Актер создан с скином ID: %d", targetSkin), 0x1cd031)
else
sampAddChatMessage("Не удалось создать актера!", 0xFF0000)
end
end)

wait(-1)
end
 

Kirillka121212

Известный
Автор темы
10
0
function main()
local targetSkin = 0

sampRegisterChatCommand("skinid", function(param)
local skinId = tonumber(param)
if skinId ~= nil and skinId >= 0 and skinId <= 311 then
targetSkin = skinId
sampAddChatMessage(string.format("Установлен скин с ID: %d", targetSkin), 0x1cd031)
else
sampAddChatMessage("Некорректный ID скина! Допустимые значения: 0-311", 0xFF0000)
end
end)

sampRegisterChatCommand("actor", function()
local x, y, z = getCharCoordinates(PLAYER_PED)
local actor = createPlayer(1, x, y, z)
if actor ~= nil then
setPlayerModel(actor, targetSkin)
sampAddChatMessage(string.format("Актер создан с скином ID: %d", targetSkin), 0x1cd031)
else
sampAddChatMessage("Не удалось создать актера!", 0xFF0000)
end
end)

wait(-1)
end

/skinid id - пишет какие то поломанные буквы в чат "Ррвоарылвапыр: "id, который ввели в команде"
Если сначала ввести /skinid "id" а потом /actor - игра крашится
 

unk0wmn.

Участник
41
9
Поставь кодировку Windoes 1251

Если сначала ввести /skinid "id" а потом /actor - игра крашится
Попробуй это
function main()
local skinId = 0

sampRegisterChatCommand("skinid", function(param)
skinId = math.clamp(tonumber(param) or 0, 0, 311)
end)

sampRegisterChatCommand("actor", function()
local x, y, z = getCharCoordinates(PLAYER_PED)
local actor = createPlayer(1, x + 1.5, y + 1.5, z)
if actor ~= 0 then
setPlayerMode(actor, skinId)
end
end)

while true do
wait(0)
end
end
 
Последнее редактирование:

chromiusj

fullstack eblan
Модератор
5,795
4,102
Поставь кодировку Windoes 1251


Попробуй это
function main()
local skinId = 0

sampRegisterChatCommand("skinid", function(param)
skinId = math.clamp(tonumber(param) or 0, 0, 311)
end)

sampRegisterChatCommand("actor", function()
local x, y, z = getCharCoordinates(PLAYER_PED)
local actor = createActor(1, x + 1.5, y + 1.5, z)
if actor ~= 0 then
setActorModel(actor, skinId)
end
end)

while true do
wait(0)
end
end
это конечно круто что ты умеешь юзать ии для скриптов но хотя б проверял наличие функций в апи существующем что-ли
 

Kirillka121212

Известный
Автор темы
10
0
Поставь кодировку Windoes 1251


Попробуй это
function main()
local skinId = 0

sampRegisterChatCommand("skinid", function(param)
skinId = math.clamp(tonumber(param) or 0, 0, 311)
end)

sampRegisterChatCommand("actor", function()
local x, y, z = getCharCoordinates(PLAYER_PED)
local actor = createPlayer(1, x + 1.5, y + 1.5, z)
if actor ~= 0 then
setPlayerMode(actor, skinId)
end
end)

while true do
wait(0)
end
end
Спавнит ток 1 актера со скином 0(CJ) - дальше /actor не работает. /skinid тоже