Ir para conteúdo

Posts Recomendados

Ola meus queridos estou aqui para demonstrar meu novo sistema de radio.

Basicamente e um sistema de comunicação onde um determinado player cria um channel de radio e outro player se conecta a radio assim todas as mensagens que o player mandar sera recebida.

 

3a419eabe41581358e1ad360cb0cb779.gif

 

 

Crie um arquivo lua chamado rad em creaturescripts e coloque isto:

 

 

function onTextEdit(cid, item, newText)

local grav = 1952 ------------Item gravador onde o player vai escrever as mensagens tem que ser um item de escrita de texto

if item.itemid == grav then

if getPlayerStorageValue(cid, 82820) ~= 1 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem uma radio")

return doRemoveItem(item.uid)

end

for _, pid in ipairs(getPlayersOnline()) do

radi = getPlayerStorageValue(pid, 82826)

if getPlayerStorageValue(cid, 82828) == radi then

doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "("..newText..") Direto da radio "..radi.."")

end

end

return false

end

return true

end

 

 

Na mesma pasta crie outro chamado radlogout

 

 

function onLogout(cid)

function doRetireAllStr(cid)

setPlayerStorageValue(cid, 82820, nil)

setPlayerStorageValue(cid, 82828, nil)

setPlayerStorageValue(cid, 82826, nil)

setPlayerStorageValue(cid, 28214, nil)

end

doRetireAllStr(cid)

return true

end

 

 

Coloque esta tags:

 

 

 

<event type="logout" name="radl" event="script" value="radlogout.lua"/>

<event type="textedit" name="rad" event="script" value="rad.lua"/>

 

 

 

 

Agora vamos registrar evento.

Bem e pratico vá em creaturescripts/scripts/login.lua e antes do ultimo return true coloque estas linhas:

 

 

 

registerCreatureEvent(cid, "rad")

registerCreatureEvent(cid, "radl")

 

 

 

Ainda não acabou...

Vamos agora em talkactions/scripts e crie dois arquivos lua chamados de rad e radio:

 

Em rad coloque isto:

 

 

function onSay(cid, words, param, channel)
function doRegisterRad(cid)
setPlayerStorageValue(cid, 82820, 1)
setPlayerStorageValue(cid, 82828, param)
setPlayerStorageValue(cid, 82826, param)
setPlayerStorageValue(cid, 28214, 1)
setPlayerStorageValue(cid, 42426, 1)
end
if(words == "/createrad") then

local money = 22 ------------Money necessario para comprar o slot---
local level = 82 -----Level necessario--------
[color=#FF0000]local item = 1952 ----Coloca aki o item que vai ser ganho para gravar o mesmo item de escrever texto de creaturescripts------[/color]

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Diga um nome para criar a radio.")

return false
end
for _, pid in ipairs(getPlayersOnline()) do
radi = getPlayerStorageValue(pid, 82828)
if (param == radi) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ja existe o nome desta radio.")
return false
end
end

if #param < 5 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua radio precisa ter pelo mais que 4 letras")
return false
end
if getPlayerStorageValue(cid, 82820) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ja tem a radio "..getPlayerStorageValue(cid, 82828).." para recriar uma radio diga /desrad ou deslogue")
return false
end

if getPlayerStorageValue(cid, 42426) == 1 then
doRegisterRad(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Radio "..param.." foi criada")
if getPlayerItemCount(cid, item) < 1 then
doPlayerAddItem(cid, item)
end
return true
end

if not doPlayerRemoveMoney(cid, money) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o dinheiro suficiente para criar uma slot de radio")
return false
end
if getPlayerLevel(cid) <= level then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o level suficiente para criar uma slot de radio")
return false
end
if isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem premium para criar uma slot de radio")
return false
end

doPlayerRemoveMoney(cid, money)
doRegisterRad(cid)
doPlayerAddItem(cid, item)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Radio "..param.." foi criada")

else
str = "Radios Online:\n\n"
for _, pid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(pid, 82828) ~= -1 then
str = str .. getPlayerStorageValue(pid, 82828) .. " - Dono [(".. getPlayerName(pid) ..")] Level ["..getPlayerLevel(pid).."]\n"
end
end
doShowTextDialog(cid, 1397, str)
return true
end
return true
end

 

function onSay(cid, words, param, channel)
function doRetireAllStorageRadio(cid)
setPlayerStorageValue(cid, 82820, nil)
setPlayerStorageValue(cid, 82828, nil)
setPlayerStorageValue(cid, 82826, nil)
setPlayerStorageValue(cid, 28214, nil)
end
if(words == "/sintrad") then
if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Diga um nome para sintonizar para a radio para ver as radios online diga /checkrad.")

return true

end
if getPlayerStorageValue(cid, 28214) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja esta conectado a uma sintonia ou tem uma radio para conectar desligue com o comando /desrad")

return true
end
setPlayerStorageValue(cid, 82826, param)
setPlayerStorageValue(cid, 28214, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esta conectado a radio "..param.."")
return true
end
if(words == "/desrad") then
if getPlayerStorageValue(cid, 28214) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você foi desconectado")
doRetireAllStorageRadio(cid)
return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem um radio conectada")
return true
end

return true
end

 

 

 

Comandos:

/createrad (nome da radio) -----Compra um slot infinito e cria uma radio adicionando o item
/sintrad(Nome da radio) ---Sintoniza em uma radio
/checkrad --------Verifica as radios online
/desrad ----Desconecta um slot de radio e desconecta um player de uma radio

Configuraçôes

O script ja tem as configuraçoes e as explicaçoes.

Destaquei em vermelho onde o item de escrita deve ser posto mais atenção não são todos os itens que tem a janela de escrita para que o item funcione deve ser modificados em item.xml eu ultilizei o document se quiser pode fazer uso dele.

 

Bem isto ai vou mandar uma dicas que vão fazer a diferença no scripts:

 

E interessante colocar bastante exigencias para comprar um slot de radio para ter um numero grande de sintonizados.

Recomendo colocar exingencia de premuin.

E interresante no item da escrita do texto mudar a sprite para uma gravador ou algo parecido pode ser ate uma camera.

Você pode perceber um numero grande storage se quiser pode simplificar o script retirando algumas storages desnecessarias.

Link para o comentário
Compartilhar em outros sites

Sei la não precisa ser tambem radio pode ser algum tipo de poder ou sei la.

So pus radio pq parece.

 

E tambem acho que existe derivados de tibia que pode ser encaixar como pokemon.

Link para o comentário
Compartilhar em outros sites

achei a idéia interessante mas o código não ficou muito bom não '-'

 

Acho que podia ser feito por db e a rádio poderia ter uma duração de algumas horas, ai podendo convidar player, e o dono da rádio poderia remover o cara que ele não quisesse da radio, lista dos players que estão 'ouvindo' a rádio e outra coisa é uma lista das rádios que o server possuir pra conecta

 

tal

 

mas ta legal sim, REP+

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

kkk tbm achei que o codigo fico meio adoidado mais e isso mesmo.

Aia fazer por db mais o codigo ja tava quase pronto quando tive a ideia fico assim.

 

Mais como disse esta funcional

Link para o comentário
Compartilhar em outros sites

legal esse script pode ser algo inovador para alguns servidores dps irei testalo. vodkart pode me responder la sobre o script do evento achei 1 bug quando player morre no evento ele recebe o premio mesmo assim.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...