gabrielbsales 174 Postado Maio 19, 2015 Share Postado Maio 19, 2015 (editado) Bom, estava sem o que fazer, e fiz esse simples script de "pergunta premiada". Como funciona? Um membro da staff faz uma pergunta com um comando, e então, o primeiro player a responder corretamente, recebe o prêmio definido. Imagens: !perguntar Quem fez esse script?:featzen:::2160:::10 !responder featzen Bom, vamos ao que interessa. 1º - Na pasta data/talkactions/script/, crie um arquivo chamado question.lua, e nele coloque: local prize, question, answer, globalSto, t, sto = {}, nil, nil, 11789, {}, nil local model = "$question\nPrêmio: $itemcountx $itemname\nUse !responder [resposta]" function checkAsks() local sto = getGlobalStorageValue(globalSto) and getGlobalStorageValue(globalSto) or "nothing" local haveAsk = (type(sto) == "string" and sto ~= "nothing") if haveAsk then local t = string.explode(sto, ":::") local question = t[1] local answer = t[2] local prizeItem = t[3] local prizeCount = t[4] local str = "" str = string.gsub(model, "$question", question) str = string.gsub(str, "$itemcount", prizeCount) str = string.gsub(str, "$itemname", (getItemInfo(prizeItem).name)) doBroadcastMessage(str) addEvent(checkAsks, 1000 * 60) end end function onSay(cid, words, param, channel) sto = getGlobalStorageValue(globalSto) and getGlobalStorageValue(globalSto) or "nothing" if words == "!perguntar" then if not param then doPlayerSendTextMessage(cid, 20, "Parâmetro errado.") return true end t = string.explode(param, ":::") if #t ~= 4 then doPlayerSendTextMessage(cid, 20, "Certifique-se que o parâmetro está nesse modelo: '!perguntar Quanto e 1+1:::2:::2160:::1'.") return true end question = t[1] answer = t[2] prize.i = t[3] prize.c = t[4] if setGlobalStorageValue(globalSto, question .. ":::".. answer .. ":::".. (prize.i) .. ":::" .. (prize.c)) then doPlayerSendTextMessage(cid, 20, "Questão ativa.") checkAsks() end elseif words == "!responder" then if (type(sto) == "number" or sto == "nothing") then doPlayerSendTextMessage(cid, 22, "Nenhuma questão agora.") return true end t = string.explode(sto, ":::") answer = t[2] prize.i = t[3] prize.c = t[4] if string.lower(param) == string.lower(answer) then doPlayerSendTextMessage(cid, 20, "Resposta correta!") doPlayerAddItem(cid, prize.i, prize.c) doBroadcastMessage(getCreatureName(cid) .. " foi o primeiro a responder a questão corretamente e recebeu ".. (prize.c) .. "x "..(getItemInfo(prize.i).name) .. "!") doBroadcastMessage("A resposta era: "..answer..".") doSendMagicEffect(getThingPos(cid), 14) setGlobalStorageValue(globalSto, "nothing") else doPlayerSendTextMessage(cid, 20, "Resposta errada!") end end return true end 2º - No arquivo data/talkactions/talkactions.xml, adicione as seguintes tags: <talkaction words="!perguntar" access="4" event="script" value="question.lua"/> <talkaction words="!responder" event="script" value="question.lua"/> Lembrando: Para fazer uma pergunta, use: !perguntar [pergunta]:[resposta]:[id do premio]:[quantidade do premio] E para responder: !responder [resposta] Espero que seja útil. Créditos: Featzen Editado Junho 13, 2015 por Featzen Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/ Compartilhar em outros sites More sharing options...
Luga03 333 Postado Maio 20, 2015 Share Postado Maio 20, 2015 Gostei! se funcionar vou fazer pro meu OT! Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/#findComment-1652130 Compartilhar em outros sites More sharing options...
dbs86 1 Postado Maio 20, 2015 Share Postado Maio 20, 2015 looks cool, nice.. always good stuff from you keep it up Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/#findComment-1652168 Compartilhar em outros sites More sharing options...
gabrielbsales 174 Postado Maio 20, 2015 Autor Share Postado Maio 20, 2015 looks cool, nice.. always good stuff from you keep it up Thanks. I always try to create something to those in need. (it is that someone needs it) HAEUHE Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/#findComment-1652169 Compartilhar em outros sites More sharing options...
Furabio 258 Postado Maio 21, 2015 Share Postado Maio 21, 2015 (editado) Gostei do script e da lógica que tu usou pra fazer ele também, creio que o uso de "," no lugar ":::" seria mais "light", seria uma boa ele pras versões tfs 1.x + também. abrçs Editado Maio 21, 2015 por ScreaM Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/#findComment-1652183 Compartilhar em outros sites More sharing options...
gabrielbsales 174 Postado Maio 21, 2015 Autor Share Postado Maio 21, 2015 (editado) Gostei do script e da lógica que tu usou pra fazer ele também, creio que o uso de "," no lugar ":::" seria mais "light", seria uma boa ele pras versões tfs 1.x + também. abrçs Valeu. Eu usei ":::" porque assim posso usar as "," nas perguntas(e sou meio exagerado, poderiam ser só "::"). Quanto as versões do tfs 1.x, eu teria que baixar haha, depois vejo isso. Editado Maio 21, 2015 por Featzen Link para o comentário https://xtibia.com/forum/topic/234007-pergunta-premiada/#findComment-1652215 Compartilhar em outros sites More sharing options...
Posts Recomendados