Skocz do zawartości
  • 0

FunnyGuilds pytanie


vkvbuss

Pytanie

12 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, pvndaa napisał:

^ wlasnie o tym mowie....

mam : rank-precent

i chce zeby losowo dawalo punkty, a nie wiem jaki % musze wpisac, zeby tak bylo..

Tutaj kontrybutor FunnyGuilds.
Na dzień dzisiejszy jest możliwość tylko i wyłącznie procentowego przyznawania punktów, żadna inna forma nie jest zaimplementowana.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
8 minut temu, pvndaa napisał:

^ wlasnie o tym mowie....

mam : rank-precent

i chce zeby losowo dawalo punkty, a nie wiem jaki % musze wpisac, zeby tak bylo..

package net.dzikoysk.funnyguilds.listener;

import net.dzikoysk.funnyguilds.basic.User;
import net.dzikoysk.funnyguilds.data.Messages;
import net.dzikoysk.funnyguilds.data.Settings;
import net.dzikoysk.funnyguilds.util.StringUtils;
import net.dzikoysk.funnyguilds.util.hook.PluginHook;
import net.dzikoysk.funnyguilds.util.hook.WorldGuardHook;
import net.dzikoysk.funnyguilds.util.thread.ActionType;
import net.dzikoysk.funnyguilds.util.thread.IndependentThread;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;

public class PlayerDeath implements Listener {

    private static long attackerCooldown = 7200000L;
    public static long victimCooldown = 7200000L;

    @EventHandler
    public void onDeath(PlayerDeathEvent event) {
        Player v = event.getEntity();
        Player a = event.getEntity().getKiller();

        User victim = User.get(v);
        victim.getRank().addDeath();

        if (a == null) {
            return;
        }
        User attacker = User.get(a);

        if (PluginHook.isPresent(PluginHook.PLUGIN_WORLDGUARD)) {
            if (WorldGuardHook.isOnNonPointsRegion(v.getLocation()) || WorldGuardHook.isOnNonPointsRegion(a.getLocation())) {
                return;
            }
        }

        if (attacker.getLastVictim() != null && attacker.getLastVictim().equals(victim)) {
            if (attacker.getLastVictimTime() + attackerCooldown > System.currentTimeMillis()) {
                v.sendMessage(Messages.getInstance().rankLastVictimV);
                a.sendMessage(Messages.getInstance().rankLastVictimA);
                return;
            }
        } else if (victim.getLastAttacker() != null && victim.getLastAttacker().equals(attacker)) {
            if (victim.getLastVictimTime() + victimCooldown > System.currentTimeMillis()) {
                v.sendMessage(Messages.getInstance().rankLastAttackerV);
                a.sendMessage(Messages.getInstance().rankLastAttackerA);
                return;
            }
        }
		
		Random random = new Random();
		int points = random.nextInt((50 - 10) + 1) + 10;

        victim.getRank().removePoints(points);
        victim.setLastAttacker(attacker);

        attacker.getRank().addKill();
        attacker.getRank().addPoints(points);
        attacker.setLastVictim(victim);

        if (Settings.getConfig().dataType.mysql) {
            if (victim.hasGuild()) {
                IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, victim.getGuild());
            }
            if (attacker.hasGuild()) {
                IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, attacker.getGuild());
            }
            IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, victim);
            IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, attacker);
        }

        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, victim);
        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, attacker);
        IndependentThread.actions(ActionType.RANK_UPDATE_USER, victim);
        IndependentThread.action(ActionType.RANK_UPDATE_USER, attacker);

        String death = Messages.getInstance().rankDeathMessage;
        death = StringUtils.replace(death, "{ATTACKER}", attacker.getName());
        death = StringUtils.replace(death, "{VICTIM}", victim.getName());
        death = StringUtils.replace(death, "{-}", Integer.toString(points));
        death = StringUtils.replace(death, "{+}", Integer.toString(points));
        death = StringUtils.replace(death, "{POINTS}", Integer.toString(victim.getRank().getPoints()));
        if (victim.hasGuild()) {
            death = StringUtils.replace(death, "{VTAG}",
                    StringUtils.replace(Settings.getConfig().chatGuild, "{TAG}", victim.getGuild().getTag()));
        }
        if (attacker.hasGuild()) {
            death = StringUtils.replace(death, "{ATAG}",
                    StringUtils.replace(Settings.getConfig().chatGuild, "{TAG}", attacker.getGuild().getTag()));
        }
        death = StringUtils.replace(death, "{VTAG}", "");
        death = StringUtils.replace(death, "{ATAG}", "");
        event.setDeathMessage(death);
    }

}

To jest kod klasy DeathListener, musisz go wyksportować jako plik .java, np. w Eclipsie i podmienić w pluginie, a no i tylko dodaj sobie import Random'u, bo go zapomniałem. No i znowu edytor pokazuje za dużo spacji..., jak skopiujesz będzie dobrze. Będzie losowało liczbę całkowitą od 10 do 50.

Edytowane przez KrejzolekPRO
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
15 minut temu, KrejzolekPRO napisał:

package net.dzikoysk.funnyguilds.listener;

import net.dzikoysk.funnyguilds.basic.User;
import net.dzikoysk.funnyguilds.data.Messages;
import net.dzikoysk.funnyguilds.data.Settings;
import net.dzikoysk.funnyguilds.util.StringUtils;
import net.dzikoysk.funnyguilds.util.hook.PluginHook;
import net.dzikoysk.funnyguilds.util.hook.WorldGuardHook;
import net.dzikoysk.funnyguilds.util.thread.ActionType;
import net.dzikoysk.funnyguilds.util.thread.IndependentThread;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;

public class PlayerDeath implements Listener {

    private static long attackerCooldown = 7200000L;
    public static long victimCooldown = 7200000L;

    @EventHandler
    public void onDeath(PlayerDeathEvent event) {
        Player v = event.getEntity();
        Player a = event.getEntity().getKiller();

        User victim = User.get(v);
        victim.getRank().addDeath();

        if (a == null) {
            return;
        }
        User attacker = User.get(a);

        if (PluginHook.isPresent(PluginHook.PLUGIN_WORLDGUARD)) {
            if (WorldGuardHook.isOnNonPointsRegion(v.getLocation()) || WorldGuardHook.isOnNonPointsRegion(a.getLocation())) {
                return;
            }
        }

        if (attacker.getLastVictim() != null && attacker.getLastVictim().equals(victim)) {
            if (attacker.getLastVictimTime() + attackerCooldown > System.currentTimeMillis()) {
                v.sendMessage(Messages.getInstance().rankLastVictimV);
                a.sendMessage(Messages.getInstance().rankLastVictimA);
                return;
            }
        } else if (victim.getLastAttacker() != null && victim.getLastAttacker().equals(attacker)) {
            if (victim.getLastVictimTime() + victimCooldown > System.currentTimeMillis()) {
                v.sendMessage(Messages.getInstance().rankLastAttackerV);
                a.sendMessage(Messages.getInstance().rankLastAttackerA);
                return;
            }
        }
		
		Random random = new Random();
		int points = random.nextInt((50 - 10) + 1) + 10;

        victim.getRank().removePoints(points);
        victim.setLastAttacker(attacker);

        attacker.getRank().addKill();
        attacker.getRank().addPoints(points);
        attacker.setLastVictim(victim);

        if (Settings.getConfig().dataType.mysql) {
            if (victim.hasGuild()) {
                IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, victim.getGuild());
            }
            if (attacker.hasGuild()) {
                IndependentThread.actions(ActionType.MYSQL_UPDATE_GUILD_POINTS, attacker.getGuild());
            }
            IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, victim);
            IndependentThread.actions(ActionType.MYSQL_UPDATE_USER_POINTS, attacker);
        }

        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, victim);
        IndependentThread.actions(ActionType.DUMMY_GLOBAL_UPDATE_USER, attacker);
        IndependentThread.actions(ActionType.RANK_UPDATE_USER, victim);
        IndependentThread.action(ActionType.RANK_UPDATE_USER, attacker);

        String death = Messages.getInstance().rankDeathMessage;
        death = StringUtils.replace(death, "{ATTACKER}", attacker.getName());
        death = StringUtils.replace(death, "{VICTIM}", victim.getName());
        death = StringUtils.replace(death, "{-}", Integer.toString(points));
        death = StringUtils.replace(death, "{+}", Integer.toString(points));
        death = StringUtils.replace(death, "{POINTS}", Integer.toString(victim.getRank().getPoints()));
        if (victim.hasGuild()) {
            death = StringUtils.replace(death, "{VTAG}",
                    StringUtils.replace(Settings.getConfig().chatGuild, "{TAG}", victim.getGuild().getTag()));
        }
        if (attacker.hasGuild()) {
            death = StringUtils.replace(death, "{ATAG}",
                    StringUtils.replace(Settings.getConfig().chatGuild, "{TAG}", attacker.getGuild().getTag()));
        }
        death = StringUtils.replace(death, "{VTAG}", "");
        death = StringUtils.replace(death, "{ATAG}", "");
        event.setDeathMessage(death);
    }

}

To jest kod klasy DeathListener, musisz go wyksportować jako plik .java, np. w Eclipsie i podmienić w pluginie, a no i tylko dodaj sobie import Random'u, bo go zapomniałem. No i znowu edytor pokazuje za dużo spacji..., jak skopiujesz będzie dobrze. Będzie losowało liczbę całkowitą od 10 do 50.

Czemu pogarszasz tego raka? W dodatku co chwile tworzysz nowego Randoma, czego się nie robi, ze względu na wydajność.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
11 minut temu, Wizzard napisał:

Czemu pogarszasz tego raka? W dodatku co chwile tworzysz nowego Randoma, czego się nie robi, ze względu na wydajność.

No tak, mogłem go zapisać wyżej, aby nie zaśmiecać pamięci, ale powiedzmy sobie szczerze. Czy myślisz, że autor tematu ma tak zaawansowany serwer z taką ilością graczy, że ta jedna linijka obniży wydajność makabrycznie?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1
4 minuty temu, KrejzolekPRO napisał:

No tak, mogłem go zapisać wyżej, aby nie zaśmiecać pamięci, ale powiedzmy sobie szczerze. Czy myślisz, że autor tematu ma tak zaawansowany serwer z taką ilością graczy, że ta jedna linijka obniży wydajność makabrycznie?

Zawsze należy tak zakładać, zawsze.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...