Ir para conteúdo
  • Cadastre-se

(Resolvido)[Duvida] Script usado em mais de um actionid


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

Boa noite galera. Estou com uma duvida em meu script e não sei se é possível ou não fazer o que eu quero.

 

bom aqui vai o script e embaixo o requerido

function onUse(cid, item, frompos, topos)
	if item.uid == 9200 and item.itemid == 1946 then
        doSummonCreature("Rotworm", {x = 742, y = 988, z = 14})
		doRemoveItem(item.uid, 1946)
    end
end
<action uniqueid="9200" event="script" value="kingshield/parte2.lua"/>

Bom aqui é assim, é uma Alavanca usada, quando eu uso ela, Sumona um monstro e remove a alavanca para mais ninguém usar esta funcionando normalmente.

Gostaria de usar esse script e mais umas 20 alavancas por exemplo. 20 alavancas com a mesma opção. não quero ter que fazer 20 scripts para isso. e gostaria de estar adicionando nesse script pra quando usar, ele remover uma parede uma opção desejada também. 

 

desculpe se for na area errada!

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServAprovação de Tópicos de Conteúdos"

Para: "OTServSuporte OTServSuporte de Scripts"

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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

Seguinte, tente entender a lógica do script ... 

Fiz um vetor, onde ele captura o action id do item que você clica, e "puxa" a posição respectiva do vetor.

local table = {
	[17500] = {pos= {x = 742, y = 988, z = 14}},
	[17501] = {pos= {x = 742, y = 988, z = 14}},
}

function onUse(cid, item, frompos, topos)

	local action = table[item.actionid]
	
	if action and item.itemid == 1946 then
		doSummonCreature("Rotworm", action.pos)
		doRemoveItem(item.uid, 1946)
	end
end

Agora é só editar as action id, coloca-lá na alavanca e arrumar a posição.

Pode colocar quantos quiser ...

local table = {
	[17500] = {pos= {x = 742, y = 988, z = 14}},
	[17501] = {pos= {x = 742, y = 988, z = 14}},
	[17502] = {pos= {x = 742, y = 988, z = 14}},
	[17503] = {pos= {x = 742, y = 988, z = 14}},
	[17504] = {pos= {x = 742, y = 988, z = 14}},
	[17505] = {pos= {x = 742, y = 988, z = 14}},
	[17506] = {pos= {x = 742, y = 988, z = 14}},
	[17507] = {pos= {x = 742, y = 988, z = 14}},
	[17508] = {pos= {x = 742, y = 988, z = 14}},
	[17509] = {pos= {x = 742, y = 988, z = 14}},
	[17510] = {pos= {x = 742, y = 988, z = 14}},
}

Obs: não testei.

Link para o post
Compartilhar em outros sites

funcionou, modifiquei um negocio e foi que foi.

bom aproveitando o topico para nao fazer outro, me ajuda nesse script de anihi aqui ?

local config = {
	daily = "no", -- allow only one enter per day? (like in global Tibia)
	level = 1,
	storage = 30015,
	entry =
	{
		{x = 731, y = 987, z = 13},
		{x = 731, y = 988, z = 13},
		{x = 731, y = 989, z = 13},
		{x = 731, y = 990, z = 13}
	},
	destination =
	{
		{x = 734, y = 994, z = 14},
		{x = 735, y = 994, z = 14},
		{x = 736, y = 994, z = 14},
		{x = 737, y = 994, z = 14}
	}
}

config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == 1946) then
		if(config.daily) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		else
			doTransformItem(item.uid, item.itemid - 1)
		end

		return true
	end

	if(item.itemid ~= 1945) then
		return true
	end

	local players = {}
	for _, position in ipairs(config.entry) do
		local pid = getTopCreature(position).uid
		if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
			return true
		end

		table.insert(players, pid)
	end

	for i, pid in ipairs(players) do
		doSendMagicEffect(config.entry[i], CONST_ME_POFF)
		doTeleportThing(pid, config.destination[i], false)
		doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)
	end

	doTransformItem(item.uid, item.itemid + 1)
	return true
end

bom ai ele faz o que da pra entender, 4 players em suas posicoes, alavanca puxada players teleportados.

quero add pra nascer monstro junto com os players teleportados, e remover 2 paredes onde tem uma passagem.

tentei add isso mas nao foi

 

doSummonCreature("Orshabaal", {x = 734, y = 992, z = 14})
doSummonCreature("Orshabaal", {x = 736, y = 992, z = 14})
doSummonCreature("Orshabaal", {x = 738, y = 992, z = 14})
doSummonCreature("Orshabaal", {x = 732, y = 994, z = 14})
doSummonCreature("Orshabaal", {x = 739, y = 994, z = 14})
doSummonCreature("Orshabaal", {x = 734, y = 996, z = 14})
doSummonCreature("Orshabaal", {x = 736, y = 996, z = 14})
doSummonCreature("Orshabaal", {x = 738, y = 996, z = 14})
doSummonCreature("Orshabaal", {x = 727, y = 988, z = 13})

 

as 2 walls que são para sumir esta nessa posição

 x:727 y:986 z:13   id:12895

 da stone wall

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

^

local config = {
    daily = "no", -- allow only one enter per day? (like in global Tibia)
    level = 1,
    storage = 30015,
    entry =
    {
        {x = 731, y = 987, z = 13},
        {x = 731, y = 988, z = 13},
        {x = 731, y = 989, z = 13},
        {x = 731, y = 990, z = 13}
    },
    destination =
    {
        {x = 734, y = 994, z = 14},
        {x = 735, y = 994, z = 14},
        {x = 736, y = 994, z = 14},
        {x = 737, y = 994, z = 14}
    },
    wall = {
        id = 12895,                 --ID das paredes que serão removidas.
        positions = {
            {x = x, y = y, z = z},  --Posições das paredes.
            {x = x, y = y, z = z},
        },
    },
    monster = "Orshabaal",          --Nome do monstro que vai ser summonado.
    positions = {
        {x = x, y = y, z = z},      --Posições que o monstro vai ser invocado.
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
        {x = x, y = y, z = z},
    },
}
 
config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == 1946) then
        if(config.daily) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        else
            doTransformItem(item.uid, item.itemid - 1)
        end
 
        return true
    end
 
    if(item.itemid ~= 1945) then
        return true
    end
 
    local players = {}
    for _, position in ipairs(config.entry) do
        local pid = getTopCreature(position).uid
        if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
            return true
        end
 
        table.insert(players, pid)
    end
 
    for i, pid in ipairs(players) do
        doSendMagicEffect(config.entry[i], CONST_ME_POFF)
        doTeleportThing(pid, config.destination[i], false)
        doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)
    end
    for i = 1, #config.positions do
        doCreateMonster(config.monster, config.positions[i])
    end
    for i = 1, #config.wall.positions do
        local _item = getTileItemById(config.wall.positions[i], config.wall.id).uid
        if _item > 0 then
            doRemoveItem(_item)
        end
    end
 
    doTransformItem(item.uid, item.itemid + 1)
    return true
end
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

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