Jump to content
Close
Sign in to follow this  
Bolex

Scripting Firstitems com nova classe

Recommended Posts

Então, eu coloquei minha nova classe no código e não funciona, isto é, não ganha firstitems, ja as outras classes ganham.

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="First Items" enabled="yes">
    <config name="firstitems_config"><![CDATA[
        STORAGE = 30001
        commonItems = {
            {itemid=2152, count=25, inContainer = true}, -- 25 platinum coins
            {itemid=2643}, -- leather boots
            {itemid=2173} -- aol
        }
        firstItems = {
            { -- Sorcerer    
                {itemid=15645}, -- backpack
                {itemid=2175}, -- spellbook
                {itemid=2190}, -- wand of vortex
                {itemid=8819}, -- magician's robe
                {itemid=8820}, -- mage hat
                {itemid=2648} -- chain legs
            },
            { -- Druid
                {itemid=15645}, -- backpack
                {itemid=2175}, -- spellbook
                {itemid=2182}, -- snakebite rod
                {itemid=8819}, -- magician's robe
                {itemid=8820}, -- mage hat
                {itemid=2648} -- chain legs
            },
            { -- Paladin
                {itemid=15645}, -- backpack
                {itemid=2525}, -- dwarven shield
                {itemid=2389, count=3}, -- 3 spears
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647} -- plate legs
            },
            { -- Knight
                {itemid=15645}, -- backpack
                {itemid=2525}, -- dwarven shield
                {itemid=2383}, -- spike sword
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647}, -- plate legs
                {itemid=2428} -- axe
            },
            { -- Assassin
                {itemid=15645}, -- backpack
                {itemid=2529}, -- black shield
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647}, -- plate legs
                {itemid=2406} -- short sword
            }

        }
    ]]></config>
    <event type="login" name="firstitems" event="script"><![CDATA[
        domodlib('firstitems_config')

        for _, items in ipairs(firstItems) do
            for _, item in ipairs(commonItems) do
                table.insert(items, item)
            end
        end

        function onLogin(cid)
            if getPlayerGroupId(cid) < 4 and getPlayerStorageValue(cid, STORAGE) < 1 and firstItems[getPlayerVocation(cid)] then
                for _, v in ipairs(firstItems[getPlayerVocation(cid)]) do
                    if isItemContainer(v.itemid) then
                        backpack = doPlayerAddItem(cid, v.itemid, 1)
                    elseif v.inContainer then
                        doAddContainerItem(backpack, v.itemid, v.count or 1)
                    else
                        doPlayerAddItem(cid, v.itemid, v.count or 1)
                    end
                end
                setPlayerStorageValue(cid, STORAGE, 1)
            end
            return true
        end
    ]]></event>
</mod>
 

 

 

 


Edited by Bolex (see edit history)



Share this post


Link to post
Share on other sites

So para eu entender aqui 100% antes de te dar a solução, você esta usando um sistema de first itens por mod correto?





Share this post


Link to post
Share on other sites

Sim, o script ta na pasta mods





Share this post


Link to post
Share on other sites
22 horas atrás, penisagudo disse:

So para eu entender aqui 100% antes de te dar a solução, você esta usando um sistema de first itens por mod correto?

 

Sim, o script ta na pasta mods.

Desculpa por postar duas vezes, é que eu não sei usar o fórum direito ainda





Share this post


Link to post
Share on other sites

@Bolex Testado em 8.60 mas deve funcionar em 8.54. Caso nenhuma seja sua versão eu adapto o seu.

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<mod name="First Items" version="1.0" author=":)" contact="tibiaking.com" enabled="yes">
	<config name="firstitems_config"><![CDATA[
		config = {
			
			storage = 6546533,
			common = {
				{id = 2160, amount = 2},
				{id = 2148, amount = 10}
			},
			class = {

				["Sorcerer"] = {
					{id = 2260, amount = 1},
					{id = 2261, amount = 1},
					{id = 2262, amount = 1},
					{id = 2263, amount = 1}
				},
				["Paladin"] = {
					{id = 2264, amount = 1},
					{id = 2265, amount = 1},
					{id = 2266, amount = 1},
					{id = 2267, amount = 1}
				}
			}
		}
	]]></config>
	<event type="login" name="FirstItems" event="buffer"><![CDATA[
		domodlib('firstitems_config')

		if (getPlayerStorageValue(cid, config.storage) > 0) then
			return true
		end
		
		local call = config.class[getVocationInfo(getPlayerVocation(cid)).name]
		if (call) then
			doPlayerAddItem(cid, 1987, 1)
			for _, v in ipairs(config.common) do
				doAddContainerItem(getPlayerSlotItem(cid, 3).uid, v.id, v.amount)
			end
			for _, v in ipairs(call) do
				doAddContainerItem(getPlayerSlotItem(cid, 3).uid, v.id, v.amount)
			end
			setPlayerStorageValue(cid, config.storage, 1)
		end
	]]></event>
</mod>

 

 


Edited by JoviM (see edit history)



Share this post


Link to post
Share on other sites
3 horas atrás, JoviM disse:

@Bolex Testado em 8.60 mas deve funcionar em 8.54. Caso nenhuma seja sua versão eu adapto o seu.

  Ocultar conteúdo


