123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- event.load("living_tame");
- event.load("entity_damage");
- event.load("entity_heal");
- event.load("entity_spawn");
- entities_list = list.new();
- permanent_name = set.new();
- set.add(permanent_name, "villager");
- set.add(permanent_name, "wandering_trader");
- permanent_tamed_name = set.new();
- set.add(permanent_tamed_name, "wolf");
- set.add(permanent_tamed_name, "cat");
- set.add(permanent_tamed_name, "horse");
- set.add(permanent_tamed_name, "donkey");
- set.add(permanent_tamed_name, "mule");
- set.add(permanent_tamed_name, "skeleton_horse");
- set.add(permanent_tamed_name, "zombie_horse");
- set.add(permanent_tamed_name, "parrot");
- msg.string("dev", "§bDamage §rloaded.");
- @wait
- wait();
- ignoreGoto(event);
- goto("wait");
- @living_tame
- if(!isPlayer(living_entity)) {
- if(list.getSize(entities_list) == 0) {
- sgoto(2, "sgoto_updateEntityName");
- }
- list.add(entities_list, living_entity);
- }
- goto("wait");
- @entity_spawn
- if(isLiving(entity) && !isPlayer(entity)) {
- updateEntityName(entity);
- }
- goto("wait");
- @entity_heal
- if(isPlayer(entity) || !isLiving(entity)) {
- goto("wait");
- }
- if(list.getSize(entities_list) == 0) {
- sgoto(2, "sgoto_updateEntityName");
- }
- list.add(entities_list, entity);
- goto("wait");
- @entity_damage
- if(isPlayer(entity) || !isLiving(entity)) {
- goto("wait");
- }
- if(list.getSize(entities_list) == 0) {
- sgoto(2, "sgoto_updateEntityName");
- }
- list.add(entities_list, entity);
- goto("wait");
- @sgoto_updateEntityName
- iter = iterator(entities_list);
- while(hasNext(iter)) {
- updateEntityName(next(iter));
- }
- list.clear(entities_list);
- goto("wait");
- function updateEntityName(entity) {
- if(!isLiving(entity)) {
- return;
- }
- living_entity = entity;
- entity_type = entity.getType(living_entity);
- if(entity_type == "armor_stand" || isCitizen(entity)) {
- return;
- }
- entity_name = entity.getName(living_entity);
- if(entity_name == null) {
- string_name = "";
- } else {
- string_name = string.text(entity_name);
- }
- max_health = living.getMaxHealth(living_entity);
- health = string.number(math.round(living.getHealth(living_entity)));
- max_health = string.number(math.roundComma(max_health, 1));
-
- heart_index = string.indexOf(string_name, "❤", 0);
- if(heart_index == -1) {
- //Kein Herz gefunden
- setEntityName(living_entity, health, max_health, string_name);
- return;
- }
-
- if(heart_index == 2) {
- //Links vom Herz kein Name
- setEntityName(living_entity, health, max_health, null);
- return;
- }
- if(heart_index < 2) {
- return;
- }
- string_name = string.subString(string_name, 0, heart_index - 2);
- setEntityName(living_entity, health, max_health, string_name);
- }
- function setEntityName(living_entity, health, max_health, string_name) {
- entity_type = entity.getType(living_entity);
- permanent = false;
- if(set.contains($permanent_name, entity_type)) {
- permanent = true;
- } elseif(set.contains($permanent_tamed_name, entity_type)) {
- if(pet.isTamed(living_entity)) {
- permanent = true;
- }
- }
- if(string_name == null || string_name == "") {
- entity.setName(living_entity, text.new(string.concat("§c❤§r", health)), permanent);
- return;
- }
- if(string.contains(string_name, "Boss")) {
- permanent = true;
- }
- entity.setName(living_entity, text.merge(text.new(string.trim(string_name)), text.new(string.concat(" §c❤§r", health))), permanent);
- }
|