1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

NoCritical Bug

Discussion in 'Development' started by Emis02, Sep 22, 2019.

  1. Emis02

    Emis02 Spider Jockey

    Messages:
    34
    GitHub:
    RubyTemple
    Hi,
    Can anyone tell me how it is possible to get critics off on a server? (a normal hit and a critical hit do the same damage) I have try to do $event->setModifier(0.0, EntityDamageEvent::MODIFIER_CRITICAL)); but the critics heal me..

    My Code:
    PHP:
    /**
         * @param EntityDamageEvent $event
         */
        
    public function damageHandler(EntityDamageEvent $event)
        {
            
    $entity $event->getEntity();
            if (
    $entity instanceof Player) {
                
    //if ($event instanceof EntityDamageByEntityEvent) {
                    
    if ($entity->getLevel()->getFolderName() !== "fazioninew" and $entity->getLevel()->getFolderName() !== "teanther" and $entity->getLevel()->getFolderName() !== "ender") {
                        
    var_dump("Prima: " $event->getModifier(EntityDamageEvent::MODIFIER_CRITICAL) . "\n");
                        
    //if ($event->getModifier(EntityDamageEvent::MODIFIER_CRITICAL) > 0)
                        
    $event->setModifier(0EntityDamageEvent::MODIFIER_CRITICAL);
                        
    var_dump("Dopo: " $event->getModifier(EntityDamageEvent::MODIFIER_CRITICAL) . "\n");
                    }
                
    //}
                
    if (in_array($entity->getLevel()->getFolderName(), self::PROTECTION[$event->getCause()] ?? [])) {
                    
    $event->setCancelled();
                    if (
    $entity->getLevel()->getFolderName() == "spawn1") {
                        
    $entity->teleport($this->getServer()->getDefaultLevel()->getSafeSpawn());
                    }
                }
                if (
    $entity->getLevel()->getFolderName() === "SumoFFA") {
                    if (
    $event->getCause() === EntityDamageEvent::CAUSE_ENTITY_ATTACK) {
                        
    $entity->setHealth($entity->getMaxHealth());
                    }
                }
                if (!
    $entity->hasPermission("thq.fly")) {
                    if (
    $event instanceof EntityDamageByEntityEvent) {
                        
    $damager $event->getDamager();
                        if (
    $damager instanceof Player and $entity->isFlying()) {
                            
    $entity->setAllowFlight(false);
                            
    $entity->setFlying(false);
                            
    $entity->sendMessage($this->getTranslatedMessage($entity"no-pvp-fly"));
                            if (
    $damager->isFlying()) {
                                
    $damager->setAllowFlight(false);
                                
    $damager->setFlying(false);
                                
    $damager->sendMessage($this->getTranslatedMessage($damager"no-pvp-fly"));
                            }
                            if (
    $event instanceof EntityDamageByChildEntityEvent) {
                                
    $child $event->getChild();
                                if (
    $child instanceof Arrow) {
                                    
    $entity->setAllowFlight(false);
                                    
    $entity->setFlying(false);
                                    
    $entity->sendMessage($this->getTranslatedMessage($damager"no-pvp-fly"));
                                    if (
    $damager->isFlying()) {
                                        
    $damager->setAllowFlight(false);
                                        
    $damager->setFlying(false);
                                        
    $damager->sendMessage($this->getTranslatedMessage($damager"no-pvp-fly"));
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        
    /**
         * @param PlayerExhaustEvent $event
         */
        
    public function onHunger(PlayerExhaustEvent $event)
        {
            if (
    $event->getPlayer()->getLevel()->getFolderName() !== "fazioninew") { //era mercurio
                
    $event->setCancelled(true);
            }
        }
    Thanks all.
     
    Last edited: Sep 22, 2019
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.