[AJUDA]Bugs..
#1

1є- Ola galera o pharrel criou um comando para mim de veiculos ex: /v [id] [cor1] [cor2] ate ai funciona perfeitamente cria o carro com a cor certinha mais as vezes quando crio um carro ai o outro player cria tbm o meu some eo dele aparece oque poderia ser isso ?

2є- Esse bug e com o anti-cheat ele kicka o xiter depois ele comeзa kickar varios players que entra no servidor..


1є:

pawn Код:
//topo
new VeiculoCriado       [MAX_PLAYERS];

if(strcmp(cmd, "/v", true) == 0)
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new id = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(id < 400 || id > 611 || id == 425 || id == 520 || id == 432) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}ID invalido ou estб bloqueado os ids sгo de 400 atй 611.");
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor2 = strval(tmp);
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
    VeiculoCriado[playerid] = CreateVehicle(id, Pos[0], Pos[1], Pos[2], 0.0, cor1, cor2, -1);
    PutPlayerInVehicle(playerid, VeiculoCriado[playerid], 0);
    new string[100];
    format(string, sizeof(string), "{EE3B3B}[INFO]: {FFFFFF}Veiculo ''{EE3B3B} %d {FFFFFF}'' criado com sucesso.", id);
    SendClientMessage(playerid, 0xFF0000AA,string);
    return 1;
}


public OnPlayerStateChange(playerid,newstate,oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER) {
        if(VeiculoCriado[playerid] != 0)
            DestroyVehicle(VeiculoCriado[playerid]);
    }
    return 1;
}


2є:

pawn Код:
stock AntiCheatUpdate(playerid)
{
    new slot = GetMaxPlayers();
    while(slot--) {
        if(IsPlayerConnected(slot) && !IsPlayerAdmin(slot) && !GetPVarInt(playerid, "BlockCheat")) {
            new pName[MAX_PLAYER_NAME];
            new ArmaNome[35];
            new string[128];
            GetPlayerName(slot, pName, sizeof(pName));
            switch(GetPlayerWeapon(slot)) {
                case 17: ArmaNome = #Granada de Gбs;
                case 18: ArmaNome = #Molotov Cocktail;
                case 35: ArmaNome = #Lanзador de Mнsseis;
                case 36: ArmaNome = #Lanзador de Mнsseis Automбtico;
                case 37: ArmaNome = #Lanзador de Chamas;
                case 38: ArmaNome = #Minigun;
                case 39: ArmaNome = #Carga Explosiva;
                case 40: ArmaNome = #Detonador;
                case 44: ArmaNome = #Visгo Noturna;
                case 45: ArmaNome = #Visгo Tйrmica;
                default: goto stop;
            }
            format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(%s)",pName,ArmaNome);
            SendClientMessageToAll(0xFF0000AA,string);
            Kick(slot);
            stop:
        }
    }
    return true;
}

forward OnPlayerUpdateCheat(playerid);
public OnPlayerUpdateCheat(playerid)
{
    AntiCheatUpdate(playerid);
    return 1;
}

//onplayerconnect
UpdateCheat[playerid] = SetTimerEx("OnPlayerUpdateCheat",1000,1,"i",playerid);
SetPVarInt(playerid, "BlockCheat", true);
//onplayerspawn
SetPVarInt(playerid, "BlockCheat", false);
Reply
#2

nao vejo erro algum..
Reply
#3

Fiz um rapidinho para vocк.. basta adaptar oque vocк precisa nele..
pawn Код:
if(strcmp(cmd, "/v", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)){ SendClientMessage(playerid, -1, "USE: /v [ID DO VEICULO] [COR 1] [COR 2]");return 1;}
            new veiculo;
            veiculo = strval(tmp);
            if(veiculo < 400 || veiculo > 611 || veiculo == 425 || veiculo == 520 || veiculo == 432) { SendClientMessage(playerid, -1, "O ID do veнculo nгo pode ser inferior a 400 nem superior a 611!"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)){ SendClientMessage(playerid, COLOR_GRAD2, "USE: /v [ID DO VEICULO] [COR 1] [COR 2]"); return 1; }
            new COR1;
            COR1 = strval(tmp);
            if(COR1 < 0 || COR1 > 255) { SendClientMessage(playerid, -1, "O nъmero da Cor 1 nгo pode ser menor a 1 nem maior a 255!"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) {SendClientMessage(playerid, -1, "USE: /v [ID DO VEICULO] [COR 1] [COR 2]"); return 1; }
            new COR2;
            COR2 = strval(tmp);
            if(COR2 < 0 || COR2 > 255) { SendClientMessage(playerid, -1, "O nъmero da Cor 2 nгo pode ser menor a 1 nem maior a 255!"); return 1; }
            new Float:X,Float:Y,Float:Z;
            GetPlayerPos(playerid, X,Y,Z);
            new carro = AddStaticVehicle(carro, X,Y,Z, 0.0, COR1, COR2);
            format(string, sizeof(string), "Carro %d criado com sucesso.", carro);
        }
        return 1;
    }
