Mudlet: How to count multiple objects in room?

ZemvaiZemvai Member Posts: 6
Would someone be willing to please help me figure out how to do a unique action depending on how many of one kind of an object are in a room based on GMCP?

For example, if there is one monolith in a room, I want to send myself a note to get a second monolith. If there are two monoliths in a room then I want to send myself a note that everything is fine.

Currently, I have the following which gives me the info message below twice. 

for _, v in pairs(gmcp.Char.Items.List.items) do

if == "a monolith sigil" then

info("A monolith is here!")



I tried doing something like if tonumber( > 1 then info ("More than one here") but... Mudlet didn't like that so much.



  • CassiusCassius Member Posts: 531 ✭✭✭
    Use a random variable to add one to at each monolith. Just reset it on room change.
  • DiceneDicene Member Posts: 913 ✭✭✭✭
    edited February 2015
    local monoCount = 0

    for i, v in ipairs(gmcp.Char.Items.List.items) do
      if"a monolith sigil" then
        monoCount = monoCount + 1

    if monoCount==0 then
      info("no monoliths")
    elseif monoCount==1 then
      info("one mono")
      info(monoCount .. " monoliths")

    Notes: I prefer using ipairs whenever possible. Since that gmcp.Char.Items.List.items table is indexed, not a dictionary style table, no reason not to use ipairs. Also, info isn't a function that exists by default, so I'm assuming you've got a custom function called info. If not, echo it. =P
  • ZemvaiZemvai Member Posts: 6
    Thank you so much! That works great! Yeah, I made a custom function so that I didn't have to add code each time to make the echo more noticeable.

    Thanks again.

Sign In or Register to comment.