Ir para conteúdo

Sistema De Novos Items


Posts Recomendados

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 = tonumber(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[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="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. (É importante que voces peçam por novos atributos, porque os outros são mais complicados e eu nao vou faze-los para ninguem usar)

 

Atributos:

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

 

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

Editado por MatheusMkalo
Link para o comentário
Compartilhar em outros sites

  • Respostas 48
  • Created
  • Última resposta

Top Posters In This Topic

Mkalo o mais gato de todos!

 

Eu sempre pensei que tinha que fazer aquela palhaçada de Adicionar sprites e o cacete, mas você mudou meu modo de pensar... (parei)

Enfim REP+ brother, até a próxima!

 

É noix!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

×
×
  • Criar Novo...