Postado Junho 5, 2015 10 anos Fala ai galera do TK, hoje eu tenho um pedido que eu imagino que seja facil pros scripters de plantão, mas eu não sei fazer. Bom basicamente, como ja diz o titulo, é um script que compra uma montaria, eu ja tenho uma pasta com comandos !comprar sd (Por exemplo), ai o player ganha 2 bps de sd, nesse mesmo script eu queria colocar um por exemplo: !comprar montaria shadow draptor, alguem poderia me ajudar? Digamos ae, 1kk pela mount. Ta ai o script da SD por exemplo. if(param == "sd") then if getPlayerItemCount(cid, 9971) >= 10 then local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) doPlayerRemoveItem(cid, 9971, 10) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 4k de SD com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end Eu acho que deve ser alguma coisa tipo, doPlayerAddMount, mas sei la.
Postado Junho 5, 2015 10 anos Adicione isso antes do end que fecha a função do param, no caso o ultimo end da parte que você postou: elseif(param == "shadow draptor") then if doPlayerRemoveMoney(cid, 1000000) then -- Preço. doPlayerAddMount(cid, 13) -- Mount ID. else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 1kk para comprar esta montaria.") end return true Ficando assim, caso queira trocar a parte toda: if(param == "sd") then if getPlayerItemCount(cid, 9971) >= 10 then local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) doPlayerRemoveItem(cid, 9971, 10) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 4k de SD com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end elseif(param == "shadow draptor") then if doPlayerRemoveMoney(cid, 1000000) then -- Preço. doPlayerAddMount(cid, 13) -- Mount ID. else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 1kk para comprar esta montaria.") end return true end ➥ Regras | Seções OTServ | Seções BOT
Postado Junho 5, 2015 10 anos Autor Adicione isso antes do end que fecha a função do param, no caso o ultimo end da parte que você postou: elseif(param == "shadow draptor") then if doPlayerRemoveMoney(cid, 1000000) then -- Preço. doPlayerAddMount(cid, 13) -- Mount ID. else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 1kk para comprar esta montaria.") end return true Ficando assim, caso queira trocar a parte toda: if(param == "sd") then if getPlayerItemCount(cid, 9971) >= 10 then local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) local bag = doPlayerAddItem(cid, 5926, 1) doAddContainerItem(bag, 2268, 2000) doPlayerRemoveItem(cid, 9971, 10) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 4k de SD com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end elseif(param == "shadow draptor") then if doPlayerRemoveMoney(cid, 1000000) then -- Preço. doPlayerAddMount(cid, 13) -- Mount ID. else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 1kk para comprar esta montaria.") end return true end Nao nao kk, tipo, é um comando a parte, eu coloquei o da SD de exemplo, de como eu quero que seja, entendeu? Tipo, um igual o da SD, só que apenas do Shadow.
Postado Junho 5, 2015 10 anos Solução "nesse mesmo script eu queria colocar um por exemplo:", por isso dei essa explicação '-'. local mounts = { ["shadow draptor"] = {price = 1000000, id = 13}, ["donkey"] = {price = 10000, id = 14} } function onSay(cid, words, param) local param = string.lower(param) local st = mounts[param] if not st then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A montaria ".. param .." não existe.") end if(param ~= st) then if doPlayerRemoveMoney(cid, st.price) then doPlayerAddMount(cid, st.id) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de ".. st.price .." para comprar a montaria ".. param ..".") end end return true end <talkaction words="!mount" event="script" value="nome_do_script.lua"/> Comando: !mount shadow draptor @Edit Dei uma editada no script, assim você pode configurar facilmente e adicionar outras montarias, caso queira. ➥ Regras | Seções OTServ | Seções BOT
Postado Junho 5, 2015 10 anos Autor "nesse mesmo script eu queria colocar um por exemplo:", por isso dei essa explicação '-'. local mounts = { ["shadow draptor"] = {price = 1000000, id = 13}, ["donkey"] = {price = 10000, id = 14} } function onSay(cid, words, param) local param = string.lower(param) local st = mounts[param] if not st then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A montaria ".. param .." não existe.") end if(param ~= st) then if doPlayerRemoveMoney(cid, st.price) then doPlayerAddMount(cid, st.id) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de ".. st.price .." para comprar a montaria ".. param ..".") end end return true end <talkaction words="!mount" event="script" value="nome_do_script.lua"/> Comando: !mount shadow draptor @Edit Dei uma editada no script, assim você pode configurar facilmente e adicionar outras montarias, caso queira. Valeu, consegui aqui ja
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.