LO
pedido

Talckaction !post "Texto"

Por lokitobr12, 14 de dez. de 2012 em Scripts

otserv
tibia
13
1.3k
lokitobr12L
14 de dezembro de 2012 às 16:40

Queria uma Talkaction que quando o players falasse !post "Vendo 1 real" Fala para todos, mas que não saísse na tela e sim lá no "Local Chat" e em laranja. Todos os players podem usar mas terão de pagar uma taxa de 1 crystal coin a cada vez que falasse, e por um tempo também, a cada 2 minutos podia falar, para não ter muito FLOOD.

 

 

Obrigado. E REP+ ;]

SlicerS
14 de dezembro de 2012 às 17:33

testa ae...

 

function onSay(cid, words, param, channel)

 

local storage = 66988

 

if param == "" then

return doPlayerSendTextMessage(cid, 27, "Param missing! !post [msg]")

elseif exhaustion.check(cid, storage) then

return doPlayerSendTextMessage(cid, 27, "You need to wait ".. exhaustion.get(cid, storage).."segs to use this command again!")

end

 

if doPlayerRemoveMoney(cid, 100000) == true then

for _, player in pairs(getPlayersOnline()) do

doPlayerSendTextMessage(player, 20, param)

end

exhaustion.set(cid, storage, 120)

else

return doPlayerSendTextMessage(cid, 27, "You need at least 1 crystal coin to use this command!")

end

 

return true

end

 

 

tag

<talkaction words="!post" event="script" value="Post.lua"/>

 

lembrando q GOD e achu q GM poderam usar sempre esse comando sem exaustion... entao teste com um player normal...

e n sei se eh bem aquilo q equivale a 1 crystal coin.. n jogo tibia.. ;x

qlqr coisa muda aki.. 100000...

lokitobr12L
14 de dezembro de 2012 às 17:39

Okay irei testar, ja ja edito ;]

 

 

Pegou, mas não mostra o nome do player, queria que mostrasse se possível :D

 

Ex: !post "Arroz"
16:49 Teststs [8]: Arroz

Obrigado.

Editado Dezembro 14 por lokitobr12

MulizeuM
14 de dezembro de 2012 às 19:00

Desculpe Ja Corrigi!..

[code]
function onSay(cid, words, param, channel)

local storage = 66988

if param == "" then
return doPlayerSendTextMessage(cid, 27, "Param missing! !post [msg]")
elseif exhaustion.check(cid, storage) then
return doPlayerSendTextMessage(cid, 27, "You need to wait ".. exhaustion.get(cid, storage).."segs to use this command again!")
end

if doPlayerRemoveMoney(cid, 100000) == true then
for _, player in pairs(getPlayersOnline()) do
doPlayerSendTextMessage(player, 20, "O "..getPlayerName(cid).. " ["..getPlayerLevel(cid).."] ".." Esta Vendendo "..param.."!")
end
exhaustion.set(cid, storage, 120)
else
return doPlayerSendTextMessage(cid, 27, "You need at least 1 crystal coin to use this command!")
end

return true
end

Editado Dezembro 14 por mulizeu

lokitobr12L
14 de dezembro de 2012 às 19:06

[14/12/2012 18:05:30] [Error - TalkAction Interface]

[14/12/2012 18:05:30] data/talkactions/scripts/post.lua:onSay

[14/12/2012 18:05:30] Description:

[14/12/2012 18:05:30] data/talkactions/scripts/post.lua:13: attempt to concatenate a nil value

[14/12/2012 18:05:30] stack traceback:

[14/12/2012 18:05:30] data/talkactions/scripts/post.lua:13: in function <data/talkactions/scripts/post.lua:1>

 

Deu erro aqui o sue Mulizeu

OneshotO
14 de dezembro de 2012 às 19:18

local config = {
   storage = 66998,
   delay = 2 * 60,
   needMoney = 10000
}

