- DouglasB2310Mensagens Nível 5
- Mensagens : 500
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:1338
Link : to the Past
Queria colocar um IF que detectasse se está usando o SA-MP. Quero que desative funções como teleporte para evitar ban.
- CloudScripter CLEO - Avançado
- Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Dá pra usar uma API do windows pra pegar o handle da samp.dll e verificar se é válido (se a dll foi carregada) ou não . Mais ou menos assim :
- Código:
LOAD_DYNAMIC_LIBRARY "kernel32.dll" (lib)
GET_DYNAMIC_LIBRARY_PROCEDURE "GetModuleHandleA" lib (proc)
CALL_FUNCTION_RETURN proc 1 0 "samp.dll" (handle)
IF NOT handle = NULL
// Está no Samp !
ENDIF
______________________________
Everyone gonna remember my name !
- DouglasB2310Mensagens Nível 5
- Mensagens : 500
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:1338
Link : to the Past
Esse código entra em que conteúdo de GTA3Script? Deve dar para fazer muitas coisas usando as DLLs do Windows! Obrigado. 
Opa, não funcionou. Mesmo criando variáveis do tipo INT com os nomes "proc", "lib", etc.

Opa, não funcionou. Mesmo criando variáveis do tipo INT com os nomes "proc", "lib", etc.
É pra ter funcionado sim. Eu fiz assim no Mix Sets e Tuning Mod.
- DouglasB2310Mensagens Nível 5
- Mensagens : 500
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:1338
Link : to the Past
Eu coloquei:
E não funcionou.
Ele marca "IF NOT handle = null" com a mensagem "could not match alternative".
- Código:
variaveis_e_tal:
LVAR_INT random, scplayer, lib, proc
GET_PLAYER_CHAR 0, scplayer // Pegar o jogador e colocar ele em uma variável
detectar_samp:
LOAD_DYNAMIC_LIBRARY "kernel32.dll" (lib)
GET_DYNAMIC_LIBRARY_PROCEDURE "GetModuleHandleA" lib (proc)
CALL_FUNCTION_RETURN proc 1 0 "samp.dll" (handle)
IF NOT handle = NULL
GOTO fim
ENDIF
E não funcionou.

Ele marca "IF NOT handle = null" com a mensagem "could not match alternative".
- CloudScripter CLEO - Avançado
- Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Pelo que vi, você não declarou a var "handle".
Teste isso :

Teste isso :
- Código:
SCRIPT_START
{
LVAR_INT lib, proc, handle
LOAD_DYNAMIC_LIBRARY "kernel32.dll" (lib)
GET_DYNAMIC_LIBRARY_PROCEDURE "GetModuleHandleA" lib (proc)
CALL_FUNCTION_RETURN proc 1 0 "samp.dll" (handle)
IF NOT handle = NULL
PRINT_STRING_NOW "Esta no SA-MP." 7000
ELSE
PRINT_STRING_NOW "Nao esta no SA-MP." 7000
ENDIF
}
SCRIPT_END

______________________________
Everyone gonna remember my name !
- DouglasB2310Mensagens Nível 5
- Mensagens : 500
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:1338
Link : to the Past
Deu certo, estava meio cansado ontem de noite, e olha que era aí pelas nove horas da noite. Não devia nem ter aberto o VSCode.

- CloudScripter CLEO - Avançado
- Nick anterior : Israel
Título : Baiano
Mensagens : 858
Reputação : 138
Desde : 22/09/2015
Sei como é.@DouglasB2310 escreveu:Deu certo, estava meio cansado ontem de noite, e olha que era aí pelas nove horas da noite. Não devia nem ter aberto o VSCode.![]()

______________________________
Everyone gonna remember my name !
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
|
|