Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal, estou usando uma base DxP poketibia e estou fazendo algumas quests e eu gostaria de um script para baú que verificasse se o player esta com a bag cheia e não completasse a quest! ou que enviasse os itens para o depot, pois atualmente com meu script se o player clica no baú com a bag cheia ele completa a quest e não ganha a recompensa.

 

Link para o post
Compartilhar em outros sites

testa assim

 

 function onUse(cid, item, frompos, item2, topos)
if item.uid == 60001 then
if getPlayerStorageValue(cid,60001) == -1 then
 

getContainerSize(uid) => 10 then -- 10 representa a quantidade de espaços necessarios
local bag = doPlayerAddItem(cid,12764,1) -- Mude para o ID da BP
doPlayerSendTextMessage(cid,25,"Voce completou a quest")
doAddContainerItem(bag,12634,1) -- ID dos itens dentro do bau
doAddContainerItem(bag,12664,1)
doAddContainerItem(bag,12683,1)
doAddContainerItem(bag,12697,1)
doAddContainerItem(bag,12698,1)
doAddContainerItem(bag,12716,1)
doAddContainerItem(bag,12757,1)
doAddContainerItem(bag,2672,100)
doAddContainerItem(bag,12775,100)
doAddContainerItem(bag,12776,100)
 
setPlayerStorageValue(cid,60001,1)
else
doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 10 Slots para essa quest")
end
return true
end
end

 

Link para o post
Compartilhar em outros sites
3 hours ago, Tio Rusher said:

testa assim

 



 function onUse(cid, item, frompos, item2, topos)
if item.uid == 60001 then
if getPlayerStorageValue(cid,60001) == -1 then
 

getContainerSize(uid) => 10 then -- 10 representa a quantidade de espaços necessarios
local bag = doPlayerAddItem(cid,12764,1) -- Mude para o ID da BP
doPlayerSendTextMessage(cid,25,"Voce completou a quest")
doAddContainerItem(bag,12634,1) -- ID dos itens dentro do bau
doAddContainerItem(bag,12664,1)
doAddContainerItem(bag,12683,1)
doAddContainerItem(bag,12697,1)
doAddContainerItem(bag,12698,1)
doAddContainerItem(bag,12716,1)
doAddContainerItem(bag,12757,1)
doAddContainerItem(bag,2672,100)
doAddContainerItem(bag,12775,100)
doAddContainerItem(bag,12776,100)
 
setPlayerStorageValue(cid,60001,1)
else
doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 10 Slots para essa quest")
end
return true
end
end

 

Estou tentando mesclar seu script com o meu que verifica o lvl do player e no final da tp para o CP e estou tendo esse erro:

 

Quote

[22/06/2021 13:43:58] >> Carregando scripts
[22/06/2021 13:43:59] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/pbquest.lua:10: unexpected symbol near '='
[22/06/2021 13:43:59] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/pbquest.lua)
[22/06/2021 13:43:59] data/actions/scripts/quests/pbquest.lua:10: unexpected symbol near '='

 

Quote

meu script ficou assim:

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

if item.uid == 2341 then

queststatus = getPlayerStorageValue(cid,1500)

if queststatus == -1 then
if getPlayerLevel(cid) >= 15 then
 
getContainerSize(uid) => 10 then -- 10 representa a quantidade de espaços necessarios
local bag = doPlayerAddItem(cid,1987,1) -- Mude para o ID da BP
doPlayerSendTextMessage(cid,25,"Voce completou a quest")
doAddContainerItem(bag,2394,10) -- ID dos itens dentro do bau
doAddContainerItem(bag,2391,5)
doAddContainerItem(bag,2393,2)
doAddContainerItem(bag,2392,1)
doTeleportThing(cid, {x= 1059, y= 903, z= 7})
setPlayerStorageValue(cid,1500,1)
else
doPlayerSendTextMessage(cid,22,"Você precisa ter ao menos level 15!")
end
else
doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 4 Slots para essa quest")
end
return true
end
end

 

