Criando Novos Items

35383
Por 35383
em Mods, funções e outros

35383

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/11Posts: 35Char no Tibia: Um que existe

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:

Pabloxsz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/01/13Posts: 9
:) vlw ai re+

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

amigo reviver topicos com esse tpw de conteudo eh considerado flood, leia as regras

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

MaryGirl13

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/05/13Posts: 70

Funciona mesmo, já foi testado no global?

guhunter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/12/12Posts: 6Char no Tibia: GuHunter

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

PrisonDoom13

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/11/13Posts: 7Char no Tibia: Zagnumor Dogos

"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