Postado Agosto 27, 2021 3 anos Em Data/Actions/Scripts, crie um arquivo.lua e coloque dentro: -- Developed by: Denker function OnUse(cid,item,fromPosition,item2,toPosition) Storage = -- Valor da storage que irá ser setada no player ItemID = -- Id do item Name = -- Nome do item Quantidade = -- Quantidade do item Level = -- Level requerido para pegar o item if getPlayerLevel(cid) >= Level and getPlayerStorageValue (cid,Storage)== -1 then doPlayerSendTextMessage(cid,25,"You found"..Quantidade....Name.."!") -- Mensagem que irá aparecer quando o player coletar o item doPlayerAddItem(cid, ItemID, Quantidade) setPlayerStorageValue (cid,Storage,1) elseif getPlayerLevel(cid) <= Level then doPlayerSendTextMessage(cid,25,"You need to level"..Level.."to collect this item") -- Mensagem caso o player não tenha o level necessário para pegar o item elseif getPlayerStorageValue(cid, Storage) >= 1 then doPlayerSendTextMessage(cid,25,"You have already collected this item") -- Mensagem caso o player já tenha pego o item end return true end Em Data/Actions/Actions.xml, coloque dentro: <action actionid="ID" event="script" value="Arquivo.lua"/>
Postado Agosto 28, 2021 3 anos @Denker Parabéns pelo script, mas existem pontos que dá pra melhorar nele, segue abaixo! function OnUse(cid,item,fromPosition,item2,toPosition) local cfg = { -- crie uma tabela para configurar, assim fica mais "limpo" storageQuest = 12, -- nome de variavel não começa com maiúscula earnedItem = 12, count = 11, levelMin = 20, colorMsg = "Orange" } if ( getPlayerStorageValue(cid, cfg.storageQuest) > 0 ) then doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You have already completed this quest!.") return true end if ( getPlayerLevel(cid) < cfg.levelMin ) then -- validação caso o player não tenha level minimo doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You don't have required level(".. cfg.levelMin ..") to pass!.") return true end doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You found "..getItemNameById(cfg.earnedItem).. " ".. cfg.count .."x!") doPlayerAddItem(cid, cfg.earnedItem, cfg.count) setPlayerStorageValue (cid, cfg.storageQuest, 1) return true end dessa forma você tem um código mais legível, espero que entenda isso, e parabéns pela iniciativa de ajudar o fórum! Aquele abraço, REP+
Postado Agosto 28, 2021 3 anos Autor Em 28/08/2021 em 01:41, Sun disse: @Denker Parabéns pelo script, mas existem pontos que dá pra melhorar nele, segue abaixo! function OnUse(cid,item,fromPosition,item2,toPosition) local cfg = { -- crie uma tabela para configurar, assim fica mais "limpo" storageQuest = 12, -- nome de variavel não começa com maiúscula earnedItem = 12, count = 11, levelMin = 20, colorMsg = "Orange" } if ( getPlayerStorageValue(cid, cfg.storageQuest) > 0 ) then doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You have already completed this quest!.") return true end if ( getPlayerLevel(cid) < cfg.levelMin ) then -- validação caso o player não tenha level minimo doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You don't have required level(".. cfg.levelMin ..") to pass!.") return true end doPlayerSendTextMessage(cid, MESSAGE_TYPES[cfg.colorMsg], "You found "..getItemNameById(cfg.earnedItem).. " ".. cfg.count .."x!") doPlayerAddItem(cid, cfg.earnedItem, cfg.count) setPlayerStorageValue (cid, cfg.storageQuest, 1) return true end dessa forma você tem um código mais legível, espero que entenda isso, e parabéns pela iniciativa de ajudar o fórum! Aquele abraço, REP+ Obrigado pela informação
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.