Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

8.6 tfs 0.4

 

Ola gostaria de pedir ajuda para um script ele funcionária assim:

O player passaria pela sala, no final da sala ele entraria do teleporte, para sair da sala, quando ele sair da sala, ele ganharia 1 lvl, porém só poderia ganhar apenas uma vez, não pode ser por xp, pq independe do lvl do player, ele ganharia 1 lvl, teria vários portais desse, se alguém poder dar essa força.

O objetivo seria várias salas, que conforme o player iria passando no final ele ganharia esse 1 lvl a mais.

 

 

Citar

 

 

 

 

Postado

@nelsonjrs Boa tarde, veja se é isso que você quer, a configuração de como usar o script está comentada.

Obs: Lembre-se de adicionar a actionId em todos os teleportes.

 

Crie um arquivo chamando room.lua em movements/scripts e adicione este código nele:

-- Quantidade de level que o player irá ganhar
local LEVEL_AMOUNT = 1

-- Defina a posição do teleport no final da sala, defina um valor único para o storage, assim o player irá ganhar o level apenas uma vez
local teleportPositions = {
	{ position = { x=151,y=55,z=7 }, storage = 14521 },
	{ position = { x=158,y=58,z=7 }, storage = 14522 },
	{ position = { x=151,y=54,z=7 }, storage = 14523 },
	{ position = { x=156,y=58,z=7 }, storage = 14524 },
}

function onStepIn(cid, item, position, fromPosition)
	local playerPosition = getThingPos(cid)
	for _,teleportPosition in ipairs(teleportPositions) do
		if (checkPlayerPosition(teleportPosition.position, playerPosition)) then
			playerAddLevel(cid, teleportPosition.storage)
		end
	end
	return true
end

function checkPlayerPosition(teleportPosition, playerPosition)
	if (teleportPosition.x == playerPosition.x and teleportPosition.y == playerPosition.y and teleportPosition.z == playerPosition.z) then
		return true
	end
end

function playerAddLevel(player, storage)
	if (getPlayerStorageValue(player, storage) > 0) then
		return false
	end
	local playerLevel = getPlayerLevel(player) + LEVEL_AMOUNT
	local playerCalculateExperienceNextLevel = (getExperienceForLevel(playerLevel) - getPlayerExperience(player))
	doPlayerAddExperience(player, playerCalculateExperienceNextLevel)
	setPlayerStorageValue(player, storage, 1)
end

 

Vá em movements.xml e adicione está linha nele:

<movevent type="StepIn" actionid="3333" event="script" value="room.lua"/>

 

Editado por MatteusDeli (veja o histórico de edições)

Postado
  • Autor
5 minutos atrás, MatteusDeli disse:

@nelsonjrs Boa tarde, veja se é isso que você quer, a configuração de como usar o script está comentada.

Obs: Lembre-se de adicionar a actionId em todos os teleportes.

 

Crie um arquivo chamando room.lua em movements/scripts e adicione este código nele:


-- Quantidade de level que o player irá ganhar
local LEVEL_AMOUNT = 1

-- Defina a posição do teleport no final da sala, defina um valor único para o storage, assim o player irá ganhar o level apenas uma vez
local teleportPositions = {
	{ position = { x=151,y=55,z=7 }, storage = 14521 },
	{ position = { x=158,y=58,z=7 }, storage = 14522 },
	{ position = { x=151,y=54,z=7 }, storage = 14523 },
	{ position = { x=156,y=58,z=7 }, storage = 14524 },
}

function onStepIn(cid, item, position, fromPosition)
	local playerPosition = getThingPos(cid)
	for _,teleportPosition in ipairs(teleportPositions) do
		if (checkPlayerPosition(teleportPosition.position, playerPosition)) then
			playerAddLevel(cid, teleportPosition.storage)
		end
	end
	return true
end

function checkPlayerPosition(teleportPosition, playerPosition)
	if (teleportPosition.x == playerPosition.x and teleportPosition.y == playerPosition.y and teleportPosition.z == playerPosition.z) then
		return true
	end
end

function playerAddLevel(player, storage)
	if (getPlayerStorageValue(player, storage) > 0) then
		return false
	end
	local playerLevel = getPlayerLevel(player) + LEVEL_AMOUNT
	local playerCalculateExperienceNextLevel = (getExperienceForLevel(playerLevel) - getPlayerExperience(player))
	doPlayerAddExperience(player, playerCalculateExperienceNextLevel)
	setPlayerStorageValue(player, storage, 1)
end

 

Vá em movements.xml e adicione está linha nele:


<movevent type="StepIn" actionid="3333" event="script" value="room.lua"/>

 

Obg irei estar testando assim que puder 

  • 2 weeks later...
Postado
Em 14/08/2021 em 13:37, nelsonjrs disse:

Obg irei estar testando assim que puder 

Caso tenha funcionado, marque a resposta do colega como solução para dar o tópico como Resolvido ?

                                                                                                               destinyshield.gif.9f031b59b026058f32a1c50da92ebe2a.gif  mídias sociais  destinyshield.gif.02fca81ab0615e050b2bcefd8a73a2e8.gif

                                                                                                                            talk to me              

                                                                                                                               vídeos           

                                                                                             

                                                                                                            LOGONORMAL.png.815b40b04ec583be88d8a1e2626fe430.png

                                                                                                           

                               

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo