SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 04/09/2019, 02:29 PM   #3441
GuiKommander
Gangsta
 
GuiKommander's Avatar
 
Join Date: Dec 2016
Posts: 798
Reputation: 25
Default Re: Códigos Úteis #1

Para o pessoal que quer manipular variáveis strings com strcmp.

PHP Code:
function CriarChaves(casaid)
{
    
/*
        This function will create the house key.
        
        Paramters:
        casaid - From Iterator:House
    */

    
new FileChaves[50];
    
    
format(FileChavessizeof(FileChaves), PASTA_CHAVESCASASInfoCasa[casaid][ID]);
    
dini_Create(FileChaves);
    
    
// ------------------------------------------------------------------------------- //

    
new aString[MAX_NAME_PLAYER];

    for(new 
0MAX_CHAVES_POR_CASA; ++ i)
    {
        
format(ChavesCasas[casaid][i], MAX_NAME_PLAYER"Ninguem");
    
        
format(aStringsizeof(aString), "Chave%d"i);
        
dini_Set(FileChavesaString"Ninguem");
    }
}

// ----------------------------------------------------------------------------------------------------------------------------------- //

function InserirChaveCasa(playeridcasaid)
{
    
/*
        This function will enter a home key for a player.
        
        Paramters:
        playerid - The player
        casaid - From Iterator:House
    */

    
new FileChaves[50];

    
format(FileChavessizeof(FileChaves), PASTA_CHAVESCASASInfoCasa[casaid][ID]);
    
    
// ------------------------------------------------------------------------------- //

    
new aString[MAX_NAME_PLAYER];

    for(new 
0MAX_CHAVES_POR_CASA; ++ i)
    {
        if(!
strcmp(ChavesCasas[casaid][i], "Ninguem"false))
        {
            
format(aStringsizeof(aString), "Chave%d"i);
            
dini_Set(FileChavesaStringpNome(playerid));
            return 
i;
        }
    }
    return -
1;
}

// ----------------------------------------------------------------------------------------------------------------------------------- //

function ContarChavesPlayer(playeridcasaid)
{
    
/*
        This function will return how many keys a player has
        from a certain house.
        
        Paramters:
        playerid - The Player
        casaid - The house ID
    */
    
    
new Contar;

    for(new 
0MAX_CHAVES_POR_CASA; ++ i)
    {
        if(!
strcmp(ChavesCasas[casaid][i], pNome(playerid), false))
        {
            
Contar ++;
        }
    }
    return 
Contar;
}

// ----------------------------------------------------------------------------------------------------------------------------------- //

function CarregarChavesCasas()
{
    
/*
        This function will load all keys of a given house.
        
        Paramters:
        no Paramters
    */

    
new FileChaves[50], aString[50];

    foreach(new 
House)
    {
        
format(FileChavessizeof(FileChaves), PASTA_CHAVESCASASInfoCasa[c][ID]);

        for(new 
0MAX_CHAVES_POR_CASA; ++ i)
        {
            
format(ChavesCasas[c][i], MAX_NAME_PLAYER"Ninguem");
        
            
// ------------------------------------------------------------ //
            
            
format(aStringsizeof(aString), "Chave%d"i);
        
            if(
strcmp(dini_Get(FileChavesaString), "Ninguem"false))
            {
                
format(ChavesCasas[c][i], MAX_NAME_PLAYERdini_Get(FileChavesaString));
            }
        }
    }
}

// ----------------------------------------------------------------------------------------------------------------------------------- //

function SalvarCasasChaves(casaid)
{
    
/*
        This function will save all keys of a particular house.

        Paramters:
        casaid - The House ID
    */
    
    
new FileChaves[50], aString[15];

    
format(FileChavessizeof(FileChaves), PASTA_CHAVESCASASInfoCasa[casaid][ID]);

    for(new 
0MAX_CHAVES_POR_CASA; ++ i)
    {
        if(
strcmp(ChavesCasas[casaid][i], "Ninguem"false))
        {
            
format(aStringsizeof(aString), "Chave%d"i);
            
dini_Set(FileChavesaStringChavesCasas[casaid][i]);
        }
    }
}

// ----------------------------------------------------------------------------------------------------------------------------------- //

function DarChaves(playerididcasaid)
{
    
/*
        This function will hand one of your keys to a
        house to another player.

        Paramters:
        playerid - The Player ID
        id - The player receiving the key
        casaid - The Casa ID
    */

    
for(new 0MAX_CHAVES_POR_CASA; ++ i)
    {
         if(!
strcmp(ChavesCasas[casaid][i], pNome(playerid), false))
         {
            
format(ChavesCasas[casaid][i], pNome(id));
            return 
i;
         }
    }
    
    
// ------------------------------------------------------------------------------- //
    
    
SCMEx(playerid0xFF8D1CFF"[ Chaves ]: Você deu uma chave da Casa ID: %d para o(a) jogador(a) %s."casaidpNome(id));
    
SCMEx(id0xFF8D1CFF"[ Chaves ]: Você recebeu uma chave da Casa ID: %d do(a) jogador(a) %s."casaidpNome(playerid));
    
    
SalvarCasasChaves(casaid);

__________________
Programo sistemas simples até os mais complexos por remuneração.
Todos os códigos dinâmicos.
GuiKommander is offline   Reply With Quote
Old 24/09/2019, 01:58 PM   #3442
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,375
Reputation: 325
Default Re: Códigos Úteis #1

Par ou ímpar?

PHP Code:
//Par ou ímpar?

#include a_samp

main () {}

new 
numberChosen 120;

stock evenOrOdd(number) {
    
number number 2;
    if(
number == 0)
        print(
"Par");
    else
        print(
"Ímpar");
    return 
1;
}

public 
OnGameModeInit() {
    
evenOrOdd(numberChosen);
    return 
1;

Listando todos os números pares e ímpares de uma quantidade escolhida
PHP Code:
//Listando números pares e ímpares até uma quantidade.

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number == 0printf("%d é par."contNumber);
        else 
printf("%d é ímpar."contNumber);
    }
    return 
1;

Listando apenas números pares
PHP Code:
//Listando números pares

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number == 0printf("%d é par."contNumber);
    }
    return 
1;

Listando apenas números ímpares
PHP Code:
//Listando números ímpares

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number != 0printf("%d é ímpar."contNumber);
    }
    return 
1;

ipsLuan is offline   Reply With Quote
Old 24/09/2019, 05:06 PM   #3443
RodrigoMSR
High-roller
 
RodrigoMSR's Avatar
 
Join Date: Mar 2015
Location: Brazil
Posts: 1,042
Reputation: 140
Default Re: Códigos Úteis #1

Anti Team Tire Popping

Este código, usando Pawn.Raknet, impede motoristas de receberem tiros de aliados (SetPlayerTeam), evitando que os pneus do veículo sejam perfurados.

Por que não apenas retornar 0 na OnPlayerWeaponShot? Porque, se houver um jogador de outra equipe no banco do passageiro, este também não receberá os tiros e não poderá ser morto. Claro, você poderia impedir jogadores de equipes diferentes estarem no mesmo veículo, mas há casos em que isso não é viável.

PHP Code:
const BULLET_SYNC 206;

OPacket:BULLET_SYNC(playeridBitStream:bs)
{
    if(
GetPlayerTeam(playerid) != NO_TEAM && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
         static 
fromhittypehitid;

        
BS_IgnoreBits(bs8);

        
BS_ReadValue(
            
bs,
             
PR_UINT16from,
            
PR_UINT8hittype,
            
PR_UINT16hitid
        
);
        
        
//BS_SetReadOffset(bs, 0); //se houver outra filtragem do mesmo pacote

        
if(hittype == BULLET_HIT_TYPE_VEHICLE && hitid == GetPlayerVehicleID(playerid))
        {
            if(
GetPlayerTeam(playerid) == GetPlayerTeam(from))
            {
                return 
0;
            }
        }
    }
    return 
1;

__________________
sttserver.net

RodrigoMSR is offline   Reply With Quote
Old 31/10/2019, 05:06 AM   #3444
Whoo
Little Clucker
 
Join Date: Dec 2017
Posts: 6
Reputation: 7
Default Re: Códigos Úteis #1

Posição randômica dentro de uma area:
(não sei se esta 100%)
pawn Code:
randomAreaObj(Float: minX, Float: minY, Float: maxX, Float: maxY, &Float: resultX, &Float: resultY)
{
    if(minX < 0 > maxX) {
        minX = minX * -1;
        maxX = maxX * -1;

        resultX = minX + random(floatround(maxX, floatround_round) - floatround(minX));
        resultX = 0 - resultX;

    } else resultX = minX + random(floatround(maxX, floatround_round) - floatround(minX));

    if(minY < 0 > maxY) {
        minY = minY * -1;
        maxY = maxY * -1;

        resultY = minY + random((floatround(maxY, floatround_round) - floatround(minY)));
        resultY = 0 - resultY;
       
    } else resultY = minY + random((floatround(maxY, floatround_round) - floatround(minY)));

    return 0;
}
Whoo is offline   Reply With Quote
Old 07/11/2019, 03:38 PM   #3445
Whoo
Little Clucker
 
Join Date: Dec 2017
Posts: 6
Reputation: 7
Default Re: Códigos Úteis #1

Gerando uma string com numeros e letras randômicas, útil como salt e afins:
pawn Code:
randomLettersAndNumbers(text[], lenght)
    text[] = string;
    lenght = tamanho string;
Função:
pawn Code:
randomLettersAndNumbers(text[], lenght)
{
    for(new i; i <lenght; i++)
    {
        switch(random(3))
        {
            case 0: text[i] = (random(90 - 65) + 65);
            case 1: text[i] = (random(122 - 97) + 97);
            case 2: text[i] = (random(57 - 48) + 48);
        }
    }
    return text;
}
Utilizando:
pawn Code:
new string[30];
printf("%s", randomLettersAndNumbers(string, sizeof(string)));
saida:
pawn Code:
4o86qG0Xv82P7e8dJA66Xp858YJ2IX
Whoo is offline   Reply With Quote
Old 17/11/2019, 05:32 PM   #3446
Unsettled
Little Clucker
 
Unsettled's Avatar
 
Join Date: Nov 2019
Location: South American
Posts: 8
Reputation: 1
Default Re: Códigos Úteis #1

´ LOG DE DADOS

Estou disponibilizando este Código Útil para aqueles que desejam monitorar Commands/Systems. Porém o intuito deste código, é ajuda a identificar falhas em sistemas e problemas operacionais.. Tanto quanto pode salvar informações geradas por usuários do seu servidor!

´ Utilizando da seguinte forma como exemplo:

Code:
p_Log("Open Server", "O servidor foi iniciado!");

new v_Player[4] = "N/A";
p_Log("Open Server", v_Player);

public OnGameModeInit()
{
      p_Log("Open Server", "O servidor foi iniciado!");
      return true;
}
´ Que irá Gerar o caractere 'O servidor foi iniciado!' e em seguida salva-los automaticamente na pasta 'logs_server'.

´ Resultados:




´ Caso use o Código Útil LEMBRE-SE de criar a seguinte pasta logs_server em scriptfiles localizado em seu gamemode..

Code:
enum DATA_TIMER
{
      t_Day,
      t_Year,
      t_Month,
      t_Second,
      t_Minute,
      t_Hour,
}
new s_Timer[DATA_TIMER];
Code:
stock p_Log(f_Log[], const catch[])
{
      new
            File: p_File, p_Path[256]
      ;
	
      getdate(s_Timer[t_Year], s_Timer[t_Month], s_Timer[t_Day]);
      gettime(s_Timer[t_Hour], s_Timer[t_Minute], s_Timer[t_Second]);
	
      format(p_Path, 256, "logs_server/%s.sys", f_Log);
      p_File = fopen(p_Path, io_append);
	
      format(String, 256, "< %02d/%02d/%d | %02d:%02d:%02d > %s\r\n", s_Timer[t_Day], s_Timer[t_Month], s_Timer[t_Year], s_Timer[t_Hour], s_Timer[t_Minute], s_Timer[t_Second], catch);
      fwrite(p_File, String), fclose(p_File);
	
      return true;
}
´ Obs. Estou postando este CÓDIGO ÚTIL aqui pelo seguinte fator: (Não consegui achar um que fosse adequado e organizado para meu Projeto atual). E com este, está sendo minha grande precisão e até agora! Não apresentou nenhum problema.. Atualmente está Gerando os Seguintes 'Log':

- Invasão de Bases,
- Raio de proximidade,
- Spawn e Setagens.
__________________
Quote:
` Owner. Evolution Z (SA-MP 0.3.DL) "Mode. DayZ-RUST"

Vaga para Auxiliar de Desenvolvimento..
Web Developer(Bruno Cruz)

Warning. (SA-MP 0.3.DL is a seperate version of SA-MP featuring server-side custom models. Right now, custom objects and custom player skins are supported, with more types planned for the future.)
Unsettled is offline   Reply With Quote
Old 18/11/2019, 12:19 PM   #3447
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,375
Reputation: 325
Default Re: Códigos Úteis #1

Quote:
Originally Posted by Unsettled View Post
´ LOG DE DADOS

Estou disponibilizando este Código Útil para aqueles que desejam monitorar Commands/Systems. Porém o intuito deste código, é ajuda a identificar falhas em sistemas e problemas operacionais.. Tanto quanto pode salvar informações geradas por usuários do seu servidor!

´ Utilizando da seguinte forma como exemplo:

Code:
p_Log("Open Server", "O servidor foi iniciado!");

new v_Player[4] = "N/A";
p_Log("Open Server", v_Player);

public OnGameModeInit()
{
      p_Log("Open Server", "O servidor foi iniciado!");
      return true;
}
´ Que irá Gerar o caractere 'O servidor foi iniciado!' e em seguida salva-los automaticamente na pasta 'logs_server'.

´ Resultados:




´ Caso use o Código Útil LEMBRE-SE de criar a seguinte pasta logs_server em scriptfiles localizado em seu gamemode..

Code:
enum DATA_TIMER
{
      t_Day,
      t_Year,
      t_Month,
      t_Second,
      t_Minute,
      t_Hour,
}
new s_Timer[DATA_TIMER];
Code:
stock p_Log(f_Log[], const catch[])
{
      new
            File: p_File, p_Path[256]
      ;
	
      getdate(s_Timer[t_Year], s_Timer[t_Month], s_Timer[t_Day]);
      gettime(s_Timer[t_Hour], s_Timer[t_Minute], s_Timer[t_Second]);
	
      format(p_Path, 256, "logs_server/%s.sys", f_Log);
      p_File = fopen(p_Path, io_append);
	
      format(String, 256, "< %02d/%02d/%d | %02d:%02d:%02d > %s\r\n", s_Timer[t_Day], s_Timer[t_Month], s_Timer[t_Year], s_Timer[t_Hour], s_Timer[t_Minute], s_Timer[t_Second], catch);
      fwrite(p_File, String), fclose(p_File);
	
      return true;
}
´ Obs. Estou postando este CÓDIGO ÚTIL aqui pelo seguinte fator: (Não consegui achar um que fosse adequado e organizado para meu Projeto atual). E com este, está sendo minha grande precisão e até agora! Não apresentou nenhum problema.. Atualmente está Gerando os Seguintes 'Log':

- Invasão de Bases,
- Raio de proximidade,
- Spawn e Setagens.
Sempre usei o 'losgs' e nunca tive problema.
ipsLuan is offline   Reply With Quote
Old 18/11/2019, 07:34 PM   #3448
Unsettled
Little Clucker
 
Unsettled's Avatar
 
Join Date: Nov 2019
Location: South American
Posts: 8
Reputation: 1
Default Re: Códigos Úteis #1

Quote:
Originally Posted by ipsLuan View Post
Par ou ímpar?

PHP Code:
//Par ou ímpar?

#include a_samp

main () {}

new 
numberChosen 120;

stock evenOrOdd(number) {
    
number number 2;
    if(
number == 0)
        print(
"Par");
    else
        print(
"Ímpar");
    return 
1;
}

public 
OnGameModeInit() {
    
evenOrOdd(numberChosen);
    return 
1;

Listando todos os números pares e ímpares de uma quantidade escolhida
PHP Code:
//Listando números pares e ímpares até uma quantidade.

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number == 0printf("%d é par."contNumber);
        else 
printf("%d é ímpar."contNumber);
    }
    return 
1;

Listando apenas números pares
PHP Code:
//Listando números pares

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number == 0printf("%d é par."contNumber);
    }
    return 
1;

Listando apenas números ímpares
PHP Code:
//Listando números ímpares

#include a_samp

main () {}

new 
numberChosen 10;

public 
OnGameModeInit() {
    new 
contNumber 0number;
    while(
contNumber numberChosen) {
        
contNumber++;
        
number contNumber 2;
        if(
number != 0printf("%d é ímpar."contNumber);
    }
    return 
1;

´ Interessante e desnecessário..
__________________
Quote:
` Owner. Evolution Z (SA-MP 0.3.DL) "Mode. DayZ-RUST"

Vaga para Auxiliar de Desenvolvimento..
Web Developer(Bruno Cruz)

Warning. (SA-MP 0.3.DL is a seperate version of SA-MP featuring server-side custom models. Right now, custom objects and custom player skins are supported, with more types planned for the future.)
Unsettled is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Menus Úteis [SKIN|CARROS|ARMAS] SlashPT Lançamentos/Releases 25 02/05/2014 04:56 PM
[Include] [INC]Várias e Uteis Funções andmeida10 Lançamentos/Releases 28 14/12/2012 02:49 PM
[PEDIDO] Codigos Hashtag Português/Portuguese 7 16/11/2011 11:09 PM


All times are GMT. The time now is 11:56 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.