Ir para conteúdo
  • Cadastre-se

(Resolvido)Script de Alavanca Check e Check Storage e Action Clean


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default.

 

Um script de check storage, se o player tiver 5 storage diferente, inibe a passagem dele e emite uma mensagem

 

Uma action que eu possa colocar em um item, que remove 5 storage do player.

Link para o post
Compartilhar em outros sites
1 hora atrás, JcA disse:

Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default.

 

function onUse(cid, item, frompos, item2, topos)

local pos = {x=623, y=377, z=8} -- pos que precisara estar para ser teleportado
local newpos = {x=623, y=377, z=8} -- pos que ira ser teleportado
local effect = 10 -- efeito que ira sair ao ser teleportado
local pid = getCreaturePosition(cid)

local item1 = 2323 -- id do item 1
local item2 = 2327 -- id do item 2
local item3 = 2326 -- id do item 3
local item4 = 2325 -- id do item 4
local item5 = 2324  -- id do item 5
local qnt1 = 1 -- qnt do item1 necessaria
local qnt2 = 1 -- qnt do item2 necessaria
local qnt3 = 1 -- qnt do item3 necessaria
local qnt4 = 1 -- qnt do item4 necessaria
local qnt5 = 1 -- qnt do item5 necessaria

 if getCreaturePosition(cid) == pos then
  if getPlayerItemCount(cid, item1) >= qnt1 then
   if getPlayerItemCount(cid, item2) >= qnt2 then
    if getPlayerItemCount(cid, item3) >= qnt3 then
     if getPlayerItemCount(cid, item4) >= qnt4 then
      if getPlayerItemCount(cid, item5) >= qnt5 then

doTeleportThing(cid, newpos)
doSendMagicEffect(pid, effect)
doPlayerSendTextMessage(cid, 24, "mensagem 1")
doPlayerSendTextMessage(cid, 24, "mensagem 2")

 else
 doPlayerSendTextMessage(cid, 24, "voce nao tah na posicao certa")
 end
  else
  doPlayerSendTextMessage(cid, 24, "voce nao tem o item1 ou sua quantidade certa")
  end
   else
   doPlayerSendTextMessage(cid, 24, "voce nao tem o item2 ou sua quantidade certa")
   end
    else
    doPlayerSendTextMessage(cid, 24, "voce nao tem o item3 ou sua quantidade certa")
    end
     else
     doPlayerSendTextMessage(cid, 24, "voce nao tem o item4 ou sua quantidade certa")
     end
      else
      doPlayerSendTextMessage(cid, 24, "voce nao tem o item5 ou sua quantidade certa")
      end
      
return true
end

 

giphy.gif

Link para o post
Compartilhar em outros sites
  • Solução
6 horas atrás, JcA disse:

Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default.

 

Um script de check storage, se o player tiver 5 storage diferente, inibe a passagem dele e emite uma mensagem

 

Uma action que eu possa colocar em um item, que remove 5 storage do player.

 

1. Script de Alavanca

 

Em actions/scripts:

 

leverItens.lua

 

Spoiler

local config = {
pos = {x = 1, y = 1, z = 1}, -- posição que o player deve estar
newpos = {x = 1, y = 1, z = 1}, -- posição para qual o player será levado
msg1 = "MENSAGEM 1 NO DEFAULT", 
msg2 = "MENSAGEM 2 NO DEFAULT",
items = {{1111, 1}, {2222, 5}, {3333, 12}, {4444, 20}, {5555, 7}} -- {id_do_item, quantidade}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local p = getPlayerPosition(cid)
    for _, v in ipairs(config.items) do
        if getPlayerItemCount(cid, v[1]) < v[2] then
            return doPlayerSendCancel(cid, "Você não possui os itens necessários.")
        end
    end
    if  not(p.x == config.pos.x and p.y == config.pos.y and p.z == config.pos.z) then
    return doPlayerSendCancel(cid, "Você não está na posição correta.")
    end
    
    doTeleportThing(cid, config.newpos)
    doSendMagicEffect(config.newpos, CONST_ME_TELEPORT)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg2)
return true
end

 

 

Em actions.xml, insira a tag: <action actionid="ACTION_ID_DA_ALAVANCA" script="leverItens.lua" />

 

2. Checar storage e proibir passagem

 

Em movements/scripts:

 

checkStor.lua

 

Spoiler

local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão verificadas
function onStepIn(cid, item, position, fromPosition)
for _, v in ipairs(storages) do
    if getPlayerStorageValue(cid, v)  <= 0 then
        doPlayerSendCancel(cid, "Você não tem acesso a essa área.")
        return doTeleportThing(cid, fromPosition)
    end
end
end

 

 

Em movements.xml, insira a tag: <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="checkStor.lua"/>

 

3. Apagar storages

 

Em actions/scripts:

 

cleanStor.lua

 

Spoiler

local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão apagados
function onUse(cid, item, fromPosition, itemEx, toPosition)
for _, v in ipairs(storages) do
    setPlayerStorageValue(cid, v, -1)
end
end

 

 

Em actions.xml, insira a tag: <action itemid="ID_DO_ITEM" script="cleanStor.lua" />

 

Não testei, qualquer erro, diz aí.

 

 

Contato:

 

Link para o post
Compartilhar em outros sites

@Dwarfer

 

O 3 script, ele não da erro, mas não funciona, quando clico no item não acontece nada e também não some.

Link para o post
Compartilhar em outros sites
18 minutos atrás, JcA disse:

@Dwarfer

 

O 3 script, ele não da erro, mas não funciona, quando clico no item não acontece nada e também não some.

 

O 3 script fez exatamente o que você pediu, amigo: remover os storages. 

 

23 horas atrás, JcA disse:

Uma action que eu possa colocar em um item, que remove 5 storage do player.

 

Você tem que explicar melhor o que quer que aconteça. Isso facilita para todos. Tinha que falar que queria que o item fosse removido também. Enfim: 

 

local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão apagados
function onUse(cid, item, fromPosition, itemEx, toPosition)
for _, v in ipairs(storages) do
    setPlayerStorageValue(cid, v, -1)
end
doRemoveItem(item.uid, 1)
end

 

Contato:

 

Link para o post
Compartilhar em outros sites
34 minutos atrás, Dwarfer disse:

 

O 3 script fez exatamente o que você pediu, amigo: remover os storages. 

 

 

Você tem que explicar melhor o que quer que aconteça. Isso facilita para todos. Tinha que falar que queria que o item fosse removido também. Enfim: 

 


local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão apagados
function onUse(cid, item, fromPosition, itemEx, toPosition)
for _, v in ipairs(storages) do
    setPlayerStorageValue(cid, v, -1)
end
doRemoveItem(item.uid, 1)
end

 

 

Obrigado, não foi por mal, eu esqueci ;z

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo