Postado Setembro 24, 2017 7 anos Alguém poderia me ajudar com um script de entrega de donate? Um script como o do servidor wodbo wars, q te entrega os pontos no meu caso o id do item é: 6527 ele entregar para um baú mesmo que o player esteja offline. Vejam o print para entender melhor. Obg desde já. http://prntscr.com/gp3d37
Postado Setembro 24, 2017 7 anos Simples, basta criar uma talk de force storage para setar o valor donate que o player tem a receber, e no bau uma action que checa se o player tem a storage, se tiver entrega os pontos. Qual o tfs usado? Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Setembro 24, 2017 7 anos Autor 35 minutos atrás, luangop disse: Simples, basta criar uma talk de force storage para setar o valor donate que o player tem a receber, e no bau uma action que checa se o player tem a storage, se tiver entrega os pontos. Qual o tfs usado? tfs 0.4 , tibia 8.6 base dbo rox v2
Postado Setembro 27, 2017 7 anos Solução data/talkactions talkactions.xml <talkaction words="/entregar" log="yes" access="6" script="entregar.lua"/> data/talkactions/scripts entregar.lua Spoiler function onSay(cid, words, param, channel) local sto = 8445610 -- STORAGE USADO PELO SISTEMA local pontos = 2160 -- ID DOS PONTOS QUE O PLAYER VAI RECEBER local t = string.explode(param, ",") local effect = 506 function forceSetStorage(name, key, value) if not tostring(name) or not tonumber(key) then return nil end local p = getPlayerByName(name) if p then setPlayerStorageValue(p, key, value) else local have = db.storeQuery("SELECT `key` FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." and `key` = ".. key) if have then local atual = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id`= ".. getPlayerGUIDByName(name) .." and `key` = ".. key ..";") local temagr = atual:getDataString("value") db.executeQuery("UPDATE `player_storage` SET `value` = '".. temagr + value .."' WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key) else local pid = getPlayerGUIDByName(name) db.executeQuery("INSERT INTO `player_storage` (`player_id` ,`key` ,`value`) VALUES ('".. pid .."', '".. key .."', '".. value .."');") end end return true end if param == "" or not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite /entregar NICK, QUANTIA DE ".. getItemNameById(pontos) .."") end local player = getPlayerByNameWildcard(tostring(t[1])) local pos = getCreaturePosition(player) local quantia = tonumber(t[2]) local file = io.open('data/logs/entregar-log.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'\n") file:close() if not isPlayer(player) then forceSetStorage(t[1], sto, quantia) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'") return true end local atual = getPlayerStorageValue(cid, sto) if atual <= 0 then tem = 0 else tem = atual end setPlayerStorageValue(player, sto, quantia + tem) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te entregou ".. quantia .." ".. getItemNameById(pontos) .."'s!\nVa ate o bau para receber.") doSendMagicEffect(pos, effect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'") return true end data/actions actions.xml <action actionid="65470" event="script" value="BauDonate.lua"/> *actionid="65470" <~~ Action do bau no map-editor. data/actions/scripts BauDonate.lua Spoiler function onUse(cid, item, frompos, item2, topos) local sto = 8445610 -- STORAGE USADO PELO SISTEMA local pontos = 2160 -- ID DOS PONTOS QUE O PLAYER VAI RECEBER local delaySto = 8445611 -- STORAGE USADO PARA DAR DELAY NO BAU local status = getPlayerStorageValue(cid, sto) local statusDelay = getPlayerStorageValue(cid, delaySto) local delay = os.time() + 30 -- TEMPO DE DELAY PARA PODER ABRIR O BAU NOVAMENTE E EVITAR BUG if statusDelay <= os.time() then if status >= 1 then doPlayerAddItem(cid, pontos, sto) setPlayerStorageValue(cid, sto, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce recebeu ".. sto .." ".. getItemNameById(pontos) .."'s!") local file = io.open('data/logs/entregue-log.txt','a') doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. sto .." ".. getItemNameById(pontos) .." recebido por '".. getCreatureName(cid) .."'") file:close() setPlayerStorageValue(cid, delaySto, delay) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao tem ".. getItemNameById(pontos) .."'s para receber! Se fez alguma doacao, espere pela confirmacao do ADM.") setPlayerStorageValue(cid, delaySto, delay) return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere ".. statusDelay - os.time() .." segundos para tentar abrir o bau novamente!") return true end end Observações: O comando que criei pra vc armazena um log em data/logs com nome de entregar-log.txt com todos os detalhes dos pontos entregues. A action do bau armazena um log em data/logs com nome de entregue-log.txt com todos os detalhes de quando alguem recebe os pontos no bau. Qualquer dúvida e só avisar, mas como já deve ter percebido eu demoro um pouco a responder rsrs. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Setembro 27, 2017 7 anos 13 horas atrás, luangop disse: data/talkactions talkactions.xml <talkaction words="/entregar" log="yes" access="6" script="entregar.lua"/> data/talkactions/scripts entregar.lua Ocultar conteúdo function onSay(cid, words, param, channel) local sto = 8445610 -- STORAGE USADO PELO SISTEMA local pontos = 2160 -- ID DOS PONTOS QUE O PLAYER VAI RECEBER local t = string.explode(param, ",") local effect = 506 function forceSetStorage(name, key, value) if not tostring(name) or not tonumber(key) then return nil end local p = getPlayerByName(name) if p then setPlayerStorageValue(p, key, value) else local have = db.storeQuery("SELECT `key` FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." and `key` = ".. key) if have then local atual = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id`= ".. getPlayerGUIDByName(name) .." and `key` = ".. key ..";") local temagr = atual:getDataString("value") db.executeQuery("UPDATE `player_storage` SET `value` = '".. temagr + value .."' WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key) else local pid = getPlayerGUIDByName(name) db.executeQuery("INSERT INTO `player_storage` (`player_id` ,`key` ,`value`) VALUES ('".. pid .."', '".. key .."', '".. value .."');") end end return true end if param == "" or not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite /entregar NICK, QUANTIA DE ".. getItemNameById(pontos) .."") end local player = getPlayerByNameWildcard(tostring(t[1])) local pos = getCreaturePosition(player) local quantia = tonumber(t[2]) local file = io.open('data/logs/entregar-log.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'\n") file:close() if not isPlayer(player) then forceSetStorage(t[1], sto, quantia) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'") return true end local atual = getPlayerStorageValue(cid, sto) if atual <= 0 then tem = 0 else tem = atual end setPlayerStorageValue(player, sto, quantia + tem) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te entregou ".. quantia .." ".. getItemNameById(pontos) .."'s!\nVa ate o bau para receber.") doSendMagicEffect(pos, effect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. quantia .." ".. getItemNameById(pontos) .." entregues para '".. t[1] .."'") return true end data/actions actions.xml <action actionid="65470" event="script" value="BauDonate.lua"/> *actionid="65470" <~~ Action do bau no map-editor. data/actions/scripts BauDonate.lua Ocultar conteúdo function onUse(cid, item, frompos, item2, topos) local sto = 8445610 -- STORAGE USADO PELO SISTEMA local pontos = 2160 -- ID DOS PONTOS QUE O PLAYER VAI RECEBER local delaySto = 8445611 -- STORAGE USADO PARA DAR DELAY NO BAU local status = getPlayerStorageValue(cid, sto) local statusDelay = getPlayerStorageValue(cid, delaySto) local delay = os.time() + 30 -- TEMPO DE DELAY PARA PODER ABRIR O BAU NOVAMENTE E EVITAR BUG if statusDelay <= os.time() then if status >= 1 then doPlayerAddItem(cid, pontos, sto) setPlayerStorageValue(cid, sto, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce recebeu ".. sto .." ".. getItemNameById(pontos) .."'s!") local file = io.open('data/logs/entregue-log.txt','a') doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. sto .." ".. getItemNameById(pontos) .." recebido por '".. getCreatureName(cid) .."'") file:close() setPlayerStorageValue(cid, delaySto, delay) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao tem ".. getItemNameById(pontos) .."'s para receber! Se fez alguma doacao, espere pela confirmacao do ADM.") setPlayerStorageValue(cid, delaySto, delay) return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere ".. statusDelay - os.time() .." segundos para tentar abrir o bau novamente!") return true end end Observações: O comando que criei pra vc armazena um log em data/logs com nome de entregar-log.txt com todos os detalhes dos pontos entregues. A action do bau armazena um log em data/logs com nome de entregue-log.txt com todos os detalhes de quando alguem recebe os pontos no bau. Qualquer dúvida e só avisar, mas como já deve ter percebido eu demoro um pouco a responder rsrs. Tem como colocar para ficar soltando effect xxx em cima do bau ? Bom to com Problema Quando Uso /Entregar Aparece esse erro na distro http://prntscr.com/gqg75d Desde cedo a mãe da gente fala assim: “Filho, por você jogar Tibia, você tem que ser duas vezes melhor.” Aí passado alguns anos eu pensei: Como fazer 2 vezes melhor, se você tá pelo menos 100 vezes atrasado pelos Nubs, pela história, pelos Items, pelas Guilds, pelos Reds… Por tudo que aconteceu? Duas vezes melhor como ? Ou melhora ou ser o melhor ou o pior de uma vez. E sempre foi assim. Você vai escolher o que tiver mais perto de você, o que tiver dentro da sua realidade. Você vai ser duas vezes melhor como? Quem inventou isso aí? Quem foi o pilantra que inventou isso aí ? Acorda pra vida rapaz. YanLoco Projetos: https://www.facebook.com/Dbo-Here-524519644549602/ 70%
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.