Pr?buje fajnie sklepa? komend? /mute jednak jest kilka irytuj?cych rzeczy z kt?rymi od wczoraj si? m?cz?, mianowicie:
- Komendy u?ywa si? w ten spos?b -> /mute nick, czas - je?li wpisz? /mute nick i nie dodam przecinka to wywala taki b??d w konsoli
[CPP][29/01/2016 12:57:15] Lua Script Error: [TalkAction Interface]
[29/01/2016 12:57:15] data/talkactions/scripts/muted.luanSay
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: attempt to compare string with nil
[29/01/2016 12:57:15] stack traceback:
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: in function <data/talkactions/scripts/muted.lua:7>[/CPP]
- Ustawione mam, ?e mog? nada? mute na czas z zakresu 1-100 minut. Jednak nie wiem czemu skrypt sobie ubzdura? i je?li spr?buje nada? mute na czas 3,4,5,6 minut to wywala, ?e "mozna nadac na czas z zakresu 1-100 minut", reszta dzia?a bez zarzutu. Tylko czemu ? Skoro jest zrobione if time > "0" i if time <= "100" to powinno nada?.
- Chce zrobi?, ?e mo?na nada? blokade mute osobie, kt?ra posiada access mniejszy od tego jaki posiada osoba nadaj?ca muted jednak co? nie hula.
Skrypt: zlepa kodu z otland + wczorajsza wskaz?wka od [MENTION=4185]fabian766[/MENTION] i troch? od siebie.
[LUA]local v = {}
for k = 1, 100 do
table.insert(v, createConditionObject(CONDITION_MUTED))
setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000)
end
function onSay(cid, words, param)
local t = string.explode(param, ",")
if param == '' then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bledny parametr komendy.")
return true
end
local mPlayer,time = getPlayerByName(t[1]),t[2]
local rMute = getPlayerName(cid)
local pAccess = getPlayerGroupId(t[1])
if isPlayer(mPlayer) == TRUE then
if(mPlayer ~= cid) then
if(pAccess < cid) then
if(time > "0" and time <= "100") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nadales blokade na pisanie graczowi "..t[1].." na okres "..time.." minut.")
doAddCondition(mPlayer, v[tonumber(time)])
doPlayerSendTextMessage(mPlayer, MESSAGE_INFO_DESCR, "Otrzymales muted od ".. rMute .." na okres "..time.." minut.")
else
doPlayerSendCancel(cid,"Tylko zakres czasowy 1-100 minut.")
end
else
doPlayerSendCancel(cid,"Muted mozesz nadac osobie z access mniejszym od twojego.")
end
else
doPlayerSendCancel(cid,"Sam sobie nie nadasz blokady.")
end
else
doPlayerSendCancel(cid,"Gracz o takiej nazwie nie istnieje.")
end
end[/LUA]
- Komendy u?ywa si? w ten spos?b -> /mute nick, czas - je?li wpisz? /mute nick i nie dodam przecinka to wywala taki b??d w konsoli
[CPP][29/01/2016 12:57:15] Lua Script Error: [TalkAction Interface]
[29/01/2016 12:57:15] data/talkactions/scripts/muted.luanSay
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: attempt to compare string with nil
[29/01/2016 12:57:15] stack traceback:
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: in function <data/talkactions/scripts/muted.lua:7>[/CPP]
- Ustawione mam, ?e mog? nada? mute na czas z zakresu 1-100 minut. Jednak nie wiem czemu skrypt sobie ubzdura? i je?li spr?buje nada? mute na czas 3,4,5,6 minut to wywala, ?e "mozna nadac na czas z zakresu 1-100 minut", reszta dzia?a bez zarzutu. Tylko czemu ? Skoro jest zrobione if time > "0" i if time <= "100" to powinno nada?.
- Chce zrobi?, ?e mo?na nada? blokade mute osobie, kt?ra posiada access mniejszy od tego jaki posiada osoba nadaj?ca muted jednak co? nie hula.
Skrypt: zlepa kodu z otland + wczorajsza wskaz?wka od [MENTION=4185]fabian766[/MENTION] i troch? od siebie.
[LUA]local v = {}
for k = 1, 100 do
table.insert(v, createConditionObject(CONDITION_MUTED))
setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000)
end
function onSay(cid, words, param)
local t = string.explode(param, ",")
if param == '' then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bledny parametr komendy.")
return true
end
local mPlayer,time = getPlayerByName(t[1]),t[2]
local rMute = getPlayerName(cid)
local pAccess = getPlayerGroupId(t[1])
if isPlayer(mPlayer) == TRUE then
if(mPlayer ~= cid) then
if(pAccess < cid) then
if(time > "0" and time <= "100") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nadales blokade na pisanie graczowi "..t[1].." na okres "..time.." minut.")
doAddCondition(mPlayer, v[tonumber(time)])
doPlayerSendTextMessage(mPlayer, MESSAGE_INFO_DESCR, "Otrzymales muted od ".. rMute .." na okres "..time.." minut.")
else
doPlayerSendCancel(cid,"Tylko zakres czasowy 1-100 minut.")
end
else
doPlayerSendCancel(cid,"Muted mozesz nadac osobie z access mniejszym od twojego.")
end
else
doPlayerSendCancel(cid,"Sam sobie nie nadasz blokady.")
end
else
doPlayerSendCancel(cid,"Gracz o takiej nazwie nie istnieje.")
end
end[/LUA]