TE

Pedido De Script

Por Tedescoo, 24 de abr. de 2011 em Scripts

script
13
1.8k
TedescooT
24 de abril de 2011 às 14:56

Olá galera , preciso de um script que o player/god/cm/gm qualquer pessoa não possa usar um comando em qualquer lugar , ele só pode usar o comando em um determinado lugar , tipo eu quero que a pessoa possa usar o quiz só em um determinado lugar e qnd ele terminar de usar o comando ele é teleportado para o templo. o script do quiz é esse :

 

--[[

Script feito por Medargo

Storage value utilizado: 9845

]]--

function onSay(cid, words, param, channel)

local perg = {

"10+10=1000, isso é verdade? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",

"O Estados Unidos é um pais? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",

"Michael Jackson esta prestes a fazer uma turnê? Responda da seguinte maneira: '!question sim/não' apenas com 'sim' ou 'não'",

"Newton descobriu a gravidade com uma maça? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",

"Ajudantes também são players?: '!quiz sim/não' apenas com 'sim' ou 'não'",

"O bixo Lord Vampire é o mais forte do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",

"Se alguém não atender ao sistema de ant-bot é banido do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",

}

 

local resp = {"não", "sim", "não", "sim" , "sim", "não", "não"}

 

if param == '' then

if getPlayerStorageValue(cid, 9845) == -1 then

