Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Bem, como todos sabem, não da pra criar 2 items com o mesmo sprite, somente editando a source e o dat etc...

Usando esse sistema que eu fiz voce nao precisara editar nada somente adicionar os scripts.

Primeiramente vá na pasta lib e crie um arquivo ItemsEditedLib.lua e adicione isso dentro:

function doPlayerAddEditedItem(cid, itemid)

    local newxml = io.open("data/items/newitems.xml", "r")

    local configs = {}


    for i in newxml:read("*a"):gmatch("<item (.-)</item>") do

        local itemid = i:match('id="(.-)"')

        local itemconfig = {

            ["spriteid"] = tonumber(i:match('spriteid.-=.-"(.-)"')),

	    ["article"] = i:match('article.-=.-"(.-)"'),

            ["name"] = i:match('name.-=.-"(.-)"'),

            ["description"] = i:match('key.-=.-"description".-value.-=.-"(.-)"'),

            ["defense"] = tonumber(i:match('key.-=.-"defense".-value.-=.-"(.-)"')),

            ["attack"] = tonumber(i:match('key.-=.-"attack".-value.-=.-"(.-)"')),

            ["extradefense"] = tonumber(i:match('key.-=.-"extradef".-value.-=.-"(.-)"')),

            ["armor"] = tonumber(i:match('key.-=.-"armor".-value.-=.-"(.-)"')),

            ["extraattack"] = tonumber(i:match('key.-=.-"extraatk".-value.-=.-"(.-)"')), 

        }

        configs[tonumber(itemid)] = itemconfig

    end

	if configs[itemid] then

	    local item = doPlayerAddItem(cid, configs[itemid].spriteid)

	    for i,x in pairs(configs[itemid]) do

		doItemSetAttribute(item, i, x)

	    end

	end

end
Depois vá na pasta items e adicione um arquivo newitems.XML (XML NAO LUA!!!) e adicione isso dentro:
<?xml version="1.0" encoding="UTF-8"?>

<items>

	<item id="100" spriteid="2400" article="a" name="magic edited sword">

		<attribute key="description" value="Arma editada." />

		<attribute key="defense" value="45" />

		<attribute key="attack" value="100" />

                <attribute key="elementIce" value="34"/>

		<attribute key="extradef" value="10" />

                <attribute key="extraatk" value="10" />

	</item>

	<item id="101" spriteid="2472" article="a" name="master plate armor">

		<attribute key="description" value="Armor editada." />

		<attribute key="armor" value="19" />

	</item>

</items>

Bem como voces podem ver, o xml guarda os novos items, o xml funciona praticamente como o items.xml so que tem um novo campo o "spriteid", nele fica o itemid original.

Eu sei que ainda faltam atributos, com o tempo e com os pedidos eu vou adicionando.

Atributos:

  • "description"
  • "defense"
  • "attack"
  • "extradefense"
  • "armor"
  • "extraattack"

Para adicionar os novos itemids aos players use doPlayerAddEditedItem(cid, ITEMID) em vez de doPlayerAddItem...

Não tinha onde postar entao foi aki mesmo.

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

  • 1 month later...
  • Respostas 13
  • Visualizações 6.7k
  • Created
  • Última resposta

Top Posters In This Topic

  • 1 month later...
  • 1 year later...

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