Bem venho fazer um tutorial como se implementa ícones no cliente a pedido do valenza e aproveito e faço também de implementar items visto que tinha que o implementar..
Primeiro vamos criar o ícone, neste caso vai ser 1x1(no inventario), abrimos o Photoshop e criamos um ficheiro com as seguintes dimensões:
Depois de “desenharmos” o icon e vamos a “channels” e adicionamos um novo (isto serve para o ícone ficar transparente ingame):
Depois “recortamos” a Alpha 1 para ficar com fundo transparente ingame :
Feito isto guardamos o ficheiro como targa(.tga) com o nome do id neste caso vai ser “123456.tga”
Tendo o ícone pronto descompilamos o icon.epk e colocamo-lo na pasta \icon\item\ , depois disso vamos ao .xml gerado por a descompilação e adicionamos uma linha:
<File archivedPath="icon/item/123456.tga" type="1"><![CDATA[icon_descompilado\icon\item\123456.tga]]></File>
Atenção o directório do CDATA pode mudar (icon_descompilado) sendo o nome da pasta da descompilação…
Compilado o icon.epk, descompilamos o locale_XX.epk (o XX dependendo do cliente pt/de/it/…), dentro temos um ficheiro item_list.txt onde define os ícones para cada id, vamos adicionar a linha do nosso item:
123456 ETC icon/item/123456.tgaO itemdesc.txt serve para colocarmos uma descrição ao item iremos colocar:
123456 CG Tutorial para a cyber-gamers.Agora descompilamos o item_proto (está dentro do locale também) e adicionamos a linha:
<Item vnum="123456" name="CG" gb2312name="CG" type="14" subtype="0" weight="0" size="1" antiflag="0" flag="4" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="3" value1="1" value2="0" value3="0" value4="0" value5="0" socket0="65535" socket1="65535" socket2="65535" socket3="65535" socket4="65535" socket5="65535" refine_vnum="0" refine_set="0" magic_pct="0" specular="0" socket_pct="0" />Compilamos e colocamos dentro do locale novamente, e compilamos o locale com os ficheiros alterados, feito isto só falta adicionar ao item_proto do servidor, que adicionamos no com a seguinte query:
INSERT INTO `item_proto` (`vnum`, `name`, `locale_name`, `type`, `subtype`, `weight`, `size`, `antiflag`, `flag`, `wearflag`, `immuneflag`, `gold`, `shop_buy_price`, `refined_vnum`, `refine_set`, `refine_set2`, `magic_pct`, `limittype0`, `limitvalue0`, `limittype1`, `limitvalue1`, `applytype0`, `applyvalue0`, `applytype1`, `applyvalue1`, `applytype2`, `applyvalue2`, `value0`, `value1`, `value2`, `value3`, `value4`, `value5`, `socket0`, `socket1`, `socket2`, `socket3`, `socket4`, `socket5`, `specular`, `socket_pct`, `addon_type`) VALUES (123456, CG, CG, 5, 0, 0, 1, 0, 4, 0, '', 300, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);Este item não faz absolutamente nada foi só para criar o tutorial, feito isto tudo entramos no cliente que implementamos e testamos(/i 123456) devem ter o resultado assim:
Para quem quiser fazer o tutorial e nao queira fazer tga fica aqui o download para o utilizado:
https://dl.dropbox.com/u/56015091/cg/icons/123456.tgaCumprimentos