Jump to content
  • 0

FakePlayer join tvt


arm4729

Question

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.

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

hello thanks for trying to help mate , i am not programmer / developer , but i think problem is not there because i get same problem when i try //recall the fakeplayer .. just when they die and go town (to village) , they spawn correctly ... if i try to teleport them any other way they go to location but become invisible at all..

 

 

i am still searching for someone that i can pay for this service

Edited by arm4729
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...