Fake players for HighFive.
This commit is contained in:
24
L2J_Mobius_CT_2.6_HighFive/dist/game/data/FakePlayerChatData.xml
vendored
Normal file
24
L2J_Mobius_CT_2.6_HighFive/dist/game/data/FakePlayerChatData.xml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Use lowercase for searchText and answers. -->
|
||||
<!-- You can use specific fpcName or ALL to use with all fpcs. -->
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/FakePlayerChatData.xsd">
|
||||
<fakePlayerChat fpcName="ALL" searchMethod="EQUALS" searchText="hi" answers="hello;hi;hi there;hello there" />
|
||||
<fakePlayerChat fpcName="ALL" searchMethod="EQUALS" searchText="hey" answers="hey hey;hey;hey there" />
|
||||
<fakePlayerChat fpcName="ALL" searchMethod="EQUALS" searchText="hello" answers="hello;hi;hi there;hello there" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="here?" answers="yes;busy;i look for something" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="whats up?" answers="good;busy;i look for something" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="what?" answers="something :P;something for me" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="why?" answers="because;i don't know;what?" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="really" answers="really;yes;of course" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="thanks" answers=":);:D;:*" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="EQUALS" searchText="thank you" answers=":);:D;:*" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="STARTS_WITH" searchText="how are you" answers="fine;good;busy" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="STARTS_WITH" searchText="do you know" answers="nope;no sorry;nope, i don't" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="STARTS_WITH" searchText="where can i" answers="i don't know;no clue;ask someone else :P" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="STARTS_WITH" searchText="can i ask you" answers="yes;what?;tell me" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="CONTAINS" searchText="server;ha;problem" answers="it's good;i don't know;i don't think so..." />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="CONTAINS" searchText="server;ha;bug" answers="it's good;i don't know;i don't think so..." />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="CONTAINS" searchText="is th;server;good" answers="it's good :D;i like it :P;yes it is :)" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="CONTAINS" searchText="where;you;go;?" answers="i look for something;checking stuff;looking for curius people :P" />
|
||||
<fakePlayerChat fpcName="Evi" searchMethod="CONTAINS" searchText="are;you;kidding" answers="^^;:D;:P" />
|
||||
</list>
|
||||
14
L2J_Mobius_CT_2.6_HighFive/dist/game/data/FakePlayerVisualData.xml
vendored
Normal file
14
L2J_Mobius_CT_2.6_HighFive/dist/game/data/FakePlayerVisualData.xml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Values that can be set:
|
||||
int classId, int hair, int hairColor, int face, int nameColor, int titleColor, int equipRHand, int equipLHand, int equipHead,
|
||||
int equipGloves, int equipChest, int equipLegs, int equipFeet, int equipCloak, int equipHair, int equipHair2, int agathionId,
|
||||
int weaponEnchantLevel, int armorEnchantLevel, boolean fishing, int baitLocationX, int baitLocationY, int baitLocationZ,
|
||||
int recommends, int nobleLevel, boolean hero, int clanId, int pledgeStatus -->
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/FakePlayerVisualData.xsd">
|
||||
<!-- Non-Combat -->
|
||||
<fakePlayer npcId="80000" classId="107" hair="1" hairColor="0" face="0" equipRHand="5706" equipHead="2419" equipGloves="5774" equipChest="2383" equipFeet="5786" />
|
||||
|
||||
<!-- Combat -->
|
||||
<!-- Duelist -->
|
||||
<fakePlayer npcId="81001" classId="88" hair="0" hairColor="0" face="0" equipRHand="5706" equipHead="2419" equipGloves="5774" equipChest="2383" equipFeet="5786" />
|
||||
</list>
|
||||
@@ -9,15 +9,37 @@
|
||||
<!-- npcStringId = to use String IDs from client NpcString-e.dat -->
|
||||
<!-- string = to use any custom text, example: string="Hello World" -->
|
||||
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/Routes.xsd">
|
||||
<!-- Just test route - Giran town square -->
|
||||
<route name="test_route" repeat="true" repeatStyle="cycle">
|
||||
<point X="80863" Y="148339" Z="-3469" delay="0" run="true" />
|
||||
<point X="80904" Y="147653" Z="-3469" delay="0" run="true" />
|
||||
<point X="83205" Y="147646" Z="-3469" delay="0" run="true" />
|
||||
<point X="82189" Y="148347" Z="-3467" delay="0" run="true" />
|
||||
<point X="81862" Y="148266" Z="-3467" delay="0" run="true" />
|
||||
<point X="81918" Y="148352" Z="-3467" delay="0" run="true" />
|
||||
<point X="81937" Y="149173" Z="-3469" delay="0" run="true" />
|
||||
<route name="FPC_Giran_Evi" repeat="true" repeatStyle="cycle">
|
||||
<target id="80000" spawnX="83485" spawnY="147998" spawnZ="-3407" />
|
||||
<point X="83485" Y="147998" Z="-3407" delay="10" run="true" /> <!-- Gatekeeper -->
|
||||
<point X="82853" Y="148022" Z="-3470" delay="0" run="true" />
|
||||
<point X="82117" Y="147642" Z="-3469" delay="0" run="true" />
|
||||
<point X="82084" Y="147569" Z="-3469" delay="12" run="true" /> <!-- Olympiad Manager -->
|
||||
<point X="81532" Y="147578" Z="-3469" delay="0" run="true" />
|
||||
<point X="81593" Y="146626" Z="-3533" delay="3" run="true" />
|
||||
<point X="81932" Y="146566" Z="-3533" delay="0" run="true" />
|
||||
<point X="82651" Y="146714" Z="-3466" delay="20" run="true" /> <!-- Dimesional Merchant -->
|
||||
<point X="82807" Y="146649" Z="-3465" delay="0" run="true" />
|
||||
<point X="83192" Y="146680" Z="-3464" delay="28" run="true" /> <!-- Warehouse -->
|
||||
<point X="83198" Y="146731" Z="-3469" delay="88" run="true" /> <!-- Warehouse 2 -->
|
||||
<point X="81659" Y="146555" Z="-3533" delay="3" run="true" />
|
||||
<point X="81283" Y="145519" Z="-3533" delay="0" run="true" />
|
||||
<point X="80201" Y="145826" Z="-3524" delay="0" run="true" />
|
||||
<point X="79968" Y="145826" Z="-3497" delay="0" run="true" />
|
||||
<point X="79781" Y="145546" Z="-3496" delay="0" run="true" />
|
||||
<point X="79736" Y="145518" Z="-3495" delay="0" run="true" />
|
||||
<point X="79663" Y="145529" Z="-3496" delay="40" run="true" /> <!-- Galladucci -->
|
||||
<point X="79661" Y="145429" Z="-3495" delay="80" run="true" /> <!-- Alexandria -->
|
||||
<point X="79999" Y="145152" Z="-3496" delay="0" run="true" />
|
||||
<point X="80393" Y="145136" Z="-3533" delay="0" run="true" />
|
||||
<point X="81061" Y="145563" Z="-3533" delay="0" run="true" />
|
||||
<point X="81563" Y="145532" Z="-3533" delay="3" run="true" />
|
||||
<point X="81517" Y="147231" Z="-3533" delay="0" run="true" />
|
||||
<point X="81542" Y="147570" Z="-3469" delay="0" run="true" />
|
||||
<point X="81139" Y="148567" Z="-3469" delay="0" run="true" />
|
||||
<point X="81413" Y="149700" Z="-3469" delay="52" run="true" /> <!-- Clan Hall Managers -->
|
||||
<point X="82815" Y="148840" Z="-3469" delay="3" run="true" />
|
||||
<point X="83318" Y="148422" Z="-3406" delay="0" run="true" />
|
||||
</route>
|
||||
<!-- Hellbound Town routes for Patrols -->
|
||||
<route name="castletownguard01" repeat="true" repeatStyle="random">
|
||||
|
||||
80
L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FakePlayers/PvpFlaggingStopTask.java
vendored
Normal file
80
L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FakePlayers/PvpFlaggingStopTask.java
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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/>.
|
||||
*/
|
||||
package custom.FakePlayers;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.model.L2Object;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* TODO: Move it to L2Character.
|
||||
* @author Mobius
|
||||
*/
|
||||
public class PvpFlaggingStopTask extends AbstractNpcAI
|
||||
{
|
||||
private PvpFlaggingStopTask()
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if ((npc == null) || npc.isDead())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (event.startsWith("FLAG_CHECK"))
|
||||
{
|
||||
final L2Object target = npc.getTarget();
|
||||
if ((target != null) && (target.isPlayable() || target.isFakePlayer()))
|
||||
{
|
||||
npc.setScriptValue(1); // in combat
|
||||
cancelQuestTimer("FINISH_FLAG" + npc.getObjectId(), npc, null);
|
||||
cancelQuestTimer("REMOVE_FLAG" + npc.getObjectId(), npc, null);
|
||||
startQuestTimer("FINISH_FLAG" + npc.getObjectId(), Config.PVP_NORMAL_TIME - 20000, npc, null);
|
||||
startQuestTimer("FLAG_CHECK" + npc.getObjectId(), 5000, npc, null);
|
||||
}
|
||||
}
|
||||
else if (event.startsWith("FINISH_FLAG"))
|
||||
{
|
||||
if (npc.isScriptValue(1))
|
||||
{
|
||||
npc.setScriptValue(2); // blink status
|
||||
npc.broadcastInfo(); // update flag status
|
||||
startQuestTimer("REMOVE_FLAG" + npc.getObjectId(), 20000, npc, null);
|
||||
}
|
||||
}
|
||||
else if (event.startsWith("REMOVE_FLAG"))
|
||||
{
|
||||
if (npc.isScriptValue(2))
|
||||
{
|
||||
npc.setScriptValue(0); // not in combat
|
||||
npc.broadcastInfo(); // update flag status
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new PvpFlaggingStopTask();
|
||||
}
|
||||
}
|
||||
@@ -74,6 +74,7 @@ import handlers.admincommandhandlers.AdminEnchant;
|
||||
import handlers.admincommandhandlers.AdminEventEngine;
|
||||
import handlers.admincommandhandlers.AdminEvents;
|
||||
import handlers.admincommandhandlers.AdminExpSp;
|
||||
import handlers.admincommandhandlers.AdminFakePlayers;
|
||||
import handlers.admincommandhandlers.AdminFightCalculator;
|
||||
import handlers.admincommandhandlers.AdminFortSiege;
|
||||
import handlers.admincommandhandlers.AdminGamePoints;
|
||||
@@ -369,6 +370,7 @@ public class MasterHandler
|
||||
AdminEventEngine.class,
|
||||
AdminEvents.class,
|
||||
AdminExpSp.class,
|
||||
AdminFakePlayers.class,
|
||||
AdminFightCalculator.class,
|
||||
AdminFortSiege.class,
|
||||
AdminGamePoints.class,
|
||||
|
||||
@@ -129,10 +129,14 @@ public class L2NpcAction implements IActionHandler
|
||||
npc.showChatWindow(activeChar);
|
||||
}
|
||||
}
|
||||
if ((Config.PLAYER_MOVEMENT_BLOCK_TIME > 0) && !activeChar.isGM())
|
||||
if (Config.PLAYER_MOVEMENT_BLOCK_TIME > 0)
|
||||
{
|
||||
activeChar.updateNotMoveUntil();
|
||||
}
|
||||
if (npc.isFakePlayer() && GeoEngine.getInstance().canSeeTarget(activeChar, npc))
|
||||
{
|
||||
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, npc);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ public class L2NpcActionShift implements IActionShiftHandler
|
||||
}
|
||||
else if (Config.ALT_GAME_VIEWNPC)
|
||||
{
|
||||
if (!target.isNpc())
|
||||
if (!target.isNpc() || target.isFakePlayer())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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/>.
|
||||
*/
|
||||
package handlers.admincommandhandlers;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.FakePlayerData;
|
||||
import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
||||
import com.l2jmobius.gameserver.instancemanager.FakePlayerChatManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class AdminFakePlayers implements IAdminCommandHandler
|
||||
{
|
||||
private static final String[] ADMIN_COMMANDS =
|
||||
{
|
||||
"admin_fakechat"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useAdminCommand(String command, L2PcInstance activeChar)
|
||||
{
|
||||
if (command.startsWith("admin_fakechat"))
|
||||
{
|
||||
final String[] words = command.substring(15).split(" ");
|
||||
if (words.length < 3)
|
||||
{
|
||||
activeChar.sendMessage("Usage: //fakechat playername fpcname message");
|
||||
return false;
|
||||
}
|
||||
final L2PcInstance player = L2World.getInstance().getPlayer(words[0]);
|
||||
if (player == null)
|
||||
{
|
||||
activeChar.sendMessage("Player not found.");
|
||||
return false;
|
||||
}
|
||||
final String fpcName = FakePlayerData.getInstance().getProperName(words[1]);
|
||||
if (fpcName == null)
|
||||
{
|
||||
activeChar.sendMessage("Fake player not found.");
|
||||
return false;
|
||||
}
|
||||
String message = "";
|
||||
for (int i = 0; i < words.length; i++)
|
||||
{
|
||||
if (i < 2)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
message += (words[i] + " ");
|
||||
}
|
||||
FakePlayerChatManager.getInstance().sendChat(player, fpcName, message);
|
||||
activeChar.sendMessage("Your message has been sent.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getAdminCommandList()
|
||||
{
|
||||
return ADMIN_COMMANDS;
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.DoorData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.EnchantItemData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.EnchantItemGroupsData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.FakePlayerData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.NpcData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.PrimeShopData;
|
||||
@@ -38,9 +39,12 @@ import com.l2jmobius.gameserver.data.xml.impl.TransformData;
|
||||
import com.l2jmobius.gameserver.datatables.ItemTable;
|
||||
import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
||||
import com.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
|
||||
import com.l2jmobius.gameserver.instancemanager.FakePlayerChatManager;
|
||||
import com.l2jmobius.gameserver.instancemanager.QuestManager;
|
||||
import com.l2jmobius.gameserver.instancemanager.WalkingManager;
|
||||
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import com.l2jmobius.gameserver.model.L2Object;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.scripting.ScriptEngineManager;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
@@ -247,11 +251,31 @@ public class AdminReload implements IAdminCommandHandler
|
||||
break;
|
||||
}
|
||||
case "itemmall":
|
||||
case "primeshop":
|
||||
{
|
||||
PrimeShopData.getInstance().load();
|
||||
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded item mall data.");
|
||||
break;
|
||||
}
|
||||
case "fakeplayers":
|
||||
{
|
||||
FakePlayerData.getInstance().load();
|
||||
for (L2Object obj : L2World.getInstance().getVisibleObjects())
|
||||
{
|
||||
if (obj.isFakePlayer())
|
||||
{
|
||||
obj.broadcastInfo();
|
||||
}
|
||||
}
|
||||
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Fake Player data.");
|
||||
break;
|
||||
}
|
||||
case "fakeplayerchat":
|
||||
{
|
||||
FakePlayerChatManager.getInstance().load();
|
||||
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Fake Player Chat data.");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
activeChar.sendMessage(RELOAD_USAGE);
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.SevenSigns;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.NpcData;
|
||||
@@ -413,6 +414,12 @@ public class AdminSpawn implements IAdminCommandHandler
|
||||
template = NpcData.getInstance().getTemplateByName(monsterId.replace('_', ' '));
|
||||
}
|
||||
|
||||
if (!Config.FAKE_PLAYERS_ENABLED && template.isFakePlayer())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOUR_TARGET_CANNOT_BE_FOUND);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final L2Spawn spawn = new L2Spawn(template);
|
||||
|
||||
@@ -17,8 +17,10 @@
|
||||
package handlers.chathandlers;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.FakePlayerData;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.handler.IChatHandler;
|
||||
import com.l2jmobius.gameserver.instancemanager.FakePlayerChatManager;
|
||||
import com.l2jmobius.gameserver.model.BlockList;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||
@@ -58,6 +60,28 @@ public final class ChatWhisper implements IChatHandler
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.FAKE_PLAYERS_ENABLED && (FakePlayerData.getInstance().getProperName(target) != null))
|
||||
{
|
||||
if (FakePlayerData.getInstance().isTalkable(target))
|
||||
{
|
||||
if (Config.FAKE_PLAYER_CHAT)
|
||||
{
|
||||
final String name = FakePlayerData.getInstance().getProperName(target);
|
||||
activeChar.sendPacket(new CreatureSay(activeChar.getObjectId(), type, "->" + name, text));
|
||||
FakePlayerChatManager.getInstance().manageChat(activeChar, name, text);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THAT_PERSON_IS_IN_MESSAGE_REFUSAL_MODE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PcInstance receiver = L2World.getInstance().getPlayer(target);
|
||||
|
||||
if ((receiver != null) && !receiver.isSilenceMode(activeChar.getObjectId()))
|
||||
|
||||
6
L2J_Mobius_CT_2.6_HighFive/dist/game/data/spawns/Others/FakePlayers.xml
vendored
Normal file
6
L2J_Mobius_CT_2.6_HighFive/dist/game/data/spawns/Others/FakePlayers.xml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||
<spawn name="FakePlayers">
|
||||
<npc id="80000" x="83485" y="147998" z="-3407" heading="23509" respawnDelay="60" /> <!-- Evi -->
|
||||
</spawn>
|
||||
</list>
|
||||
43
L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/npcs/custom/fpc_combat.xml
vendored
Normal file
43
L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/npcs/custom/fpc_combat.xml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<!-- Duelist -->
|
||||
<npc id="81001" level="85" type="L2Monster" name="Gladus" title="Duelist" >
|
||||
<race>HUMAN</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="39" dex="55" wit="39" con="82" men="38">
|
||||
<vitals hp="22228" hpRegen="10.8" mp="3681" mpRegen="3.0" />
|
||||
<attack physical="4425" magical="1284" random="30" critical="94" accuracy="206" attackSpeed="517" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="3613" magical="2307" />
|
||||
<attribute>
|
||||
<defence fire="250" water="250" wind="250" earth="250" holy="250" dark="250" />
|
||||
<attack type="WATER" value="330" />
|
||||
</attribute>
|
||||
<speed>
|
||||
<walk ground="82" />
|
||||
<run ground="132" />
|
||||
</speed>
|
||||
</stats>
|
||||
<status fakePlayer="true" talkable="false" attackable="true" />
|
||||
<ai type="FIGHTER" clanHelpRange="1000" aggroRange="1000" isAggressive="true" > <!-- FIGHTER, ARCHER, BALANCED, MAGE, HEALER -->
|
||||
<clanList>
|
||||
<clan>FAKE_PLAYER</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="9" />
|
||||
<height normal="23" />
|
||||
</collision>
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="261" level="22" />
|
||||
<skill name="Skill02_ID" id="1" level="37" />
|
||||
<skill name="Skill03_ID" id="6" level="37" />
|
||||
<skill name="Skill04_ID" id="8" level="8" />
|
||||
</parameters>
|
||||
<skillList>
|
||||
<skill id="261" level="22" /> <!-- Triple Sonic Slash -->
|
||||
<skill id="1" level="37" /> <!-- Triple Slash -->
|
||||
<skill id="6" level="37" /> <!-- Sonic Blaster -->
|
||||
<skill id="8" level="8" /> <!-- Sonic Focus -->
|
||||
</skillList>
|
||||
</npc>
|
||||
</list>
|
||||
26
L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/npcs/custom/fpc_passive.xml
vendored
Normal file
26
L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/npcs/custom/fpc_passive.xml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/npcs.xsd">
|
||||
<!-- Spectral Dancer -->
|
||||
<npc id="80000" level="78" type="L2Npc" name="Evi" >
|
||||
<race>DARK_ELF</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="103" int="40" dex="53" wit="37" con="84" men="39">
|
||||
<vitals hp="18857" hpRegen="10.8" mp="3863" mpRegen="3.0" />
|
||||
<attack physical="10198" magical="1305" random="30" critical="132" accuracy="177" attackSpeed="588" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="3388" magical="2450" />
|
||||
<attribute>
|
||||
<defence fire="200" water="250" wind="250" earth="250" holy="250" dark="250" />
|
||||
<attack type="WATER" value="330" />
|
||||
</attribute>
|
||||
<speed>
|
||||
<walk ground="85" />
|
||||
<run ground="139" />
|
||||
</speed>
|
||||
</stats>
|
||||
<status fakePlayer="true" talkable="false" undying="true" attackable="false" />
|
||||
<collision>
|
||||
<radius normal="7.5" />
|
||||
<height normal="24" />
|
||||
</collision>
|
||||
</npc>
|
||||
</list>
|
||||
20
L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/FakePlayerChatData.xsd
vendored
Normal file
20
L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/FakePlayerChatData.xsd
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="fakePlayerChat" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute type="xs:string" name="fpcName" use="required" />
|
||||
<xs:attribute type="xs:string" name="searchMethod" use="required" />
|
||||
<xs:attribute type="xs:string" name="searchText" use="required" />
|
||||
<xs:attribute type="xs:string" name="answers" use="required" />
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
45
L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/FakePlayerVisualData.xsd
vendored
Normal file
45
L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/FakePlayerVisualData.xsd
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="fakePlayer" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute type="xs:int" name="npcId"/>
|
||||
<xs:attribute type="xs:short" name="classId"/>
|
||||
<xs:attribute type="xs:byte" name="hair"/>
|
||||
<xs:attribute type="xs:byte" name="hairColor"/>
|
||||
<xs:attribute type="xs:byte" name="face"/>
|
||||
<xs:attribute type="xs:string" name="nameColor"/>
|
||||
<xs:attribute type="xs:string" name="titleColor"/>
|
||||
<xs:attribute type="xs:int" name="equipHead"/>
|
||||
<xs:attribute type="xs:int" name="equipLHand"/>
|
||||
<xs:attribute type="xs:int" name="equipRHand"/>
|
||||
<xs:attribute type="xs:int" name="equipGloves"/>
|
||||
<xs:attribute type="xs:int" name="equipChest"/>
|
||||
<xs:attribute type="xs:int" name="equipLegs"/>
|
||||
<xs:attribute type="xs:int" name="equipFeet"/>
|
||||
<xs:attribute type="xs:int" name="equipCloak"/>
|
||||
<xs:attribute type="xs:int" name="equipHair"/>
|
||||
<xs:attribute type="xs:int" name="equipHair2"/>
|
||||
<xs:attribute type="xs:int" name="agathionId"/>
|
||||
<xs:attribute type="xs:byte" name="weaponEnchantLevel"/>
|
||||
<xs:attribute type="xs:byte" name="armorEnchantLevel"/>
|
||||
<xs:attribute type="xs:boolean" name="fishing"/>
|
||||
<xs:attribute type="xs:int" name="baitLocationX"/>
|
||||
<xs:attribute type="xs:int" name="baitLocationY"/>
|
||||
<xs:attribute type="xs:int" name="baitLocationZ"/>
|
||||
<xs:attribute type="xs:byte" name="recommends"/>
|
||||
<xs:attribute type="xs:byte" name="nobleLevel"/>
|
||||
<xs:attribute type="xs:boolean" name="hero"/>
|
||||
<xs:attribute type="xs:long" name="clanId"/>
|
||||
<xs:attribute type="xs:byte" name="pledgeStatus"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -285,5 +285,7 @@
|
||||
<xs:attribute name="passableDoor" type="xs:boolean" />
|
||||
<xs:attribute name="hasSummoner" type="xs:boolean" />
|
||||
<xs:attribute name="canBeSown" type="xs:boolean" />
|
||||
<xs:attribute name="fakePlayer" type="xs:boolean" />
|
||||
<xs:attribute name="fakePlayerTalkable" type="xs:boolean" />
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
Reference in New Issue
Block a user