Gostei! se funcionar vou fazer pro meu OT!
- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- Pergunta premiada
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

looks cool, nice.. always good stuff from you
keep it up
info
Grupo: Visconde
Registrado: 26/01/13
Posts: 266
Reputação: +174

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
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

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 20 por ScreaM
info
Grupo: Visconde
Registrado: 26/01/13
Posts: 266
Reputação: +174

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 por Featzen




info
Grupo: Visconde
Registrado: 26/01/13
Posts: 266
Reputação: +174
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 end2º - No arquivo data/talkactions/talkactions.xml, adicione as seguintes tags:
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 por Featzen