Ir para conteúdo

Criando Novos Items


35383

Posts Recomendados

Pessoal vamos começar sei que não sou um bom scripter

mas vou tentar não chorar pelas criticas

 

Com esse script você nao precisara editar nada somente adicionar os scripts.

 

Vá na pasta do seu OT data/lib e criei um arquivo.lua e renomeie para

Item.lua apague tudo dentro e cole isso:

 

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

 

Pronto agora vá na pasta do ot/data/items e crie um arquivo xml

e renomeie para novositems.xml apague tudo dentro e coloque isso:

 

<?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>

Bom como vocês podem ver os arquivos XML ele guarda os items adicionais a ele

ele funciona como o items.xml que tambem está na pasta

 

os atributos são:

 

    ♦ "description"
   ♦ "defense"
   ♦ "attack"
   ♦ "extradefense"
   ♦ "armor"
   ♦ "extraattack"

 

 

 

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

 

:aaskull: Até mais.... :aaskull:

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

  • 1 year later...
  • 4 months later...

Bom tutorial!Apesar de no começo dizer algumas coisas que foge do seu objetivo,mas é um ótimo tutorial para iniciantes..Ótimos trababalhos já feitos

 

Boa sorte nos seus próximos forum!

Nunca esqueça desta frase que meu amigo que perdi hoje mesmo me disse:você é um guerreiro,seu destino é ser um rei.

 

Era melhor pessoa que eu tinha conhecido..triste triste

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

  • 6 months later...

"PrisonDoom13, o último post deste tópico tem mais de 30 dias e uma nova postagem agora poderá ser considerada como flood!"

Eu sei, mais o que um usuário novato (como eu) que possui uma dúvida faz em relação a um post antigo? Ele não pode comentar/escrever no tópico por toda sua eternidade? rs

Seguinte, eu testei aqui e não funcionou.

 

newitems.xml

<?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="1313" spriteid="2472" article="a" name="master plate armor">
  <attribute key="description" value="Awesome Armor." />
  <attribute key="armor" value="20" />
 </item>
</items>

custom_item.lua

function onUse(cid, item, frompos, item2, topos)
 if item.uid == 1313 then
 queststatus = getPlayerStorageValue(cid,1313)
 if queststatus == -1 or queststatus == 0 then
 doPlayerSendTextMessage(cid,22,"You got a Custom Item")
item_uid = doPlayerAddEditedItem(cid,1313) 

 setPlayerStorageValue(cid,1313,0)

else
 doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
 else
 return 0
 end
 return 1
 end

actions.xml

<action uniqueid="1313" script="custom_item.lua" />

O que houve de errado? Tibia ot 8.60

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

×
×
  • Criar Novo...