Ir para conteúdo
  • 0

Talkaction !mission


nbb147

Pergunta

Ola pessoal do Xtibia, eu estou atráz de uma talkaction para quando o player falar !mission saber em qual missão ele está, pois eu tenho um sistema de missão em meu ot de missões por storage, podia fazer tipo usar a storage da missão para indicar em qual ele esta, sendo assim a primeira Storage '11110', player fala !mission aparece uma mensagem:

 

First Mission # Capture The Thief

go to the departure city and wait for the thief to appear and capture it.

 

Reward:

 

Experience: 300

 

Agradeço a quem tente ajudar.

 

Eu estava tentando fazer, não manjo muito de script, o maximo que consegui foi isso:

 

function onSay(cid, words, param)

doPlayerSendTextMessage(cid, 20, "First Mission # Capture The Thief")

getPlayerStorageValue(cid, 11110)

return true

end

 

Não esta funcionando como desejado, ela não está checando se o player possui a storage qualquer player que não tenha a storage aparece a mensagem, essa mensagem é para aparecer só se o player possui a storage, alguém ajuda ae galera.

Editado por nbb147
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

ta mano.. cada missao vai ter uma storage diferente?

11110, 11111, 11112...

ou cada missao vai ter a ms storage, 11110, soh q com valores diferentes? começa com -1, depois 1, depois 2...

Link para o comentário
Compartilhar em outros sites

  • 0

sei la como funciona teu sistema ae mas.. tenta assim..

 

local missions = {

{sto = 11110,

enunciado = "First Mission # Capture The Thief",

objetivo = "go to the departure city and wait for the thief to appear and capture it.",

reward = "Experience: 300"},

 

{sto = 11111,

enunciado = "Second Mission # ...",

objetivo = "...",

reward = "Money: $1000"},

 

}

 

function onSay(cid, words, param, channel)

 

local str = ""

local haveMission = false

for _, array in ipairs(missions) do

if getPlayerStorageValue(cid, array.sto) >= 1 then

str = str..array.enunciado.."\n"..array.objetivo.."\nReward:\n"..array.reward

doPlayerSendTextMessage(cid, 27, str)

str = ""

haveMission = true

end

end

 

if not haveMission then

doPlayerSendTextMessage(cid, 27, "You don't have any mission")

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Opa PiabetaMan01 não e necessário o fechamento do tópico se ela for resolvida.

 

nbb147

Eu estava fazendo seu script mais o slicer foi mais rápido.

De qualquer jeito também estarei disponibilizando:

Em msg e mensagem que irá aparecer.

Em st e a storage.

E value o valor da storage.

 

local str = {
	{msg = "Esta na 1 missão", st = 11110, value = 1},
	{msg = "Esta na 2 missão", st = 11112, value = 1},
	{msg = "Esta na 3 missão", st = 21212, value = 2}
}

function onSay(cid, words, param)

function getValuers()
k = 0
while #str > k do
k = k+1
if getPlayerStorageValue(cid, str[k].st) == str[k].value then
break
end
end
return str[k].msg
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getValuers())
return true
end

Editado por caotic
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...