diogorocha18
-
Posts
20 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por diogorocha18
-
-
alguém me consegue ajudar?
-
7 horas atrás, Lucca Rodrigues disse:
peço desculpas, pensava que tinha colocado, o ficheiro responsavel por isso encontra-se aqui:
using Discord; using Discord.WebSocket; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading; using System.Threading.Tasks; using TW_Discord_Bot.Core; using TW_Discord_Bot.Persistence.Domain; using TW_Discord_Bot.Persistence.Repositories.ChannelOutput; using TW_Discord_Bot.Persistence.Repositories.Configuration; using TW_Discord_Bot.Persistence.Repositories.IncomingAttacks; using TW_Discord_Bot.Persistence.Repositories.IngameName; using TW_Discord_Bot.Services; namespace TW_Discord_Bot.Jobs { public class IncomingAttacksJob : BackgroundService { private readonly IChannelOutputRepository _channelOutputRepository; private readonly IConfigurationRepository _configurationRepository; private readonly IIncomingAttacksRepository _incomingAttacksRepository; private readonly IIngameNameRepository _ingameNameRepository; private readonly DiscordSocketClient _client; private readonly ILogger _logger; private const long GuildId = 806622903251632138; private const long AdminId = 379999320877039617; public IncomingAttacksJob( DiscordSocketClient client, ILogger<IncomingAttacksJob> logger, IChannelOutputRepository channelOutputRepository, IConfigurationRepository configurationRepository, IIncomingAttacksRepository incomingAttacksRepository, IIngameNameRepository ingameNameRepository) { _channelOutputRepository = channelOutputRepository ?? throw new ArgumentNullException(nameof(channelOutputRepository)); _configurationRepository = configurationRepository ?? throw new ArgumentNullException(nameof(configurationRepository)); _incomingAttacksRepository = incomingAttacksRepository ?? throw new ArgumentNullException(nameof(incomingAttacksRepository)); _ingameNameRepository = ingameNameRepository ?? throw new ArgumentNullException(nameof(ingameNameRepository)); _client = client ?? throw new ArgumentNullException(nameof(client)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { await Task.Delay(3000); while (!stoppingToken.IsCancellationRequested) { try { var configurations = await _configurationRepository.FindDefaultAsync(x => x.ServerId == GuildId); if (configurations == null) { _logger.LogError("Configurar SID / User-Agent / Url para ataques a chegar!"); } if (configurations.AccountSID == "") { _logger.LogError("Configurar SID a chegar!"); } var tribalWarsClient = new TribalWarsClientService(configurations.AccountSID, configurations.AccountUserAgent); var timer = new Stopwatch(); timer.Start(); var incomingAttacks = await tribalWarsClient.GetIncomingAttacks(configurations.WorldUrl); var guild = _client.GetGuild(GuildId); var messageChannel = guild.GetChannel(configurations.AttackChannelId.Value) as IMessageChannel; foreach (var incomingAttack in incomingAttacks) { var oldIncomingAttacksEntity = await _incomingAttacksRepository.FindAsync(x => x.PlayerName == incomingAttack.Name); if (oldIncomingAttacksEntity == null) continue; var oldIncomingAttacks = oldIncomingAttacksEntity.ToList(); if (incomingAttack.TotalNrAttacks > oldIncomingAttacks.Sum(x => x.NrAttacks)) { var addNewAttacks = new List<IncomingAttacks>(); var updateAttacks = new List<IncomingAttacks>(); var msg = $"> **{incomingAttack.Name}**\n"; msg += $"> _Total de ataques a chegar: **{incomingAttack.TotalNrAttacks}**_\n\n"; //var index = 0; foreach (var village in incomingAttack.Villages) { if (village.IncomingAttacks > 0) { var villageUnderAttack = oldIncomingAttacks.Any(x => x.VillageName == village.Name); if (villageUnderAttack) { var underAttackOldCount = oldIncomingAttacks.Where(x => x.VillageName == village.Name).Sum(x => x.NrAttacks); if (village.IncomingAttacks > underAttackOldCount) { var newAttacks = village.IncomingAttacks - underAttackOldCount; msg += $"> _ {village.Name}:_ {village.IncomingAttacks} **[+{newAttacks} NEW]** \n"; } else { //msg += $"{village.Name}: {village.IncomingAttacks}\n"; } updateAttacks.Add(new IncomingAttacks { Id = oldIncomingAttacks.FirstOrDefault(x => x.VillageName == village.Name)?.Id, LastAttackInformation = DateTime.Now, NrAttacks = village.IncomingAttacks, PlayerName = incomingAttack.Name, VillageName = village.Name, ServerId = (long)guild.Id, ServerName = guild.Name }); } else { msg += $"> _ {village.Name}:_ {village.IncomingAttacks} **[+{village.IncomingAttacks} NEW]** \n"; addNewAttacks.Add(new IncomingAttacks { LastAttackInformation = DateTime.Now, NrAttacks = village.IncomingAttacks, PlayerName = incomingAttack.Name, VillageName = village.Name, ServerId = (long)guild.Id, ServerName = guild.Name }); } } } var totalAtaques = addNewAttacks.Sum(x => x.NrAttacks) + updateAttacks.Sum(x => x.NrAttacks); if (addNewAttacks.Count > 0) { await _incomingAttacksRepository.AddAsync(addNewAttacks); } if (updateAttacks.Count > 0) { await _incomingAttacksRepository.UpdateAsync(updateAttacks); } Console.WriteLine(msg); await messageChannel.SendMessageAsync(text: msg); var checkForPing = await _ingameNameRepository.FindDefaultAsync(x => x.GameName == incomingAttack.Name); if (checkForPing != null) { var user = guild.GetUser(checkForPing.DiscordId); await messageChannel.SendMessageAsync(user.Mention); } } else if (incomingAttack.TotalNrAttacks == 0) { await _incomingAttacksRepository.DeleteAsync(x => x.PlayerName == incomingAttack.Name); } } Random rnd = new Random(); var randomMinutes = rnd.Next(4, 7); timer.Stop(); TimeSpan timeTaken = timer.Elapsed; string timeElapsed = "Demorou " + timeTaken.ToString(@"m\:ss\:fff"); _logger.LogInformation($"{timeElapsed} para buscar informação sobre ataques a chegar. Proximo job corre daqui a {randomMinutes} minutos."); await Task.Delay(TimeSpan.FromMinutes(randomMinutes)); } catch (SessionException ex) { var channelOutput = await _channelOutputRepository.FindDefaultAsync(x => x.ServerId == GuildId); var guild = _client.GetGuild(GuildId); var member = guild.GetUser(AdminId); var messageChannel = guild.GetChannel((ulong)channelOutput.ChannelId.Value) as IMessageChannel; await messageChannel.SendMessageAsync($"{member.Mention} -> [{ex.ErrorCode}] {ex.LogMessage}"); _logger.LogError($"[{ex.ErrorCode}] {ex.LogMessage}"); await Task.Delay(TimeSpan.FromMinutes(15)); } catch (Exception ex) { _logger.LogError($"Unexpected error occured. {ex.Message} | {ex.StackTrace}"); await Task.Delay(TimeSpan.FromMinutes(15)); } } } public override async Task StartAsync(CancellationToken cancellationToken) { _logger.LogInformation("Started Incoming attacks job."); new Thread(async () => await ExecuteAsync(cancellationToken)).Start(); await Task.CompletedTask; } public override Task StopAsync(CancellationToken cancellationToken) { //log stop return Task.CompletedTask; } } }
- 1
-
Ninguem me consegue ajudar?
-
Bom dia,
Eu fiz um bot para o discord para me avisar de uma determinada coisa de um jogo que jogo há alguns anos.
No entanto, agora que já se passou algum tempo e "cresci in game", o bot envia mais informação, no entanto o discord tem um limite de 2000 caracteres e precisava que dividir-se a mensagem em 2,3 ou 4 vezes, as vezes necessárias para que não desse erro e não enviasse a informação por causa disso.
Alguém disponível para me ajudar?
Cumprimentos
-
Boa noite,
Estou a desenvolver uma coisa simples para um jogo, no entanto deparei-me com um problema que precisa da vossa ajuda.
É o seguinte, tenho um script que vai buscar um cookie especifico, que neste caso o nome é sid, o problema é que ele só consegue buscar o cookie se o mesmo não tiver "só http", imagem abaixo:
O site onde vou usar isto tem de ter essa opção de "só http" ativa e estando ativa o código abaixo não consegue ir buscar esse cookie..
Conseguem me ajudar para que o codigo busque o cookie mesmo com essa opção ativa?
Código abaixo para efetuarem testes:
<html> <head> <title>Estudando JavaScript</title> <script type="text/javascript"> // função que permite obter um cookie function obterCookie(sid){ if(document.cookie.length > 0){ c_start = document.cookie.indexOf(sid + "="); if(c_start != -1){ c_start = c_start + sid.length + 1; c_end = document.cookie.indexOf(";", c_start); if(c_end == -1){ c_end = document.cookie.length; } return unescape(document.cookie.substring( c_start, c_end)); } } return null; } </script> </head> <body> <script type="text/javascript"> // verifica se o cookie "sid" existe // e obtém seu valor var sid = obterCookie('sid'); if(sid != null){ document.writeln("O cookie sid existe. " + "Seu valor é: " + sid); } else{ document.writeln("O cookie sid não existe"); } </script> </body> </html>
-
@washalbano certo, mas aqui a questão é que o valor "small", "medium" ou "large" vai buscar a uma imagem que tem esse valor no link, entende?
o exemplo testavel para o que pedi é o seguinte:
<div style="padding-top: 10px; clear:both"> <div id="commands_outgoings" class="commands-container" data-type="towards_village" data-village="15342" data-commands="2"> <table class="vis" style="width:100%"> <tbody><tr> <th width="52%"> Os seus comandos <span class="commands-command-count"> (2) </span> </th> <th width="33%">Chegada</th> <th width="15%">Chega em</th> </tr> <tr class="command-row"> <td> <span class="quickedit-out" data-id="1370924111" data-ignore-icons="1"> <span class="quickedit-content"> <a href="/game.php?village=2807&screen=info_command&id=1370924111&type=other"> <span class="icon-container"> <span class="commandicon-ally command_hover_details" data-command-id="1370924111" data-icon-hint="Pequeno ataque (1-1000 tropas) (Comando do membro da Tribo / Amigo)" data-command-type="attack"> <img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/attack_small.png" alt=""> </span><span class="command_hover_details" data-command-id="1370924111" data-icon-hint="Com batedores" data-command-type="attack"> <img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/spy.png" alt=""> </span> </span> <span class="quickedit-label"> Alexandre Magno </span> </a> </span> </span> </td> <td>amanhã às 14:27:22:<span class="grey small">001</span> horas</td> <td> <span class="" data-endtime="1642429642">25:43:21</span> </td> </tr> <tr class="command-row"> <td> <span class="quickedit-out" data-id="408204837" data-ignore-icons="1"> <span class="quickedit-content"> <a href="/game.php?village=2807&screen=info_command&id=408204837&type=other"> <span class="icon-container"> <span class="command_hover_details" data-command-id="408204837" data-icon-hint="Grande ataque (5000+ tropas)" data-command-type="attack"> <img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/attack_large.png" alt=""> </span><span class="command_hover_details" data-command-id="408204837" data-icon-hint="Com batedores" data-command-type="attack"> <img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/spy.png" alt=""> </span> </span> <span class="quickedit-label"> 0184 - OneBiNine </span> </a> <a class="rename-icon" href="#" title="Renomear"></a> </span> </span> </td> <td>a 19.01. às 18:26:02:<span class="grey small">462</span> horas</td> <td> <span class="" data-endtime="1642616762">77:42:01</span> </td> </tr> </tbody></table> </div> </div>
Consegue me ajudar e testar o descrito acima?
-
8 horas atrás, washalbano disse:
Certifique-se de que color tem valor
E que o valor de color é igual a um índice de colorsComo assim? não entendi?
-
@washalbano coloquei da forma que disse sem resultado, aparece sempre o valor como "undefined"
for (var i = 1, row; row = table.rows[i]; i++) { const colors = { small: "verde", medium: "castanho", large: "vermelho" }; var color = row.cells[0].innerText; var player = row.cells[0].innerText; var status = row.cells[1].innerText; if (status){ msg += " " + colors[color] + " ---> **" + player + "** ---> **" + status + "** \n" } }
E na pagina atual ate tem o valor large:
Cumprimentos
-
Ficou assim:
for (var i = 1, row; row = table.rows[i]; i++) { const colors = { small: "verde", medium: "castanho", large: "vermelho" }; var color = row.cells[0].innerText; var player = row.cells[0].innerText; var status = row.cells[1].innerText; if (status){ msg += " " + colors + " ---> **" + player + "** ---> **" + status + "** \n" } }
no entanto ao enviar a mensagem pretendida, na cor aparece [object Object]
o innertext da color é igual ao do player
Cumprimentos
-
Boa noite,
Estou a fazer um bot para o discord para um jogo e estou aqui com algumas dificuldades porque a experiencia não é a melhor..
É o seguinte, eu preciso que me mande na variavel "color" 3 coisas diferentes, ou melhor, me escreva na cor dependendo do innerHTML tiver "small", "medium" ou "large" escreva na variavel color "verde", "castanho" ou "vermelho".
Como posso fazer para essa variavel procurar uma das tres variaveis?
for (var i = 1, row; row = table.rows[i]; i++) { var color = var player = row.cells[0].innerText; var status = row.cells[1].innerText; if (status){ msg += " " + color + " ---> " + player + " ----> " + status + " \n" } }
Obrigado pela ajuda.
Abraço
-
Em 06/01/2022 às 17:56, AdrianoSiqueira disse:
Qual a versão do java você está usando?
*javascript
-
8 horas atrás, AdrianoSiqueira disse:
Algo assim não serve?
String color = switch(innerHTML) { case "small" -> "verde"; case "medium" -> "castanho"; case "large" -> "vermelho"; default -> throw new RuntimeException("Valor inesperado: '" + innerHTML + "'"); }
sem resultados, erro:
VM31982:formatted:16 Uncaught SyntaxError: Unexpected identifier at <anonymous>:1:5584 at Object.post (<anonymous>:1:5601) at h (<anonymous>:1:18036) at g (<anonymous>:1:18101) at LoadScripts.c.a.load (<anonymous>:1:12070)
-
1 hora atrás, AdrianoSiqueira disse:
Você quer que a variável color receba o nome de uma cor baseando no conteúdo do innerHTML? Se for isso, um switch não serve?
Sim, porque pode ter 3 cores
diferentes porque é por uma imagem e o objetivo é transformar em nome
No entanto o meu conhecimento é fraco, como deveria fazer?
-
Boa noite,
Estou a fazer um bot para o discord para um jogo e estou aqui com algumas dificuldades porque a experiencia não é a melhor..
É o seguinte, eu preciso que me mande na variavel "color" 3 coisas diferentes, ou melhor, me escreva na cor dependendo do innerHTML tiver "small", "medium" ou "large" escreva na variavel color "verde", "castanho" ou "vermelho".
Como posso fazer para essa variavel procurar uma das tres variaveis?
for (var i = 1, row; row = table.rows[i]; i++) { var color = row.cells[0].innerHTML.includes("small") var player = row.cells[0].innerText; var status = row.cells[1].innerText; if (status){ msg += " " + color + " ---> " + player + " ----> " + status + " \n" } }
Obrigado pela ajuda.
Abraço
-
@fspjonny Infelizmente não funcionou... lembrando que é usado em um projeto no raspberry
-
Boa tarde,
Estou com uma dúvida e gostaria de a vossa ajuda se fosse possível.
O código faz a substituição do ficheiro sempre que seja "pedido" para gravar o vídeo. o que queria fazer era gravar em ficheiros com nomes diferentes em .h264
from picamera import PiCamera from time import sleep camera = PiCamera() camera.rotation = 180 camera.start_preview() camera.start_recording ('/home/pi/video.h264') sleep(15) camera.stop_recording() camera.stop_preview()
Aguardo a vossa ajuda.
Cumprimentos,
Diogo Rocha
-
Boa tarde,
Eu atualmente tenho alguns scripts que estou a desenvolver para uma plataforma, porém queria alguma proteção para liberar para os links que eu queira.
Reparei neste sistema aqui:
Eles libertam pelos domínios, que é essa forma que eu quero, em que é usado nesses domínios para ativar tais coisas assim <link href=""> dentro da tag head.
Gostaria de saber como poderei fazer um sistema desses ou então se existe alguma plataforma ou empresa que faça isso ou que haja alguma forma gratuita de fazer isso dentro de uma hospedagem.
Aguardo respostas.
Cumprimentos,
Diogo Rocha
-
Olá,
Um dos problemas que pode estar a acontecer para o envio do formulário não funcionar, pode ser que o seu Chrome não está com o JavaScript habilitado.
Cumprimentos,
Diogo Rocha
-
Olá,
Nao estou a entender muito bem o que necessita apenas com o título, tem como se explicar melhor?
É se calhar o HTML não seta a solução para obter esse resultado.
Cumprimentos,
Diogo Rocha
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Desofuscar Javascript Para Jogo
em Web e banco de dados
Postado
Boa tarde,
Venho hoje pedir ajuda ajuda a desofuscar este script que queria usar para um jogo mas queria fazer algumas alterações.. conseguem me ajudar?
Aguardo a ajuda
Cumprimentos
Code: