Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Идея Удары как в игре Tekken

Да
SXrjB.gif
SXrj1.gif


Подробнее опишите логику работы плагина.
1. Что за "звёзды"?
2. Моб обязательно должен сидеть и иметь спавнер на голове?
 
Подробнее опишите логику работы плагина.
Сейчас опишу

Когда моб умирает, его можно подкидывать
За каждое комбо даётся орбы опыта

Если подкидывать много раз подряд моб улетает в небо и исчезает. За это даётся большой бонус в виде дополнительные орбов опыта

Если моб касается земли комбо сбрасывается, а сам моб исчезает
 
Последнее редактирование:
1. Что за "звёзды"?
2. Моб обязательно должен сидеть и иметь спавнер на голове?
Я пытался создать некий подобный скрипт и сделал систему звёзд. В плагине она мне не нужна
Подбрасывание должно работать на всех Entity, кроме Armor_Stand, лодок, эндер драконов, вагонеток и тд. Моб должен сидеть на мобе во время подброса
 
Нельзя сделать если этот моб игрок. На счёт зомби скорее всего это возможно
 
Я пытался создать некий подобный скрипт и сделал систему звёзд. В плагине она мне не нужна
Подбрасывание должно работать на всех Entity, кроме Armor_Stand, лодок, эндер драконов, вагонеток и тд. Моб должен сидеть на мобе во время подброса
А зачем он должен сидеть на мобе? Есть более простой способ сделать через векторы и велосити
 
А зачем он должен сидеть на мобе? Есть более простой способ сделать через векторы и велосити
Это нужно для того, что-бы отображать моба, в положение сидя
И это позволяет более тонко контолировать вектор моба, чем velocity
 
Категория плагина: Веселье

Предлагаемое название: EpicSmach

Версия сервера: Надо чтобы работало под 1.8.7

Что я хочу:
У мобов есть параметр усталости. С каждым ударом он повышается
Если усталость высокая то можно подбросить моба при ударе
Можно подбрасывать много раз подряд
Во время подброса цель не не может двигаться
Усталость может снижаться если съесть еду
Или если не атакуют

Можно даже немного упростить идею

Идеи для команд: Этому плагину команды не нужны

Идеи пермишенов: Этому плагину команды нужны

Когда мне это нужно? Не срочно, сроки не жмут

По всем вопросам отвечаю
Код:
package com.example.epicsmash;

import org.bukkit.Bukkit;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.*********ventory.ItemStack;
import org.bukkit.material.Food;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.HashMap;
import java.util.Map;

public class EpicSmashPlugin extends JavaPlugin implements Listener {

    private Map<LivingEntity, Double> mobFatigueMap = new HashMap<>();

    @Override
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onEntityDamage(EntityDamageByEntityEvent event) {
        if (event.getEntity() instanceof LivingEntity && event.getDamager() instanceof Player) {
            LivingEntity entity = (LivingEntity) event.getEntity();
            Player player = (Player) event.getDamager();
            
            // Отслеживаем усталость моба
            double fatigue = mobFatigueMap.getOrDefault(entity, 0.0);
            fatigue += 1.0; // Усталость увеличивается с каждым ударом

            // Если усталость высока, подбрасываем моба
            if (fatigue >= 5.0) {
                entity.setVelocity(entity.getVelocity().setY(1.0)); // Подбрасываем
                event.setCancelled(true); // Останавливаем дальнейшие действия при подбрасывании
            }

            // Сохраняем новый уровень усталости
            mobFatigueMap.put(entity, fatigue);
        }
    }

    @EventHandler
    public void onEntityDamage(EntityDamageEvent event) {
        if (event.getEntity() instanceof LivingEntity) {
            LivingEntity entity = (LivingEntity) event.getEntity();
            // Если моб не атакует, усталость постепенно снижается
            if (event.getCause() == EntityDamageEvent.DamageCause.ENTITY_ATTACK) {
                return;
            }
            
            double fatigue = mobFatigueMap.getOrDefault(entity, 0.0);
            fatigue -= 0.1; // Усталость снижается постепенно
            if (fatigue < 0) fatigue = 0;

            mobFatigueMap.put(entity, fatigue);
        }
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.getItem() != null && event.getItem().getType().toString().contains("COOKED")) {
            // Если игрок съел еду, усталость всех мобов на несколько единиц уменьшится
            if (event.getPlayer() != null) {
                for (LivingEntity entity : mobFatigueMap.keySet()) {
                    double fatigue = mobFatigueMap.get(entity);
                    fatigue -= 2.0; // Усталость снижается при поедании пищи
                    if (fatigue < 0) fatigue = 0;
                    mobFatigueMap.put(entity, fatigue);
                }
            }
        }
    }
}
 
Все можно сделать
И как это сделать?
Я пытался создать некий подобный скрипт и сделал систему звёзд. В плагине она мне не нужна
Подбрасывание должно работать на всех Entity, кроме Armor_Stand, лодок, эндер драконов, вагонеток и тд. Моб должен сидеть на мобе во время подброса
Плагину нужен конфиг?
 
Плагину нужен конфиг?
Да, можно

Есть пример для возможностей конфига
Код:
config:
 onbattle: true    //// Включает систему усталости и подбросы во время боя
 ondeath: true     //// Включает подбросы после смерти

velocity:
 up:                  ////  Сила отдачи по оси оY
 horizontal:   ////  Дальность по осям oZ oX


 speed:          /// На сколько быстро будет лететь ragdall
 
Я не знаю как это сделать. Думаю что это не возможно. Для меня слишком трудно понять
 
Может сделать подброс только при смерти, это будет более легко?

Так или иначе спасибо что попробовали
 
На данной версии врятли реализуемо только плугином, уже проще модификацию написать.
 

Поделиться этой страницей

Назад
Верх