Os Melhores
Conteúdo popular
Mostrando conteúdo com a maior reputação em 05/01/25 in todas as áreas
-
Essa home está 100% pode baixar e usar no seu servidor oficial ou teste! Arquivos incluso: Libs Home Sistema de lojinha off Botões no inventário Proteção OG Pwadmin Para utilizar tudo isso basta baixa o cliente full do meu servidor no site: [Conteúdo Oculto] Segue vídeo tutorial de como configura os arquivos em linux centos 7 no meu canal: Tutorial: Link para download: Clique Aqui4 pontos
-
Utilizando os arquivos, vi que estava bugado a area dos equipamentos (Licença de comerciante, emoticon, amuleto, e flechas) nos dois inventarios, mas acredito que seja pela modificação, por antes os novos acessos serem na lateral, ai só puxou e concertou as imagens e esqueceu de centralizar os slots dos equipamentos em cima das imagens, estou disponibilizando os dois arquivos concertados, inventory_f.xml inventory_m.xml3 pontos
-
2 pontos
-
Boa tarde galera, hj eu vim contribuir no fórum. Ultimamente estou estudando bastante as coisinhas do servidor, e ontem peguei pra arrumar o inventário com atalhos que postaram aqui no fórum. Ele ficou assim: Pra colocar ele basta ter os arquivos que colocaram aqui no forum. Depois baixe: E por fim, coloquei eles no seu interfaces.pck Pronto. Creditos : @Fulano (Que me ajudou a entender como isso funciona). @scrol (Por disponibilizar os arquivos com atalhos no forum) inventory_f.xml inventory_m.xml2 pontos
-
Backend de um painel admin que estava fazendo a um bom tempo, está desatualizado, incompleto e muita coisa precisa ser corrigida/aprimorada, entretanto pode ajudar quem estiver pensando em fazer algo do gênero Feito em nodejs Frontend não está incluso nos arquivos, mas caso alguém pense em seguir o mesmo caminho que eu, fiz um front web com react e outro em flutter para mobile Server.zip2 pontos
-
2 pontos
-
Um pacote de montarias que vazou há um tempo mas poucos tem, decidi postar o pacote completo de uma vez. Possui algumas montarias como abelha, carangueijo, robôs… Se puderem reagirem ao post, ficarei agradecido! Créditos: aVSL.2 pontos
-
CRIEI UM SISTEMA PARA TRADUZIR AS PASTAS PARA PORTUGUES DE FORMA QUE FIQUE MELHOR O ENTENDIMENTO PARA FAZER AS MODIFICAÇÕES , OBS : PRECISA VER O VIDEO PRA ENTENDER E FAZER USO CORRETO DO PROGRAMA O PROGRAMA FOI FEIO POR MIM > ZADOCK tradutorpcks.zip2 pontos
-
2 pontos
-
WinPCK v1.33.0.3 – Atualizado ChangeLog: Leitura de arquivos .cup, o WinPCK fará a decodificação do cup. Instalação no registro do Windows com .cup Leitura de arquivos .pck com .pkx maiores que 2GB Leitura de arquivos .pck com .pkx1 Tradução para o inglês Atualizado para C++20 Atualizado para o Visual Studio 2022 Codigo Fonte: [Conteúdo Oculto] Binarios: [Conteúdo Oculto]/releases v1.33.0.3 - Release.rar v1.33.0.3 - Release-static.rar2 pontos
-
2 pontos
-
2 pontos
-
Esse editor foi compilado por mim, qualquer problema só entrar em contato que quando eu tiver um tempo eu respondo nesse link você já vai tirar a maioria das duvidas. [Conteúdo Oculto] AUIEditor2.7z1 ponto
-
1 ponto
-
Passo 1: Baixar arquivo "libskill.so" Faça o upload do arquivo "libskill.so" para a pasta "/lib" no seu host. Certifique-se de que o arquivo esteja na localização correta. Passo 2: Modificar o arquivo "start.sh" Abra o arquivo "start.sh" e localize a linha que inicia os mapas. Substitua essa linha pelo seguinte trecho de código: LD_PRELOAD=libskill.so ./gs gs01 gs.conf gmserver.conf gsalias.conf is61 > /home/logs/gsmaps.log & Passo 3: "script.lua" Adicionar o "script.lua " dentro da pasta "home/gamed", Adicionar o "GS" dentro da pasta "home/gamed", "Criar uma pasta com nome var " dentro da pasta "home/gamed", Após seguir esses passos, o Lua na versão 1.5.5 será funcional libskill.so script.lua gs.7z1 ponto
-
Npcgen Data editor by Luka O Editor de NPCGen teve uma atualização Adicionado Offsets para 1.7.2 x64 e 1.7.6 x64 Agora o editor tem suporte a API do RAE, para funcionar corretamente, deve estar com o Rody Angelica Editor aberto com o elements carregado. NetFramework 4.8.1 Adicionado o projeto HelperProcess, devido a API do RAE somente estar disponível em x86, para que consiga pegar coordenadas de endereços x64 do elementclient. Compile em x86 para funcionar corretamente com a RAE API. Source Code: [Conteúdo Oculto] Screenshots: codigo fonte: [Conteúdo Oculto] binarios: [Conteúdo Oculto]/releases NpcGen v174 by Luka updated by Haly.rar NpcGen.v176.updated.by.Haly.rar1 ponto
-
Salve, hoje venho compartilhar este projeto feito em nodejs com os entusiastas da programação O projeto ainda estava no começo, mas a base e muitas funções já estão pronta, tais como; Login Cadastro (com ou sem confirmação no e-mail) Recuperar conta Reenviar e-mail de ativação Template dos e-mails Dashboard cru Página de doação (parei aqui) Para rodar o painel é bastante simples; Instale o node NodeJS >=20.00 - [Conteúdo Oculto] Crie um banco de dados e importe o config/tables.sql para o mesmo Configure o config/settings.js com as informações dos bancos de dados, url do cors, porta do aplicação, hash etc Pronto agora é só instalar as dependências e iniciar a aplicação npm install npm start Se você fez tudo certo você deve ver uma mensagem de sucesso no terminal informando que a aplicação foi iniciado na porta definida Download: node-js.zip1 ponto
-
1 ponto
-
Servidor e Cliente do PWICLASSIC do giozao Vídeo tutotial criado por Master Download: Clique Aqui1 ponto
-
Estou deixando todos os instaladores num unico link, é só escolher qual você precisa e baixar. Conforme eu encontrar mais instaladores eu adiciono na pasta. Todos os clients tem um print da tela inicial, em alguns deles tem o nome da expansão. ADM por favor fechar meus tópicos dos outros instaladores eu agradeço. Diferenças: Client aberto = você não tem como saber se tem arquivos editados. Instalador = client original [Conteúdo Oculto] Se alguém tiver algum instalador que não esteja listado, por favor me envie no privado que eu espelho ele aqui.1 ponto
-
Olá a todos. Este é o editor de local de teleportes, arquivo que controla teletransporte no mundo principal. Editor: open \ edit \ save World_targets.sev \ .clt Edição múltipla Conversão de .clt para .sev e para trás Captando coordenadas do jogo Mostrando pontos teleport no mapa (mapa está em arquivos com Editor) Idiomas russo e inglês World Targets Editor By Luka.rar1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Recentemente um usuário do grupo de devs com nick de "Alien" disponibilizou algumas alterações que ele fez em sua src gratuitamente. Então eu estou vindo aqui divulga-las e disponibilizar o arquivo que ele nos enviou pois são simplesmente muito boas! Ps: precisa saber o que está fazendo para poder implementar, eu precisei criar alguns getters para o código funcionar. Prints da minha implementação abaixo: edits.txt1 ponto
-
1 ponto
-
Esse é um plugin que portei para importar modelos dos jogos Angelica para o Blender 4.3.2, provavelmente funciona em versões anteriores, para usar: Abra o Blender Scripting > abra o plugin > play > File > Import > Perfect World Model (.ski) > selecione o modelo e será carregado dentro do Blender. ski_import_blender.py1 ponto
-
Base Firewall usado no D-Proxy Sistema Operacional: Alma Linux 8 Módulos Ativos + Proteção contra ataques SYN Flood + Proteção contra ataques UDP Flood + Gerenciamento automático de bloqueios + Filtragem baseada em portas + Registro de logs + Execução automática de regras de firewall + Módulos como Fail2Ban, slowloris ou iptables com rate limiting podem ser implementados opcionalmente. como copilar? sudo dnf install -y gcc-c++ libpcap-devel firewalld g++ -o firewall_monitor firewall_monitor.cpp -lpcap -lpthread para deixar rodando 24 Hrs sudo dnf install -y screen screen -S firewall_monitor sudo ./firewall_monitor Ctrl + A, depois solte e aperte D config.txt ports=29000,3306,80,39000,22 firewall_monitor.cpp #include <iostream> #include <pcap.h> #include <unordered_map> #include <ctime> #include <cstring> #include <fstream> #include <sstream> #include <chrono> #include <thread> #include <vector> #include <algorithm> #include <cstdint> #include <arpa/inet.h> #include <netinet/ip.h> #include <netinet/tcp.h> #include <netinet/udp.h> #include <netinet/ip_icmp.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> // Ayarlar const std::string device = "eth0"; // Ağ arayüzü const int max_conn_per_sec = 200; // Saniye başına bağlantı limiti const int block_time = 86400; // Engelleme süresi (saniye cinsinden) (24 saat) const std::string log_file = "logs.txt"; // Günlük dosyası const std::string config_file = "config.txt"; // Yapılandırma dosyası // Bağlantı sayım yapıları struct ConnInfo { int count; std::time_t last_seen; }; std::unordered_map<std::string, ConnInfo> conn_count; // IP başına bağlantı sayacı std::unordered_map<std::string, ConnInfo> syn_count; // IP başına SYN sayacı std::unordered_map<std::string, ConnInfo> udp_count; // IP başına UDP sayacı std::unordered_map<std::string, std::time_t> blocked_ips; // Engellenen IP'ler ve süresi std::vector<uint16_t> ports; // Korumaya alınacak bağlantı noktaları (yapılandırma dosyasından yüklenir) // Günlük kaydı işlevi void log_message(const std::string& message) { std::ofstream log_stream(log_file, std::ios::app); if (log_stream.is_open()) { auto now = std::chrono::system_clock::now(); std::time_t now_time = std::chrono::system_clock::to_time_t(now); log_stream << "[" << std::ctime(&now_time) << "] " << message << std::endl; } } // IP engelleme işlevi void block_ip(const std::string& ip) { std::string command = "sudo firewall-cmd --permanent --add-rich-rule='rule family=\"ipv4\" source address=\"" + ip + "\" reject'"; system(command.c_str()); system("sudo firewall-cmd --reload"); blocked_ips[ip] = std::time(nullptr) + block_time; // Engelleme süresi belirlenir log_message("IP " + ip + " 24 saat boyunca engellendi."); } // Süresi dolmuş IP engellerini kaldıran işlev void unblock_expired_ips() { auto now = std::time(nullptr); for (auto it = blocked_ips.begin(); it != blocked_ips.end(); ) { if (now >= it->second) { std::string command = "sudo firewall-cmd --permanent --remove-rich-rule='rule family=\"ipv4\" source address=\"" + it->first + "\" reject'"; system(command.c_str()); system("sudo firewall-cmd --reload"); log_message("IP " + it->first + " engeli kaldırıldı."); it = blocked_ips.erase(it); } else { ++it; } } } // Paket işleme işlevi void process_packet(u_char* user, const struct pcap_pkthdr* pkthdr, const u_char* packet) { struct ip* ip_header = (struct ip*)(packet + 14); // Ethernet başlığını (14 bayt) atlar struct tcphdr* tcp_header = (struct tcphdr*)(packet + 14 + (ip_header->ip_hl << 2)); struct udphdr* udp_header = (struct udphdr*)(packet + 14 + (ip_header->ip_hl << 2)); struct icmp* icmp_header = (struct icmp*)(packet + 14 + (ip_header->ip_hl << 2)); char src_ip[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &(ip_header->ip_src), src_ip, INET_ADDRSTRLEN); uint16_t dst_port = 0; if (ip_header->ip_p == IPPROTO_TCP) { dst_port = ntohs(tcp_header->th_dport); } else if (ip_header->ip_p == IPPROTO_UDP) { dst_port = ntohs(udp_header->uh_dport); } // IP engellenmiş mi kontrol et if (blocked_ips.find(src_ip) != blocked_ips.end()) { return; // Engellenmiş IP'den gelen paketleri yok say } // Bağlantı noktası koruma listesinde mi kontrol et if (std::find(ports.begin(), ports.end(), dst_port) != ports.end()) { auto now = std::time(nullptr); // Eski bağlantıları temizle for (auto it = conn_count.begin(); it != conn_count.end(); ) { if (now - it->second.last_seen > 1) { it = conn_count.erase(it); } else { ++it; } } // SYN paketlerini say ve limit aşılırsa IP'yi engelle if (ip_header->ip_p == IPPROTO_TCP && (tcp_header->th_flags & TH_SYN)) { syn_count[src_ip].count++; syn_count[src_ip].last_seen = now; if (syn_count[src_ip].count > max_conn_per_sec) { block_ip(src_ip); syn_count.erase(src_ip); return; } } // UDP paketlerini say ve limit aşılırsa IP'yi engelle if (ip_header->ip_p == IPPROTO_UDP) { udp_count[src_ip].count++; udp_count[src_ip].last_seen = now; if (udp_count[src_ip].count > max_conn_per_sec) { block_ip(src_ip); udp_count.erase(src_ip); return; } } } } int main() { // Başlatma mesajı std::cout << "Anti-DDoS başlatılıyor..." << std::endl; log_message("Anti-DDoS başarıyla başlatıldı."); char errbuf[PCAP_ERRBUF_SIZE]; pcap_t* handle = pcap_open_live(device.c_str(), BUFSIZ, 1, 1000, errbuf); if (handle == nullptr) { std::cerr << "Aygıt açılırken hata: " << errbuf << std::endl; log_message("Aygıt açılırken hata: " + std::string(errbuf)); return 1; } // Ana döngü while (true) { pcap_loop(handle, -1, process_packet, nullptr); unblock_expired_ips(); // Süresi dolmuş IP engellerini kaldır std::this_thread::sleep_for(std::chrono::seconds(1)); } pcap_close(handle); return 0; }1 ponto
-
1 ponto
-
1 ponto
-
script instalar firewall ufw também vendo um mais avançado entra contato comigo discord master9028 ufw.sh1 ponto
-
1 ponto
-
1 ponto
-
da uma conferida no readme, agora só não compila quem não tiver vontade1 ponto
-
adicionado link para repositorio correto da source do pwadmin em qt c++: [Conteúdo Oculto]1 ponto
-
SysChat Este script estava a venda no meu site, mas decidir parar de vender para compartilhar aqui no fórum para os membros VIPs Mas afinal, oque quiabos é syschat? Sabe aqueles avisos no chat: Fulano de tal refinou o item tal pra +7. Fulano de tal iniciou sua jornada no servidor tal? então, eu fui um dos (se não O primeiro) a criar isto em 2020-2021 Em resumo, SysChat é um simples script que monitora em tempo real todos os logs do seu servidor e anúncia alguns eventos no chat do jogo (se você quiser) Segue a lista de as funções atuais: Aqui um print de como é as configurações: A instalação é bem simples Faça upload da pasta syschat para seu servidor e der permissão Abra o arquivo script.sh e configure o caminho do seu log Abra o arquivo config.php e configure as portas do seu servidor e os avisos que deseja ativar/desativar e suas respectivas mensagens Pronto, agora bastar iniciar o script com ./start.sh! Você pode usar cores personalizadas nos textos (em alguns canais não funciona) {cor-1} = branco {cor-2} = preto {cor-3} = verde {cor-4} = amarelo {cor-5} = azul {cor-6} = rosa {cor-7} = roxo {cor-8} = vermelho {cor-9} = azul ciano {cor-10} = preto mais escuro Exemplo de uso em um texto: {player} refinou {cor-4}{item} para {cor-3}+{level} Canais: 0 = Geral 1 = Global 2 = Grupo 3 = clã 6 = Laranja (Chat Topo) 7 = Comercio 9 = Sistema 10 = Azul (Chat Topo) 11 = Vermelho 12 = Laranja 13 = Branco 14 = Branco 15 = Interservidor Exemplo do script rodando no servidor: Limitações que eu lembro: Na parte de aviso de refino/leilão o nome do item é puxado do pwdatabase, ou seja itens criados manualmente (id não existente no pwdatabase) não irá funcionar Na parte de aviso do refino/leilão não é linkado o item e nem aparece as estrelinhas ☆☆☆ Isso pode ser resolvido mas precisa exporta os itens usando o RAE e adptar o syschat.php Funciona bem até a 1.5.5 – Não sei se funciona nas versões mais novas O script foi desenvolvido em 2021 e desde então não foram implementadas novas soluções ou funções adicionais. Se você quiser criar uma nova versão para este projeto, sua contribuição será bem-vinda. Download: (somente membros VIP’s podem baixar) syschat.zip1 ponto
-
Aqui um breve tutorial basico sobre aipolicy Não sou bom com tutoriais por isso nunca criei algo a respeito. aqui o link do video: [Conteúdo Oculto] Servidores VPS BR [Conteúdo Oculto] Quer ajudar no pix? kk [email protected] Se tiverem dúvidas sobre posta sua dúvida que tentarei criar vídeos futuros!1 ponto
-
E aí, galerinha! Já que deixaram vazar isso aqui, vou já postar no fórum. Quem quiser, é só baixar. Funcionalidades: Comandos: - findall - encontrar e contar todos os itens - findids - encontrar itens a partir da configuração [Opções] - findid itemid - encontrar item a partir do parâmetro no console - replaceid - substituir IDs dos itens a partir da configuração [ReplaceID] [ReplaceIDPet] [ReplaceIDEgg] - replaceparts - substituir partes dos itens a partir da configuração [ReplaceItemParts] - deleteskills - excluir todas as habilidades, exceto portal da cidade, de todos os jogadores - process_skills - excluir habilidades especificadas a partir da configuração [Skills] - money-gold - substituir dinheiro/ouro a partir da configuração [MoneyGold] - dividend2gold - trocar dividendo e ouro de loja - exportrole roleid - imprimir dados da função em formato XML - exporttable table_name - exportar todos os registros da tabela em formato XML - exportuser userid - imprimir dados do usuário e suas funções em formato XML - exportoctet table_name keyid - imprimir dados octet da tabela - importoctet table_name keyid octet - substituir dados octet na tabela Download1 ponto
-
1 ponto
-
1 ponto
-
Deixando aqui um script + tutorial que fiz para backups automático do bando de dados do seu servidor direto pra o google drive. Perdoem o amadorismo com vídeos. O Rclone é uma ferramenta versátil que nos permite sincronizar e transferir arquivos para várias plataformas de armazenamento em nuvem, e neste vídeo, vamos utilizá-lo para garantir a segurança dos seus arquivos 🔗 Links Importantes 🔗 Google Console: [Conteúdo Oculto] Este script automatizado de backup é essencial para manter seus projetos de desenvolvimento do Perfect World em segurança e evitar perdas de dados. Siga o passo a passo do tutorial e garanta a tranquilidade de ter seus arquivos protegidos no Google Drive. Se você gostou do vídeo e deseja aprender mais sobre desenvolvimento de Perfect World e outras ferramentas úteis, não se esqueça de se inscrever no canal e ativar o sino de notificações para não perder nenhum conteúdo novo. Deixe seus comentários e dúvidas abaixo, estou aqui para ajudar! Obrigado por assistir e até o próximo vídeo! 🚀 Tutorial de Instalação do Rclone no CentOS 7 e Debian 11: Rclone no centOS 7 sudo yum install epel-release sudo yum update sudo yum install rclone rclone version rclone config Debian 11 curl [Conteúdo Oculto] | sudo bash rclone config Contato no discord: kaiquebsl backup.sh1 ponto
-
1 ponto
-
Removido da tela de criação de Personagem a Raça Sombrio Necessário remover no server também. elementclient.exe --------------------------------------------------------------------------------------------- PS: te ajudei? então manda aquele pix do coração para incentivar meus posts. PIX: [email protected] --------------------------------------------------------------------------------------------- Precisa de ajuda em particular? Entra em contato comigo tenho otimos preços.1 ponto
-
1 ponto
-
Há algum tempo eu venho estudando sobre os octets do PW (hex strings) para adicionar os detalhes dos itens no visualizador de inventário do meu painel. Inclusive eu achei esses 2 pdfs que estão anexados nesse post perdidos por aí (Além de outros projetos relacionados), o que me ajudou bastante no começo. E apartir disso eu construi esse projeto em php chamado PWHexParser que recebe um octet de um item, o tipo do item e retorna um json como resultado, exemplos: Lendo octets de uma roupa: <?php require __DIR__ . '/../vendor/autoload.php'; $decoder = new App\Decoder(); $decoder->setItemType('Fashion'); // Weapon, Armor, Charm, Jewelry, Flight, Card... $decoder->sethexString('1e00000092470100010a620072007500630065000000'); //Mandarin Silk Gown $result = $decoder->decodeHexString(); header('Content-Type: application/json'); echo json_encode($result, JSON_PRETTY_PRINT); Resultado: { "level_req": 30, "color": 18322, "gender": 1, "creator_type": 1, "name_length": 5, "name": "bruce", "color_mask": 0 } Adivinhando o tipo do item (arma nesse caso): <?php require __DIR__ . '/../vendor/autoload.php'; $mask = 1; // Weapon $decoder = new App\Decoder(); $decoder->guessItemType($mask); $decoder->sethexString('5a00ff001001000031000000b4610000786900002c00040a4200720075006300650000000000090000000b00000000000000930200009b0500000000000000000000180000000000604000000000010000000000000003000000114500009200000001000000f02300004d000000cf2500000e000000'); $result = $decoder->decodeHexString(); header('Content-Type: application/json'); echo json_encode($result, JSON_PRETTY_PRINT); Resultado: { "level": 90, "class": 255, "strength": 272, "vitality": 0, "dexterity": 49, "magic": 0, "min_durability": 250, "max_durability": 270, "item_type": 44, "item_flag": 4, "name_length": 10, "name": "Bruce", "ranged_type": 0, "weapon_type": 9, "weapon_grade": 11, "ammunition_type": 0, "min_physical_damage": 659, "max_physical_damage": 1435, "min_magic_damage": 0, "max_magic_damage": 0, "attack_rate": 0.83, "attack_range": 3.5, "minimum_range": 0, "sockets_count": 1, "sockets": [ 0 ], "addons_count": 3, "addons": { "special_addons": [ { "id": 1297, "value": 146, "level": 1 } ], "normal_addons": [ { "id": 1008, "value": 77 }, { "id": 1487, "value": 14 } ], "refine_addons": [ ], "socket_addons": [ ] } } O projeto está disponível no Github e também é possível instalar via composer: Ele não está 100% finalizado ainda, mas já da pra utilizar em algum projeto de seu interesse. :) Hex Data Guide v2T2.pdf Hex Code Guide By Drakaer.pdf1 ponto
-
Guerra das nações creio que para muito o melhor evento até hoje criado no Perfect World, eu tenho editor criado por nada menos que o LOKO, estou postando mapas reduzidos com 8x8 e duas capitais como mostra na imagem a baixo, também faço edição de redução por encomenda apenas $100 reais do jeito que o cliente desejar. NWreduzida.zip1 ponto
-
1 ponto
-
Segue: 3 Raças.rar 4 Raças.rar 5 Raças.rar 6 Raças.rar1 ponto
-
Win_Character (Exemplo): <LABEL Name="Txt_Value1" x="185" y="329"> <!-- Nome do campo --> <Text String="Missões" FontName="方正细黑一简体" FontSize="10" Color="255,203,74,255" OutlineColor="0,0,0,0" TextUpperColor="0,0,0,0" TextLowerColor="0,0,0,0"/> </LABEL> <LABEL Name="Lab_Value1" x="258" y="329"> <!-- O segredo está aqui, adicionar valores até o final do foreach --> <Text String="0000" FontName="方正细黑一简体" FontSize="10" OutlineColor="0,0,0,0" TextUpperColor="0,0,0,0" TextLowerColor="0,0,0,0"/> </LABEL> Win_Inventory (Exemplo): <STILLIMAGEBUTTON Name="btn_asm_bank" x="125" y="250" Width="34" Height="25" Command="asm_bank"> <!-- Você solicita por aqui o comando asm_ --> <Hint String="^ffcb4aAbrir o sistema de armazém"/> <Text FontName="方正细黑一简体" FontSize="12"/> <Resource> <FrameUpImage FileName="icon.bmp"/> <FrameDownImage FileName="icon.bmp"/> <FrameOnHoverImage FileName="icon.bmp"/> </Resource> </STILLIMAGEBUTTON>1 ponto
-
eu não vou resolver isso por hora não, eu não estou pretendendo abrir servidor e nada do tipo, eu só add as imagens na lista para facilitar a identificação (eu até dei uma melhorada depois desse códigio que passei aí para exibir 2 itens por linha), porém no momento eu parei nisso, estou estudando para ver se crio um painel para uso próprio, ainda tem as ferramentas da Angelica que também dei um tempo. (muita coisa para fazer, mais pouco incentivo para isso) //drops list nos mobs , eu adicionei um espaçamento manual , porém existe outras maneiras de fazer for (int i = 0; i < 32; i += 2) { int id1 = pEssence->drop_matters[i].id; float prob1 = pEssence->drop_matters[i].probability; if (id1 != 0) { CECIvtrItem *pItem1 = CECIvtrItem::CreateItem(id1, 0, 1); if (!pItem1) continue; ACString strImage1 = GetGameUIMan()->GetIconsImageString(CECGameUIMan::ICONS_INVENTORY, pItem1->GetIconFile()); pItem1->GetDetailDataFromLocal(); ACString strHint1 = A3DCOLOR_TO_STRING(pItem1->GetNameColor()); strHint1 += pItem1->GetName(); if (i + 1 < 32) { int id2 = pEssence->drop_matters[i + 1].id; float prob2 = pEssence->drop_matters[i + 1].probability; if (id2 != 0) { CECIvtrItem *pItem2 = CECIvtrItem::CreateItem(id2, 0, 1); if (!pItem2) continue; ACString strImage2 = GetGameUIMan()->GetIconsImageString(CECGameUIMan::ICONS_INVENTORY, pItem2->GetIconFile()); pItem2->GetDetailDataFromLocal(); ACString strHint2 = A3DCOLOR_TO_STRING(pItem2->GetNameColor()); strHint2 += pItem2->GetName(); temp.Format(_AL("%s [%.2f%%] %s^ffffff %s [%.2f%%] %s^ffffff\n\r"), strImage1, prob1 * 100.f, strHint1, strImage2, prob2 * 100.f, strHint2); szText += temp; } } else { temp.Format(_AL("%s [%.2f%%] %s^ffffff%\n\r"), strImage1, prob1 * 100.f, strHint1); szText += temp; } } }1 ponto