function onSay(cid, words, param, channel)
   if param == "" then
       doPlayerSendCancel(cid, words .." [message]")
       return true
   end

   if not doPlayerRemoveMoney(cid, config.needMoney) then
       doPlayerSendCancel(cid, "Sorry, you need ".. config.needMoney .." to use this command.")
       return true
   end

   if getCreatureStorage(cid, config.storage) > os.time() then
       doPlayerSendCancel(cid, "Sorry, you need to wait ".. getCreatureStorage(cid, config.storage) - os.time() .." seconds to use this command.")
       return true
   end

   local msg = getCreatureName(cid) .." [".. getPlayerLevel(cid) .."]".. param
   for _, pid in ipairs(getPlayersOnline()) do
       if pid != cid then
           doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, msg)
       end
   end
   doCreatureSetStorage(cid, config.storage, os.time() + config.delay)
   return true
end

 

Toma.

SkyDangerousS
14 de dezembro de 2012 às 19:22

o meu aqui funcionou:

 

function onSay(cid, words, param, channel)

local storage = 66988

if param == "" then
return doPlayerSendTextMessage(cid, 27, "Param missing! !post [msg]")
elseif exhaustion.check(cid, storage) then
return doPlayerSendTextMessage(cid, 27, "You need to wait ".. exhaustion.get(cid, storage).."segs to use this command again!")
end

if doPlayerRemoveMoney(cid, 100000) == true then
for _, player in pairs(getPlayersOnline()) do
doPlayerSendTextMessage(player, 20, ""..getCreatureName(cid).."["..getPlayerLevel(cid).."] está vendendo "..param.."")
end
exhaustion.set(cid, storage,120)
else
return doPlayerSendTextMessage(cid, 27, "You need at least 1 crystal coin to use this command!")
end

return true
end

 

era linha 13 que tava errada, arrumei pra você e testei.

 

ta assim

 

19:21 GOD Raymond[1] está vendendo Skydangerous

Editado Dezembro 14 por SkyDangerous

lokitobr12L
14 de dezembro de 2012 às 19:33

Deu certo sky, mas e se o player estiver comprando? Tem como colocar no mesmo script? Ou teria de fazer outro?

 

 

Obrigado a todos.

 

 

 

Oneshot O seu deu um erro acho que na linha 25 com o "!"

Editado Dezembro 14 por lokitobr12

SlicerS
14 de dezembro de 2012 às 19:40

troca

if pid != cid then

por isso..

if pid ~= cid then

 

achu q o oneShot tava pensando em C++ na hora kk

lokitobr12L
14 de dezembro de 2012 às 19:44

Eu escrevo mas nem aparece nada no "Local Chat" ^^" e se eu tentar dnv ele fala que tenho de esperar o tempo lá...

OneshotO
14 de dezembro de 2012 às 20:02

É que eu coloquei para enviar apenas para os outros jogadores e não para o próprio jogador.

 

local config = {
   storage = 66998,
   delay = 2 * 60,
   needMoney = 10000
}

function onSay(cid, words, param, channel)
   if param == "" then
       doPlayerSendCancel(cid, words .." [message]")
       return true
   end

   if not doPlayerRemoveMoney(cid, config.needMoney) then
       doPlayerSendCancel(cid, "Sorry, you need ".. config.needMoney .." to use this command.")
       return true
   end

   if getCreatureStorage(cid, config.storage) > os.time() then
       doPlayerSendCancel(cid, "Sorry, you need to wait ".. getCreatureStorage(cid, config.storage) - os.time() .." seconds to use this command.")
       return true
   end

   local msg = getCreatureName(cid) .." [".. getPlayerLevel(cid) .."]".. param
   for _, pid in ipairs(getPlayersOnline()) do
       doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, msg)
   end
   doCreatureSetStorage(cid, config.storage, os.time() + config.delay)
   return true
end

 

Agora está tudo certo.

lokitobr12L
14 de dezembro de 2012 às 20:05

Muito obrigado ;] Agora sim pegou ^^".

 

 

Pedido sanada.

Editado Dezembro 14 por lokitobr12

Yan OliveiraY
14 de dezembro de 2012 às 20:57

Dúvida Resolvida!

 

Tópico Movido.