Postado Junho 10, 2017 7 anos É o seguinte, vou tentar explicar de uma forma mais simples, talvez assim alguém entende e consiga esclarecer a duvida. Segue a imagem em anexo, e a dúvida e o seguinte: Como eu faço para o player escolher apenas 1 item desses, e impossibilitá-lo de escolher os demais? Inicialmente eu coloquei uma mesma actionid para ambos, e com uniquei diferente. Só que dessa maneira, o player consegue pegar os 5 itens. Então eu tentei deixar a mesma actionid, e, o mesmo uniqueid, funcionou, pode pegar apenas 1, porém aparece diversos "duplicate id" no distro. Tem outra maneira de fazer quest assim?
Postado Junho 10, 2017 7 anos Solução precisa fazer um script de action assim: em actions.xml vc coloca <action actionid="9995" script="nomedoarquivo.lua" /> <action actionid="9996" script="nomedoarquivo.lua" /> <action actionid="9997" script="nomedoarquivo.lua" /> <action actionid="9998" script="nomedoarquivo.lua" /> <action actionid="9999" script="nomedoarquivo.lua" /> obs.: as 5 tags usam o mesmo arquivo. agora no arquivo .lua vc coloca isso: Spoiler local stor = getPlayerStorageValue(cid, 100) function onUse(cid, item, frompos, item2, topos) if item.aid == 9995 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7415,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9996 then -- esse é pra paladin pq ta dando arco e flecha if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7364,1) -- item que vai dar ao player doPlayerAddItem(cid,8851,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9997 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7405,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9998 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,8924,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9999 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,2433,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end return true end Nesse script ta configurado para 5 baús, para remover um é só vc remover isso: if item.aid == XXXX then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,XXXX,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end e para adicionar é o mesmo esquema. No RME vc adiciona as actionids referentes ao script nos baús GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Julho 6, 2017 7 anos Em 10/06/2017 ás 16:23, Sekk disse: precisa fazer um script de action assim: em actions.xml vc coloca <action actionid="9995" script="nomedoarquivo.lua" /> <action actionid="9996" script="nomedoarquivo.lua" /> <action actionid="9997" script="nomedoarquivo.lua" /> <action actionid="9998" script="nomedoarquivo.lua" /> <action actionid="9999" script="nomedoarquivo.lua" /> obs.: as 5 tags usam o mesmo arquivo. agora no arquivo .lua vc coloca isso: Ocultar conteúdo local stor = getPlayerStorageValue(cid, 100) function onUse(cid, item, frompos, item2, topos) if item.aid == 9995 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7415,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9996 then -- esse é pra paladin pq ta dando arco e flecha if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7364,1) -- item que vai dar ao player doPlayerAddItem(cid,8851,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9997 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,7405,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9998 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,8924,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end if item.aid == 9999 then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,2433,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end return true end Nesse script ta configurado para 5 baús, para remover um é só vc remover isso: if item.aid == XXXX then if stor <= 0 then doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!") doPlayerAddItem(cid,XXXX,1) -- item que vai dar ao player setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.") end end e para adicionar é o mesmo esquema. No RME vc adiciona as actionids referentes ao script nos baús Como eu sei se o Script funfa no meu ot, o meu é tfs 1.2
Postado Julho 7, 2017 7 anos 5 horas atrás, kuasenada disse: Como eu sei se o Script funfa no meu ot, o meu é tfs 1.2 Pro tfs 1.2 precisa fazer umas adaptações, não sou familiarizado com tal versão então vou ter que dar uma olhada na net antes pra editar, a não ser que alguém faça isso ja, ok? Me desculpe. GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Julho 7, 2017 7 anos Em 10/06/2017 ás 15:57, JcA disse: É o seguinte, vou tentar explicar de uma forma mais simples, talvez assim alguém entende e consiga esclarecer a duvida. Segue a imagem em anexo, e a dúvida e o seguinte: Como eu faço para o player escolher apenas 1 item desses, e impossibilitá-lo de escolher os demais? Inicialmente eu coloquei uma mesma actionid para ambos, e com uniquei diferente. Só que dessa maneira, o player consegue pegar os 5 itens. Então eu tentei deixar a mesma actionid, e, o mesmo uniqueid, funcionou, pode pegar apenas 1, porém aparece diversos "duplicate id" no distro. Tem outra maneira de fazer quest assim? Vc só precisa colocar a quest pra setar e usar o mesmo storage pra verificar se fez ou n a quest... Simples assim
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.