Postado Julho 26, 2015 9 anos function onSay(cid, words, param, channel) local letter_id = 2597 local config = { only_one = false, -- pode usar só uma vez, false se puder mais de uma, é uma defesa contra spam. one_per_time = false, -- caso only_one seja falso, você pode configurar aqui se terá exhaust, true para sim, false para não. time = 10, -- tempo em minutos para esperar. exhaust_error = "Você precisa esperar ".. math.ceil((getPlayerStorageValue(cid, "letter") - os.time())/3600) .." horas para usar o comando novamente.", msg_error = "Você só pode usar uma vez!", -- caso only_one seja true. msg_inside = "O que você acha\n do nosso sistema de double XP? \n\n use !sugest send para enviar\n~~==============~~\n Resposta: ", -- messagem dentro da carta. msg_sent = "Obrigado por opinar! , caso a opinião seja séria, você será recompensado.", letter_desc = "Opinião do player: ".. getCreatureName(cid) .." enviada às: " .. os.date("%d %B %Y %X") .. ".", letter_request = getCreatureName(cid) .. " escreva sua opinião e use !sugest send , para envia-la", letter_count_msg = "Você precisa ter 1 ".. getItemNameById(letter_id) .." no seu inventário para enviar a sugestão.", houseGod_position = {x = 91, y = 121, z = 7}, -- para onde enviará a carta } if config.only_one then if getPlayerStorageValue(cid, "letter") ~= -1 then return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, config.msg_error) and false end end if not config.only_one and config.one_per_time and param ~= "send" then if getPlayerStorageValue(cid, "letter") - os.time() > 0 then doPlayerSendTextMessage(cid,26, config.exhaust_error) doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return true else setPlayerStorageValue(cid, "letter", os.time() + (60*config.time)) end end if param == "send" then if getPlayerItemCount(cid, letter_id) ~= 1 then return doPlayerSendTextMessage(cid,21, config.letter_count_msg) and false end if getItemAttribute(tonumber( getPlayerGUID(cid) + 1000), "text") == config.msg_inside then doPlayerSendTextMessage(cid,26, "Por favor, escreva algo.") -- caso tente enviar carta sem escrever. doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return false end doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE) doPlayerSendTextMessage(cid, 21, config.msg_sent) local player_opinion = getItemAttribute(tonumber( getPlayerGUID(cid) + 1000), "text") local letter = doCreateItem( letter_id, 1, config.houseGod_position) doItemSetAttribute(letter, "text", player_opinion) doItemSetAttribute(letter, "description", config.letter_desc) doPlayerRemoveItem(cid, letter_id, 1) return true end setPlayerStorageValue(cid, "letter", getPlayerStorageValue(cid, "letter") + 1) local letter = doPlayerAddItem(cid, letter_id) doItemSetAttribute(letter, "text", config.msg_inside) doItemSetAttribute(letter, "uid", tonumber( getPlayerGUID(cid) + 1000)) doPlayerSendTextMessage(cid,21,config.letter_request ) return true end <talkaction words="/sugest;!sugest" event="script" value="arquivo.lua"/> Fiz o tópico na pressa, ainda está em versão beta, porém, vai melhorar assim que eu tiver um Pc para editar melhor. Possíveis erros: se tiver mais de uma carta do comando, ele talvez bugue. (Coisa que eu vou consertar) Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Julho 28, 2015 9 anos Autor Qualquer erro por favor, reportar... Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Julho 28, 2015 9 anos Cara, uma ótima ideia, gostei bastante! Só umas observações: • Na verificação se pode usar mais de uma vez, já poderia fazer a verificação da global storage junto ... • Caso o parâmetro da talk seja "send", é para realizar o que esta no if e depois teria o return true, se você colocar um ELSE economizaria linhas (eu acho) • O que seria essa posição x = 157, y = 387, z = 5 ? A casa do GOD? rsrsrs. Apenas essas dúvidas, de resto esta ótimo STYLLER OT 2022
Postado Julho 28, 2015 9 anos Autor Cara, uma ótima ideia, gostei bastante! Só umas observações: • Na verificação se pode usar mais de uma vez, já poderia fazer a verificação da global storage junto ... • Caso o parâmetro da talk seja "send", é para realizar o que esta no if e o que esta abaixo ou teria que ter um ELSE? • O que seria essa posição x = 157, y = 387, z = 5 ? A casa do GOD? rsrsrs. Apenas essas dúvida, de resto esta ótimo Então, esse script eu fiz muito rápido, pois eu tava saindo do computador apressado. Por enquanto, sim é para ser a casa do God, porém eu vou colocar para mandar para o inventário futuramente, caso tenha espaço, se não tiver, vou ter que colocar um local padrão para ela cair... ...Nesse caso vou ter que verificar se o god está online, para usar uma função ou query. Porém o ideal é Puxar para um POO, e deixar duas opções. O send é só para dentro do if, por isso coloquei o return. Vou ver sobre o storage. Tudo issoc eu vou demorar um pouco, pois estou pelo celular. Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Julho 28, 2015 9 anos local config = { only_one = false, -- pode usar só uma vez, false se puder mais de uma, é uma defesa contra spam. msg_error = "Você só pode usar uma vez!", -- caso only_one seja true. msg_inside = "O que você acha\n do nosso sistema de double XP? \n\n use !sugest send para enviar\n~~==============~~\n Resposta: \n~~==============~~", -- messagem dentro da carta. msg_sent = "Obrigado por opinar! , caso a opinião seja séria, você será recompensado.", letter_desc = "Opinião do player: ".. getCreatureName(cid) .." enviada às: " .. os.date("%d %B %Y %X") .. ".", houseGod_position = {x = 157, y = 387, z = 5}, } function onSay(cid, words, param, channel) if config.only_one and getPlayerStorageValue(cid, "letter") > 0 then return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, config.msg_error) and false end if param == "send" then doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE) doPlayerSendTextMessage(cid, 21, config.msg_sent) local player_opinion = getItemAttribute(38383, "text") local letter = doCreateItem(2597, 1, config.houseGod_position) doItemSetAttribute(letter, "text", player_opinion) doItemSetAttribute(letter, "description", config.letter_desc) else setPlayerStorageValue(cid, "letter", 1) local letter = doPlayerAddItem(cid, 2597) doItemSetAttribute(letter, "text", config.msg_inside) doItemSetAttribute(letter, "uid", 38383) end return true end STYLLER OT 2022
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.