Ir para conteúdo

Featured Replies

Postado

Boa tarde, tenho as ferramentas aqui, mas estou com muita dificuldade para montar o código... poderia uma alma me ajudar a montar?

Missão: O Jogador poderá usar o comando de criar itens, no entanto será itens com ID especifico (parede porta etc) e poderá também destruir, no entanto... haverá apenas alguns locais especificos que poderá ser feito isso, abaixo segue os codigos:

Creating item:

Code (Lua):
  1. doCreateItem(id, amount, position)

Removing item by stored uid:

Code (Lua):
  1. doRemoveItem(uid, true)

Removing item by target crosshair:

Code (Lua):
  1. doRemoveItem(itemEx.uid, true)

Checking if player is in an area:

Code (Text):
  1. isInRange(playerpos, fromPos, toPos)

Creating an array:

Code (Lua):
  1. alloweditems = {id1,  id2, id3, ...}

Checking if some value is in an array:

Code (Lua):
  1. isInArray(array, value)
Postado

@shadauer 

Eu criei um aqui mas ele não chega se o player está na posição e sim se ele tem um storage, então eu criei um movements que da e retira a storage as vantagens são que você poderacolocar em qualquer outro lugar do mapa em vez de apenas um local, o de remover o item ainda estou fazendo..

 

OBS: Eu não testei então não sei se está funcional, me de seu feedback e caso de erro mande o erro pra min!

 

Eu adicionei uma parte caso queira tirar um item do player

ex:vou fazer uma porta de madeira então gasto madeira

Isso fica configuravem aqui:

["door"] =     {2160, 2, 2161, 2},
["door"] =     {IDdaPorta, QuantidadeDePortas, IDdaMadeira, QuantidadeDeMadeiras},

OBS:Em QuantidadeDePortas deixe 1, apenas mude caso o item tiver stack(juntar mais de 1 EX:Gold)

 

Eu deixei um comentário no script para que você entenda, mas se não souber editar alguma coisa me fale!

 

 

data/talkactions/script/Creator.lua

local itens =
{
  --["param"] =	 {CreateID, CreateQuantidade, NeedID, NeedQuantidade, StorageNeed},
	["wall"] =	 {2160, 1, 2161, 1},
	["door"] =	 {2160, 2, 2161, 2},
	["window"] = {2160, 3, 2161, 3},
}

function onSay(cid, words, param, channel)
local pos = getCreaturePosition(cid)
local itens = itens[string.lower(param)]
	if getPlayerStorageValue(cid, 767676) == 1 then
		if param == "" then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa escolher um item!")
		return true
		end

			if param == "wall" or param == "door" or param == "window" then
				if doPlayerRemoveItem(cid, itens[3], itens[4])
					doCreateItem(itens[1], itens[2], pos)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You create "..itens[2]..""..getItemNameById(itens[1]).."(s)")
					return true
				else	
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need "..itens[4]..""..getItemNameById(itens[3]).." to create it!")
					return true
				end
			else
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode criar este item!")
			return true
			end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não está no local correto!")
return true
end

data/talkactions/talkactions.xml

<talkaction event="script" words="!create;/create" value="Creator.lua"/>

data/movements/script/Creator.lua

function onStepIn(cid, item, position, fromPosition)
	if(isPlayer(cid)) then
		setPlayerStorageValue(cid, 767676, 1)
	end
	return true
end

function onStepOut(cid, item, position, fromPosition)
	if(isPlayer(cid)) then
		setPlayerStorageValue(cid, 767676, 1)
	end
	return true
end

 

data/movements/movements.xml

 

Caso queira colocar em um tile especifico use este!

<movevent type="StepIn" itemid="TileID" event="script" value="Creator.lua"/>
<movevent type="StepOut" itemid="TileID" event="script" value="Creator.lua"/>

 

Caso queira colocar uma actionid em um tile  use este! (ACONSELHO ESTE)

<movevent type="StepIn" actionid="767676" event="script" value="Creator.lua"/>
<movevent type="StepOut" actionid="767676" event="script" value="Creator.lua"/>

 

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

Postado
  • Autor


questão de o jogador poder desenvolver uma coisa com requisito de outra seria por exemplo ... criar uma porta precisa de 2160 1 (1 moeda de crystal) para faze-lo ? 


Caso esteja em cima daquele ID poderá executar o comando é isto?

<movevent type="StepIn" itemid="TileID" event="script" value="Creator.lua"/>
<movevent type="StepOut" itemid="TileID" event="script" value="Creator.lua"/>           

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

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo