Olá users, estou enfrentando um problema um tanto quanto inexplicável.
Quando adiciono a linha abaixo em OnGameModeInit, o samp-server carrega algumas funções e logo em seguida fecha:
Código PHP:
LimitGlobalChatRadius(100.0);
Esse problema só ocorre quando eu adiciono o código citado, se eu o remover, o servidor abre normalmente.
O final do log, é apresentado os veículos carregados, e uma mensagem de conexão antes de fechar:
Código PHP:
Number of vehicle models: 41 [connection] 127.0.0.1:60310 requests connection cookie.
Citar:Em teoria da informação, a distância Levenshtein ou distância de edição entre dois "strings" (duas sequências de caracteres) é dada pelo número mínimo de operações necessárias para transformar um string no outro. Entendemos por "operações" a inserção, deleção ou substituição de um carácter. O nome advém do cientista russoVladimir Levenshtein, que considerou esta distância já em 1965. É muito útil para aplicações que precisam determinar quão semelhantes dois strings são, como é por exemplo o caso com os verificadores ortográficos.
Essa include se utiliza da distância de Levenshtein para adivinhar o comando que o player gostaria de ter digitado.
Como utilizar:
Código:
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if (!success) {
new
guessCmd[32];
Creditos:
- Por: Kirima pela include guess-command.inc
- Southclaws pela Função da Distância de Levenshtein
- Y_Less por y_commands
- Zeex por amx_assembly
Olá, mais um projeto recuperado do antigo Fórum. Créditos ao bruxo00.
doxIT!
Este simples filterscript serve para os administradores do servidor terem mais informações sobre os jogadores. Recorrendo ao comando /dox <playerid> o administrador tem acesso a:
Código PHP:
DNS Reverso Username da Internet Cidade País Código do País Internet Server Provider Latitude Longitude TimeZone Organização Região Nome da Região Código Postal Se está a usar ou não VPN
Este Filterscript é extremamente fácil de adaptar a qualquer gamemode.
A API de verificar se o IP é VPN tem um limite de acessos por dia. Hoje já excedi esse limite por isso é que aparece que o meu IP está banido.
A versão antiga requeria hospedar um .php. Esta versão não é preciso usar nenhum .php, todo o scrapping é feito diretamente no filterscript.
COMO FUNCIONA A DETEÇÃO DE VPN
Citando diretamente a API:
Código:
Given an IP address, the system will return a probabilistic value (between a value of 0 and 1) of how likely the IP is a VPN / proxy / hosting / bad IP. A value of 1 means that IP is explicitly banned (a web host, VPN, or TOR node) by our dynamic lists. Otherwise, the output will return a real number value between 0 and 1, of how likely the IP is bad / VPN / proxy, which is inferred through machine learning & probability theory techniques using dynamic checks with large datasets. Billions of new records are parsed each month to ensure the datasets have the latest information and old records automatically expire. The system is designed to be efficient, fast, simple, and accurate.
Inserido por: Levi.M - 24/02/2021 09:37 - Fórum: Includes
- Sem Respostas
Mais um sistema recuperado da Fórum SA-MP. Créditos ao ipsBruno.
Bini 4
Após algumas semanas de desenvolvimento da nova versão de Bini. Finalmente consigo acaba-la.
A nova versão de Bini não conta com muitas alterações, exceto a engine de manipulação de arquivos na memória. Desta vez utiliza memória cache mais avançada usando Setproperty e Getproperty!
Por mais que não seja necessário o uso de INI_Save. Aconselha o USO DA MESMA, pois em caso de crashs ou eventuais bugs no seu servidor decorrente em outros fatores, alguns arquivos podem ser perdidos !!
Velocidade
Com esta nova engine, a velocidade foi bastante aprimorada. O que já era rápido ficou mais rápido ainda.
Código PHP:
[00:57:47] Bini -> write 3304 ms - read 32 ms - read/write 3336 ms [00:57:47] Dof2 -> write 3557 ms - read 258 ms - read/write 3815 ms
A função write apesar de ser mais rápida que todos os outros sistemas de arquivos ainda precisa de alguns ajustes de velocidade e estabilidade, então eventuais atualizações estão para surgir
printf("Bini -> write %d ms - read %d ms - read/write %d ms", bin[0], bin[1], bin[2]); printf("Dof2 -> write %d ms - read %d ms - read/write %d ms", dof[0], dof[1], dof[2]); return true; }
public OnFilterScriptExit() { DOF2_Exit(); INI_Exit(); return true; }
Usando
Para usar Bini é bastante simples! Basta fazer o seguinte:
Escrevendo:
Números
Código PHP:
INI_WriteInt("arquivo.ini", "key", valor);
Textos
Código PHP:
INI_WriteString("arquivo.ini", "key", "valor");
Lendo valores:
Números
Código PHP:
INI_ReadInt("arquivo.ini", "key");
Textos
Código PHP:
INI_ReadString("arquivo.ini", "key");
deixe
Código PHP:
public OnFilterScriptExit() { INI_Exit(); return true; }
**Importante
- Se você tem arquivos escritos por DOF2 ou Y_Ini este sistema não será compatível pois meu sistema usa o método formal para escrita de escrita em arquivos ini, sem espaço entre as keys
Com está velocidade é permitido que você possa colocar em até 50 escritas/leituras em OnPlayerUpdate. Salve em bini.inc por favor.
Arquivo não salvando
Caso for um único arquivo, veja se o servidor não está sendo fechado corretamente. Quando você não fecha por RCON EXIT o OnGameModeExit/FilterScriptExit não são chamados e logo INI_Exit também não é !!
Caso for vários arquivos tente aumentar o valor max_lines_file para acima de 999
Exemplo:
Código PHP:
#define max_lines_file 5000
Servidor crashando
Certifique-se se antes de usar algum arquivo INI_Open/INI_READ o arquivo existe. Use
Código PHP:
if(fexist(#arquivo.ini)) // o arquivo existe
Ocupando muito AMX
Nem sempre o que ocupa muito amx é lento. Bini usa um sistema avançado de cache, onde tudo é registrado no amx em tempo real. Mas é tudo registrado no AMX, não ocupa nada de memória do seu computador. Só ocupará memória se de alguma forma outros fatores externos a Bini ultrapassarem isto.
Olá, esse é mais um sistema recuperado do antigo Fórum, Créditos ao RedMF.
Anti Cheat 1.4
Anti-fake
Anti-skin bug
Anti-fly
Anti-money
Anti-god Health & Armour hack
Anti-jetpack
God Of Cars / Mod Trol
Código PHP:
/MF - Abre o Dialog para configuração do anti cheat OBS precisa estar logado na RCON
Include usadas:
a_samp -> by SA-MP Team
zcmd -> by Zeex
bini -> by ipsBruno
O Anti Money Hack vai vim desligado caso você tenho um sistema que Salve o money dos players mantenha ele desligado para não bugar porque ele ja salva o money do player.
eae galera bom vi uns tutoriais de otimizações e vi a recomendação da include fixes
porem no log do meu server ta acusando isso:
Código:
* FIXES_PRINTF (GM):
********************************************************************************
* Could not open "DANGEROUS_SERVER_ROOT/server.cfg". Make sure your server is *
* configured to allow server root access. Either via: *
* *
* https://github.com/Misiur/YSI/raw/master/links.rar *
* *
* Or (Windows - CMD): *
* *
* cd scriptfiles *
* mklink /J DANGEROUS_SERVER_ROOT .. *
* *
* Or (Windows - PowerShell): *
* *
* cd scriptfiles *
* cmd /c mklink /J DANGEROUS_SERVER_ROOT .. *
* *
* Or (Linux): *
* *
* cd scriptfiles *
* ln -s .. DANGEROUS_SERVER_ROOT *
* *
* If you're not able to, or just don't want to make these changes you can *
* suppress the warning by defining this at the top of your mode: *
* *
* #define FIXES_ServerVarMsg 0 *
* *
* Or (preferably) disable the relevant fixes with: *
* *
* #define FIX_GetServerVarAsString 0 *
* #define FIX_GetServerVarAsFloat 0 *
* #define FIX_GetServerVarAsInt 0 *
* #define FIX_GetServerVarAsBool 0 *
* *
********************************************************************************
*** fixes.inc warning: Server var `maxplayers` (50) < `MAX_PLAYERS` (1000), wasting memory.
***
*** Disable this message with:
***
*** #define FIXES_GetMaxPlayersMsg 0
***
Filterscript '../scriptfiles/callbackfix.amx' loaded.
50
devo me atentar a isso ou se eu ignorar não terá problemas
no topo da minha gm eu declarei o seguinte:
#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#endif
#define MAX_PLAYERS 50
Boa Tarde, estou com um problema sério aqui, toda vez que vou descompactar alguma Gamemode ele corrompe dando o seguinte erro:
"[font=Muli, "Helvetica Neue", Helvetica, Arial, sans-serif]Run time error 19: "File or function is not found"[/font]
O que posso fazer para resolver isso? Já formatei meu PC para 3 sistemas windows diferentes e todos dão no mesmo, encaixei em outro computador e deu certo..
Algumas vezes ele pede o arquivo msvcp120.dll, mas insiro mas mesmo assim faz o corromper, não sei o que eu faço..
Desde já agradeço
OBS: São várias Gamemodes que acontecem isso, não é só um.
Olá esse tutorial foi recuperado do antigo Fórum SA-MP, estou postando aqui com o intuito de ajudar pessoas que queiram saber sobre o assunto. Créditos ao Koplan.
Medidas para evitar ataques DDoS
Introdução:
Os ataques DoS/DDoS tem vindo a aumentar bastante nos últimos meses, e com isso é preciso implementar medidas para evitar que seu servidor seja atacado. Se você é daqueles caras que prefere ter um servidor hospedado no seu computador para evitar gastar dinheiro e está aguardando algum milagre, então já pode fechar este tutorial.
Não há nenhuma forma de evitar um ataque DDoS a 100% e muito menos num servidor online cujo o protocolo é 17 (UDP), o que podemos fazer é implementar medidas para reduzir a probabilidade disto acontecer.
Ingredientes:
. Virtual Private Server (VPS) Linux. . Cérebro.
Procedimentos:
Em primeiro lugar devemos proteger a máquina de ataques RANDOM que são feitos através de portas aleatórias que estejam abertas, é muito frequente atacarem a porta 22. Este tipo de ataque atualmente é muito perigoso, principalmente nos servidores da OVH, em que a proteção dos servidores dedicados em Layer 4 é quase perfeita, mas quando se trata de VPS a história é outra, há vários métodos RANDOM que fazem bypass aos planos básicos da OVH.
Solução:
Configuramos algumas regras no iptables para permitir somente o seu IP a estabelecer uma conexão à porta 22.
Código PHP:
iptables -F iptables -A INPUT -s SEUIP -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
Em "SEUIP" deve modificar pelo seu IP público, se você não sabe o seu IP pode verifica-lo neste site.
Se utilizar um servidor mysql, deverá fazer o mesmo procedimento para a porta 3306.
Código PHP:
iptables -A INPUT -s SEUIP -p tcp --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
Se você utilizar alguma conexão remota para o mysql, por exemplo, um UCP terá de permitir o IP da máquina em que está hospedado o mesmo.
Em segundo temos de proteger contra os ataques ICMP que já são velhos mas continuam a funcionar e bastantes empresas Hosting continuam vulneráveis. Este tipo de ataque são os mais perturbadores, na minha opinião. Eu já explorei esta vulnerabilidade muito a fundo, desenvolvi um script em linguagem C em que mandava milhares de requisições a um servidor e o mesmo deixava de responder. Vou deixar abaixo um método de proteção.
Código PHP:
iptables -A INPUT -p ICMP --icmp-type echo-request -m length --length 60:65535 -j ACCEPT iptables -A INPUT -p ICMP --icmp-type echo-request -m pkttype --pkttype broadcast -j DROP iptables -A INPUT -p ICMP --icmp-type echo-request -m limit --limit 3/s -j ACCEPT iptables -A INPUT -p ICMP -f -j DROP
Em terceiro, há os ataques UDP Flood que a maioria das empresas de hospedagem games oferece uma mitigação. Vou deixar abaixo algumas regras.
Código PHP:
iptables -N UDP-FLOOD iptables -A INPUT -p udp --dport 7777 -m ttl --ttl-eq=128 -j UDP-FLOOD iptables -A UDP-FLOOD -p udp --dport 7777 -m length --length 17:604 -j DROP
Quarto e terminando, não façam igual muitas pessoas que estou vendo... Muitos colocam o servidor e o UCP na mesma máquina, isso é um erro extremo. Ao fazerem isto, a probabilidade de receberem ataques triplica e não é recomendável ter um servidor web e game na mesma máquina.
Há outros métodos para derrubar um servidor, tal como exploits e também falhas nos gamemodes. Este tutorial o foco é somente DoS e DDoS.