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,367
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 online now   Reply With Quote
Old 31/10/2019, 05:06 AM   #3444
Whoo
Little Clucker
 
Whoo's Avatar
 
Join Date: Dec 2017
Posts: 12
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
 
Whoo's Avatar
 
Join Date: Dec 2017
Posts: 12
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 08/11/2019, 03:16 AM   #3446
Cycle
Big Clucker
 
Cycle's Avatar
 
Join Date: Sep 2017
Location: \localhost
Posts: 90
Reputation: 91
Default Re: Códigos Úteis #1

Correção da função "GetPlayerVehicleSeat", utilizando o plugin do urShadow, Pawn.RakNet.

Com a correção, é possível retornar o valor do assento de cada jogador corretamente, enquanto anteriormente, retornava valores diferentes do esperado. Valores estes que são incorretos, como por exemplo: 128.

GitHub
__________________
Whoever does the right, doesn't need any justifications.

.Cycle
Cycle 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 02:10 AM.


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