[Ajuda]Anti C-Bug
#1

Eae galera, eu to com um FS aqui que serve de anti c-bug, para os players n bugarem mais a eagle e tal, sу q ele detecta o bug, e levanta o player 1m de altura, fazendo com q o player n possa atirar, pq ele vai estar no ar, mas eu quero mudar isso, eu qro por pra q quando o player faзa c-bug ele seje congelado por 5 segundos e apareзa a mensagem no chat dizendo para ele n fazer mais o bug.

[FS]:
Код:
#include <a_samp>

/*
 *
 *   "Anti C-Bug"
 *
 *
*/

stock
        AG_fireTick[MAX_PLAYERS],
        AG_crouchTick[MAX_PLAYERS]
;

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    if((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE)) {
                switch(GetPlayerWeapon(playerid)) {
                    case 22 .. 25, 27, 29 .. 31, 33, 34: { //Weapons ID
                AG_fireTick[playerid] = GetTickCount();
                    }
                }
    }
}

public OnPlayerUpdate(playerid) {
        new
                iVar = GetTickCount()
        ;

    if(((iVar - AG_fireTick[playerid]) < 520 && (AG_crouchTick[playerid] < iVar) && (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK))) {
            switch(GetPlayerCameraMode(playerid)) {
                case 4, 53, 7: {
                new
                                    iKey,
                                        iCheck
                            ;

                GetPlayerKeys(playerid, iKey, iCheck, iCheck);

                if((iKey & KEY_CROUCH)) {
                    AG_crouchTick[playerid] = iVar + 520;
                    CallRemoteFunction("OnPlayerGlitch", "i", playerid);
                }
                        }
                }
    }
}

forward OnPlayerGlitch(playerid);
public OnPlayerGlitch(playerid) {
        new
                Float:fCoords[3]
        ;

        GetPlayerPos(playerid, fCoords[0], fCoords[1], fCoords[2]);
        SetPlayerPos(playerid, fCoords[0], fCoords[1], fCoords[2] + 1.0);
}
й aqui no final que estб a parte em q o player й jogado pro alto e talz, eu qro tirar isso e por sу para ele ser congelado sem poder se mover ou atirar
Reply
#2

Copia isso:

pawn Код:
public OnPlayerGlitch(playerid)
{
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,-1,"Congelado por BUG do C!");
    return 1;
}
@EDIT: Para descongela-lo apos 10 segundos:

pawn Код:
forward Descongelar(playerid);
public Descongelar(playerid);
{
    TogglePlayerControllable(playerid,1);
    return 1;
}
public OnPlayerGlitch(playerid)
{
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,-1,"Congelado por BUG do C!");
    SetTimer("Descongelar",10000,0);
    return 1;
}
@EDIT:

Caso queria trocar para 5 segundos, em vez de SetTimer("Descongelar",10000,0);, coloque SetTimer("Descongelar",5000,0);
Reply
#3

Biel vocк testou o codigo?

Nao tem como enviar parametros no SetTimer, apenas no SetTimerEx
troque o
pawn Код:
SetTimer("Descongelar",10000,0);
por:
pawn Код:
SetTimerEx("Descongelar", 10000, false, "i", playerid);
Reply
#4

Nao precisa porque la no Descongelar Ja Fala que eh o playerid.
Praq especificar ele denovo?
Reply
#5

Quote:
Originally Posted by Biel_Eu
Посмотреть сообщение
Nao precisa porque la no Descongelar Ja Fala que eh o playerid.
Praq especificar ele denovo?
Nгo fale oq vc nгo sabe!
Vc ta usando o timer para executar a funзгo e esta funзгo precisa do ID do player para funcionar entao vc usa o SetTimerEx para especificar os argumentos q a funзгo pede!
Reply
#6

Paulor, em 1o lugar venho lhe agradecer pelo seu post la no /dono e /lider, porque acabei de testar com meu amigo e deu certo.
Agora quanto a isso mano, eu nunca usei SetTimerEx e sempre funfo meus baguio no meu GM.
Reply
#7

Quote:
Originally Posted by Biel_Eu
Посмотреть сообщение
Paulor, em 1o lugar venho lhe agradecer pelo seu post la no /dono e /lider, porque acabei de testar com meu amigo e deu certo.
Agora quanto a isso mano, eu nunca usei SetTimerEx e sempre funfo meus baguio no meu GM.
vocк ja testou em um servidor com 3 pessoas online?

Reply
#8

Quote:
Originally Posted by Biel_Eu
Посмотреть сообщение
Paulor, em 1o lugar venho lhe agradecer pelo seu post la no /dono e /lider, porque acabei de testar com meu amigo e deu certo.
Agora quanto a isso mano, eu nunca usei SetTimerEx e sempre funfo meus baguio no meu GM.
І
Reply
#9

Ta tendo uma briga aqui, nem consegui ler tudo, galera ainda tem aquela parte no script q levanta o cara pra cima, eu nao sei oq devo tirar e oque n devo, alguem ai pf n pode remover aquela parte e por essa do descongelar? vlws
Reply
#10

Quote:
Originally Posted by Biel_Eu
Посмотреть сообщение
Paulor, em 1o lugar venho lhe agradecer pelo seu post la no /dono e /lider, porque acabei de testar com meu amigo e deu certo.
Agora quanto a isso mano, eu nunca usei SetTimerEx e sempre funfo meus baguio no meu GM.
Com o SetTimer, as funзхes que estarгo na public chamada, serб feita para todos players do servidor, exemplo, se vocк cria um SetTimer chamando uma public pra quando um player conectar, e nessa public ter SendClientMessage ou ShowPlayerDialog falando sobre as regras do servidor, essas mensagens, ou esse dialog aparecerб para todos!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)