Reply
#4

Pronto Manolo.

pawn Код:
new VeiculoCriado[MAX_PLAYERS];

public OnPlayerDisconnect(playerid, reason)
{
    DeletarCarro(playerid);
    return 1;
}

if(strcmp(cmd, "/v", true) == 0)
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new id = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(id < 400 || id > 611 || id == 425 || id == 520 || id == 432) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}ID invalido ou estб bloqueado os ids sгo de 400 atй 611.");
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor2 = strval(tmp);
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
    VeiculoCriado[playerid] = CreateVehicle(id, Pos[0], Pos[1], Pos[2], 0.0, cor1, cor2, -1);
    PutPlayerInVehicle(playerid, VeiculoCriado[playerid], 0);
    new string[100];
    format(string, sizeof(string), "{EE3B3B}[INFO]: {FFFFFF}Veiculo ''{EE3B3B} %d {FFFFFF}'' criado com sucesso.", id);
    SendClientMessage(playerid, 0xFF0000AA,string);
    return 1;
}

stock DeletarCarro(playerid)
{
    if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
    return true;
}

//          AntiArmas
public OnPlayerUpdate(playerid)
{
    new string[128];
    if(GetPlayerWeapon(playerid) == 17) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Granada de Gбs)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 18) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Molotov Cocktail)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 35) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Lanзador de Mнsseis)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 36) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Lanзador de Mнsseis Automбtico)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 37) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Lanзador de Chamas)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 38) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Minigun)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 39) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Carga Explosiva)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 40) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Detonador)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 44) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Visгo Noturna)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    if(GetPlayerWeapon(playerid) == 45) return format(string,128,"{F9FAF5}[Anti-Cheat]: {F7AF05}%s foi kickado por usar arma proibida! {F9FAF5}(Visгo Tйrmica)", pName), SendClientMessageToAll(0xFF0000AA,string), Kick(playerid);
    return true;
}
Reply
#5

OnPlayerUpdate nao ira lagar o servidor ?
Reply
#6

nem.
Reply
#7

Funcinou agora outro bug. O bug e o seguinte eu crio um veiculo com o comando /v ate ai tudo certo cria o veiculo sertin mais quando qualquer player comete DB o meu veiculo evapora..

pawn Код:
new playerState = GetPlayerState(killerid);
if (playerState == PLAYER_STATE_PASSENGER || playerState == PLAYER_STATE_DRIVER) {
       //Funзoes aqui!
}

pawn Код:
new VeiculoCriado[MAX_PLAYERS];

public OnPlayerDisconnect(playerid, reason)
{
    DeletarCarro(playerid);
    return 1;
}

if(strcmp(cmd, "/v", true) == 0)
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new id = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(id < 400 || id > 611 || id == 425 || id == 520 || id == 432) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}ID invalido ou estб bloqueado os ids sгo de 400 atй 611.");
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{EE3B3B}[INFO]: {FFFFFF}/V [ID] [cor1] [cor2]");
    new cor2 = strval(tmp);
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
    VeiculoCriado[playerid] = CreateVehicle(id, Pos[0], Pos[1], Pos[2], 0.0, cor1, cor2, -1);
    PutPlayerInVehicle(playerid, VeiculoCriado[playerid], 0);
    new string[100];
    format(string, sizeof(string), "{EE3B3B}[INFO]: {FFFFFF}Veiculo ''{EE3B3B} %d {FFFFFF}'' criado com sucesso.", id);
    SendClientMessage(playerid, 0xFF0000AA,string);
    return 1;
}

stock DeletarCarro(playerid)
{
    if(VeiculoCriado[playerid] != 0) DestroyVehicle(VeiculoCriado[playerid]);
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)