Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUSTE] Bike usável apenas se estiver dentro da backpack


Ir para solução Resolvido por Mono Singed,

Posts Recomendados

Gostaria de uma adaptação para o sistema de bike do meu servidor. Queria que o jogador só pudesse usar a bicicleta quando ela estivesse na bolsa. Segue as imagens com explicação:

bikes.png?1516523473

Realidade: a bike está no chão, cliquei nela e "montei".

 

Expectativa: Seria necessário colocar ela na bolsa para usar(não podendo jogar fora enquanto o jogador está utilizando(montado) a bike..

 

Achei esses dois scripts nos meus arquivos, creio que se adaptar ele funciona.

		end
		if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then
			doPlayerSendCancel("Não está no slot correto")
			return true
		end

ou

		end
		if isRiderOrFlyOrSurf(cid) then 
		   doPlayerSendCancel(cid, "Dismount your pokemon to ride.")
		   return true 
		end

 

Link para o post
Compartilhar em outros sites
  • Solução

Manda o script da bike aí, mas se não quiser, é só por a seguinte verificação:

if fromPosition.x == CONTAINER_POSITION then
--código aqui
else
doPlayerSendCancel(cid, "você só pode usar a bicicleta se ela estiver dentro da bp")
end

Só que isso não impede do player dropar a backpack no chão, ou fazer trade com ela :p

O ideal seria fazer ela um "unmoveable item" (nao sei se eh assim que se escreve jdoasdwq) e deixar num slot fixo, que eh oq 90% dos poketibia fazem. Outra possibilidade seria ele não poder dar trade montado e quando dropasse ele saísse da bike, mas não dá pra fazer isso se teu tfs nao for 1.x, então fica na primeira opção.

Editado por Mono Singed (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Mono Singed Muito bom!, uso a versão tfs 0.3.6

2 horas atrás, Mono Singed disse:

Manda o script da bike aí, mas se não quiser, é só por a seguinte verificação:


if fromPosition.x == CONTAINER_POSITION then
--código aqui
else
doPlayerSendCancel(cid, "você só pode usar a bicicleta se ela estiver dentro da bp")
end

Só que isso não impede do player dropar a backpack no chão, ou fazer trade com ela :p

O ideal seria fazer ela um "unmoveable item" (nao sei se eh assim que se escreve jdoasdwq) e deixar num slot fixo, que eh oq 90% dos poketibia fazem. Outra possibilidade seria ele não poder dar trade montado e quando dropasse ele saísse da bike, mas não dá pra fazer isso se teu tfs nao for 1.x, então fica na primeira opção.

 

Mando sim cara, afinal alguns membros daqui me ajudaram a editar o script, ponho com todo o prazer do mundo.
 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local sBike = 2547
	local speed = 20 -- speed que você quer extra
	local t = {
		[18473] = {s=9999, condition=bikeCondition},
	}
	
	function BikeSpeedOn(cid,nSpeed)
		setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid))
		doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed)
	end
	
	function BikeSpeedOff(cid)
		doChangeSpeed(cid,-getCreatureSpeed(cid))
		doChangeSpeed(cid,getPlayerStorageValue(cid,sBike))
	end
	
	local v, r = getCreaturePosition(cid), t[item.itemid]
	local s = r.s
	local pos = {x = v.x, y = v.y, z = v.z}
	if r then
		if getPlayerStorageValue(cid, 25000) == 5 then
			return
		end
		if getPlayerStorageValue(cid, 23000) == 5 then
			return
		end
		if isRiderOrFlyOrSurf(cid) then 
		   doPlayerSendCancel(cid, "Dismount your pokemon to ride.")
		   return true 
		end
		if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then
			doPlayerSendCancel("Não está no slot correto")
			return true
		end
		if getPlayerStorageValue(cid, s) <= 0 then
			doCreatureSay(cid, r.text, 19)
			setPlayerStorageValue(cid, s, 1)
			BikeSpeedOn(cid,speed)
player_outfit = getCreatureOutfit(cid)
if getPlayerSex(cid) == 1 then
doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female
else
doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male
end
		
	elseif getPlayerStorageValue(cid, s) == 1 then
		doCreatureSay(cid, r.dtext, 19)
		setPlayerStorageValue(cid, s, 0)
		BikeSpeedOff(cid)
		return doRemoveCondition(cid, CONDITION_OUTFIT)
	else
		return doPlayerSendCancel(cid, 'You can\'t do this.')
		end
	else
		return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.')
	end
end

 

@Mono Singed Achei esse script no go/back, forçando com que o jogador ponha a pokeball no slot feet(que é o local dos pokemons/pokebolas).

 

elseif item.itemid == pokeballs[btype].on then

	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
		doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
	end

Creio que consegues adaptar, forçando o jogador a colocar a bike no slot secundário, (acho que é o slot de arrow)

Link para o post
Compartilhar em outros sites
12 minutos atrás, tavarb disse:

@Mono Singed Muito bom!, uso a versão tfs 0.3.6

Mando sim cara, afinal alguns membros daqui me ajudaram a editar o script, ponho com todo o prazer do mundo.

Tenta assim: 

function BikeSpeedOn(cid,nSpeed)
	setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid))
	doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed)
end

function BikeSpeedOff(cid)
	doChangeSpeed(cid,-getCreatureSpeed(cid))
	doChangeSpeed(cid,getPlayerStorageValue(cid,sBike))
end


function onUse(cid, item, fromPosition, itemEx, toPosition)
	local sBike = 2547
	local speed = 20 -- speed que você quer extra
	local t = {
	[18473] = {s=9999, condition=bikeCondition},
	}



	local v, r = getCreaturePosition(cid), t[item.itemid]
	local s = r.s
	local pos = {x = v.x, y = v.y, z = v.z}
	if fromPosition.x == CONTAINER_POSITION then
		if r then
			if getPlayerStorageValue(cid, 25000) == 5 then
				return
			end
			if getPlayerStorageValue(cid, 23000) == 5 then
				return
			end
			if isRiderOrFlyOrSurf(cid) then 
				doPlayerSendCancel(cid, "Dismount your pokemon to ride.")
				return true 
			end
			if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then
				doPlayerSendCancel("Não está no slot correto")
				return true
			end
			if getPlayerStorageValue(cid, s) <= 0 then
				doCreatureSay(cid, r.text, 19)
				setPlayerStorageValue(cid, s, 1)
				BikeSpeedOn(cid,speed)
				player_outfit = getCreatureOutfit(cid)
				if getPlayerSex(cid) == 1 then
					doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female
				else
					doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male
				end

			elseif getPlayerStorageValue(cid, s) == 1 then
				doCreatureSay(cid, r.dtext, 19)
				setPlayerStorageValue(cid, s, 0)
				BikeSpeedOff(cid)
				return doRemoveCondition(cid, CONDITION_OUTFIT)
			else
				return doPlayerSendCancel(cid, "You can't do this.")
			end
		else
			return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.')
		end
	else
		doPlayerSendCancel(cid, "deixe o item na backpack") --mensagem que vai aparecer quando utilizar o item fora da bp
		return true
	end
end

 

Link para o post
Compartilhar em outros sites

@Mono Singed Não funcionou.

9 minutos atrás, Mono Singed disse:

Tenta assim: 


function BikeSpeedOn(cid,nSpeed)
	setPlayerStorageValue(cid,sBike,getCreatureSpeed(cid))
	doChangeSpeed(cid,getCreatureSpeed(cid)+nSpeed)
end

function BikeSpeedOff(cid)
	doChangeSpeed(cid,-getCreatureSpeed(cid))
	doChangeSpeed(cid,getPlayerStorageValue(cid,sBike))
end


function onUse(cid, item, fromPosition, itemEx, toPosition)
	local sBike = 2547
	local speed = 20 -- speed que você quer extra
	local t = {
	[18473] = {s=9999, condition=bikeCondition},
	}



	local v, r = getCreaturePosition(cid), t[item.itemid]
	local s = r.s
	local pos = {x = v.x, y = v.y, z = v.z}
	if fromPosition.x == CONTAINER_POSITION then
		if r then
			if getPlayerStorageValue(cid, 25000) == 5 then
				return
			end
			if getPlayerStorageValue(cid, 23000) == 5 then
				return
			end
			if isRiderOrFlyOrSurf(cid) then 
				doPlayerSendCancel(cid, "Dismount your pokemon to ride.")
				return true 
			end
			if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == item.uid then
				doPlayerSendCancel("Não está no slot correto")
				return true
			end
			if getPlayerStorageValue(cid, s) <= 0 then
				doCreatureSay(cid, r.text, 19)
				setPlayerStorageValue(cid, s, 1)
				BikeSpeedOn(cid,speed)
				player_outfit = getCreatureOutfit(cid)
				if getPlayerSex(cid) == 1 then
					doSetCreatureOutfit(cid, {lookType = 2293, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) ---Female
				else
					doSetCreatureOutfit(cid, {lookType = 2292, lookHead = player_outfit.lookHead, lookAddons = 0, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1) --- Male
				end

			elseif getPlayerStorageValue(cid, s) == 1 then
				doCreatureSay(cid, r.dtext, 19)
				setPlayerStorageValue(cid, s, 0)
				BikeSpeedOff(cid)
				return doRemoveCondition(cid, CONDITION_OUTFIT)
			else
				return doPlayerSendCancel(cid, "You can't do this.")
			end
		else
			return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Report bugs in Bike system.')
		end
	else
		doPlayerSendCancel(cid, "deixe o item na backpack") --mensagem que vai aparecer quando utilizar o item fora da bp
		return true
	end
end

 

 

Link para o post
Compartilhar em outros sites

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

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo