Ir para conteúdo
  • Cadastre-se

(Resolvido)Como Editar esse Script, passar na porta apenas se tiver feito quests anterior.


Ir para solução Resolvido por Nysman,

Posts Recomendados

tibia king.Qual servidor ou website você utiliza como base? 

 

Qual o motivo deste tópico? 

Me ajudar a editar um script simples.

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

Não sei como editar correto a parte do Script de, que o player só pode passar na porta se tiver feito, quests anterior para ter permissão de fazer a atual. A primeira parte do script tá perfeita, agora a segunda, que e essa, que estou solicitando não sei como proceder.

 

Você tem o código disponível? Se tiver publique-o aqui: 

function onUse(cid, item, frompos, item2, topos)

	if item.uid == 1000 and getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4 then
 	queststatus = getPlayerStorageValue(cid,1000)
 	if queststatus == -1 then
 	doPlayerSendTextMessage(cid,22,"You have found a crusader helmet.")
 	doPlayerAddItem(cid,2497,1)
 	setPlayerStorageValue(cid,1000,1)
	doBroadcastMessage("O player "..getCreatureName(cid).." completou a quest Crusader helmet!",MESSAGE_STATUS_WARNING)
 	else
 	doPlayerSendTextMessage(cid,22,"It is empty.")
	end
	else
	return 0
	end
	
	return 1
	end 
	
	
	
	
	
	
	
	function onUse(cid, item, frompos, item2, topos)

  local storate,value = 874157,1 -- numero da storage, e o valor que ganha na quest da storage
  local vocationId = 6
  
  if not getPlayerVocation(cid) == vocationId then
    return doPlayerSendTextMessage(cid,22,"Você precisa ser um ? para entrar na área especial.")
  elseif not getPlayerStorageValue(cid, storate) == value then
    return doPlayerSendTextMessage(cid,22,"Você precisa fazer a quest para entrar na área especial.")
  end
  
  doTeleportThing(cid,{x=134, y=2443, z=7}) 
  doPlayerSendTextMessage(cid,22,"Você foi teleportado para área dos ?.") 
  return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

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

Em movements/script/ crie um arquivo.lua e adiciona o seguinte:

Spoiler

function onStepIn(cid, item, position, fromPosition)
	
	local config = {
		msgDenied = "Você não tem a xxx, faça a quest para adquiri-la.",
		msgWelcome = "Seja bem-vindo a área Xxx."
	}
	
	if getPlayerStorageValue(cid, 23569) == 0 then
		doTeleportThing(cid, fromPosition, true)
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
	else
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
	end
end

Adiciona essa tang no movements.xml:

<movevent type="StepIn" actionid="12000" event="script" value="aquivo.lua"/>

 

obs: 12000 é o actionid que você vai colocar na porta desejada.

//Ele só vai passar na porta caso esteja com a storange 23569. É bem simples essa parte, basta adicionar a storage que o player recebe na quest que ele precisa fazer antes de passar na porta.

Editado por Nysman (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
9 horas atrás, mishell147 disse:

tibia king.Qual servidor ou website você utiliza como base? 

 

Qual o motivo deste tópico? 

Me ajudar a editar um script simples.

Está surgindo algum erro? Se sim coloque-o aqui. 

 

Você tem o código disponível? Se tiver publique-o aqui: 


function onUse(cid, item, frompos, item2, topos)

	if item.uid == 1000 and getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4 then
 	queststatus = getPlayerStorageValue(cid,1000)
 	if queststatus == -1 then
 	doPlayerSendTextMessage(cid,22,"You have found a crusader helmet.")
 	doPlayerAddItem(cid,2497,1)
 	setPlayerStorageValue(cid,1000,1)
	doBroadcastMessage("O player "..getCreatureName(cid).." completou a quest Crusader helmet!",MESSAGE_STATUS_WARNING)
 	else
 	doPlayerSendTextMessage(cid,22,"It is empty.")
	end
	else
	return 0
	end
	
	return 1
	end 
	
	
	
	
	
	
	
	function onUse(cid, item, frompos, item2, topos)

  local storate,value = 874157,1 -- numero da storage, e o valor que ganha na quest da storage
  local vocationId = 6
  
  if not getPlayerVocation(cid) == vocationId then
    return doPlayerSendTextMessage(cid,22,"Você precisa ser um ? para entrar na área especial.")
  elseif not getPlayerStorageValue(cid, storate) == value then
    return doPlayerSendTextMessage(cid,22,"Você precisa fazer a quest para entrar na área especial.")
  end
  
  doTeleportThing(cid,{x=134, y=2443, z=7}) 
  doPlayerSendTextMessage(cid,22,"Você foi teleportado para área dos ?.") 
  return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Está tu a mesclar duas coisas distintas a mesma script. tu não quer apenas o script da porta? dirme-eis quais requisitos e seus respectivos valores se faz necessário tê-los para transpassar a porta.

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