Ir para conteúdo
Facebook Whatsapp Twitter Youtube

Os Melhores

Conteúdo popular

Mostrando conteúdo com a maior reputação em 10/28/25 in todas as áreas

  1. 🎮 DIVULGADORES DE PERFECT WORLD, ATENÇÃO! 🎮 Se você precisa divulgar seu servidor de Perfect World no Facebook e Instagram de forma impulsionada e com resultado, essa oportunidade é pra você! 💥 🔥 Estou disponibilizando uma lista com 66 MIL e-mails segmentados, ideal para criar campanhas de divulgação e anúncios pagos diretamente para o público gamer! ✅ Aumente o tráfego no seu site ✅ Alcance novos jogadores ✅ Faça seu servidor bombar nas redes sociais ✅ Perfeito para campanhas no Gerenciador de Anúncios! 💣 Chega de divulgar no escuro! Com essa base de e-mails, suas campanhas vão direto no alvo. Download: Clique Aqui
    1 ponto
  2. Espelho: [Conteúdo Oculto] VM .ova (Ubunru 20) + arquivos do servidor separadamente. Upd: Adicionado patch para o cliente com serviços remotos) (interfaces.pck, surfaces.pck, elementclient.exe, 155.dll, 155 dll source)
    1 ponto
  3. Estou divulgando aqui publicamente meus projetos , Links: Qualquer erro ou duvida na compilação, manda mensagem (não ensino do 0, pelo menos tenha base de conhecimento no que irá mexer) Se quiserem me chamar para algum projeto, estou à disposição… Em anexo, imagens do pwAdmin em QT C++,
    1 ponto
  4. Atualização da página de registro do Master [Conteúdo Oculto]
    1 ponto
  5. Sistema de Mensagem Automática - Exclusivo e Configurável Características principais: Mensagens aleatórias personalizáveis Agendamento de mensagens em horários específicos Mensagens com cores customizáveis Totalmente configurável ao seu gosto Como usar: Abra o arquivo "guia.txt" e siga o tutorial passo a passo. Suporte: Qualquer dúvida, deixem neste post que estarei aqui para ajudar! Espero que gostem do sistema! 😊 [Conteúdo Oculto]
    1 ponto
  6. ⚔️ Sistema de Ranking PvP Completo - In-Game + Web 💰 Valor Vitalício: R$ 300,00 📅 Aluguel Mensal: R$ 65,00 🔑 Licença vitalícia para uso em qualquer servidor Perfect World! 🧩 O que está incluído no pacote 🎮 Sistema In-Game Integrado 🏆 Rank PvP em tempo real, diretamente dentro do jogo 🔥 Sistema de Multi-Kill com efeitos e mensagens automáticas 📊 Logs detalhados por dia e por semana ⚔️ Rivalidade entre jogadores: detecta e destaca duelos frequentes 🎖️ Premiação Automática de Títulos por colocação no ranking ❌ Anti-farm e Anti-team kill: detecta abusos automaticamente 🛡️ Filtro de IP opcional para maior controle de manipulações 🚫 Penalidades com alertas automáticos in-game para jogadores que tentarem abusar 🎯 Missões PvP e desafios com recompensas bônus 🥇 Conquistas por marcos de kills (ex: 10, 50, 100...) com anúncios 🎁 Recompensas Diárias e Semanais para os mais ativos 🏅 Sistema de Ligas: Bronze, Prata, Ouro, Platina, Diamante e Mestre 📣 Mensagens automáticas no chat do jogo e também no Discord! 🌐 Painel Web Profissional 📊 Dashboard com Rankings Atualizados em Tempo Real 🧑‍💼 Perfil Detalhado do Jogador: kills, mortes, streaks, rivalidades, conquistas, liga atual, etc. 🔐 Editor de Ranking exclusivo para GMs com login protegido 🌍 Integração nativa com seu site oficial 📱 Design moderno e responsivo, compatível com celulares e tablets 📜 Logs e notificações administrativas via painel web 🎯 Diferenciais que vendem! Código otimizado, limpo e bem documentado Fácil integração com qualquer versão do seu servidor Atualizações frequentes e suporte dedicado Sem painel externo ou sistemas paralelos — tudo é feito nativamente 📢 Personalização Sob Medida Quer mudar o layout? Deseja adicionar um lado PvE exclusivo com ranking de monstros, dungeons ou conquistas PvE? ⚙️ Eu crio qualquer sistema sob-encomenda! 📽️ Demonstrações e Testes Envio vídeos do sistema em funcionamento Acesso de teste disponível: entre em contato e logue diretamente no servidor demonstrativo Veja com seus próprios olhos como o sistema se comporta! ⚠️ A versão atual está ainda mais avançada e completa do que a mostrada nas imagens. 📬 Interessado? Fale comigo agora mesmo: 📥 Inbox para vídeos e testes 💻 Desenvolvo sites, scripts e sistemas personalizados para qualquer necessidade de servidor PW! 0b671c75-3d04-4ec8-84fc-f2c1331132a1.jfif 1c14ee65-e5eb-4311-95ef-377dc5010f3c.jfif 095640e7-0ad4-4ca5-a2de-08144510d0a8.jfif
    1 ponto
  7. 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.zip
    1 ponto
  8. adicionar em surfaces\iconset\iconlist_ivtrf.dds e iconlist_ivtrm.dds, além dos arquivos com os mesmos nomes em .txt na ordem em que adicionou nos .dds [Conteúdo Oculto]
    1 ponto
  9. Esse é um pacote contendo vários chocobos de várias cores, por falta de tempo não consegui mudar o ECM deles, porém é só você colocar no ECM de cada a localização do SMD. Por exemplo “configs\chocobo\cor1\cor.smd” Os Chocobinhos recomendo como pet ornamentais pois são bem pequenos mas funcionam como montaria, e os outros chocobos são tamanhos normais. Chocobo Collection.rar
    1 ponto
  10. Caso esse limite seja ultrapassado, bloqueia o HWID (identificação única do hardware) e registra informações sobre o IP, quantidade de pacotes enviados e a data Instale o iptables-persistent e o pacote mysql-client sudo apt-get update sudo apt-get install iptables-persistent mysql-client Carregue o módulo xt_recent sudo modprobe xt_recent Regras do iptables sudo iptables -N HWID_BLOCK sudo iptables -A HWID_BLOCK -m recent --name HWID --set --mask 255.255.255.255 --rsource sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 86400 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 sudo iptables -A INPUT -p tcp --dport 29000 -m connlimit --connlimit-above 25 --connlimit-mask 0 -j HWID_BLOCK sudo iptables-save | sudo tee /etc/iptables/rules.v4 Crie um script para salvar as informações no MySQL. Por exemplo, crie o arquivo /usr/local/bin/save_to_mysql.sh com o seguinte conteúdo Não se esqueça de criar um banco de dados chamado 'connections' #!/bin/bash IP_ADDRESS=$1 PACKETS=$2 DATE=$(date +"%Y-%m-%d %H:%M:%S") mysql -u <username> -p<password> -e "INSERT INTO connections (ip_address, packets, date) VALUES ('$IP_ADDRESS', '$PACKETS', '$DATE');" <database> Dê permissão de execução ao script sudo chmod +x /usr/local/bin/save_to_mysql.sh Adicione uma regra no iptables para chamar o script quando o limite de conexões for excedido. No exemplo abaixo, assumimos que o script está localizado em /usr/local/bin/save_to_mysql.sh: sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 0 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 --nflog-prefix "iptables-save: " --nflog-group 1 --nflog-range 64 --nflog-threshold 10 sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 0 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 --nflog-prefix "iptables-save: " --nflog-group 1 --nflog-range 64 --nflog-threshold 10 --nflog-cprange 128 --nflog
    1 ponto
  11. Perfect World Data Editor.rar
    1 ponto
  12. Bom uso a todos! Version: Python 3.13 Install: python3 -m pip install scapy #Notes Update Rate Limiting 03-01-25 Traffic Anomaly Detection 03-01-25 Packet Filtering 03-01-25 Add SSH monitoring 28-12-24 Config.txt # Configurações gerais de monitoramento e proteção # Defina as portas para monitoramento (exemplo: HTTP, SSH) PORTS_TO_MONITOR=80,7777,2106 # Se o bloqueio por HWID deve ser ativado BLOCK_HWID=true # Limites de pacotes MAX_PACKET_SIZE=1024 MAX_CONNECTIONS=100 CONNECTION_TIME_WINDOW=10 # Em segundos # Limitações de pacotes TCP e UDP MAX_TCP_PACKETS=500 MAX_UDP_PACKETS=300 # Configurações para proteção SSH SSH_PORT=22 SSH_BLOCK_THRESHOLD=5 # Número de tentativas antes de bloquear SSH_BLOCK_DURATION=3600 # Duração do bloqueio (em segundos) SSH_LOCKDOWN_THRESHOLD=10 # Número de tentativas excessivas antes de lockdown SSH_LOCKDOWN_DURATION=86400 # Duração do lockdown (1 dia) SSH_IP_ATTEMPTS_WINDOW=60 # Janela de tempo (em segundos) para tentativas de login SSH # Limitação de taxa de pacotes para evitar DDoS RATE_LIMIT_THRESHOLD=1000 # Limite de pacotes por IP DDoS_DETECTION_WINDOW=10 # Janela de tempo para detectar DDoS DDoS_CONNECTION_THRESHOLD=500 # Limite de conexões simultâneas que aciona a detecção de DDoS main.py import os import time import hashlib import uuid import platform import json import re from scapy.all import sniff, TCP, UDP, IP from collections import defaultdict from threading import Thread # Словари для хранения данных трафика и блокировок traffic_data = defaultdict(lambda: {"timestamps": [], "tcp_count": 0, "udp_count": 0, "packet_count": 0}) blocked_hwids = set() # Множество заблокированных HWID blocked_ips = defaultdict(lambda: {"block_time": None, "attempts": 0, "block_duration": 0}) # Блокировка IP # Стандартные настройки config = { "MAX_PACKET_SIZE": 1024, "MAX_CONNECTIONS": 100, "CONNECTION_TIME_WINDOW": 10, "PORTS_TO_MONITOR": [80, 7777, 2106], "MAX_TCP_PACKETS": 500, "MAX_UDP_PACKETS": 300, "BLOCK_HWID": True, "SSH_PORT": 22, "SSH_BLOCK_THRESHOLD": 5, # Порог для неудачных попыток входа SSH "SSH_BLOCK_DURATION": 3600, # Длительность блокировки SSH "SSH_LOCKDOWN_THRESHOLD": 10, # Количество чрезмерных попыток перед блокировкой "SSH_LOCKDOWN_DURATION": 86400, # Длительность блокировки (1 день) "SSH_IP_ATTEMPTS_WINDOW": 60, # Временное окно для попыток входа SSH "RATE_LIMIT_THRESHOLD": 1000, # Порог пакетов на IP "DDoS_DETECTION_WINDOW": 10, # Временное окно для обнаружения DDoS "DDoS_CONNECTION_THRESHOLD": 500 # Порог одновременных подключений } LOG_FILE = "logs.json" # Функция для загрузки конфигурации из файла def load_config(): global config if not os.path.exists("config.txt"): print("[INFO] Файл config.txt не найден. Используются настройки по умолчанию.") return with open("config.txt", "r") as file: for line in file: line = line.strip() if not line or line.startswith("#"): continue key, value = line.split("=") key = key.strip() value = value.split("#")[0].strip() if key in ["PORTS_TO_MONITOR"]: config[key] = list(map(int, value.split(","))) elif key in ["BLOCK_HWID"]: config[key] = value.lower() == "true" elif key in ["SSH_PORT", "SSH_BLOCK_THRESHOLD", "SSH_BLOCK_DURATION", "MAX_PACKET_SIZE", "MAX_CONNECTIONS", "CONNECTION_TIME_WINDOW", "MAX_TCP_PACKETS", "MAX_UDP_PACKETS", "RATE_LIMIT_THRESHOLD", "DDoS_DETECTION_WINDOW", "DDoS_CONNECTION_THRESHOLD", "SSH_LOCKDOWN_THRESHOLD", "SSH_LOCKDOWN_DURATION", "SSH_IP_ATTEMPTS_WINDOW"]: config[key] = int(value) else: config[key] = value # Функция для записи статистики def log_statistics(ip, hwid, reason, data): log_entry = { "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"), "ip": ip, "hwid": hwid, "reason": reason, "tcp_count": data["tcp_count"], "udp_count": data["udp_count"] } try: with open(LOG_FILE, "r+") as f: logs = json.load(f) logs.append(log_entry) f.seek(0) json.dump(logs, f, indent=4) except Exception as e: print(f"[ERROR] Ошибка при сохранении в лог: {e}") # Функция для генерации уникального HWID def get_hwid(): mac_address = get_mac_address() system_uuid = get_system_uuid() unique_string = f"{mac_address}-{system_uuid}-{platform.system()}" return hashlib.sha256(unique_string.encode()).hexdigest() # Функция для получения MAC-адреса def get_mac_address(): try: mac = uuid.getnode() mac_address = ':'.join(("%012X" % mac)[i:i + 2] for i in range(0, 12, 2)) return mac_address except Exception: return "UNKNOWN_MAC" # Функция для получения UUID системы def get_system_uuid(): try: if platform.system() == "Linux": with open('/sys/class/dmi/id/product_uuid', 'r') as f: return f.read().strip() elif platform.system() == "Windows": import subprocess result = subprocess.check_output('wmic csproduct get uuid', shell=True).decode() return result.split('\n')[1].strip() return platform.node() except Exception: return "UNKNOWN_UUID" # Функция для мониторинга пакетов def monitor_packet(packet): if packet.haslayer(IP): src_ip = packet[IP].src current_time = time.time() hwid = get_hwid() # Инициализация данных трафика data = traffic_data[src_ip] if current_time not in data["timestamps"]: data["timestamps"].append(current_time) # Удаление меток времени, выходящих за пределы окна data["timestamps"] = [ ts for ts in data["timestamps"] if current_time - ts <= config["CONNECTION_TIME_WINDOW"] ] # Ограничение скорости: подсчет пакетов, полученных от IP data["packet_count"] += 1 # Обнаружение DDoS: ограничение пакетов на IP за определенный период времени if data["packet_count"] > config["RATE_LIMIT_THRESHOLD"]: print(f"[ALERT] IP {src_ip} отправляет слишком много пакетов. Возможная атака DDoS!") blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Превышен лимит пакетов", data) # Блокировка по TCP/UDP пакетам if packet.haslayer(TCP): data["tcp_count"] += 1 elif packet.haslayer(UDP): data["udp_count"] += 1 if data["tcp_count"] > config["MAX_TCP_PACKETS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество TCP пакетов", data) print(f"[ALERT] Избыточное количество TCP пакетов: {src_ip}") elif data["udp_count"] > config["MAX_UDP_PACKETS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество UDP пакетов", data) print(f"[ALERT] Избыточное количество UDP пакетов: {src_ip}") elif len(data["timestamps"]) > config["MAX_CONNECTIONS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество соединений", data) print(f"[ALERT] Избыточное количество соединений: {src_ip}") # Функция для мониторинга трафика SSH def monitor_ssh_traffic(): print("[INFO] Мониторинг трафика SSH...") try: sniff(filter=f"tcp port {config['SSH_PORT']}", prn=process_ssh_packet, store=False) except KeyboardInterrupt: print("[INFO] Мониторинг SSH прерван.") except Exception as e: print(f"[ERROR] Ошибка мониторинга SSH: {e}") # Функция для обработки пакетов SSH def process_ssh_packet(packet): if packet.haslayer(IP) and packet.haslayer(TCP): src_ip = packet[IP].src handle_ssh_attempt(src_ip) # Функция для обработки попыток входа SSH def handle_ssh_attempt(ip): current_time = time.time() data = blocked_ips[ip] # Если IP был заблокирован на более длительный период if data["block_time"] and current_time - data["block_time"] < data["block_duration"]: return # Увеличиваем счетчик попыток входа SSH data["attempts"] += 1 if data["attempts"] > config["SSH_BLOCK_THRESHOLD"]: block_ip(ip) data["block_time"] = current_time data["block_duration"] = config["SSH_BLOCK_DURATION"] # Длительность блокировки if data["attempts"] > config["SSH_LOCKDOWN_THRESHOLD"]: lockdown_ip(ip) data["block_time"] = current_time data["block_duration"] = config["SSH_LOCKDOWN_DURATION"] # Длительность блокировки # Функция для блокировки IP def block_ip(ip): print(f"[INFO] IP {ip} заблокирован за слишком много попыток входа SSH.") # Функция для применения блокировки для IP def lockdown_ip(ip): print(f"[INFO] IP {ip} попал в блокировку за слишком много попыток входа SSH.") # Функция для разблокировки IP после истечения срока блокировки def unblock_expired_ips(): current_time = time.time() for ip in list(blocked_ips.keys()): if current_time - blocked_ips[ip]["block_time"] > config["SSH_BLOCK_DURATION"]: print(f"[INFO] IP {ip} разблокирован.") del blocked_ips[ip] # Функция для начала мониторинга def start_monitoring(): print(f"[INFO] Мониторинг портов: {config['PORTS_TO_MONITOR']}") try: ports_filter = " or ".join([f"tcp port {port} or udp port {port}" for port in config["PORTS_TO_MONITOR"]]) sniff(filter=ports_filter, prn=monitor_packet, store=False) except KeyboardInterrupt: print("[INFO] Мониторинг прерван.") except Exception as e: print(f"[ERROR] Ошибка мониторинга: {e}") if __name__ == "__main__": load_config() # Запуск мониторинга SSH в отдельном потоке ssh_thread = Thread(target=monitor_ssh_traffic, daemon=True) ssh_thread.start() start_monitoring()
    1 ponto
  13. Ativador meridiano completo dentro do game digitando !meridiano no chat global :D [Conteúdo Oculto]
    1 ponto
  14. Permita que os players deixe a lojinha online mesmo depois de fazer logout LojinhaOffline.zip Como instalar: Apenas subistitua e dê permissão Testado apenas na versão 151
    1 ponto
  15. Alguém com editor de elements compatível com esses files pf
    1 ponto
  16. Só é remover os pontos no world_targets.txt do cliente e alterar as imagens na surfaces… surfaces/ingame/world.dds, surfaces/ingame/journeymap.dds e surfaces/maps. Além disso, colocar o limite de área na gs.conf da pwserver, é só pegar o limite da 1.5.1 por exemplo.
    1 ponto
  17. Invocação -99 para bugar --------------------------------------------------------------------------------------------- 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. [suportegm.com]GS_142_BUGCASTING.rar
    1 ponto
  18. "Importante: Quero ressaltar que todo conhecimento e métodos compartilhados aqui são apenas para uso pessoal. Eu não me responsabilizo por danos, prejuízos ou mau uso das informações fornecidas. O conhecimento é uma poderosa ferramenta que deve ser usada com responsabilidade. Cabe a cada um de nós garantir que aplicamos esse conhecimento de forma adequada, respeitando as leis, ética e diretrizes aplicáveis. Assim como qualquer outra fonte de informações, é fundamental verificar a veracidade e precisão dos conteúdos antes de utilizá-los. Recomendo sempre consultar fontes confiáveis e buscar orientação profissional quando necessário. Lembre-se de que cada um é responsável por suas próprias ações e decisões. Utilize o conhecimento adquirido de forma consciente e cuidadosa, levando em consideração as possíveis consequências. Estou aqui para fornecer informações e auxiliar no que for possível, mas não posso ser responsabilizado por qualquer dano ou prejuízo decorrente do uso indevido ou interpretação incorreta das informações compartilhadas. Aproveite o conhecimento de forma responsável e continue aprendendo! USE pw; -- Seleciona o banco de dados "pw" DELIMITER // DROP PROCEDURE IF EXISTS addGM_loop // CREATE PROCEDURE addGM_loop() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE id_value INT; DECLARE cur CURSOR FOR SELECT ID FROM users; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; DECLARE CONTINUE HANDLER FOR 1062 BEGIN END; OPEN cur; read_loop: LOOP FETCH cur INTO id_value; IF done THEN LEAVE read_loop; END IF; BEGIN CALL addGM(id_value, 1); END; END LOOP; CLOSE cur; END // DELIMITER ; CALL addGM_loop();
    1 ponto
  19. Opa beleza? Eu fiz a substituição do arquivo mas quando abro a lojinha e fecho o jogo a Lojinha não fica On. Poderia me dizer se eu tenho que fazer algum outro processo? Versão que estou usando [email protected]
    1 ponto
  20. 1 ponto
  21. Casamento LGBT Versão 1.5.1 v101. PWServer Usada – Link Casamento LGBT 1.5.1 v101.rar
    1 ponto
  22. então é seu editor, tenta esse sEledit142.rar
    1 ponto
  23. Elements v27 abriu no RAE normal.. Testa adicionando o CFG. nas configs do editor. PW_1.4.1_v27.cfg
    1 ponto
  24. Usa o RAE No elements a versão é exibido no título da janela do programa No tasks a versão fica no canto inferior direito [Conteúdo Oculto]
    1 ponto
  25. Abra os arquivos .data no editor para visualizar suas versões respectivas. Em seguida, compare esses arquivos .data com os que estão em funcionamento no PWServer. É provável que as versões sejam diferentes; nesse caso, você pode converter os .datas para a versão que esta funcionando usando o próprio editor. Eu tenho esses limpos aqui, tente ai (dentro tb tem os gshop-serverside) data155.zip
    1 ponto
  26. "Importante: Quero ressaltar que todo conhecimento e métodos compartilhados aqui são apenas para uso pessoal. Eu não me responsabilizo por danos, prejuízos ou mau uso das informações fornecidas. O conhecimento é uma poderosa ferramenta que deve ser usada com responsabilidade. Cabe a cada um de nós garantir que aplicamos esse conhecimento de forma adequada, respeitando as leis, ética e diretrizes aplicáveis. Assim como qualquer outra fonte de informações, é fundamental verificar a veracidade e precisão dos conteúdos antes de utilizá-los. Recomendo sempre consultar fontes confiáveis e buscar orientação profissional quando necessário. Lembre-se de que cada um é responsável por suas próprias ações e decisões. Utilize o conhecimento adquirido de forma consciente e cuidadosa, levando em consideração as possíveis consequências. Estou aqui para fornecer informações e auxiliar no que for possível, mas não posso ser responsabilizado por qualquer dano ou prejuízo decorrente do uso indevido ou interpretação incorreta das informações compartilhadas. Aproveite o conhecimento de forma responsável e continue aprendendo! USE pw; -- Seleciona o banco de dados "pw" DELIMITER // DROP PROCEDURE IF EXISTS usecash_loop // CREATE PROCEDURE usecash_loop() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE id_value INT; DECLARE cur CURSOR FOR SELECT ID FROM users; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop: LOOP FETCH cur INTO id_value; IF done THEN LEAVE read_loop; END IF; CALL usecash(id_value, 1, 0, 9, 0, 1000000, 1, @error); END LOOP; CLOSE cur; END // DELIMITER ; CALL usecash_loop();
    1 ponto
  27. Créditos fórum russo instalação Surfaces/ingame emoticon.rar
    1 ponto
  28. authd-base64.zip Configura usuário e senha mysql em authd/table.xml Comando para ligar: cd pwserver/authd/; ./authd start >pwserver/logs/authd.log & Caso fica dando erro de Connection Failed pegue o conteudo de authd/authd_old.conf e coloque em authd/authd.conf ou pega o authd.conf de alguma auth que já esteja funcionando em seu servidor
    1 ponto
  29. Boa noite galera, vi em alguns PW’s uma aura/coroa em cima da cabeça, tentei replicar mas não deu certo, alguém manja como funciona? são pcks?
    1 ponto
  30. Ta na mão [Conteúdo Oculto]
    1 ponto
  31. Pode ser que seja útil para alguém que esteja mexendo com a 1.5.1 Essa correção coloca os ícones de quest no modo clássico, caso você queira manter o modo moderno o caminho é mexer na resolução do patequest.tga. patequest.zip
    1 ponto
  32. Para instalar, coloque na pasta surfaces\ingame\ bybeto.rar
    1 ponto
  33. [Repost] Estava desenvolvendo este Painel do Jogador, para um PW que iria lançar, mas acabou não dando certo, então quem tive interesse entra em contato. [VENDA ÚNICA PARA UMA PESSOA/SERVIDOR] Este é um dos painel mais completo que fiz, ainda está em construção, mas as funções principais já está pronto Você escolhe entre entregar gold ou item na parte doações Suporte os gateway Pix Boleto PicPay Mercado Pago PagSeguro Paypal Entrega de Gold ou Item de forma automática e instantânea (com/sem aviso dentro do jogo) Junto ao sistema de doação, possui um sistema de presentes, onde o jogador pode enviar o gold/item para um amigo Tem um painel do administrador completo, com todas as funções de um PWAdmin & Iweb (Você pode gerenciar seu servidor de qualquer lugar ou dispositivo)
    1 ponto
  34. [Conteúdo Oculto] Créditos: Matheus Araujo
    0 pontos
  35. Olá a todos, estou buscando trazer tutoriais de coisas mais complexas, para que desenvolvedores que estão começando a pouco tempo, possa crescer ainda mais seu conhecimento. Vim trazer algo que poucos tem conhecimento e também tiveram curiosidade de saber, sobre mapas e sobre fixação de mapas. Quando eu construi o New History em 2018, eu customizei ele ao máximo e com isso eu aprendi bastante a trabalhar com mapas e me foi despertado muita curiosidade sobre. Hoje trabalhando com as novas versões, eu tive que adicionar na minha build mais de 25 mapas e vim ensinar vocês como adicionar novos mapas no servidor da forma correta (gs.conf). Lembrando, que todo o sistema de exportação e downgrade não precisa ser ensinado, pois há uma ferramenta perfeita para esse trabalho do Steve Langley (Skype: narrowengineer), o AngelicaMapEditor. Só deixando um adendo, a ferramenta não gera npcgen.data, path.sev e arquivos de configuração dos mapas (Sem esses, os mapas não ligam), então recomendo antes de tudo, clonar um existente (Limpo) e adicionar os novos arquivos exportados. Agora vamos para o que interessa! Vou usar como exemplo o mapa:a101 (is101). Você precisará abrir o arquivo instance.txt (element/configs.pck/instance.txt) e gs.conf (PWServer/gamed/gs.conf) Estando com os dois abertos, você irá pesquisar no instance.txt: "a101" Estará mais ou menos assim: ////////////////////////////////////////////////////////////// "北陆-蜃渊雪国遗址" { 91 "a101" // path "loading/a101" // loading background 2,2 // row, column 0 "r0_0-c1_1-l0.cfg" {} 0 } ////////////////////////////////////////////////////////////// Somente disso que precisaremos. Informações que iremos precisar para o servidor: 91 = ID do mapa (tag) “a101” = nome do mapa 2,2 = Row / Colum Sempre bom lembrar que esses valores podem alterar dependendo de qual mapa você irá utilizar, então não se apegue a isso. Agora vamos para o gs.conf Ensinamento básico, se você reparar: São 2 tipos de mapas: world_servers e instance_servers. O que você precisa definir primeiro é isso, se será um mapa aberto (world_servers), ou se será uma dungeon ( quando desmonta o grupo todo mundo é expulso e ela reseta) instance_servers. Bem, escolhendo isso, você irá definir como vamos solicitar esse mapa depois do último mapa definido em world_servers ou instance_servers, ficando assim: world_servers = gs01;/*imagine vários mapas definidos*/;is101; Então você percebeu que vamos chamar nosso mapa de is101, mas você pode colocar qualquer nome (nessa etapa e nas demais definições), exemplos: zd411, ab587, z57… Como você é inteligente e já percebeu, eu defini meu mapa como um mapa aberto, ou seja, um world_server. Agora você vai terminar de configurar seu mapa, no final do arquivo gs.conf. Estarei explicando logo após o código. ;----------------------------------------------------------------------------------------------------- [World_is101] ;-------- Se o seu mapa é um world_servers World_Nome, caso contrário Instance_Nome ----- index = 126 tag = 91 base_path = a101/ limit = allow-root; grid = {80,80,25,-1000.0,-1000.0} base_region = {-1024.0,-1024.0} , {1024,1024.0} local_region = {-1024.0,-1024.0} , {1024,1024.0} cid = 0,2,13 [Terrain_is101] ;-------- Mude o Nome ----- szMapPath = map nAreaWidth = 512 nAreaHeight = 512 nNumAreas = 4 ;----- Normalmente é uma soma de Cols + Rows (Salvo exceções) nNumCols = 2 ;----- Numero de Columns no instance.txt nNumRows = 2 ;----- Numero de Rows no instance.txt vGridSize = 2.0f vHeightMin = 0.0f vHeightMax = 800.0f [MsgReceiverTCP_is101] ;-------- Mude o Nome ----- type = tcp listen_addr = INSTANCE101:12009 ;-------- Caso seja localhost, declare, mas lembre sempre de alterar a porta por exemplo 12010,12011.. ----- so_sndbuf = 16384 so_rcvbuf = 16384 tcp_nodelay = 1 listen_backlog = 10 [MsgReceiverUNIX_is101] ;-------- Mude o Nome ----- type = unix listen_addr = /tmp/gssock_is101 ;-------- Mude o Nome ----- so_sndbuf = 16384 so_rcvbuf = 16384 listen_backlog = 10 ;----------------------------------------------------------------------------------------------------- Bem, essa é a configuração do mapa a101. Tudo dependerá do tamanho do row e da column que pegamos na instance.txt Primeiro de tudo, você terá que adicionar um Index, lembrando, esse valor não pode ser igual outro mapa existente (dará conflito e os dois serão desligados), então use um valor depois do último mapa configurado, lembre-se também, que esse valor não pode passar de 128 (na 1.5.5), caso contrário, os monstros e npcs afundam no mapa. ( Usei 126). você terá que adicionar o id (Tag) para o ID do mapa no instance.txt, se o ID tiver errado (diferente do client), você toma disconnect ao tentar acessar o mapa. ( Usei 91). base_path é o caminho onde está o seu mapa, nesse caso, você altera apenas o nome ( Usei a101/ ). limit são variáveis de liberações do mapa, segue os exemplos em um fórum externo: [Conteúdo Oculto] Grid ( Como definir o valor ): O valor de Grid dependerá do seu Row / Column. Exemplos: Se o mapa for 2 / 2: 80,80,25,-1000,-1000 Se o mapa for 3 / 3 120,120,25,-1500,-1500 Se o mapa for 4 / 4: 160,160,25,-2000.-2000 Os exemplos acima são bem explicativos, caso não entendeu, basicamente: Você vai multiplicar o valor de grid x 25, ele dará o resultado total, ou seja: 80 x 25 = 2000. 2000 / 2 = 1000, então nesse caso: -1000, -1000. 120 x 25 = 3000. 3000 / 2 = 1500, então nesse caso: -1500, -1500. Assim por diante. base_region e local_region, você consegue esse valor através do AngelicaMapEditor. Os demais valores importantes de serem configurados eu deixei comentário no exemplo acima. Em caso de dúvidas fique à vontade em perguntar.
    0 pontos

Suporte GM

Comunidade de Perfect World do Brasil

Copyright © 2023-2024 SuporteGM Powered by Invision Community
Поддержка Invision Community в России

Links

×
×
  • Criar Novo...