<?xml version="1.0" encoding="UTF-8"?>
<mod name="First Items" version="1.0" author=":)" contact="tibiaking.com" enabled="yes">
	<config name="firstitems_config"><![CDATA[
		config = {
			
			storage = 6546533,
			common = {
				{id = 2160, amount = 2},
				{id = 2148, amount = 10}
			},
			class = {

				["Sorcerer"] = {
					{id = 2260, amount = 1},
					{id = 2261, amount = 1},
					{id = 2262, amount = 1},
					{id = 2263, amount = 1}
				},
				["Paladin"] = {
					{id = 2264, amount = 1},
					{id = 2265, amount = 1},
					{id = 2266, amount = 1},
					{id = 2267, amount = 1}
				}
			}
		}
	]]></config>
	<event type="login" name="FirstItems" event="buffer"><![CDATA[
		domodlib('firstitems_config')

		if (getPlayerStorageValue(cid, config.storage) > 0) then
			return true
		end
		
		local call = config.class[getVocationInfo(getPlayerVocation(cid)).name]
		if (call) then
			doPlayerAddItem(cid, 1987, 1)
			for _, v in ipairs(config.common) do
				doAddContainerItem(getPlayerSlotItem(cid, 3).uid, v.id, v.amount)
			end
			for _, v in ipairs(call) do
				doAddContainerItem(getPlayerSlotItem(cid, 3).uid, v.id, v.amount)
			end
			setPlayerStorageValue(cid, config.storage, 1)
		end
	]]></event>
</mod>

 

 

 

O que faço com esse codigo? Substituo pelo firstitems?





Share this post


Link to post
Share on other sites

@Bolex Substitui por esse que eu te enviei. Pra configurar é só seguir a estrutura dos outros ["Nome da vocação"] = {items}...





Share this post


Link to post
Share on other sites

@JoviM  não funciona. Meu servidor é 9.60


Edited by Bolex (see edit history)



Share this post


Link to post
Share on other sites

@Bolex 

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<mod name="First Items" enabled="yes">
    <config name="firstitems_config"><![CDATA[
        STORAGE = 30001
        commonItems = {
            {itemid=2152, count=25, inContainer = true}, -- 25 platinum coins
            {itemid=2643}, -- leather boots
            {itemid=2173} -- aol
        }
        firstItems = {
            ["Sorcerer"] = {   
                {itemid=15645}, -- backpack
                {itemid=2175}, -- spellbook
                {itemid=2190}, -- wand of vortex
                {itemid=8819}, -- magician's robe
                {itemid=8820}, -- mage hat
                {itemid=2648} -- chain legs
            },
            ["Druid"] = {
                {itemid=15645}, -- backpack
                {itemid=2175}, -- spellbook
                {itemid=2182}, -- snakebite rod
                {itemid=8819}, -- magician's robe
                {itemid=8820}, -- mage hat
                {itemid=2648} -- chain legs
            },
            ["Paladin"] = { -- Paladin
                {itemid=15645}, -- backpack
                {itemid=2525}, -- dwarven shield
                {itemid=2389, count=3}, -- 3 spears
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647} -- plate legs
            },
            ["Knight"] = {
                {itemid=15645}, -- backpack
                {itemid=2525}, -- dwarven shield
                {itemid=2383}, -- spike sword
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647}, -- plate legs
                {itemid=2428} -- axe
            },
            ["Assassin"] = {
                {itemid=15645}, -- backpack
                {itemid=2529}, -- black shield
                {itemid=2463}, -- plate armor
                {itemid=2457}, -- steel helmet
                {itemid=2647}, -- plate legs
                {itemid=2406} -- short sword
            }

        }
    ]]></config>
    <event type="login" name="firstitems" event="script"><![CDATA[
        domodlib('firstitems_config')

        for _, items in ipairs(firstItems) do
            for _, item in ipairs(commonItems) do
                table.insert(items, item)
            end
        end

        function onLogin(cid)
            if getPlayerGroupId(cid) < 4 and getPlayerStorageValue(cid, STORAGE) < 1 and firstItems[getVocationInfo(getPlayerVocation(cid)).name] then
                for _, v in ipairs(firstItems[getVocationInfo(getPlayerVocation(cid)).name]) do
                    if isItemContainer(v.itemid) then
                        backpack = doPlayerAddItem(cid, v.itemid, 1)
                    elseif v.inContainer then
                        doAddContainerItem(backpack, v.itemid, v.count or 1)
                    else
                        doPlayerAddItem(cid, v.itemid, v.count or 1)
                    end
                end
                setPlayerStorageValue(cid, STORAGE, 1)
            end
            return true
        end
    ]]></event>
</mod>

 

 





Share this post


Link to post
Share on other sites

@JoviM Funcionou. Obrigado pelo pela ajuda.





Share this post


Link to post
Share on other sites

@Bolex Em poucas palavras, caso não tenha entendido o erro. O erro está na forma com que o script identifica a vocação para entregar o item ao player. Primeiro ele pega o id da vocação e depois acessa a posição na tabela referente a esse valor. Funciona, se tudo estiver em sequência exata!

 

No seu caso ele não pode acessar a posição 5 da tabela por que o id da vocação não é 5. Ex:

local config = {
  
  -- [Posição] = {Nome, ID}
	[1] = {"Sorcerer", 1},
	[2] = {"Druid", 2},
	[3] = {"Paladin", 3},
	[4] = {"Knight", 4},
	[5] = {"Assassin", 15}
}

 

 

 


Edited by JoviM (see edit history)



Share this post


Link to post
Share on other sites

@JoviM Entendi. Obrigadão rapaz.

Essa parte não funcionou, então eu puis os itens em cada classe e ta de boa.


        commonItems = {
            {itemid=2152, count=25, inContainer = true}, -- 25 platinum coins
            {itemid=2643}, -- leather boots
            {itemid=2173} -- aol
        }

 





Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...