- 5
- 2
- Версия MoonLoader
- Другое
Сделал скрипт на смену погоды и времени, вроде работает нормально, однако когда указываешь в /setweather(команда смены погоды) не целое чисто а допустим буквы, тогда вылазит ошибка но со значением nil, а мне желательно чтобы выводилась ошибка как написано в скрипте, тобишь /setweather [0-45]
Lua:
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
repeat wait(0) until isSampAvailable()
sampAddChatMessage('{5A90CE}[setWeather&Time]: {FFFFFF}Скрипт загружен')
sampAddChatMessage('{5A90CE}[setWeather&Time]: {FFFFFF}Автор: {5A90CE}XYZ')
sampRegisterChatCommand('setweather', cmd_sw)
sampRegisterChatCommand('settime', cmd_st)
while true do wait(0)
setTimeOfDay(time, 1)
end
end
function cmd_sw(param)
local weather = tonumber(param)
if weather ~= nil and weather >= 0 and weather <= 45 then
forceWeatherNow(weather)
end
if #param == 0 then
sampAddChatMessage('{5A90CE}[setWeather&Time]: {FFFFFF}/setweather {5A90CE}[0-45]')
else
local swinf = string.format('{5A90CE}[setWeather&Time]: {FFFFFF}Вы установили погоду {5A90CE}№%s', weather)
sampAddChatMessage(swinf, 0)
end
end
function cmd_st(param)
local hour = tonumber(param)
if hour ~= nil and hour >= 0 and hour <= 23 then
time = hour
samp_set_time(true)
else
samp_set_time(false)
hour = nil
end
if #param == 0 then
sampAddChatMessage('{5A90CE}[setWeather&Time]: {FFFFFF}/settime {5A90CE}[0-23]')
else
local stinf = string.format('{5A90CE}[setWeather&Time]: {FFFFFF}Вы установили время {5A90CE}%s:00', hour)
sampAddChatMessage(stinf, 0)
end
end
function samp_set_time(enable)
if enable and default ~= nil then
default = readMemory(sampGetBase() + 0x9C0A0, 4, true)
writeMemory(sampGetBase() + 0x9C0A0, 4, 0x000008C2, true)
elseif enable == false and default ~= nil then
writeMemory(sampGetBase() + 0x9C0A0, 4, default, true)
default = nil
end
end