Postado Agosto 28, 2023 1 ano Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
Postado Setembro 9, 2023 1 ano Diretor tente algo como isso function onCreatureAppear(cid) -- Lógica para quando o jogador se aproxima do NPC end function onCreatureDisappear(cid) -- Lógica para quando o jogador se afasta do NPC end function onCreatureSay(cid, type, msg) -- Lógica para quando o jogador fala com o NPC if msgcontains(msg, "trocar") then if isPlayer(cid) then local player = isPlayer(cid) -- Alteração aqui local tile = player:getTile() local itemsOnTile = tile:getItems() for _, item in pairs(itemsOnTile) do if isMoveable(item:getId()) then doPlayerSendCancelMessage(cid, "Você não pode iniciar a negociação com itens móveis no chão.") -- Alteração aqui return end end -- Lógica para iniciar a troca de itens local npc = getNpc() doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você iniciou uma negociação com " .. getCreatureName(npc) .. ". Coloque os itens na janela de negociação.") doNpcOpenTradeWindow(npc, cid) end end end function onThink() -- Lógica para o que o NPC faz enquanto pensa end -- Registre o NPC no servidor function register() local npc = createNpc("TradeNPC", {x = 100, y = 100, z = 7}) -- Substitua com a localização desejada registerCreatureEvent(npc, "TradeEvent") -- Substitua "TradeEvent" com o nome do evento de troca end register()
Postado Setembro 10, 2023 1 ano Autor Agora, L3K0T disse: tente algo como isso function onCreatureAppear(cid) -- Lógica para quando o jogador se aproxima do NPC end function onCreatureDisappear(cid) -- Lógica para quando o jogador se afasta do NPC end function onCreatureSay(cid, type, msg) -- Lógica para quando o jogador fala com o NPC if msgcontains(msg, "trocar") then if isPlayer(cid) then local player = isPlayer(cid) -- Alteração aqui local tile = player:getTile() local itemsOnTile = tile:getItems() for _, item in pairs(itemsOnTile) do if isMoveable(item:getId()) then doPlayerSendCancelMessage(cid, "Você não pode iniciar a negociação com itens móveis no chão.") -- Alteração aqui return end end -- Lógica para iniciar a troca de itens local npc = getNpc() doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você iniciou uma negociação com " .. getCreatureName(npc) .. ". Coloque os itens na janela de negociação.") doNpcOpenTradeWindow(npc, cid) end end end function onThink() -- Lógica para o que o NPC faz enquanto pensa end -- Registre o NPC no servidor function register() local npc = createNpc("TradeNPC", {x = 100, y = 100, z = 7}) -- Substitua com a localização desejada registerCreatureEvent(npc, "TradeEvent") -- Substitua "TradeEvent" com o nome do evento de troca end register() mas no caso o meu servidor é 7.4 e não tem esse sistema de trade
Postado Setembro 10, 2023 1 ano Diretor function onCreatureAppear(cid) -- Lógica para quando o jogador se aproxima do NPC end function onCreatureDisappear(cid) -- Lógica para quando o jogador se afasta do NPC end function onCreatureSay(cid, type, msg) -- Lógica para quando o jogador fala com o NPC if msgcontains(msg, "trocar") then local playerTile = getThingPos(cid) local itemsOnTile = getTileItems(playerTile) for _, item in pairs(itemsOnTile) do if isMoveable(item.uid) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode iniciar a negociação com itens móveis no chão.") return end end -- Lógica para a troca de itens (adicione sua lógica personalizada aqui) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você iniciou uma negociação comigo.") end end function onThink() -- Lógica para o que o NPC faz enquanto pensa end -- Registre o NPC no servidor function register() local npc = createNpc("TradeNPC", {x = 100, y = 100, z = 7}) -- Substitua com a localização desejada registerCreatureEvent(npc, "TradeEvent") -- Substitua "TradeEvent" com o nome do evento de troca end register()
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.