Coloque os devidos créditos por favor.
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Sistema De Novos Items
IB
Sistema De Novos Items
Por ibne, 21 de jan. de 2012 em Mods, funções e outros
sistema de novos items
script
5.0 (1)
4
1.2k
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

22 de janeiro de 2012 às 00:06
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

26 de janeiro de 2012 às 12:18
que coisa feia
100% raiper esse topico
se so copio e mudo a fonte to topico do mkalo,copio ate o nome do topico
coloque os devidos creditos(como ja foi dito)
a unica coisa que tem de diferente(tirando a cor e a fonte) é isso que se coloco no fim
'Não tinha onde postar entao foi aki mesmo. '
pra n nega aki o link do topico do mkalo
http://www.xtibia.com/forum/topic/158192-sistema-de-novos-items/
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo

26 de janeiro de 2012 às 12:31
Que bonito


info
Grupo: Artesão
Registrado: 03/12/10
Posts: 103
Reputação: +16
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:
Para adicionar os novos itemids aos players use doPlayerAddEditedItem(cid, ITEMID) em vez de doPlayerAddItem...
Não tinha onde postar entao foi aki mesmo.