88

tile soul

Por 880123, 08 de fev. de 2022 em Scripts

2
950
8801238
08 de fevereiro de 2022 às 19:25

Alguém poderia disponibilizar um script que ao passar remove soul do player.
Exe: ao passar nessa tile remove 10 soul do player, e caso o player n tenha soul suficiente ele n possa passar e um aviso que ele n tem soul suficiente.

Agradeço desde ja.

Yan OliveiraY
09 de fevereiro de 2022 às 22:39

Primeiramente vá no Remere's Map Editor e adicione o seguinte uniqueid em todos os tiles da área desejada onde terá essa verificação de Soul : 19457 (Se esse uniqueid já estiver em uso, coloque outro).

 

Agora vá em Data/Movements/Scripts e crie o arquivo tile_soul.lua e adicione o código:

local soul_needed = 10 -- TOTAL DE SOUL QUE SERÁ REMOVIDO

function onStepIn(cid, item, position, fromPosition)
	if not cid then
		return true
	end

	if getPlayerSoul(cid) < soul_needed then
        doPlayerSendCancel(cid, "You cannot access this area.")
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to have " .. soul_needed .. (soul_needed > 1 and " souls" or " soul") .. " to access this area.")
		doTeleportThing(cid, fromPosition)
		
	else
		doPlayerAddSoul(cid, -soul_needed)
		doPlayerSendCancel(cid, "You lost " .. soul_needed .. (soul_needed > 1 and " souls." or " soul."))
	end
	
return true
end

 

Agora abra o movements.xml e adicione a tag:

 

<movevent event="StepIn" uniqueid="19457" script="tile_soul.lua" />

Se usou outro uniqueid, mude o valor na tag xml.

 

Teste e veja se vai dar erro.

Editado Fevereiro 9 por Yan Oliveira