помогите со скриптом

Тема в разделе "Newbie questions / Вопросы новичков", создана пользователем vasilachyk, 24 ноя 2017.

Статус темы:
Закрыта.
  1. vasilachyk

    vasilachyk Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    17 ноя 2017
    Сообщения:
    156
    Симпатии:
    11
    Skype:
    l2meganet.org.ua
    1 нужно пределать реген нр/cp/mp на одну кнопку
    2 добавить кнсел бафов
    package net.sf.l2j.gameserver.model.actor.instance;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.LineNumberReader;
    import java.util.List;
    import java.util.Map;
    import java.util.Iterator;
    import javolution.util.FastList;
    import javolution.util.FastMap;
    import net.sf.l2j.gameserver.datatables.SkillTable;
    import net.sf.l2j.gameserver.model.L2Effect;
    import net.sf.l2j.gameserver.model.L2ItemInstance;
    import net.sf.l2j.gameserver.model.L2Skill;
    import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    import net.sf.l2j.gameserver.model.actor.instance.L2BuffInstance;
    import net.sf.l2j.gameserver.network.SystemMessageId;
    import net.sf.l2j.gameserver.serverpackets.SystemMessage;

    public class NPCBufferInstanceInstance
    {
    public class BuffGroup
    {

    public void addSkill(int t, int f)
    {
    entries.add(new int[] {
    t, f
    });
    }

    public void setCost(int t, int f)
    {
    itemId = t;
    itemCount = f;
    }

    public int nId;
    public int itemId;
    public int itemCount;
    public List entries;

    public BuffGroup(int id)
    {
    nId = id;
    entries = new FastList();
    }
    }


    public NPCBufferInstanceInstance()
    {
    bInitialized = false;
    }

    public static NPCBufferInstanceInstance getInstance()
    {
    if(i == null)
    i = new NPCBufferInstanceInstance();
    return i;
    }

    public static Map buffs()
    {
    return buffs;
    }

    public void engineInit()
    {
    loadBuffs();
    }

    public void reload(L2PcInstance client)
    {
    loadBuffs();
    client.sendMessage((new StringBuilder("Buffer reload: entries ")).append(buffs().size()).append(", muls ").append(buffs_mul.size()).toString());
    }

    public void useRestore(L2BuffInstance jj, L2PcInstance client, String type, String after)
    {
    if(type.equalsIgnoreCase("mp"))
    {
    if(client.getAdena() < mp_restore)
    {
    jj.showChatWnd(client, after, mp_restore, 57);
    return;
    }
    client.setCurrentMp(client.getMaxMp());
    client.reduceAdena("getrestore", mp_restore, jj, true);
    }
    if(type.equalsIgnoreCase("hp"))
    {
    if(client.getAdena() < hp_restore)
    {
    jj.showChatWnd(client, after, hp_restore, 57);
    return;
    }
    client.setCurrentHp(client.getMaxHp());
    client.reduceAdena("getrestore", hp_restore, jj, true);
    }
    if(type.equalsIgnoreCase("cp"))
    {
    if(client.getAdena() < cp_restore)
    {
    jj.showChatWnd(client, after, cp_restore, 57);
    return;
    }
    client.setCurrentCp(client.getMaxCp());
    client.reduceAdena("getrestore", cp_restore, jj, true);
    }
    jj.showChatWnd(client, after);
    }

    public void useBuff(L2BuffInstance jj, L2PcInstance client, String st, String after)
    {
    if(!bInitialized)
    {
    jj.showChatErrWnd(client, after, client.isGM() ? "buffer is not initialized." : "Come back later.");
    return;
    }
    BuffGroup buff = (BuffGroup)buffs().get(Integer.valueOf(Integer.parseInt(st)));
    if(buff == null)
    {
    jj.showChatErrWnd(client, after, client.isGM() ? (new StringBuilder("template ")).append(st).append(" is null.").toString() : "Come back later.");
    return;
    }
    L2ItemInstance item = client.getInventory().getItemByItemId(buff.itemId);
    if(item == null || item.getCount() < buff.itemCount)
    {
    jj.showChatWnd(client, after, buff.itemCount, buff.itemId);
    return;
    }
    if(buff.itemId == 57)
    client.reduceAdena("getbuff", buff.itemCount, jj, true);
    else
    client.destroyItem("getbuff", item.getObjectId(), buff.itemCount, jj, true);
    int ef[];
    for(Iterator iterator = buff.entries.iterator(); iterator.hasNext(); affect(jj, client, ef))
    ef = (int[])iterator.next();

    client.updateEffectIcons();
    jj.showChatWnd(client, after);
    }

    public void affect(L2BuffInstance jj, L2PcInstance client, int effect[])
    {
    L2Skill skill = SkillTable.getInstance().getInfo(effect[0], effect[1]);
    if(skill != null)
    {
    cae(client, skill);
    skill.getEffects(jj, client);
    client.sendPacket((new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT)).addSkillName(effect[0], effect[1]));
    } else
    {
    client.sendMessage(client.isGM() ? (new StringBuilder("null skill ")).append(effect[0]).append(" lv").append(effect[1]).toString() : "You are not able to receive this effect.");
    }
    }

    private void cae(L2PcInstance client, L2Skill skill)
    {
    L2Effect al2effect[];
    int k = (al2effect = client.getAllEffects()).length;
    for(int j = 0; j < k; j++)
    {
    L2Effect ef = al2effect[j];
    if(ef.getSkill().getId() == skill.getId())
    ef.exit();
    }

    }

    private void loadBuffs()
    {
    LineNumberReader lnr;
    BuffGroup buffGroup;
    buffs = new FastMap();
    buffs_mul = new FastMap();
    mp_restore = 1001;
    cp_restore = 1001;
    hp_restore = 1001;
    String ln = null;
    lnr = null;
    buffGroup = null;
    try
    {
    lnr = new LineNumberReader(new BufferedReader(new FileReader(new File("config/npcbuffer.ini"))));
    while((ln = lnr.readLine()) != null)
    {
    if(ln.trim().length() == 0 || ln.startsWith("//"))
    continue;
    if(ln.startsWith("@param"))
    {
    String h[] = ln.split(" ");
    if(h[1].equalsIgnoreCase("cp_restore"))
    cp_restore = Integer.parseInt(h[2]);
    if(h[1].equalsIgnoreCase("hp_restore"))
    hp_restore = Integer.parseInt(h[2]);
    if(h[1].equalsIgnoreCase("mp_restore"))
    mp_restore = Integer.parseInt(h[2]);
    continue;
    }
    if(ln.contains("//"))
    {
    ln = ln.split("//")[0];
    ln = ln.replaceAll(" ", "");
    if(ln.trim().length() < 1)
    continue;
    ln = ln.replaceAll("\t", "");
    }
    String t[] = ln.split(";");
    for(int c = 0; c < t.length; c++)
    {
    String e = t[c];
    if(e.contains("="))
    {
    if(e.split("=")[0].contains("entry"))
    {
    int entryId = Integer.parseInt(e.split("=")[1]);
    buffGroup = new BuffGroup(entryId);
    }
    if(e.split("=")[0].contains("cost"))
    {
    String t2 = e.split("=")[1];
    t2 = t2.substring(1, t2.length() - 1);
    buffGroup.setCost(Integer.parseInt(t2.split(",")[0]), Integer.parseInt(t2.split(",")[1]));
    }
    } else
    {
    buffGroup.addSkill(Integer.parseInt(e.split(",")[0]), Integer.parseInt(e.split(",")[1]));
    }
    }

    if(buffGroup != null)
    buffs.put(Integer.valueOf(buffGroup.nId), buffGroup);
    }
    }
    catch (Exception e)
    {
    e.printStackTrace();
    bInitialized = false;
    }

    bInitialized = true;
    System.out.println((new StringBuilder("Buffer reload: entries ")).append(buffs().size()).append(", muls ").append(buffs_mul.size()).toString());
    return;
    }

    private static Map buffs;
    private Map buffs_mul;
    private int mp_restore;
    private int cp_restore;
    private int hp_restore;
    private static NPCBufferInstanceInstance i;
    private boolean bInitialized;
    }
     
    #1 vasilachyk, 24 ноя 2017
    Последнее редактирование: 24 ноя 2017
  2. Demoncool

    Demoncool Активный участник

    Регистрация:
    17 ноя 2017
    Сообщения:
    32
    Симпатии:
    6
    if (cmd.equalsIgnoreCase("cancel")) { client.stopAllEffects(); bFail = false; }

    тут и так есть кансел баффов
     
    vasilachyk нравится это.
  3. Demoncool

    Demoncool Активный участник

    Регистрация:
    17 ноя 2017
    Сообщения:
    32
    Симпатии:
    6
    насчет хила
    player.setCurrentHp(player.getMaxHp());
    player.setCurrentMp(player.getMaxMp());
    player.setCurrentCp(player.getMaxCp());
     
    vasilachyk нравится это.
  4. vasilachyk

    vasilachyk Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    17 ноя 2017
    Сообщения:
    156
    Симпатии:
    11
    Skype:
    l2meganet.org.ua
    помогите со скриптом
     
  5. vasilachyk

    vasilachyk Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    17 ноя 2017
    Сообщения:
    156
    Симпатии:
    11
    Skype:
    l2meganet.org.ua
    спс зделал
     
Статус темы:
Закрыта.

Партнеры