questionid = math.random(1,#perg)

question = perg[questionid]

doPlayerSendTextMessage(cid, 19, question)

setPlayerStorageValue(cid, 9845, 1)

else

doPlayerSendTextMessage(cid, 18, "Você ja possui uma pergunta em mãos, use '!quiz reset' para resetar o sistema")

end

 

 

elseif param ~= '' then

if getPlayerStorageValue(cid, 9845) == 1 then

if param ~= 'reset' then

if param == 'sim' or param == 'não' then

if param == resp[questionid] then

doPlayerSendTextMessage(cid, 27, "CORRETO, Sistema resetado!")

setPlayerStorageValue(cid, 9845, -1)

doPlayerAddItem(cid, 2160,1)

questionid = nil

question = nil

else

doPlayerSendTextMessage(cid, 18, "ERRADO, Sistema resetado!")

setPlayerStorageValue(cid, 9845, -1)

questionid = nil

question = nil

end

else

doPlayerSendTextMessage(cid, 18, "Use 'sim' ou 'não' para responder!")

end

else

doPlayerSendTextMessage(cid, 19, "Sistema resetado, pode pegar outra questão.")

setPlayerStorageValue(cid, 9845, -1)

questionid = nil

question = nil

end

else

doPlayerSendTextMessage(cid, 18, "Você não possui pergunta em mãos, para conseguir uma, use '!quiz''")

end

end

 

return true

end

 

 

 

quem me ajudar ganhara +rep , e quem tiver dúvidas pergunte aqui , que eu responderei...

Editado Abril 24 por Psycho123

Kuro o ShinigaK
24 de abril de 2011 às 18:30

não entendi direito o que você quer, tem como explicar melhor? ai tentarei ajudar '-'

TedescooT
24 de abril de 2011 às 19:47

Tipo é assim , tem no meu servidor o comando !quiz que é esse script ai , e a qualquer pessoa pode usar este comando em qualquer lugar , dai eu queria que só pudesse usar este comando em lugar determinado, sakou ?

nyuchihaN
24 de abril de 2011 às 21:50

Ah eu não pensei em nenhum jeito de fazer isso , + deve ter sim.

+ eu fiz desse jeito aqui , e acho que vai combinar + ( talvez seja ate oque vc quer )

Exemplo: Ele foi feito realmente pra um Quiz Show , ow seja soh da pra usar o script em 1 determinado tile , que vc pode colocar atras de um balcao , mesa sei la.

 

Vamos la::

 

 

Primeiro substitui esse seu script por esse aqui:

--[[
Script feito por Medargo
Storage value utilizado: 9845
]]--
function onSay(cid, words, param, channel)
local perg = {
"10+10=1000, isso é verdade? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"O Estados Unidos é um pais? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Michael Jackson esta prestes a fazer uma turnê? Responda da seguinte maneira: '!question sim/não' apenas com 'sim' ou 'não'",
"Newton descobriu a gravidade com uma maça? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Ajudantes também são players?: '!quiz sim/não' apenas com 'sim' ou 'não'",
"O bixo Lord Vampire é o mais forte do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Se alguém não atender ao sistema de ant-bot é banido do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",
} 

local resp = {"não", "sim", "não", "sim" , "sim", "não", "não"}

if param == '' then
if getPlayerStorageValue(cid, 9845) == -1 then
if getPlayerStorageValue(cid, 15000) == 1 then
questionid = math.random(1,#perg)
question = perg[questionid]
doPlayerSendTextMessage(cid, 19, question)
setPlayerStorageValue(cid, 9845, 1)
else
doPlayerSendTextMessage(cid, 18, "Você tem que estar no programa para usar esse comando.")
end
else
doPlayerSendCancel(cid,'Você ja possui uma pergunta em mãos, use !quiz reset para resetar o sistema.')
end

elseif param ~= '' then
if getPlayerStorageValue(cid, 9845) == 1 then
if getPlayerStorageValue(cid, 15000) == 1 then
if param ~= 'reset' then 
if param == 'sim' or param == 'não' then
if param == resp[questionid] then
doPlayerSendTextMessage(cid, 27, "CORRETO, Sistema resetado!")
setPlayerStorageValue(cid, 9845, -1)
doPlayerAddItem(cid, 2160,1)
questionid = nil
question = nil
else
doPlayerSendTextMessage(cid, 18, "ERRADO, Sistema resetado!")
setPlayerStorageValue(cid, 9845, -1)
questionid = nil
question = nil
end
else
doPlayerSendTextMessage(cid, 18, "Use 'sim' ou 'não' para responder!")
end
else
doPlayerSendTextMessage(cid, 19, "Sistema resetado, pode pegar outra questão.")
setPlayerStorageValue(cid, 9845, -1)
questionid = nil
question = nil
end 
else
doPlayerSendTextMessage(cid, 18, "Você tem que estar no programa para usar esse comando.'")
end
else
doPlayerSendTextMessage(cid, 18, "Você não possui pergunta em mãos, para conseguir uma, use '!quiz''")
end
end

return true
end

Esta com as suas perguntas. , agora vem a parte do Tile.

Data/Movements/Script crie 1 arquivo LUA chamado "Tilequiz" e adicione isso dentro:

local time = 10
local pos = {x = 160, y = 54, z = 7} -- Coordenadas do chao
local function SayText(cid)   
if isCreature(cid) == TRUE then   
doSendMagicEffect(pos, 55)   
month = addEvent(SayText, time * 1000 / 2, cid)    
end   
end 

function onStepOut(cid, item, frompos, topos) 
setPlayerStorageValue(cid, 15000, -1)
month = addEvent(SayText, time * 1000, cid)  
return TRUE   
end  

function onStepIn(cid, item, frompos, topos) 
setPlayerStorageValue(cid, 15000, 1)
stopEvent(month) 
return TRUE 
end

Agora em Movements.xml adicione essa Linha:

<movevent event="StepIn" actionid="28000" script="tilequiz.lua" />
<movevent event="StepOut" actionid="28000" script="tilequiz.lua" />

 

 

 

Agora vou explicar a parte do tile:

 

 

local pos = {x = 160, y = 54, z = 7} -- Coordenadas do chao  :  Aqui vc coloca onde o player tem que estar para poder usar o comando.
setPlayerStorageValue(cid, 15000, -1) e  setPlayerStorageValue(cid, 15000, 1) : Storages que adiciona e remove para o seu script do QUIZ pega no lugar certo.

E no movements.xml

<movevent event="StepIn" actionid="28000" e <movevent event="StepOut" actionid="28000" são os IDs que vc tera que adicionar no Chão que o player vai pisar  ( o mesmo que vc colocou na parte LOCAL POS )

 

 

 

Espero que funcione e que vc goste =)

Ah quando o player sai de cima do tile , começa a fazer um efeito de uma flexinha mostrando o tile onde tem que pisar , ao pisar no tile o efeito para..

Para mudar o intervalo do effect mude essa parte:

local time = 10

 

 

 

TedescooT
24 de abril de 2011 às 22:48

é infelizmente não funcionou mais ganho rep+ por tentar ajudar

nyuchihaN
24 de abril de 2011 às 23:04

o>O

tem que funcionar , aqui funciono o.O

 

Qual a versão do seu ot?

olha la em movements.xml se esta tipo EVENTO= script sei la algo assim , ve se eh igual a linha que eu timandei.

 

 

24 de abril de 2011 às 23:09

Só fazer a checagem da posição com stackpos 253, não precisa de script em movevents.

 

Faz a checagem com o for pra fazer a area 4x4.

Editado Abril 25 por Demonbholder

nyuchihaN
24 de abril de 2011 às 23:14

Sim , acho que da certo sim , nem pensei nisso =/

 

Daria para editar essa parte para pegar um area grande ( como ele diz la em cima )

Ow teria que colocar varias Pos?

TedescooT
24 de abril de 2011 às 23:32

a podia ser uma area grande também de uns 4x4 tile ;p

MatheusGladM
25 de abril de 2011 às 12:26

function onSay(cid, words, param)

   --[[
Script feito por Medargo
Storage value utilizado: 9845
]]--
local perg = {
"10+10=1000, isso é verdade? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"O Estados Unidos é um pais? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Michael Jackson esta prestes a fazer uma turnê? Responda da seguinte maneira: '!question sim/não' apenas com 'sim' ou 'não'",
"Newton descobriu a gravidade com uma maça? Responda da seguinte maneira: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Ajudantes também são players?: '!quiz sim/não' apenas com 'sim' ou 'não'",
"O bixo Lord Vampire é o mais forte do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",
"Se alguém não atender ao sistema de ant-bot é banido do servidor?: '!quiz sim/não' apenas com 'sim' ou 'não'",
}

local resp = {"não", "sim", "não", "sim" , "sim", "não", "não"}
local area = {   ---- Area.
{1,1,1,1},
{1,1,1,1},
{1,1,1,1},
{1,1,1,1},
}  

function tableEquals(t1, t2, s) -- function by MatheusMkalo
   for i,x in pairs(not s and t1 or t2) do
       if (s and t1[i] ~= x or t2[i] ~= x) then
           s = false
           break
       end
   end
   return s == "end" and true or s == true and tableEquals(t1, t2, "end") or s == nil and tableEquals(t1, t2, true) or false
end 

local extpos = {x=187, y=300, z=7} -- Posicao do primeiro sqm << /\ da area.
local status = false

for i,x in pairs(area) do
   for s, z in pairs(x) do
       local creature = getCreaturePosition(cid)
       if tableEquals({x=creature.x, y=creature.y, z=creature.z}, {x=extpos.x+s-1, y=extpos.y+i-1, z=extpos.z}) then
           status = true
       end
   end
end

if not status then
   return doPlayerSendCancel(cid, "Voce precisa estar na area correta.")
end

if param == '' then
if getPlayerStorageValue(cid, 9845) == -1 then
questionid = math.random(1,#perg)
question = perg[questionid]
doPlayerSendTextMessage(cid, 19, question)
setPlayerStorageValue(cid, 9845, 1)
else
doPlayerSendTextMessage(cid, 18, "Você ja possui uma pergunta em mãos, use '!quiz reset' para resetar o sistema")
end


elseif param ~= '' then
if getPlayerStorageValue(cid, 9845) == 1 then
if param ~= 'reset' then
if param == 'sim' or param == 'não' then
if param == resp[questionid] then
doPlayerSendTextMessage(cid, 27, "CORRETO, Sistema resetado!")
setPlayerStorageValue(cid, 9845, -1)
doPlayerAddItem(cid, 2160,1)
questionid = nil
question = nil
else
doPlayerSendTextMessage(cid, 18, "ERRADO, Sistema resetado!")
setPlayerStorageValue(cid, 9845, -1)
questionid = nil
question = nil
end
else
doPlayerSendTextMessage(cid, 18, "Use 'sim' ou 'não' para responder!")
end
else
doPlayerSendTextMessage(cid, 19, "Sistema resetado, pode pegar outra questão.")
setPlayerStorageValue(cid, 9845, -1)
questionid = nil
question = nil
end
else
doPlayerSendTextMessage(cid, 18, "Você não possui pergunta em mãos, para conseguir uma, use '!quiz''")
end
end
return TRUE
end

 

Configuraçao facil flws.

Editado Abril 25 por MatheusMkalo

25 de abril de 2011 às 12:39

Mkalo fica tirando a oportunidade de script fáceis para os iniciantes néééé. Ahuahuahau, brincadeira, se funcionar não esqueça de reportar.

TedescooT
25 de abril de 2011 às 12:55

Funfo mais eu queria de outro jeito(inovar) , mas já falei com ele no msn.

 

Então pode fexar !

fsgF
25 de abril de 2011 às 20:45

Obrigado pessoal pela colaboração a comunidade.

Pedido atendido e tópico movido!