[Include] BlockWeaponsInInterior
#1

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_.
Reply
#2

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

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

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...
Reply
#5

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.
Reply
#6

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.
Reply
#7

Nгo testei vo testar pra ve como fica...
Reply
#8

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
Reply
#9

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.
Reply
#10

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)