Postado Janeiro 26, 2021 4 anos Salve galerinha, alguem sabe alguma função pra capturar o nome do item no gesior?
Postado Janeiro 26, 2021 4 anos 30 minutos atrás, lemongie disse: Salve galerinha, alguem sabe alguma função pra capturar o nome do item no gesior? Eu não conheço o gesior bem, mas acredito que por padrão não exista essa função. O que você pode fazer é 1 script para ler o items.xml e salvar a lista de items, e depois fazer 1 select onde o id do item no BD seja igual ao id que você está chamando, se for, pede pra exibir o nome dele. Para ler 1 arquivo em php utilizando o site do gesior você pode utilizar isto: if(file_exists($config['site']['serverPath'] . '/items/items.xml')) { $items = new DOMDocument(); $items->load($config['site']['serverPath'] . '/items/items.xml'); } Para criar 1 tabela no banco de dados, você pode utilizar este comando: CREATE TABLE IF NOT EXISTS `list_of_items` ( `id` INT(11) NOT NULL, `name` VARCHAR(32) NOT NULL, `description` VARCHAR(32) NOT NULL, `slottype` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM; Para percorrer o arquivo items.xml em php você pode fazer algo parecido com isto: foreach($items->getElementsByTagName('item') as $item) { $description = 'Without Description'; foreach( $item->getElementsByTagName('attribute') as $attribute) { if ($attribute->getAttribute('key') == 'description'){ $description = $attribute->getAttribute('value'); $desc = 1; } if ($attribute->getAttribute('key') == 'slotType'){ $db->query(" INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES ('". $item->getAttribute('id') ."', '".$item->getAttribute('name') ."', '". $description ."', '". $attribute->getAttribute('value') ."'); "); } else if ($attribute->getAttribute('key') == 'weaponType'){ $db->query(" INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES ('". $item->getAttribute('id') ."', '".$item->getAttribute('name') ."', '". $description ."', '". $attribute->getAttribute('value') ."'); "); } } } Depois, você só precisa chamar 1 função para fazer 1 select onde o ID deva ser igual ao ID do item que você deseja exibir o nome. O retorno do select vai retornar o Nome e o Atributo dele, ai só precisa exibir. Quem eu sou? Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web.. Meus Projetos: Falcon Games Meu Github: https://github.com/WalistonBelles Meu Discord: Endless#5410 Minhas Contribuições atualmente pra Comunidade: [SHOWOFF] OTClient Showoff Módules [DESIGN] 3 FREE Game Ui Design [TUTORIAL] Instalando MyAAC em sua máquina [TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache [TUTORIAL] Proteção contra DDoS utilizando Mod-evasive no Apache [SISTEMA] Plugin MyAAC Listagem de Items automática [SISTEMA] Gerador de Outfits Automática para o Site [SISTEMA] Sistema de Troca de Vocação para MyAAC [SISTEMA] Plugin MyAAC Auction System [SISTEMA] Sistema de Exibir Monstros por Level Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!! Picpay: @walistonbelles Paypal: [email protected]
Postado Dezembro 12, 2022 2 anos Em 26/01/2021 em 12:32, Endless disse: Eu não conheço o gesior bem, mas acredito que por padrão não exista essa função. O que você pode fazer é 1 script para ler o items.xml e salvar a lista de items, e depois fazer 1 select onde o id do item no BD seja igual ao id que você está chamando, se for, pede pra exibir o nome dele. Para ler 1 arquivo em php utilizando o site do gesior você pode utilizar isto: if(file_exists($config['site']['serverPath'] . '/items/items.xml')) { $items = new DOMDocument(); $items->load($config['site']['serverPath'] . '/items/items.xml'); } Para criar 1 tabela no banco de dados, você pode utilizar este comando: CREATE TABLE IF NOT EXISTS `list_of_items` ( `id` INT(11) NOT NULL, `name` VARCHAR(32) NOT NULL, `description` VARCHAR(32) NOT NULL, `slottype` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM; Para percorrer o arquivo items.xml em php você pode fazer algo parecido com isto: foreach($items->getElementsByTagName('item') as $item) { $description = 'Without Description'; foreach( $item->getElementsByTagName('attribute') as $attribute) { if ($attribute->getAttribute('key') == 'description'){ $description = $attribute->getAttribute('value'); $desc = 1; } if ($attribute->getAttribute('key') == 'slotType'){ $db->query(" INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES ('". $item->getAttribute('id') ."', '".$item->getAttribute('name') ."', '". $description ."', '". $attribute->getAttribute('value') ."'); "); } else if ($attribute->getAttribute('key') == 'weaponType'){ $db->query(" INSERT INTO `list_of_items` (`id`, `name`, `description`, `slottype`) VALUES ('". $item->getAttribute('id') ."', '".$item->getAttribute('name') ."', '". $description ."', '". $attribute->getAttribute('value') ."'); "); } } } Depois, você só precisa chamar 1 função para fazer 1 select onde o ID deva ser igual ao ID do item que você deseja exibir o nome. O retorno do select vai retornar o Nome e o Atributo dele, ai só precisa exibir. pode detalhar um pouco mais irmão? Sei que tá bem detalhado já, mas não consegui avançar
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.