Ir para conteúdo

[AJUDA] Plugin de Armas


NeoaK_GamesBR

Posts Recomendados

Fala tropa, fmz? Estou há alguns meses tentando criar ou encontrar um plugin que atenda tudo que eu quero nele. O mais proximo que eu encontrei foi o CrackShot e CrackSHot Plus. Tentei configurar ele e falhei inúmeras vezes. Vê se alguém consegue me ajudar.


Obs.: Seria pra versão 1.8.X +

Segue tudo que preciso nele:


 

🚀 PLUGIN NOVO DE ARMAS REALISTAS - ESPECIFICAÇÃO COMPLETA


1. Funcionalidades principais

🔫 Armas com balística realista

  • Balas que viajam em linha reta com velocidade configurável.

  • Recuo que afeta a mira do jogador (movimento da câmera).

  • Dano que diminui com a distância.

  • Penetração de paredes: balas atravessam blocos específicos com redução de dano.

  • Penetração de múltiplos jogadores (acerta vários alvos numa linha).

🎯 Munição realista

  • Cada arma consome munição específica, com tipos de cartuchos reais (ex: 9mm, 5.56, 7.62).

  • Municão representada como itens custom no inventário.

  • Sistema de recarga com tempo e animação sonora.

⚙️ Sistema de armas e customizações

  • Armas configuráveis por arquivo YAML/JSON (dano, cadência, recoil, penetração, som, etc).

  • Customização de acessórios (mira telescópica, silenciador, grip) que alteram stats da arma.

🎮 Interface

  • Sistema de mira: crosshair que reage ao recoil.

  • Feedback visual (partículas de bala, fumaça no disparo).

  • Sons de disparo, recarga, clique vazio.

💥 Efeitos de dano

  • Sangramento (dano ao longo do tempo).

  • Knockback (empurrar o jogador atingido).

  • Possibilidade de status (exemplo: atordoamento, desaceleração).

🔄 Economia e progressão

  • Integrar com economia para comprar munição e armas.

  • Permissões e ranks para desbloquear armas.


2. Estrutura de dados sugerida

 
yaml
 
weapons: ak47: name: "AK-47" ammo_type: "7.62x39mm" damage: 7.5 fire_rate: 600 # tiros por minuto recoil: vertical: 2.5 horizontal: 1.2 recovery: 0.5 penetration: enabled: true max_blocks: 2 damage_loss_per_block: 0.25 max_entities: 2 damage_loss_per_entity: 0.4 reload_time: 2.5 # segundos projectile_speed: 80 sound_shoot: "ak47_shoot_sound" sound_reload: "ak47_reload_sound" ammo: 7.62x39mm: item_id: "custom_ammo_7_62" stack_size: 30

3. Conceitos e lógica para implementação

3.1. Disparo da arma

  • Quando o jogador dispara:

    • Verificar se tem munição suficiente.

    • Remover munição do inventário.

    • Criar um "projectile" invisível (ex: um ray trace ou entidade custom) que viaja na direção da mira.

    • A cada tick, avançar o projectile e checar colisão com blocos e jogadores.

3.2. Penetração de paredes e jogadores

  • Para cada bloco no caminho:

    • Se o bloco é penetrável, reduzir dano e continuar.

    • Se não, para o projectile.

  • Para cada jogador no caminho:

    • Aplicar dano reduzido (baseado no dano atual do projectile).

    • Continuar até atingir o limite máximo de entidades atingidas.

3.3. Recuo

  • Após cada tiro, aplicar um deslocamento no ângulo da câmera do jogador.

  • Esse deslocamento deve ser suavizado/recover com o tempo.

3.4. Recarga

  • Jogador inicia recarga.

  • Após o tempo de recarga, munição é adicionada ao pente da arma.

  • Durante a recarga, não pode atirar.

3.5. Interface visual e sonora

  • Usar efeitos de partículas na boca da arma quando disparada.

  • Sons sincronizados com tiro e recarga.

  • Crosshair que se expande com o recoil.


4. Exemplo de pseudocódigo para disparo

 
java
 
void onPlayerShoot(Player player, Weapon weapon) { if (!playerHasAmmo(player, weapon.ammo_type)) { playSound(player, "empty_click"); return; } consumeAmmo(player, weapon.ammo_type); Vector direction = player.getLookDirection(); Projectile projectile = new Projectile(player.getEyeLocation(), direction, weapon.projectile_speed, weapon.damage); while (projectile.isActive()) { projectile.moveForward(); Block hitBlock = projectile.checkCollisionWithBlocks(); if (hitBlock != null) { if (weapon.penetration.enabled && isPenetrable(hitBlock)) { projectile.damage *= (1 - weapon.penetration.damage_loss_per_block); projectile.penetratedBlocks++; if (projectile.penetratedBlocks > weapon.penetration.max_blocks) { projectile.deactivate(); } } else { projectile.deactivate(); } } Player hitPlayer = projectile.checkCollisionWithPlayers(); if (hitPlayer != null) { hitPlayer.applyDamage(projectile.damage); projectile.entitiesHit++; if (projectile.entitiesHit >= weapon.penetration.max_entities) { projectile.deactivate(); } else { projectile.damage *= (1 - weapon.penetration.damage_loss_per_entity); } } } applyRecoil(player, weapon.recoil); playSound(player, weapon.sound_shoot); spawnParticles(player.getEyeLocation()); }

5. Extras para o plugin

  • Sistema de acessórios: Os jogadores podem comprar acessórios para as armas que melhoram recoil, dano, penetração, etc.

  • Customização visual: Skins para armas, camuflagem.

  • Logs de tiros e kills: Para monitorar stats e possíveis cheats.

  • Modo de treino: Área segura para testar armas sem perder vida.


6. Tecnologias / APIs úteis

  • Spigot API (para Minecraft Java Edition).

  • Packet listeners para manipular visão do jogador (recoil).

  • NMS (net.minecraft.server) para efeitos avançados (se necessário).

  • Libs de particulas e sons customizados.

Editado por NeoaK_GamesBR
Acrescentar versão do jogo
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...