Ir para conteúdo
  • Cadastre-se

(Resolvido)O que tem de errado?


Ir para solução Resolvido por zipter98,

Posts Recomendados

Boa Tarde,

 

 

 

Estou tentando criar um Actions que doma a montaria fora a que já vem no servidor, mais não sei o que tem de errado =( 

 

 

Configurações;

 

Actions.xml

<action itemid="13537" script="other/donkey.lua"/> - ID do item que doma = 13537

 

 

 

donkey.lua

local monster = "donkey"

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

	if itemEx.itemid == id then
		doPlayerAddMount(cid, 13)
		doPlayerSendTextMessage(cid, 19,"The strange wheel seems to vibrate and slowly starts turning continuosly.")
		doPlayerRemoveItem(cid, 13537, 1)
	else
		doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
	end
	
	return true
end 

 

 

 

 

OBS: Não da erro algum na distro, quando eu vou dar use no item e clico no Donkey aparece essa msg e não adiciona o monstro =/

 

Msg que aparece 

Sorry, you already have that ride. 

 

 

 

 

 

abs

 

 

Link para o post
Compartilhar em outros sites

Tenta assim :

local id = 13937

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

	if item2.itemid == id then
		doPlayerAddMount(cid, 13)
		doPlayerSendTextMessage(cid, 19,"The strange wheel seems to vibrate and slowly starts turning continuosly.")
		doPlayerRemoveItem(cid, item.uid, 1)
	else
		return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
	end
	
	return true
end
Editado por Stinger (veja o histórico de edições)

I must not fear. Fear is the mind killer.

Link para o post
Compartilhar em outros sites

 

Tenta assim :

local id = 13937

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

	if item2.itemid == id then
		doPlayerAddMount(cid, 13)
		doPlayerSendTextMessage(cid, 19,"The strange wheel seems to vibrate and slowly starts turning continuosly.")
		doPlayerRemoveItem(cid, item.uid, 1)
	else
		return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
	end
	
	return true
end

assim ele não vai usar no monstro que é o certo =(

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: "OTServSuporte OTServSuporte de OTServ Geral"

Para: "OTServSuporte OTServSuporte de Scripts"

Link para o post
Compartilhar em outros sites

local monster, storage = "donkey", 5918
function onUse(cid, item, frompos, itemEx, topos)
    if getPlayerStorageValue(cid, storage) > -1 then
        return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
    elseif not isMonster(itemEx.uid) then
        return doPlayerSendCancel(cid, "Use this in a monster.")
    elseif getCreatureName(itemEx.uid):lower() ~= monster then
        return doPlayerSendCancel(cid, "Use this in "..monster..".")
    end
    doPlayerAddMount(cid, 13)
    doPlayerSendTextMessage(cid, 19, "The strange wheel seems to vibrate and slowly starts turning continuosly.")
    doRemoveItem(item.uid, 1)
    setPlayerStorageValue(cid, storage, 1)
    return true
end

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

Link para o post
Compartilhar em outros sites

Optei por deixar a essência do código do autor, não alterando sua funcionalidade original. Se o Lykkan quiser, posso adicionar esta função de remover a criatura alvo.

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

Link para o post
Compartilhar em outros sites
local monster, storage = "donkey", 5918
function onUse(cid, item, frompos, itemEx, topos)
    if getPlayerStorageValue(cid, storage) > -1 then
        return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
    elseif not isMonster(itemEx.uid) then
        return doPlayerSendCancel(cid, "Use this in a monster.")
    elseif getCreatureName(itemEx.uid):lower() ~= monster then
        return doPlayerSendCancel(cid, "Use this in "..monster..".")
    end
    doPlayerAddMount(cid, 13)
    doPlayerSendTextMessage(cid, 19, "The strange wheel seems to vibrate and slowly starts turning continuosly.")
    doRemoveItem(item.uid, 1)
    setPlayerStorageValue(cid, storage, 1)
    return true
end

Seria bom se remove-se a criatura e como eu faço pra colocar em outras montarias é só mudar o ID do item que vai remover e o nome da criatura?

Link para o post
Compartilhar em outros sites

local mounts = {
    --[itemid] = {name = "monster", storage = storage, mountId = xxx}, 
    [13937] = {name = "donkey", storage = 5918, mountId = 13},
}
function onUse(cid, item, frompos, itemEx, topos)
    local target = mounts[item.itemid]
    if target then
        if getPlayerStorageValue(cid, target.storage) > -1 then
            return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
        elseif not isMonster(itemEx.uid) then
            return doPlayerSendCancel(cid, "Use this in a monster.")
        elseif getCreatureName(itemEx.uid):lower() ~= target.name then
            return doPlayerSendCancel(cid, "Use this in "..target.name..".")
        end
        doPlayerAddMount(cid, target.mountId)
        doRemoveCreature(itemEx.uid)
        doPlayerSendTextMessage(cid, 19, "The strange wheel seems to vibrate and slowly starts turning continuosly.")
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, target.mountId, 1)
    end
    return true
end

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

Link para o post
Compartilhar em outros sites
local mounts = {
    --[itemid] = {name = "monster", storage = storage, mountId = xxx}, 
    [13937] = {name = "donkey", storage = 5918, mountId = 13},
}
function onUse(cid, item, frompos, itemEx, topos)
    local target = mounts[item.itemid]
    if target then
        if getPlayerStorageValue(cid, target.storage) > -1 then
            return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
        elseif not isMonster(itemEx.uid) then
            return doPlayerSendCancel(cid, "Use this in a monster.")
        elseif getCreatureName(itemEx.uid):lower() ~= target.name then
            return doPlayerSendCancel(cid, "Use this in "..target.name..".")
        end
        doPlayerAddMount(cid, target.mountId)
        doRemoveCreature(itemEx.uid)
        doPlayerSendTextMessage(cid, 19, "The strange wheel seems to vibrate and slowly starts turning continuosly.")
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, target.mountId, 1)
    end
    return true
end

Não da erro e nem funciona xD não aparece nada =(

Link para o post
Compartilhar em outros sites

Você provavelmente está usando um item que não foi configurado na tabela mounts.

PS: O que já foi configurado como exemplo é um ID hipotético.

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
  • Solução

local mounts = {
    --[itemid] = {name = "monster", storage = storage, mountId = xxx, chance = xxx}, 
    [13937] = {name = "donkey", storage = 5918, mountId = 13, chance = 50},        --Sendo a chance (de funcionar) em porcentagem.
}
function onUse(cid, item, frompos, itemEx, topos)
    local target = mounts[item.itemid]
    if target then
        if getPlayerStorageValue(cid, target.storage) > -1 then
            return doPlayerSendTextMessage(cid, 19, "Sorry, you already have that ride.")
        elseif not isMonster(itemEx.uid) then
            return doPlayerSendCancel(cid, "Use this in a monster.")
        elseif getCreatureName(itemEx.uid):lower() ~= target.name then
            return doPlayerSendCancel(cid, "Use this in "..target.name..".")
        end
        if math.random(1, 100) <= target.chance then
            doPlayerAddMount(cid, target.mountId)
            doRemoveCreature(itemEx.uid)
            doPlayerSendTextMessage(cid, 19, "The strange wheel seems to vibrate and slowly starts turning continuosly.")
            setPlayerStorageValue(cid, target.mountId, 1)
        else
            doPlayerSendCancel(cid, "Fail!")
            doRemoveItem(item.uid, 1)
        end
    end
    return true
end

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