Olá, tenho um código aqui que anteriormente eu já havia tirado uma dúvida sobre ele, e o zipter98 me ajudou.
Porém me veio à tona outra dúvida. Eu iria postar lá no mesmo tópico, mas ele já havia sido movido após ser resolvido, então não sabia se eu podia postar lá ainda. Então resolvi criar outro tópico.
É o seguinte. Tenho um código em que é um TALKACTION que você executa um comando, exemplo !teleport + LOCAL, e ele te teleporta.
Porém existem algumas restrições. O comando só te teleporta caso você tenha um certo item e um certo level.
No caso, cada opção de teleport tem um level que possa teleportar. Mas já o item, não.
O item está configurado para todas as opções, ou seja, não importa o destino que você escolher, você vai precisar do mesmo item.
Eu quero que tenha um item para cada destino, e não um item para todos os destinos.
Acho que deu pra entender, caso alguém for me ajudar e tenha alguma dúvida sobre a minha dúvida (lol), só falar.
Aqui o código :
function onSay(cid, words, param) local config = { pz = true, battle = true, need_level = true, premium = true, need_Item = true, Item = 2010 -- Aqui o item fica para qualquer destino que eu for. } local lugar = { ["Centerya"] = { pos = {x = 1137, y = 1243, z = 5},level = 8}, ["Deserya"] = { pos = {x = 930, y = 1239, z = 5},level = 30} } --Posições. local pos_one = {x = 1136, y = 1243, z = 5} local pos_two = {x = 1137, y = 1243, z = 5} local pos_three = {x = 929, y = 1239, z = 5} local pos_four = {x = 930, y = 1239, z = 5} --Variável que irá "verificar" a posição do jogador. local check = 0 if (param == "Lista") then local str = "" str = str .. "Locais disponíveis :\n\n" for name, pos in pairs(lugar) do str = str..name.."\n" end str = str .. "" doShowTextDialog(cid, 6579, str) return TRUE end local a = lugar[param] if getThingPos(cid).x ~= pos_one.x or getThingPos(cid).y ~= pos_one.y or getThingPos(cid).z ~= pos_one.z then check = check + 1 end if check == 1 then if getThingPos(cid).x ~= pos_two.x or getThingPos(cid).y ~= pos_two.y or getThingPos(cid).z ~= pos_two.z then check = check + 1 end end if check == 2 then if getThingPos(cid).x ~= pos_three.x or getThingPos(cid).y ~= pos_three.y or getThingPos(cid).z ~= pos_three.z then check = check + 1 end end if check == 3 then if getThingPos(cid).x ~= pos_four.x or getThingPos(cid).y ~= pos_four.y or getThingPos(cid).z ~= pos_four.z then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você só pode utilizar este comando à frente de um mastro.") end end if not(a) then doPlayerSendTextMessage(cid, 22, "Esta ilha não existe.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE elseif config.premium == true and isPremium(cid) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players Premium Accounts podem teleportar. Para comprar Premium Account acesse : \n www.???.com") return TRUE elseif config.pz == true and getTilePzInfo(getCreaturePosition(cid)) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você só pode teleportar dentro de Protection Zones. ") return TRUE elseif config.need_Item == true and getPlayerItemCount(cid,config.Item) < 1 then doPlayerSendCancel(cid,"Você precisa da " .. getItemNameById(config.Item) .. " para teleportar para " .. param .. " Island.") return TRUE elseif config.battle == true and getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode teleportar durante o estado de battle.") return TRUE elseif config.need_level == true and getPlayerLevel(cid) < a.level then doPlayerSendTextMessage(cid, 22, "Você não tem level suficiente. \n Você precisa ser Lv."..a.level.."+ para poder teleportar para " .. param .. " Island.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end doTeleportThing(cid, a.pos) doSendMagicEffect(a.pos, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, 22, " Você foi teleportado para \n " .. param .. " Island.") end