SA-MP Forums Archive
[Include] BlockWeaponsInInterior - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] BlockWeaponsInInterior (/showthread.php?tid=372267)



BlockWeaponsInInterior - FeelLikeASir_ - 25.08.2012

Diferente de AllowInteriorWeapons, BlockWeaponsInInterior bloqueia armas no interior que desejar.

Exemplo:
pawn Код:
main() {
    BlockWeaponsInInterior(true, 2, 3, 5);
}
*Le cуdigo*
pawn Код:
#define MAX_INTS 18

new Interiors[MAX_INTS char];

BlockWeaponsInInterior(bool:block, ...) {
    for(new i = numargs(); i > 1; --i) {
        Interiors{getarg(i)} = _:block;
    }
}

public OnPlayerUpdate(playerid) {
    if(Interiors{GetPlayerInterior(playerid)}) {
        SetPlayerArmedWeapon(playerid, 0);
    }
    return CallLocalFunction("OnPlayerUpdateEx", "i", playerid);
}

#if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
#else
    #define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate OnPlayerUpdateEx
OnPlayerUpdateEx(playerid);
Fiz em 1min, nem testei direito, qualquer bug, avisar.

FellLikeASir_.


Respuesta: BlockWeaponsInInterior - Luciano* - 25.08.2012

Eu nгo testei, mais se realmente funcionar й уtimo!


Re: BlockWeaponsInInterior - Tony_Rodrigues - 25.08.2012

Nгo gostei e eu achei (na minha opiniгo nгo sei a dos outros) um codigo ъtil


Re: BlockWeaponsInInterior - leonardo1434 - 25.08.2012

Quote:
Originally Posted by Tony_Rodrigues
Посмотреть сообщение
Nгo gostei e eu achei (na minha opiniгo nгo sei a dos outros) um codigo ъtil
+1...


Re: BlockWeaponsInInterior - jpeg - 25.08.2012

acho que nao era necessaria uso disso pra bloquear armas, bastava usar resetplayerweapons entгo, sendo q nem salva as armas q ele tava antes.


Re: Respuesta: BlockWeaponsInInterior - FeelLikeASir_ - 25.08.2012

Quote:
Originally Posted by Luciano*
Посмотреть сообщение
Eu nгo testei, mais se realmente funcionar й уtimo!
Sim, funciona.
pawn Код:
main() {
    BlockWeaponsInInterior(true, 0, 1, 2, 3, 4, 5);
    for(new i; i < MAX_INTS; i++) {
        if(Interiors{i}) {
            printf("Interior %i nгo permite armas!", i);
        }
    }
}
Quote:
Originally Posted by jpeg
Посмотреть сообщение
acho que nao era necessaria uso disso pra bloquear armas, bastava usar resetplayerweapons entгo, sendo q nem salva as armas q ele tava antes.
Nгo, usar esse mйtodo alйm de ocupar mais linhas tem vбrias maneiras de burlar, usando hack por exemplo. O meu mйtodo ele seta o punho constantemente, impedindo (ou quase) ele de atirar.

Obrigado aos demais.


Re: BlockWeaponsInInterior - Juninho_Oakley - 26.08.2012

Nгo testei vo testar pra ve como fica...


Respuesta: BlockWeaponsInInterior - ipsBruno - 26.08.2012

Ficou bem bom, sу melhore a condiзгo do loop

pawn Код:
BlockWeaponsInInterior(bool:block, ...) {
    for(new i = numargs(); i > 1; --i) {
        Interiors{getarg(i)} = _: block; // pois _: block estб bool e Interiors nгo.
    }
}
Tambйm й CallLocalFunction e nгo CallRemoteFunction


Re: Respuesta: BlockWeaponsInInterior - FeelLikeASir_ - 26.08.2012

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Ficou bem bom, sу melhore a condiзгo do loop

pawn Код:
BlockWeaponsInInterior(bool:block, ...) {
    for(new i = numargs(); i > 1; --i) {
        Interiors{getarg(i)} = _: block; // pois _: block estб bool e Interiors nгo.
    }
}
Tambйm й CallLocalFunction e nгo CallRemoteFunction
O sim, bem observado.


Re: BlockWeaponsInInterior - paulor - 26.08.2012

Ta errado esse loop nгo й ?

pawn Код:
BlockWeaponsInInterior(bool:block, ...) {
    for(new i = numargs(); i > 1; --i) {
        Interiors{getarg(i)} = _:block;
    }
}
Pois numargs() irб retornar 4 argumentos, mais como a contagem comeзa no 0 irб atй o 3 entгo pegando um argumento inexistente alйm de que i > 1 nгo pegarб o argumento 1.

pawn Код:
BlockWeaponsInInterior(bool:block, ...) {
    for(new i = (numargs() - 1); i > 0; --i) {
        Interiors{getarg(i)} = _:block;
    }
}
Fora isso ta muito simples para ser uma Include.