Hello mxc , im new to java i have 2 months , i can't do nothing from scrath but is not that hard to edit , so i tought why not make elfocrash robots to go tvt ..
so first i tryed to make them register tvt , i found in voice command .register this:
public boolean useVoicedCommand(String command, Player activeChar)
{
if (command.equals("register"))
EventManager.getInstance().registerPlayer(activeChar);
else if (command.equals("leave"))
EventManager.getInstance().removePlayer(activeChar);
return true;
}
so i go to fakeplayers and searched where i can add this: "EventManager.getInstance().registerPlayer(activeChar);"
i found this:
if (isInsidePeaceZone(this, this.getTarget()))
{
return;
}
and made it look like this
if (isInsidePeaceZone(this, this.getTarget()))
{
EventManager.getInstance().registerPlayer(this);
return;
}
now if they are in town , they are registering to event (remember im not programmer , i never did something from scrath ) , so everything was fine until i was teleported to event location , but they were all invisible , i tryed alt+g to teleport to them , they were walking , but they are all invisible .. so i guess it didin't work well..
after this i checked to make //recall (charname) on fakeplayer to check if this works , so i tryed recall one from aden to giran , i had same problem , they were there but invisible somehow...
after this i check that when they die , they are teleporting to nearest village so i found this
protected void teleportToLocation(int x, int y, int z, int randomOffset) {
_fakePlayer.stopMove(null);
_fakePlayer.abortAttack();
_fakePlayer.abortCast();
_fakePlayer.setIsTeleporting(true);
_fakePlayer.setTarget(null);
_fakePlayer.getAI().setIntention(CtrlIntention.ACTIVE);
if (randomOffset > 0)
{
x += Rnd.get(-randomOffset, randomOffset);
y += Rnd.get(-randomOffset, randomOffset);
}
z += 5;
_fakePlayer.broadcastPacket(new TeleportToLocation(_fakePlayer, x, y, z));
_fakePlayer.decayMe();
_fakePlayer.setXYZ(x, y, z);
_fakePlayer.onTeleported();
_fakePlayer.revalidateZone(true);
}
and this :
public FakePlayer spawnPlayer(int x, int y, int z) {
FakePlayer activeChar = FakeHelpers.createRandomFakePlayer();
World.getInstance().addPlayer(activeChar);
handlePlayerClanOnSpawn(activeChar);
activeChar.spawnMe(x, y, z);
activeChar.onPlayerEnter();
if (!activeChar.isGM() && (!activeChar.isInSiege() || activeChar.getSiegeState() < 2)
&& activeChar.isInsideZone(ZoneId.SIEGE))
activeChar.teleToLocation(TeleportType.TOWN);
activeChar.heal();
return activeChar;
}
so i guess that solution is somewhere here:
_fakePlayer.broadcastPacket(new TeleportToLocation(_fakePlayer, x, y, z));
_fakePlayer.decayMe();
_fakePlayer.setXYZ(x, y, z);
_fakePlayer.onTeleported();
_fakePlayer.revalidateZone(true);
i go to eventmanager again i found this:
protected void start()
{
state = EventState.TELEPORTING;
announce("The registrations have closed. The event has started.", true);
announce("You will be teleported in 20 seconds. Get ready!", false);
preparePlayers();
schedule(() -> teleportPlayers(), 20);
}
and this :
protected void teleportPlayers()
{
state = EventState.RUNNING;
if (!teams.isEmpty())
for (EventTeam team : teams)
team.teleportTeam();
else
for (Player player : players)
player.teleToLocation(getRandomLocation(), 40);
paralizePlayers();
announce("You have been teleported to the event.", false);
announce("The event will begin in 20 seconds!", false);
schedule(() -> begin(), 20);
}
now , im far by knowing java programming , but my intuition tell me that i need to add something like "fakeplayer.revalidatezone" here but i really dont know how , that why i came here to ask you guys for help ?
Im not here for beg i can send you guys via paypal money for a beer if you know what i mean (10-20)E.
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.
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
Question
arm4729
Hello mxc , im new to java i have 2 months , i can't do nothing from scrath but is not that hard to edit , so i tought why not make elfocrash robots to go tvt ..
so first i tryed to make them register tvt , i found in voice command .register this:
public boolean useVoicedCommand(String command, Player activeChar) { if (command.equals("register")) EventManager.getInstance().registerPlayer(activeChar); else if (command.equals("leave")) EventManager.getInstance().removePlayer(activeChar); return true; }
so i go to fakeplayers and searched where i can add this: "EventManager.getInstance().registerPlayer(activeChar);"
i found this:
if (isInsidePeaceZone(this, this.getTarget())) { return; }
and made it look like this
if (isInsidePeaceZone(this, this.getTarget())) { EventManager.getInstance().registerPlayer(this); return; }
now if they are in town , they are registering to event (remember im not programmer , i never did something from scrath ) , so everything was fine until i was teleported to event location , but they were all invisible , i tryed alt+g to teleport to them , they were walking , but they are all invisible .. so i guess it didin't work well..
after this i checked to make //recall (charname) on fakeplayer to check if this works , so i tryed recall one from aden to giran , i had same problem , they were there but invisible somehow...
after this i check that when they die , they are teleporting to nearest village so i found this
protected void teleportToLocation(int x, int y, int z, int randomOffset) { _fakePlayer.stopMove(null); _fakePlayer.abortAttack(); _fakePlayer.abortCast(); _fakePlayer.setIsTeleporting(true); _fakePlayer.setTarget(null); _fakePlayer.getAI().setIntention(CtrlIntention.ACTIVE); if (randomOffset > 0) { x += Rnd.get(-randomOffset, randomOffset); y += Rnd.get(-randomOffset, randomOffset); } z += 5; _fakePlayer.broadcastPacket(new TeleportToLocation(_fakePlayer, x, y, z)); _fakePlayer.decayMe(); _fakePlayer.setXYZ(x, y, z); _fakePlayer.onTeleported(); _fakePlayer.revalidateZone(true); }
and this :
public FakePlayer spawnPlayer(int x, int y, int z) { FakePlayer activeChar = FakeHelpers.createRandomFakePlayer(); World.getInstance().addPlayer(activeChar); handlePlayerClanOnSpawn(activeChar); activeChar.spawnMe(x, y, z); activeChar.onPlayerEnter(); if (!activeChar.isGM() && (!activeChar.isInSiege() || activeChar.getSiegeState() < 2) && activeChar.isInsideZone(ZoneId.SIEGE)) activeChar.teleToLocation(TeleportType.TOWN); activeChar.heal(); return activeChar; }
so i guess that solution is somewhere here:
_fakePlayer.broadcastPacket(new TeleportToLocation(_fakePlayer, x, y, z)); _fakePlayer.decayMe(); _fakePlayer.setXYZ(x, y, z); _fakePlayer.onTeleported(); _fakePlayer.revalidateZone(true);
i go to eventmanager again i found this:
protected void start() { state = EventState.TELEPORTING; announce("The registrations have closed. The event has started.", true); announce("You will be teleported in 20 seconds. Get ready!", false); preparePlayers(); schedule(() -> teleportPlayers(), 20); }
and this :
protected void teleportPlayers() { state = EventState.RUNNING; if (!teams.isEmpty()) for (EventTeam team : teams) team.teleportTeam(); else for (Player player : players) player.teleToLocation(getRandomLocation(), 40); paralizePlayers(); announce("You have been teleported to the event.", false); announce("The event will begin in 20 seconds!", false); schedule(() -> begin(), 20); }
now , im far by knowing java programming , but my intuition tell me that i need to add something like "fakeplayer.revalidatezone" here but i really dont know how , that why i came here to ask you guys for help ?
Im not here for beg i can send you guys via paypal money for a beer if you know what i mean (10-20)E.
7 answers to this question
Recommended Posts
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.