Alemaooxd 8 Postado Março 2, 2013 Share Postado Março 2, 2013 (editado) Com esse sistema o GOD poderá leiloar um item e assim da uma otima diversão para os players do seu server! Usando o comando /leilao id do item, quantidade, lance minimo ex: /leilao 2494 "demon armor", 1, 30000 ! Passo a Passo: 1º Vá em Data/talkactions/scripts e crie um arquivo leilao.lua e cole isso dentro dele: -- By: Alemaooxd function onSay(cid, words, param) config = { acess = 5, time = 5, storage = {25601,25602,650213} } function getWinnerLeilao() local w = tostring(getGlobalStorageValue(config.storage[1])):gsub(':', ''):explode(',') if not getPlayerByNameWildcard(w[4]) then local item = doCreateItemEx(w[1]-1, w[2]) local x = doItemSetAttribute(item, "description", "Item comprado em leilão por "..w[3].." gps.") doPlayerSendMailByName(w[4], item) else local x = doPlayerAddItem(getPlayerByNameWildcard(w[4]), w[1], w[2]) doItemSetAttribute(x, "description", "Item comprado em leilão por "..w[3].." gps.") end doBroadcastMessage("O item ["..getItemNameById(w[1]).." : "..w[2].."] Foi vendido para o jogador "..w[4].." por "..w[3].." gps!") setGlobalStorageValue(config.storage[1],-1) setGlobalStorageValue(config.storage[2],-1) for _, pid in pairs(getPlayersOnline()) do setPlayerStorageValue(pid, config.storage[3], -1) end return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = "..config.storage[3]) end if words == "/leilao" then if getPlayerAccess(cid) < config.acess then doPlayerSendTextMessage(cid, 28, "Você não pode executar essa ação.") return true end local t = string.explode(param, ",") if not tonumber(getGlobalStorageValue(config.storage[1])) then doPlayerSendTextMessage(cid, 27, "Já há um leilão ativo no momento.") return true elseif not tonumber(t[1]) or not tonumber(t[2]) or not tonumber(t[3]) then doPlayerSendTextMessage(cid, 28, "Faltou parametro.")return true elseif not isItemMovable(t[1]) then doPlayerSendTextMessage(cid, 28, "Você não pode adicionar esse item no leilão.")return true end setGlobalStorageValue(config.storage[1], ":"..t[1]..",:"..(isItemStackable(t[1]) and t[2] or 1)..",:"..t[3]..",:"..getCreatureName(cid)) setGlobalStorageValue(config.storage[2], os.time()+ config.time*60) doBroadcastMessage("[Leilão] O item ["..getItemNameById(t[1]).." : "..(isItemStackable(t[1]) and t[2] or 1).."] Está em leilão até "..os.date("%X ", getGlobalStorageValue(config.storage[2])).."\nLance Minimo: "..t[3].." gps.") addEvent(getWinnerLeilao, config.time*1000*60) elseif words == "!lance" then if tonumber(getGlobalStorageValue(config.storage[1])) then doPlayerSendTextMessage(cid, 27, "Não tem nenhum leilão ativo no momento.") return true end local s = tostring(getGlobalStorageValue(config.storage[1])):gsub(':', ''):explode(',') if param == "lista" then doShowTextDialog(cid,s[1], "Item: "..getItemNameById(s[1]).."\n\nQuantidade: "..s[2].."\n\nMaior lance atual: "..s[3].."\n\nJogador: "..s[4].."\n\nPrazo Final: "..os.date("%X ", getGlobalStorageValue(config.storage[2]))) return true elseif not tonumber(param) or tonumber(param) <= 0 or tonumber(param) > 9999999 then doPlayerSendTextMessage(cid, 28, "digite um número válido.") return true end local li = getPlayerStorageValue(cid, config.storage[3]) < 0 and 0 or getPlayerStorageValue(cid, config.storage[3]) local conta = (li + tonumber(param)) if conta <= tonumber(s[3]) then doPlayerSendTextMessage(cid, 28, "você tem que dar um lance maior que "..s[3].." gps") return true elseif not doPlayerRemoveMoney(cid, tonumber(param)) then doPlayerSendTextMessage(cid, 28, "você não tem gps suficientes para dar um lance") return true end setPlayerStorageValue(cid, config.storage[3], conta) setGlobalStorageValue(config.storage[1], ":"..s[1]..",:"..s[2]..",:"..conta..",:"..getCreatureName(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, agora você deu o maior lance de "..conta.." gps no item [Nome: "..getItemNameById(s[1]).."] [Count: "..s[2].."]") end return true end 2º Agora vá em Data/talkactions/talkactions.xml e adicione essa tag: <talkaction words="/leilao;!lance" script="leilao.lua"/> Test: God usou o comando /leilao 2494,1,30000 --------------------------------------------- O jogador Devil deu um lance 400000 gps, no caso maior lance ----------- Comando !lance lista --------------- Depois de "X" minutos quem der o maior lance leva o item. ---------- Item com sua descrição Créditos: Alemaooxd Skymagnum Vodkart OBS.: Pode ser que alguns itens dê debug quando você usar o comandos "!lance lista" para ver quem está comprando o item no exato momento... E mais uma coisa, lembrem-se que quando você vai dar um lance o dinheiro é descontado na mesma hora, para não acontecer de alguem arrematar o item e não ter o dinheiro para pagar, resumindo se você der um lance de 10k e outro player vier e der um lance maior, quando você for dar outro lance será descontado tudo denovo, ou seja, os primeiros 10k que você der de lance é dado como perdido! Espero que tenham entendido! Abraços Se te ajudei da um "Rep +" Não dói não Dr. Editado Março 2, 2013 por Alemaooxd Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/ Compartilhar em outros sites More sharing options...
BrunooMaciell 85 Postado Março 2, 2013 Share Postado Março 2, 2013 Este systema pega em poketibia - pda ?? Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1479665 Compartilhar em outros sites More sharing options...
Alemaooxd 8 Postado Março 2, 2013 Autor Share Postado Março 2, 2013 Este systema pega em poketibia - pda ?? Acredito que sim... afinal, é um sistema que não usa dados que não tenha em ambos clients! Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1479687 Compartilhar em outros sites More sharing options...
BrunooMaciell 85 Postado Março 2, 2013 Share Postado Março 2, 2013 Opa !! Rep+ ^^ Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1479772 Compartilhar em outros sites More sharing options...
victorgod 5 Postado Julho 23, 2013 Share Postado Julho 23, 2013 deu esse erro a hora que eu clico para add char ao leilao Invalid subtopic. Can't load page. Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1543068 Compartilhar em outros sites More sharing options...
henriqueberro 13 Postado Julho 25, 2013 Share Postado Julho 25, 2013 bom, mas dar um leilão com um valor maior que o anterior sem receber o dinheiro de volta é sacanagem, bem hardcore, hahaha, obrigado pelo script. Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1543780 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Julho 25, 2013 Share Postado Julho 25, 2013 Tópico fechado. Eu já postei esse sistema aqui no fórum. Link para o comentário https://xtibia.com/forum/topic/208917-sistema-de-leil%C3%A3o-100-funcional/#findComment-1543906 Compartilhar em outros sites More sharing options...
Posts Recomendados