Ir para conteúdo
  • Cadastre-se
  • 0

mod Aio Item mod da Sarada


Voldigoad

Pergunta

como faço para retirar a características especiais do nick [AIO] quando o período dele acabar ???

activeChar.setName("[AIO]-" + activeChar.getName());

Agora, Denner Matos disse:

como faço para retirar a características especiais do nick [AIO] quando o período dele acabar ???

activeChar.setName("[AIO]-" + activeChar.getName());

 

 

 

package com.l2jfrozen.gameserver.handler.itemhandlers;
import java.util.Calendar;
import java.util.StringTokenizer;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.handler.IItemHandler;
import com.l2jfrozen.gameserver.model.L2Character;
import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
import com.l2jfrozen.gameserver.network.serverpackets.EtcStatusUpdate;
/**
 * 
 * @author Computer Sarada
 *
 */
public class AioItem implements IItemHandler
{
     private static final int ITEM_IDS[] = { Config.AIO_ITEM,  Config.AIO_ITEM2, Config.AIO_ITEM3};
    
    @Override
    public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
    {
        if (!(playable instanceof L2PcInstance))
            return;

        L2PcInstance activeChar = (L2PcInstance)playable;

        int itemId = item.getItemId();

        if (itemId == Config.AIO_ITEM)
        {
            if (activeChar.isInOlympiadMode())
            {
                activeChar.sendMessage("This item cannot be used on Olympiad Games.");
                return;
            }
            else if (!activeChar.isInsideZone(L2Character.ZONE_PEACE)){
                activeChar.sendMessage("You can only use this item in peace zone..");
                return;
            }
            if (activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false))
            {
                if (activeChar.isAio())
                {
                    long daysleft = (activeChar.getAioEndTime() - Calendar.getInstance().getTimeInMillis()) / 86400000L;
                    activeChar.setEndTime("aio", (int)(daysleft + Config.AIO_DIAS));
                    activeChar.sendMessage("Congratulations, You just received another " + Config.AIO_DIAS + " day of AIO.");
                }
                else
                {
                    activeChar.setAio(true);
                    activeChar.setEndTime("aio", Config.AIO_DIAS);
                    activeChar.sendMessage("Congrats, you just became AIO per " + Config.AIO_DIAS + " day.");
                }

                if (Config.ALLOW_AIO_NCOLOR && activeChar.isAio())
                    activeChar.getAppearance().setNameColor(Config.AIO_NCOLOR);

                if (Config.ALLOW_AIO_TCOLOR && activeChar.isAio()) 
                activeChar.getAppearance().setTitleColor(Config.AIO_TCOLOR);
                activeChar.getStat().addExp(activeChar.getStat().getExpForLevel(81));
                activeChar.rewardAioSkills();
                activeChar.setName("[AIO]-" + activeChar.getName());
                
                activeChar.broadcastUserInfo();
                activeChar.sendPacket(new EtcStatusUpdate(activeChar));
            }
            }
        
