Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Npc Chatty Guard freya to high five (Re-hecho)

Iniciado por Swarlog, Ago 11, 2022, 01:31 AM

Tema anterior - Siguiente tema

Swarlog

Lineage2 L2JServer hf

scripts.cfg
startGameServer.bat / -Dfile.encoding=UTF8 (soporte para el idioma Ruso)
-- data/scripts/ai/group_template/ChattyGuard.java
===================================================|

/*
 * Copyright (C) 2004-2018 L2J DataPack
 *
 * This file is part of L2J DataPack.
 *
 * L2J DataPack is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * L2J DataPack is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
 
/** Autor Tomalko
 */

package ai.group_template;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ai.npc.AbstractNpcAI;

import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.util.Rnd;

public final class ChattyGuard extends AbstractNpcAI
{
private static final Logger LOG = LoggerFactory.getLogger(ChattyGuard.class);
private static final int CHANCE = 10;
private static final long INT_SEARCH = 15000L;
private static final int RADIOS = 1000;
private static final int[] NPCS = {
30216, 30217, 30218, 30219, 30220, 30221, 30346, 30347,
30348, 30349, 32175, 32176, 32177, 32178, 32179, 32180,
30541, 30542, 30543, 30544, 30545, 30546, 30547, 30548,
30577, 30578, 30579, 30580, 30581, 30582, 30039, 30040,
30041, 30042, 30043, 30044, 30045, 30046, 30379, 30380,
30381, 30382, 30383, 30384, 30385, 30386, 30331, 32479,
30333, 30334, 30335, 30336, 30337, 30338, 30072, 30073,
30074, 30075, 30076, 30465, 30466, 32480, 30200, 30201,
30198, 30199, 30197, 32482, 30121, 30122, 30123, 30124,
30125, 30126, 30128, 30452, 30478, 30709, 30710, 30711,
30712, 30713, 30714, 30870, 30871, 30872, 30873, 30874,
30875, 30876, 30877, 31294, 31295, 31296, 31297, 31298,
31299, 31983, 31984, 31985, 31986, 31987, 31988, 31343,
31342, 31344, 31345, 31346, 31347, 30918, 30919, 30922,
30923,
};
private static final String[] TMMSG = {
"{name}, есть чо?",
"{name}, привет!",
"{name}, привет пративный.",
"{name}, дай оружие на минутку, хочу скрин сделать.",
"{name}, удачной охоты.",
"{name}, в чем сила, брат?",
"{name}, больше фрагов тебе.",
"{name}, ты мне в кошмарах снился.",
"{name}, я тебя знаю - тебя давно разыскивают за убийства невинных монстров.",
"{name}, пвп или засцал?",
"{name}, у тебя кошелек выпал.",
"{name}, не пойду я с тобой на свидание, даже не проси.",
"Всем чмоке в этом чате."
};
private static final String[] TFMSG = {
"{name}, привет красавица.",
"{name}, ух ты, какие у тебя... э... глаза.",
"{name}, не хочешь погулять с настоящим мачо?",
"{name}, привет!",
"{name}, дай потрогать... э... ну вобщем дай чего нибудь потрогать.",
"{name}, не женское это дело - врагов убивать.",
"{name}, у тебя верх порвался, не свети... глазками.",
"{name}, ах какие булочки...",
"{name}, ах какие ножки...",
"{name}, да ты красотка однако.",
"{name}, вах, какая женщина, мне бы такую.",
"{name}, а что вы делаете сегодня вечером?",
"{name}, вы согласны что с точки зрения банальной эрудиции, не всякий локально селектированный индивидуум способен игнорировать тенденции потенциальных эмоций и паритетно аллоцировать амбивалентные кванты логистики, экстрагируемой с учетом антропоморфности эвристического генезиса?",
"{name}, предлагаю руку и сердце. И кошелек после свадьбы."
};
//private static final String[] TMMSG_K = {};
//private static final String[] TFMSG_K = {};

public ChattyGuard()
{
super(ChattyGuard.class.getSimpleName(), "ai/group_template");
addSpawnId(NPCS);
}

@Override
public String onSpawn(L2Npc npc)
    {
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
{
@Override
public void run()
{
try
{
if (Rnd.get(100) < CHANCE)
{
List<L2Character> players = npc.getKnownList().getKnownCharactersInRadius(RADIOS);
if (players != null && players.size() > 0)
{
L2Character player = players.get(Rnd.get(0, players.size() - 1));
if (player instanceof L2PcInstance)
{
L2PcInstance pl = (L2PcInstance) player;
if (pl.getKarma() == 0)
{
if (pl.getAppearance().getSex())
{
broadcastNpcSay(npc, Say2.NPC_ALL, String.valueOf(TFMSG[Rnd.get(0, TFMSG.length - 1)].replace("{name}", pl.getName())));
}
else
{
broadcastNpcSay(npc, Say2.NPC_ALL, String.valueOf(TMMSG[Rnd.get(0, TMMSG.length - 1)].replace("{name}", pl.getName())));
}

}
/*else if (pl.getKarma() >= 1)
{
if (pl.getAppearance().getSex())
{
broadcastNpcSay(npc, Say2.NPC_ALL, String.valueOf(TFMSG_K[Rnd.get(0, TFMSG_K.length - 1)].replace("{name}", pl.getName())));
}
else
{
broadcastNpcSay(npc, Say2.NPC_ALL, String.valueOf(TMMSG_K[Rnd.get(0, TMMSG_K.length - 1)].replace("{name}", pl.getName())));
}
}*/
}
}
return;
}
}
catch (Throwable t)
{
LOG.info("Error while ChattyGuard(): {}", t.getMessage());
}
}
}, INT_SEARCH, INT_SEARCH);
return super.onSpawn(npc);
}

public static void main(String[] args)
{
new ChattyGuard();
}
}