Ir para conteúdo

[Tutorial] Fazendo com que os mobs Não ataquem seus Donos


FilipeNock

Posts Recomendados

PRIMEIRAMENTE OLÁ A TODOS!

 

Eu recentemente vi varios Gringos perguntando como se faz! pra quando o player spawnar um mob esse suposto mob não atacar

o player que o spawnou! bom pra começar temos que fazer com que quando ele spawne algum mob ele adicione esse mob pra uma lista do jogador

on rightclick with zombie spawn egg:
	cancel event #CANCELAMOS O EVENTO PARA SPAWNAR UM MOB
	spawn a zombie at location of player #AQUI A GENTE SPAWNA O MOB NO CASO USEI O ZOMBIE
	set name of last spawned zombie to "&b%player%'s Zombie" #SE QUISER COLOCAR UM NOME NO MOB USE ISSO!
	add last spawned entity to {target.%player%::*} #E POR FINAL ADICIONAMOS O MOB NA LISTA DO JOGADOR 

se voce preferir pode colocar pra checkar o nome do ovo

on rightclick with zombie spawn egg:	
	if name of tool of player is "&eSpawner de um Zombie":
		cancel event
		spawn a zombie at location of player
		set name of last spawned zombie to "&b%player%'s Zombie"
		add last spawned entity to {target.%player%::*}

Após isso fica facil, temos que pegar o evento que a entidade pretende atacar o jogador

e fazer um check na variavel de Lista, Se esse mob estiver na lista vai cancelar o evento

on entity target:
	loop {target.%target%::*}: #LOOP NA VARIAVEL DO JOGADOR
		if loop-value is event-entity: #CHECK SE A ENTIDADE ESTA NA LISTA
			cancel event
			

Podemos adicionar uma coisa pra deletar a variavel pra nunca acumular entidades

on join:
	delete {target.%player%::*}

Bom até ai tudo bem! agora queremos que esse suposto mob teleporte pra mim se ele estiver longe demais

primeiramente vamos colocar um delay para que não de lag no check porque cada vez que o player fazer um movimente vai fazer um loop

on any move:
	set {_delay} to difference between {delay.%player%} and now #FAZENDO O CHECK DO DELAY
	if {_delay} is less than 2 seconds: #AQUI ELE VAI VER SE O DELAY FOR 2 SEGUNDOS
		loop {target.%player%::*}: #SE O COUNTDOWN NAO ESTIVER ATIVO ELE VAI FAZER UM LOOP NA VARIAVEL DO PLAYER
			if distance between loop-value and player is more than 10: #VAI CHECKAR SE A DISTANCIA DO PLAYER E DA ENTIDADE É MAIOR QUE 10 BLOCOS
				teleport loop-value to player #SE FOR ELE VAI TELEPORTAR PARA O JOGADOR
	else:
		set {delay.%player%} to now #AQUI ELE REMOVE A COUNTDOWN PARA INICIAR NOVAMENTE
		

e Pronto esse foi o Tutorial se quiserem o codigo completo Entre aqui GITHUB

 

LIKE SE GOSTOU :)!

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...