        else    if (itemId == Config.AIO_ITEM2)
            {
            if (activeChar.isInOlympiadMode())
            {
                activeChar.sendMessage("This item cannot be used on Olympiad Games.");
                return;
            }
            else if (!activeChar.isInsideZone(L2Character.ZONE_PEACE)){
                activeChar.sendMessage("You can only use this item in peace zone..");
                return;
            }
            if (activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false))
            {
                if (activeChar.isAio())
                {
                    long daysleft = (activeChar.getAioEndTime() - Calendar.getInstance().getTimeInMillis()) / 86400000L;
                    activeChar.setEndTime("aio", (int)(daysleft + Config.AIO_DIAS2));
                    activeChar.sendMessage("Congratulations, You just received another " + Config.AIO_DIAS2 + " day of AIO.");
                }
                else
                {
                    activeChar.setAio(true);
                    activeChar.setEndTime("aio", Config.AIO_DIAS2);
                    activeChar.sendMessage("Congrats, you just became AIO per " + Config.AIO_DIAS2 + " day.");
                }

                if (Config.ALLOW_AIO_NCOLOR && activeChar.isAio())
                    activeChar.getAppearance().setNameColor(Config.AIO_NCOLOR);

                if (Config.ALLOW_AIO_TCOLOR && activeChar.isAio()) 
                activeChar.getAppearance().setTitleColor(Config.AIO_TCOLOR);
                activeChar.getStat().addExp(activeChar.getStat().getExpForLevel(81));
                activeChar.rewardAioSkills();
                activeChar.setName("[AIO]-" + activeChar.getName());
                
                activeChar.broadcastUserInfo();
                activeChar.sendPacket(new EtcStatusUpdate(activeChar));
                }
                }
        
            else if (itemId == Config.AIO_ITEM3)
            {
            if (activeChar.isInOlympiadMode())
            {
                activeChar.sendMessage("This item cannot be used on Olympiad Games.");
                return;
            }
            else if (!activeChar.isInsideZone(L2Character.ZONE_PEACE)){
                activeChar.sendMessage("You can only use this item in peace zone..");
                return;
            }
            if (activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false))
            {
                if (activeChar.isAio())
                {
                    long daysleft = (activeChar.getAioEndTime() - Calendar.getInstance().getTimeInMillis()) / 86400000L;
                    activeChar.setEndTime("aio", (int)(daysleft + Config.AIO_DIAS3));
                    activeChar.sendMessage("Congratulations, You just received another " + Config.AIO_DIAS3 + " day of AIO.");
                }
                else
                {
                    activeChar.setAio(true);
                    activeChar.setEndTime("aio", Config.AIO_DIAS3);
                    activeChar.sendMessage("Congrats, you just became AIO per " + Config.AIO_DIAS3 + " day.");
                }

                if (Config.ALLOW_AIO_NCOLOR && activeChar.isAio())
                    activeChar.getAppearance().setNameColor(Config.AIO_NCOLOR);

                if (Config.ALLOW_AIO_TCOLOR && activeChar.isAio()) 
                activeChar.getAppearance().setTitleColor(Config.AIO_TCOLOR);
                activeChar.getStat().addExp(activeChar.getStat().getExpForLevel(81));
                activeChar.rewardAioSkills();
                activeChar.setName("[AIO]-" + activeChar.getName());

                activeChar.broadcastUserInfo();
                activeChar.sendPacket(new EtcStatusUpdate(activeChar));
            }
        }
    }
    @Override
    public int[] getItemIds()
     {
             return ITEM_IDS;
     }
     }

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts recomendados

  • 0

nem usa essa função de novo nome, porque ele não da aparência do nome e sim altera, ai quando tiver no modo aio, o outro cara pode criar um char com nick antigo do personagem, até esqueci de remover isso, obrigado por avisar.

Se você quer opinar em usar um novo nome, melhor adicionar em charinfo e userinfo como aparência do char, mas o nome original vai esta presente quando acabar o período, estilo skin ta ligado? segue aqui

fiz manual, não testei, testa e me diz, mas dessa forma, o nome vai está original no personagem, mas os outros ve como novo nome ,estilo skin saco ?

Spoiler

 

CharInfo.java

-writeS(_activeChar.getName());
+if (Config.ALLOW_AIO_NAME && _activeChar.isAio())
+{
+writeS(Config.AIO_NAME + _activeChar.getName());
+}
+else
+{
+writeS(_activeChar.getName());
+}

writeD(_heading);
writeD(_activeChar.getObjectId());
-writeS(_activeChar.getName());
+if (Config.ALLOW_AIO_NAME && _activeChar.isAio())
+{
+writeS(Config.AIO_NAME + _activeChar.getName());
+}
+else
+{
+writeS(_activeChar.getName());
+}

Userinfo.java

-writeS(_activeChar.getName());
+if (Config.ALLOW_AIO_NAME && _activeChar.isAio())
+{
+writeS(Config.AIO_NAME + _activeChar.getName());
+}
+else
+{
+writeS(_activeChar.getName());
+}
writeD(_activeChar.getRace().ordinal());
writeD(_activeChar.getAppearance().getSex() ? 1 : 0);


Config.java

+public static boolean ALLOW_AIO_NAME;
+public static String AIO_NAME;
+ALLOW_AIO_NAME = Boolean.parseBoolean(exemplo.getProperty("AllowAioNick", "true"));
+AIO_NAME = exemplo.getProperty("AioName", "[Aio]");


Propriedade escolhe qual voce quer usar e coloca codigo
AllowAioNick = true
AioName = [AIO]-
 

 

 

 

Editado por Sarada
Link para o comentário
Compartilhar em outros sites


  • 0
9 horas atrás, Sarada disse:

nem usa essa função de novo nome, porque ele não da aparência do nome e sim altera, ai quando tiver no modo aio, o outro cara pode criar um char com nick antigo do personagem, até esqueci de remover isso, obrigado por avisar.

Se você quer opinar em usar um novo nome, melhor adicionar em charinfo e userinfo como aparência do char, mas o nome original vai esta presente quando acabar o período, estilo skin ta ligado? segue aqui

fiz manual, não testei, testa e me diz, mas dessa forma, o nome vai está original no personagem, mas os outros ve como novo nome ,estilo skin saco ?

Funcionou Sim! muito obrigado... 

tanto a primeira como a segunda tela ve o nick novo

testei e funfou ambas telas abertas
mas uma vez obrigadão 

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.