Pesquisar na Comunidade
Mostrando resultados para as tags ''radio em otserv''.
Encontrado 2 registros
-
Ola galera xtibiana O radio system eu ja tinha feito numa versão "beta" mais estava muito limitado. O link do sistema beta http://www.xtibia.com/forum/topic/190386-radio-sytem/ Então resolvi fazer uma versão superior O radio sytem e um sistema de (channel ou estações). Um player cria uma nova radio e depois outro player "sincroniza" a partir disso o dono da radio pode mandar mensagens a todos os participantes Para procurar uma radio e exibido uma janela que monstra o (Id da radio, dono da radio, radio esta online ou offline) Vamos aos códigos: function getRadPlayer(cid) local rad = db.getResult("SELECT `rad` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) return rad:getID() ~= -1 and rad:getDataInt("rad") or false end function setPlayerRad(cid, rad) db.executeQuery("UPDATE `players` SET `rad` = "..rad.." WHERE `id` = "..getPlayerGUID(cid)) end function createNewRad(cid) db.executeQuery("INSERT INTO `rad` VALUES (".. getPlayerGUID(cid) ..", ".. 1 ..")") db.executeQuery("UPDATE `players` SET `rad` = "..getPlayerGUID(cid).." WHERE `id` = "..getPlayerGUID(cid)) end function getOwnerIdRad(cid) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` = ".. getPlayerGUID(cid) ..";") return rad:getID() ~= -1 and rad:getDataInt("id") or false end function getRadMens(cid) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` = ".. getPlayerGUID(cid) ..";") return rad:getID() ~= -1 and rad:getDataInt("mens") or 0 end function getPlayerOwnerRad(cid) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` = ".. getPlayerGUID(cid) ..";") return rad:getID() ~= -1 and true or false end function getExistRad(id) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` = ".. id ..";") return rad:getID() ~= -1 and true or false end function sendTextForRad(cid, text) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` = ".. getPlayerGUID(cid) ..";") local mens = getRadMens(cid)+1 for i =1, #getPlayersOnline() do if getRadPlayer(getPlayersOnline()[i]) == getPlayerGUID(cid) then doPlayerSendTextMessage(getPlayersOnline()[i], MESSAGE_INFO_DESCR, text) db.executeQuery("UPDATE `rad` SET `mens` = "..mens.." WHERE `id` = "..getPlayerGUID(cid)) end end end Vá em talkactions e crie um arquivo lua chamado de rad e coloque isto: function onSay(cid, words, param, channel) local t = string.explode(param, ",") if not t[1] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id da radio para participar dela") and false end if getOwnerIdRad(cid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode participar de outras radios porque você ja tem uma") and false end if not getExistRad(tonumber(t[1])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esta radio não existe") and false end setPlayerRad(cid, tonumber(t[1])) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você esta sincronizado na radio "..t[1].."") return true end Continue em talkactions e crie um arquivo lua chamado de list e coloque isto: function onSay(cid, words, param, channel) local rad = db.getResult("SELECT * FROM `rad` WHERE `id` ORDER BY `mens`") str = "Radio Ons:\n\n" if rad:getID() == -1 then doShowTextDialog(cid, 1387, "Não ha radio online") return true end while true do local id = rad:getDataInt("id") local name = getPlayerByNameWildcard(getPlayerNameByGUID(id)) and getPlayerNameByGUID(id) or "offline" str = str .. id .. " - Dono da Radio - ("..name..")\n\n" if not rad:next() then doShowTextDialog(cid, 1397, str) break end end return true end Depois em talkactions de novo crie um arquivo lua chamado de createrad e coloque isto: function onSay(cid, words, param, channel) local price = 22220 -- Preço para criar a radio (detalhe coloque um preço bem alto para o otserv não ficar com muitas radios) if getPlayerMoney(cid) <= price then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem dinheiro suficiente para criar uma radio") and false end if getPlayerOwnerRad(cid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ja tem uma radio ID "..getOwnerIdRad(cid).."") and false end createNewRad(cid) doPlayerRemoveMoney(cid, price) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua radio foi criado seu ID é "..getOwnerIdRad(cid).." convide suas amigos para participar dela") return true end Terminado na mesma pasta(talkactions) crie um arquivo lua chamado de txt e coloque isto: function onSay(cid, words, param, channel) local t = string.explode(param, ",") if not t[1] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloca a mensagem que deseja enviar para os participantes da sua radio") and false end if not getPlayerOwnerRad(cid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem radio") and false end if #param < 4 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua mensagem deve ser maior") and false end sendTextForRad(cid, "("..getOwnerIdRad(cid)..") "..getPlayerName(cid).." - "..t[1].." ") return true end Coloque esta tags em talkactions.xml: Para usar e simples:
- 1 resposta
-
- radio
- radio em otserv
- (e 4 mais)
-
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. Crie um arquivo lua chamado rad em creaturescripts e coloque isto: Na mesma pasta crie outro chamado radlogout Coloque esta tags: Agora vamos registrar evento. Bem e pratico vá em creaturescripts/scripts/login.lua e antes do ultimo return true coloque estas linhas: 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.
- 5 respostas
-
- radio sytem
- radio em otserv
- (e 2 mais)