CrowLey Posted December 2, 2020 Posted December 2, 2020 Estou fazendo um script de chamado de SAMU, a pessoa escreve o comando e escreve o que aconteceu. Mas eu queria fazer que quando um socorrista aceitasse o comando nenhum poderia aceitar. aí aparecesse um outputChatBox. Avisando que não podia aceitar o chamado pós já foi aceito.
Other Languages Moderators Lord Henry Posted December 2, 2020 Other Languages Moderators Posted December 2, 2020 É necessário criar uma table de chamados. Pois pode ocorrer de vários jogadores pedirem o Samu ao mesmo tempo e dai um pedido iria substituir o outro. Dai para aceitar o chamado, você poderia fazer com um segundo argumento opcional do nome do jogador que chamou. Ex: /aceitar Joaozinho123 "Você aceitou o chamado de socorro de Joaozinho123, a posição dele foi marcada no seu radar." (remove o Joaozinho123 da table de chamados)
CrowLey Posted December 3, 2020 Author Posted December 3, 2020 35 minutes ago, Lord Henry said: É necessário criar uma table de chamados. Pois pode ocorrer de vários jogadores pedirem o Samu ao mesmo tempo e dai um pedido iria substituir o outro. Dai para aceitar o chamado, você poderia fazer com um segundo argumento opcional do nome do jogador que chamou. Ex: /aceitar Joaozinho123 "Você aceitou o chamado de socorro de Joaozinho123, a posição dele foi marcada no seu radar." (remove o Joaozinho123 da table de chamados) Como iria criar a tablet?
Other Languages Moderators Lord Henry Posted December 3, 2020 Other Languages Moderators Posted December 3, 2020 (edited) local chamados = {} addCommandHandler ("samu", function (thePlayer, cmd) -- Comando pro jogador chamar o Samu. local name = getPlayerName (thePlayer) -- Name recebe o nick do jogador que executou o comando. if (chamados[name]) then -- Se já tem um chamado na table com esse nome, então: outputChatBox ("Você já tem um chamado em aberto. Aguarde mais tempo até alguém aceitar.", thePlayer, 255, 0, 0) else -- Se não tem nenhum chamado deste jogador na table, então: chamados[name] = true -- Adiciona ele na table. outputChatBox ("Você chamou um Samu. Aguarde alguém aceitar.", thePlayer, 0, 255, 0) end end) addCommandHandler ("aceitar", function (thePlayer, cmd, name) if (name) then -- Se o jogador que vai aceitar incluiu o nick do jogador, então: if (chamados[name]) then -- Se tem um chamado do jogador mencionado na table, então: chamados[name] = nil -- Fecha o chamado. outputChatBox ("Você aceitou o chamado de "..name, thePlayer, 0, 255, 0) -- Aqui é o código que cria o blip no jogador que chamou o socorro e que aparece somente pra quem aceitou. Essa parte é por sua conta. else -- Se não tem um chamado do jogador mencionado na table, então: outputChatBox ("O jogador "..name.." não tem nenhum chamado de Samu em aberto.", thePlayer, 255, 0, 0) end else -- Se o jogador que vai aceitar não informou o nick para o qual vai aceitar, então: outputChatBox ("Erro de sintaxe: /aceitar <nick>", thePlayer, 255, 255, 0) end end) Exemplo bem simples. Se o jogador trocar de nick ou sair do server já irá bugar o sistema. Mas serve pra vc usar de base. Edited December 3, 2020 by Lord Henry Código comentado.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now