Spoiler

 

Link para o post
Compartilhar em outros sites
  • Moderador
2 horas atrás, Hardtokill disse:

Estou tentando mesclar seu script com o meu que verifica o lvl do player e no final da tp para o CP e estou tendo esse erro:

 

 

  Mostrar conteúdo oculto

 

Faltou a verificação do container.

Spoiler
function onUse(ciditemfrompositem2topos)
 
    if item.uid == 2341 then
        queststatus = getPlayerStorageValue(cid,1500)
    
        if queststatus == -1 then
            if getPlayerLevel(cid) >= 15 then
     
            if getContainerSize(uid) => 10 then -- 10 representa a quantidade de espaços necessarios
                local bag = doPlayerAddItem(cid,1987,1-- Mude para o ID da BP
                doPlayerSendTextMessage(cid,25,"Voce completou a quest")
                doAddContainerItem(bag,2394,10-- ID dos itens dentro do bau
                doAddContainerItem(bag,2391,5)
                doAddContainerItem(bag,2393,2)
                doAddContainerItem(bag,2392,1)
                doTeleportThing(cid, {x= 1059, y= 903, z= 7})
                setPlayerStorageValue(cid,1500,1)
            else
            doPlayerSendTextMessage(cid,22,"Você precisa ter ao menos level 15!")
            end
            else
                doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 4 Slots para essa quest")
            end
    return true
    end
end

Não alterei nada a não ser a identação e 2 letras.

Link para o post
Compartilhar em outros sites
1 hour ago, So volto tarde said:

Faltou a verificação do container.

  Reveal hidden contents
function onUse(ciditemfrompositem2topos)
 
    if item.uid == 2341 then
        queststatus = getPlayerStorageValue(cid,1500)
    
        if queststatus == -1 then
            if getPlayerLevel(cid) >= 15 then
     
            if getContainerSize(uid) => 10 then -- 10 representa a quantidade de espaços necessarios
                local bag = doPlayerAddItem(cid,1987,1-- Mude para o ID da BP
                doPlayerSendTextMessage(cid,25,"Voce completou a quest")
                doAddContainerItem(bag,2394,10-- ID dos itens dentro do bau
                doAddContainerItem(bag,2391,5)
                doAddContainerItem(bag,2393,2)
                doAddContainerItem(bag,2392,1)
                doTeleportThing(cid, {x= 1059, y= 903, z= 7})
                setPlayerStorageValue(cid,1500,1)
            else
            doPlayerSendTextMessage(cid,22,"Você precisa ter ao menos level 15!")
            end
            else
                doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 4 Slots para essa quest")
            end
    return true
    end
end

Não alterei nada a não ser a identação e 2 letras.

acho que estamos no caminho certo, agora o erro é esse: 

Quote

[22/06/2021 18:13:26] >> Carregando scripts
[22/06/2021 18:13:26] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/pbquest.lua:9: 'then' expected near '='
[22/06/2021 18:13:26] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/pbquest.lua)
[22/06/2021 18:13:26] data/actions/scripts/quests/pbquest.lua:9: 'then' expected near '='

 

Link para o post
Compartilhar em outros sites
27 minutes ago, So volto tarde said:

Na linha 9, inverte os operadores, indo de "=>" para ">=".

deu um outro erro primeiro:

[22/06/2021 19:11:46] >> Carregando scripts
[22/06/2021 19:11:46] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/pbquest.lua:26: 'end' expected (to close 'function' at line 1) near '<eof>'
[22/06/2021 19:11:46] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/pbquest.lua)
[22/06/2021 19:11:46] data/actions/scripts/quests/pbquest.lua:26: 'end' expected (to close 'function' at line 1) near '<eof>'

 

eu imaginei que faltasse um "end" na linha 26 coloquei mais um "end" e agora ele inicia sem problemas porém quando clico no baú o erro no console é o seguinte:

 

[22/06/2021 19:19:26] [Error - Action Interface] 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:onUse
[22/06/2021 19:19:26] Description: 
[22/06/2021 19:19:26] (luaGetContainerSize) Container not found

[22/06/2021 19:19:26] [Error - Action Interface] 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:onUse
[22/06/2021 19:19:26] Description: 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:9: attempt to compare number with boolean
[22/06/2021 19:19:26] stack traceback:
[22/06/2021 19:19:26]     data/actions/scripts/quests/pbquest.lua:9: in function <data/actions/scripts/quests/pbquest.lua:1>

 

tentei colocar o id de uma pokebag normal e tentei colocar o id da bag principal mas o erro é o mesmo

Editado por Hardtokill (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador
1 hora atrás, Hardtokill disse:

deu um outro erro primeiro:

[22/06/2021 19:11:46] >> Carregando scripts
[22/06/2021 19:11:46] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/pbquest.lua:26: 'end' expected (to close 'function' at line 1) near '<eof>'
[22/06/2021 19:11:46] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/pbquest.lua)
[22/06/2021 19:11:46] data/actions/scripts/quests/pbquest.lua:26: 'end' expected (to close 'function' at line 1) near '<eof>'

 

eu imaginei que faltasse um "end" na linha 26 coloquei mais um "end" e agora ele inicia sem problemas porém quando clico no baú o erro no console é o seguinte:

 

[22/06/2021 19:19:26] [Error - Action Interface] 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:onUse
[22/06/2021 19:19:26] Description: 
[22/06/2021 19:19:26] (luaGetContainerSize) Container not found

[22/06/2021 19:19:26] [Error - Action Interface] 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:onUse
[22/06/2021 19:19:26] Description: 
[22/06/2021 19:19:26] data/actions/scripts/quests/pbquest.lua:9: attempt to compare number with boolean
[22/06/2021 19:19:26] stack traceback:
[22/06/2021 19:19:26]     data/actions/scripts/quests/pbquest.lua:9: in function <data/actions/scripts/quests/pbquest.lua:1>

 

tentei colocar o id de uma pokebag normal e tentei colocar o id da bag principal mas o erro é o mesmo

Bacana, vamos tentar o seguinte: 

Spoiler
function onUse(ciditemfrompositem2topos)
 
    if item.uid == 2341 then
        queststatus = getPlayerStorageValue(cid,1500)
    
        if queststatus == -1 then
            if getPlayerLevel(cid) >= 15 then
     
            if getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 10 then -- 10 representa a quantidade de espaços necessarios
                local bag = 1987 -- Mude para o ID da BP
                doPlayerSendTextMessage(cid,25,"Voce completou a quest")
                doAddContainerItem(bag,2394,10-- ID dos itens dentro do bau
                doPlayerAddItem(cid, 21111)
                doTeleportThing(cid, {x= 1059, y= 903, z= 7})
                setPlayerStorageValue(cid,1500,1)
            else
            doPlayerSendTextMessage(cid,22,"Você precisa ter ao menos level 15!")
            end
            else
                doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 4 Slots para essa quest")
            end
        end
    return true
    end
end

 

Link para o post
Compartilhar em outros sites

agora é o seguinte: se tiver com a bag cheia completa a quest de qualquer forma sem adicionar o premio. se tiver espaço na bag completa a quest e entrega o premio mas mesmo assim apresenta esse erro:

 

[22/06/2021 21:43:14] [Error - Action Interface] 
[22/06/2021 21:43:14] data/actions/scripts/quests/pbquest.lua:onUse
[22/06/2021 21:43:14] Description: 
[22/06/2021 21:43:14] (luaDoAddContainerItem) Container not found

 

outro detalhe o unico premio adicionado foi o 2111.

 doAddContainerItem(bag,2394,10-- ID dos itens dentro do bau
                doPlayerAddItem(cid, 21111)
Editado por Hardtokill (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador

Depois de dar uma pesquisada, não encontrei nada que verificasse os slots do container, poderíamos tentar com um for, mas, creio que com um script simples temos uma "solução" meia boca. Neste caso, o item vai cair no chão caso não contenha espaço na backpack.

Spoiler
function onUse(cid)
    if getPlayerStorageValue(cid, 99776== -1 then
        doPlayerAddItem(cid, 2160100-- ctrl c ctrl v para todos os itens
        doPlayerSendTextMessage(cid, 22"success_msg")
        setPlayerStorageValue(cid, 997761)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    else
        doPlayerSendTextMessage(cid, 21"error_msg")
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
    end
end 
 

 

 

 

 

 

Link para o post
Compartilhar em outros sites

Acho uma boa ideia cara, muito melhor que sumir o prêmio, outra idéia que um amigo deu, mas nao sei se é mais facil ou difícil seria de quando clicar no bau aparecer uma janela popup para avisar de ter espaço na bag

1 hour ago, So volto tarde said:

Depois de dar uma pesquisada, não encontrei nada que verificasse os slots do container, poderíamos tentar com um for, mas, creio que com um script simples temos uma "solução" meia boca. Neste caso, o item vai cair no chão caso não contenha espaço na backpack.

  Hide contents
function onUse(cid)
    if getPlayerStorageValue(cid, 99776== -1 then
        doPlayerAddItem(cid, 2160100-- ctrl c ctrl v para todos os itens
        doPlayerSendTextMessage(cid, 22"success_msg")
        setPlayerStorageValue(cid, 997761)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    else
        doPlayerSendTextMessage(cid, 21"error_msg")
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
    end
end 
 

 

 

 

 

 

nesse caso só adiciona um efeito legal quando completa a quest mas nao joga os itens no chão ;(

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

Acho uma boa ideia cara, muito melhor que sumir o prêmio, outra idéia que um amigo deu, mas nao sei se é mais facil ou difícil seria de quando clicar no bau aparecer uma janela popup para avisar de ter espaço na bag

nesse caso só adiciona um efeito legal quando completa a quest mas nao joga os itens no chão ;(

Caramba, que complicado, vou ver se já acharam uma solução para o seu problema na academia, lá só tem cara bom, com toda certeza alguém faz a boa.

Link para o post
Compartilhar em outros sites
  • Moderador
6 horas atrás, Hardtokill disse:

Ok, obrigado pela ajuda amigo aguardo novidades

Bom, o Thalles Vitor deu uma luz, mas, o retorno ainda era o mesmo. O seu projeto é opensource? Decidi procurar funções novas, creio que daria sim para fazer em lua porém eu sou incapaz de tal feito :/

Achei essa função aqui no fórum:

 

Com ela, nós podemos verificar se tem um slot livre na BP e, adicionar uma bp com todos os itens da quest ao player.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 3 weeks later...
Em 22/06/2021 em 21:22, So volto tarde disse:

Bacana, vamos tentar o seguinte: 

  Ocultar conteúdo
function onUse(ciditemfrompositem2topos)
 
    if item.uid == 2341 then
        queststatus = getPlayerStorageValue(cid,1500)
    
        if queststatus == -1 then
            if getPlayerLevel(cid) >= 15 then
     
            if getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 10 then -- 10 representa a quantidade de espaços necessarios
                local bag = 1987 -- Mude para o ID da BP
                doPlayerSendTextMessage(cid,25,"Voce completou a quest")
                doAddContainerItem(bag,2394,10-- ID dos itens dentro do bau
                doPlayerAddItem(cid, 21111)
                doTeleportThing(cid, {x= 1059, y= 903, z= 7})
                setPlayerStorageValue(cid,1500,1)
            else
            doPlayerSendTextMessage(cid,22,"Você precisa ter ao menos level 15!")
            end
            else
                doPlayerSendTextMessage(cid,25,"Voce ja pegou o item ou tem espaço insuficiente na sua mochila, são necessarios 4 Slots para essa quest")
            end
        end
    return true
    end
end

 

 

Só  dar um espaço entre (bag 2394,1)

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.


  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      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.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo