Os Melhores
Conteúdo popular
Mostrando conteúdo com a maior reputação em 02/13/25 in todas as áreas
-
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()2 pontos
-
vlw deu certo, oq bugou nesses files pra mim foi q n chega GM e nem gold qnd mudei a authd na vps2 pontos
-
INTERFACE ESMERALDA 1.5.5 EDITADA, CONTEM SOMENTE 3 RAÇAS NA CRIAÇÃO . INTERFACE ESMERALDA SEM CLASSES.zip1 ponto
-
Bom, como devem saber, esses arquivos ai já vazaram tem um bom tempo e até hoje eu vejo gente querendo tirar vantagem e cobrar por esses arquivos ou para alterar algo neles. Tudo que você vai precisar substituir dos arquivos da Server Side: GS e GLINKD. Tudo que você vai precisar substituir dos arquivos do Client Side: elementclient.exe e adicionar o arquivo 155.dll na pasta element. Detalhes importantes ! Para funcionamento dos atalhos no inventário é necessário que você puxe os ícones e chame as funções na sua interfaces.pck ou se preferir pode usar uma interfaces que já tenha isso, todas são a mesma coisa só tem alterações visuais em algumas. Para funcionamento da lojinha OFF, é necessário adicionar o botão também na interfaces.pck com a função e um item no inventário com o ID: 65532. Possui mais algumas funções também como: Ganhar chi ao meditar, reset de DG pelo botão, nick colorido entre outros ai, faz tempo que não uso esses arquivos então não me recordo bem de todas as funções que tem. No mais é isso, caso tenha alguma dúvida ou eu tenha esquecido de algo, me corrige ai ou me chama ai no pv ou no discord: ScroL#6530 FILES 155 COM ATALHOS E MAIS.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
-
Dear All Brazilian Friends, I share this perfect world panel, actually this panel base from @tomirons code. Download Link: [Conteúdo Oculto] NOTE: Still have bugs, try to fix by yourself Demo: [Conteúdo Oculto]1 ponto
-
Olá a todos, Estou enviando uma pequena contribuição contendo a descompilação da GS utilizada na versão compilada e publicada, segue um breve resumo do que se trata a descompilação. Observações, estarei anexando a descompilação gerada com a versão 7.6 do IDA, não irei publicar o IDA pois é uma ferramenta paga e as disponiveis são crackeadas, não quero assumir nem uma responsabilidade do que pode conter no crack. Com a descompilação, é possível analisar estruturas e novas funcionalidades no código, com o pseudocódigo gerado pelo IDA é possível realizar a migração do código disponibilizado e estável da V1.5.2 para a V1.5.5. Também é possível obter estruturas que foram alteradas, verificar funcionamento de novos pacotes ou novas inclusões e afins. Um ponto interessante, é que os arquivos compilados em Linux carregam consigo algo similar ao .PDB do Windows, contento informações como variaveis e afins, isso facilita pois não temos que criar as estruturas para entender o código. Também temos junto a isso algumas variaveis chaves no processo, como por exemplo: É uma breve contribuição mas espero poder ajudar a alguns que estão começando na área de desenvolvimento. Abçs! download.rar1 ponto
-
1 ponto
-
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.zip1 ponto
-
1 ponto
-
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.rar1 ponto
-
Tchow! Há alguns anos um grande amigo meu desenvolveu este LiveRank para um servidor que eu tive no passado e agora estou disponibilizando para vocês. Como instalar em seu servidor 1 – Coloque a pasta inteira dentro da sua PWServer ou home 2 – Forneça permissão aos arquivos pode ser 0755 ou 0777 3 – Abra o arquivo “config.php” e inserir apenas a sua senha MYSQL. 4 – Importe o arquivo fRank.sql no banco de dados do seu servidor, normalmente o banco se chama “pw” 5 – Pelo Putty vá até a pasta do LiveRank e execute o comando ./start.sh PS: Abrindo o arquivo “config.php” você pode configurar o canal que a mensagem vai ser anunciada dentro do jogo. Você também pode personalizar a mensagem que aparece dentro do jogo quando um jogador mata o outro o nome do arquivo para alterar a mensagem se chama “mensagens.php” você também pode usar mais que 1 mensagem Caso você por algum motivo reinicie seu VPS lembre-se de sempre startar o LiveRank para funcionar normalmente.. O Rank além de anunciar quem matou e quem morreu também mostra a quantidade de Abates e Mortes. Crédito pelo arquivo: Frankstem liverank.rar1 ponto
-
1 ponto
-
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
-
Editor fácil de usar. Como começar com a interface: 1) Extrair os arquivos e interfaces.pck surfaces.pck 2) Definir no editor onde o diretório raiz dos arquivos descompactados 3) Editar elementos da interface UIEdit (pdev).rar1 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
-
Link da imagem: Clique Aqui Créditos da imagem: @Master1 ponto
-
Informações: Versão compatível: 1.5.5v156 Essa lib foi desenvolvida por um amigo e aprimorada por mim, para que pudesse controlar os lances e batalhas de Guerra territoriais. Eu deixei todas as funções o mais didático possível, para que até mesmo leigos possam alterar as funções sem prejudicar a funcionalidade. Todos os comentários que fiz no arquivo script.lua, ajudará você a modificar a ferramenta. Você mesmo pode melhorar as funções como por exemplo, horário de inicio de lances, final e batalha. Você pode modificar para que, cada dia inicie em um horário diferente, basta retornar o valor correto de result. Como exemplo: function BidBeginTime( now ) --Inicio dos Lances -- Constantes local result = BattleManagerLogic(now) local hour = 12 -- Hora de Inicio local minuter = 1 -- Minutos (se for antes de 10 minutos, não coloque 05, coloque apenas 5) -- Variáveis if result == 0 then -- Se for domingo, os lances iniciaram ás 15:10 hour = 15 minuter = 10 end mylogfunc("BidBeginTime: now = "..now) mylogfunc("BidBeginTime: DAY = "..result) return result*DAY + hour*HOUR + minuter*MIN end Vai da imaginação de vocês, isso é apenas um exemplo. Instalação: - Extraia os arquivos nas referentes pastas ( já vai tudo separado ). - Adicione no seu ./start.sh o seguinte código quando iniciar gdeliveryd: cd /PWServer/gdeliveryd; LD_PRELOAD=twman.so ./gdeliveryd gamesys.conf > /PWServer/logs/gdeliveryd.log & - Configure o arquivo script.lua e pronto! Reinicie totalmente o jogo e basta aguardar o horário de inicio para os testes. Obs: Nunca adicione algo dessa forma no servidor de produção, sempre faça testes antes. TwManager.rar1 ponto
-
1 ponto
-
Ativador meridiano completo dentro do game digitando !meridiano no chat global :D [Conteúdo Oculto]1 ponto
-
1 ponto
-
Vendo script de comando via chat. Script todo desenvolvido por mim atualmente ele é 3 em 1 porém pode ser vendido separadamente pois é licenciado. Valores: Meridiano = R$50 Títulos = R$50 Correio = R$50 Completo = R$120 Whatsapp: [Conteúdo Oculto] Comandos: !meridian = Desloga o personagem automaticamente para aplicar a atualização. !title = Desloga automaticamente seu personagem para atualização (Você não precisa adicionar código (octal) dos títulos só adicionar em no titulo.txt) Ambas as funções exige um item para ser trocado. Exemplos de Envio: !pdl = Enviará automaticamente para seu personagem via correio Pedra Imortal !bau = Enviará automaticamente para seu personagem via correio o Bau que adicionar. Esse sistema cada item adicionado você pode escolher a opção de player ou só gm poder usar! Toda configuração é feita na config.php O sistema registra todas as ações do script. Obs: Necessário ter PHP 5.6 ou 8.1 com ioncube instalado (ajudo na instalação)1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Tenho este script de resgate. Não lembro quem me mandou, talvez sirva para algo. resgate.tgz1 ponto
-
É editor do Precinct.sev. Ele edita o arquivo Precinct.sev, que responde para o player de respawn. Editor pode Abrir / salvar / editar 6/7 versões de arquivo precinct.sev. Converter de 6 para 7 ou 7 para 6. Mostrar zonas e respawn lugar no mapa. Zonas de desenho e locais de respawn em mapas Múltiplas zonas / pontos de eliminação. obter coordenadas do jogo com Control + A ou outras combinações. Suporta Inglês. Precinct.sev editor.rar1 ponto
-
1 ponto
-
Abre todas as versões, eu recompilei e traduzi essa é a ultima versão disponível, funciona em multiplos jogos Angelica. Testado em : PW , FW , SSO. criado por : [Conteúdo Oculto] Release.7z1 ponto
-
1 ponto
-
no pwadmin: pwserver/pwadmin/pwadmin.conf shellAdd = LD_PRELOAD=libtask.so %s1 ponto
-
Olá, venho hoje compartilhar este sistema de logs para seu pw. O sistema grava log de: Login Criação de personagem Forjas Refinos Negociações Venda de Lojinhas Leilão Lances Correios Compras do gshop (normal e evento) Presentes Vendas de itens em NPC Bate Papo Itens presos Drop de moedas e itens Coleta de moedas/itens do chão – entre players Coleta de moedas/itens do chão – drop de monstros entre outros. Obs: Depedendo da versão do seu pw alguns logs podem não funciona, mas pode adpatar/configurar pra sua versão direto nos arquivos Não fiz o Logservice, apenas o sistema de visualização na web. Em breve, com a ajuda do @Master vou criar um mais aprimorado, para todas as versões e com algumas novidades. Download: logservice.zip1 ponto
-
Tchow! Hoje vou disponibilizar aqui um script desenvolvido para mim por um grande amigo, tenho autorização para tal coisa. Como funciona o script? Ele envia mensagens dentro do jogo conforme você configura, você pode personalizar as mensagens e o tempo que no qual vai ser enviada no jogo, além disso você pode configurar varias avisos no mesmo arquivo. Como configurar o script? Basta colocar a pasta chamada mensageiro dentro da sua home ou PWServer, Depois procure pelo arquivo chamado crontab que normalmente fica na pasta cd /etc/ e adicionar o comando que irei disponibilizar a baixo Comando * * * * * root php /home/mensageiro/mensageiro.php > /home/mensageiro/crontab.log 2>&1 Pronto seu script já esta configurado. Configurando as mensagens Abra o arquivo mensageiro.php com um editor de texto e adicione a mensagem que desejar e também escolha o canal que a mensagem vai ser apresentada dentro do jogo Espero que ajude. Créditos pela criação do script: Frankstem my Brother. mensageiro.rar1 ponto
-
d 1080044192 + qnt de xp – upar céu ex: d 1080044192 1000 d 1080044193 – evolui céu @Revoltz add lá encima1 ponto
-
1 ponto
-
1 ponto
-
boa noite amigo, tb estou com erro no download e esse link que vc desponibilizou esta off, pode ajudar,1 ponto
-
Como Instalar no ubuntu Verificação dos seguintes programas instalado na maquina. Comando: apt-get install openjdk-6-jre (Java essencial para o CPW) Comando: apt-get install apache2 (http pasta www) Comando: apt-get install mysql-server (Database) Após efetuar o download, jogue-o na pasta (cd /var/www) do seu Virtual Box ou Dedicado. Ao colocá-lo, (caso você não tenha) baixe o pacote de extrair .rar, utilizando o seguinte comando.: apt-get install unrar e para extrai-lo unrar x patcher.rar Quando você terminar de extrair, será criado uma pasta com nome de CPW, beleza! Até ai está tudo bem. Vamos fazer algo, que em muitos tutoriais não é dito, sobre a permissão de visualização. Que sempre deixam ela com 0777 ou 0755 e assim, você vai ser hackiado facilmente. Você irá da os comandos à seguir em seu terminal (puTTy) Obs: Certifique-se que você está no diretório (cd /var/www/CPW) Após isso: chmod -R 0700 config chmod -R 0755 files chmod -R 0755 lib chmod -R 0755 log chmod -R 0755 pw-cpw.jar chmod -R 0755 README chmod -R 0755 cpw Beleza! Agora vamos instalar ele. Acredito que você, já muito inteligente terá o phpmyadmin instalado em sua máquina. Caso não tenha, baixe-o. apt-get install phpmymadmin Logue-se no phpmyadmin e crie um novo banco de dados com nome de "files" não é necessário ser esse nome, poderá ser qualquer um à seu gosto. Volte ao terminal SSH (puTTy) e digite ./cpw install Quando você dér esse comando ele irá pedir as configurações do seu MYSQL(Database) é fácil, e você, claro, já sabe oque é. =] 1° - IP deixe localhost 2° - Usuário MYSQL e geralmente o padrão é "root" 3° - A senha do MYSQL. 4° - Database, é o nome que você criou, igual eu disse ali encima. "Logue-se no phpmyadmin e crie um banco de dados com nome de "files" digite o nome que você pôs. Agora, entre no WinSCP e vá até a pasta cd /var/www/CPW/files/CPW você irá vêr 3 diretórios (element/patcher e launcher) crie um novo diretório com nome de "info" e dentro dele crie um arquivo com nome de "pid" e dentro dele digite 101. Beleza. Volte ao putty e digite ./cpw initial Esse comando irá criar a Chave 0 Agora iremos lá na pasta de configuração cd/var/www/CPW/config/patcher.conf Você irá vêr um linha assim.: "remove-files=true" altere "true" para "false" e dê um ctrl s para salvá-lo. Agora, vamos até o nosso client! Vá na pasta config/element/version.sw e deixe assim: 1 0 Salve e volte para a nossa pasta raíz. Vá até a pasta /patcher/server e no arquivo pid deixe pid=101 E salve-o. Agora é umas das partes importantes (updateserver.txt) que irá fazer conexão com o CPW e fazer o download dos arquivos que você ponha para atualizar. E ficará assim: "tutorial" "[Conteúdo Oculto]" O nome poderá ser qualquer um. "pw-patch, patch, cpw" Beleza, vá até a pasta (patcher) e jogue o executável patcher.exe para a pasta cd /var/www/CPW E depois o comando ./cpw x patcher.exe Esse comando irá fazer com que somente esse patcher funcione o CPW. Agora, pegue o patcher.exe do WinSCP e jogue-o na pasta "patcher" do client mesclando o antigo. Como criar uma atualização? Fácil! Você irá vêr 3 pastas (element/patcher e launcher) suponhamos que você queria atualizar o seu elements.data Fácil, vá até a pasta cd /var/www/CPW/files/new/element/ Dentro da pasta element crie um pasta com nome de "data" lá, você coloca os seus arquivos .data. No caso, elements.data Volte no terminal e digite (esteja no diretório padrão) cd /var/www/CPW e digite ./cpw revision Esse comando irá criar uma nova chave contendo o nosso novo elements.data E você irá fazer isso sempre que for atualizar! Detalhe, muito importante! Você que tem problemas com as letras cinesas que ficam "????.ecm/.gfx" na hora de atualizar. É muito fácil resolver! dpkg-reconfigure locales Maaaaaaaaaaaaaaas, tem um porém. Muitos administradores usam "Ubuntu" e não "Debian" que ao invés de atualizar ele gera erros e no debian é só você marcar a opção referente a UTF-8 Já no ubuntu é diferente, você tem que usar o editor vim ou nano para deixá-lo 100% Vá na pasta do CPW digite (locale) você irá vê algo assim LANG=pt_BR LANGUAGE=pt_BR: LC_CTYPE="pt_BR" LC_NUMERIC="pt_BR" LC_TIME="pt_BR" LC_COLLATE="pt_BR" LC_MONETARY="pt_BR" LC_MESSAGES="pt_BR" LC_PAPER="pt_BR" LC_NAME="pt_BR" LC_ADDRESS="pt_BR" LC_TELEPHONE="pt_BR" LC_MEASUREMENT="pt_BR" LC_IDENTIFICATION="pt_BR" LC_ALL= Então, "pt_BR" nunca que irá lê os arquivos interfaces, models etc. digite cd E depois sudo nano /etc/default/locale com esse comando você estará abrindo o editor de texto do linux. Ele vai mostrar a mesma coisa LC CTYPE="pt_BR" blábláblá. Apague TUDO! E cole o seguinte: LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= Após colar isso, dê "CTRL O enter CTRL X" e depois sudo dpkg-reconfigure locales e dê reboot em seu Host! Beleza, agora, na hora de passar as atualizações para o CPW terá de ser em (.7z) Instale os pacote de 7z apt-get install p7zip p7zip-full p7zip-rar lzma lzma-dev e para descompactar 7z x nome_d.7z CPW-www.zip1 ponto
-
1 ponto
-
1 ponto
-
Obrigado Fulano por compartilhar seus conhecimentos!1 ponto
-
1 ponto
-
Segue: 3 Raças.rar 4 Raças.rar 5 Raças.rar 6 Raças.rar1 ponto
-
0 pontos
-
Gshop do client é diferente do gshop do servidor, voce pode ignorar essa verificação se adicionar a tag nocheck no .bat: start elementclient.exe startbypatcher console:1 nocheck0 pontos
-
-1 pontos