[FilterScript] gfix (simples)
#1

Hoje pela manhг resolvi criar algo que impedisse que o jogador enquanto de "esc" em uma motocicleta caia sem ao menos ter batido

Nгo й nada muito complexo, й bastante simples.

pawn Код:
/* credits to Dwayne Pheonix */

#include <a_samp>

new
    bool:Paused[MAX_PLAYERS],
    LastVeh[MAX_PLAYERS] = -1,
    timer_[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
    KillTimer(timer_[playerid]);
    timer_[playerid] = SetTimerEx("Check_", 1007, true, "i", playerid);
    return 1;
}

public OnPlayerDisconnect(playerid, reason) {
    KillTimer(timer_[playerid]);
    LastVeh[playerid] = -1;
    return 1;
}

public OnPlayerUpdate(playerid) {
    Paused[playerid] = false;
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if((IsValidModel(vehicleid)) && (ispassenger)) LastVeh[playerid] = vehicleid;
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    LastVeh[playerid] = -1;
    return 1;
}

native IsValidVehicle(vehicleid);
Check_(playerid); public Check_(playerid) {
    if(Paused[playerid] != false) {
        if(IsValidVehicle(LastVeh[playerid]) && IsValidModel(LastVeh[playerid])) PutPlayerInVehicle(playerid, LastVeh[playerid], 1);
        return 1;
    }
    Paused[playerid] = true;
    return 1;
}

IsValidModel(vehicleid) {
    new model_ = GetVehicleModel(vehicleid);
    if( (model_ == 462) || (model_ == 581) || (model_ == 522) || (model_ == 461) || (model_ == 521) ||
    (model_ == 463) || (model_ == 468) || (model_ == 586) || (model_ == 471)) return 1;
    return 0;
}
Pastebin: http://pastebin.com/9Xt7Vyt1

Ou se preferirem baixem o attachment.
Reply
#2

Tenso !
pawn Код:
LastVeh[playerid] = -1;
Reply
#3

Й apenas um valor inalcanзбvel...
Reply
#4

Muito bem pensado. Foi devidamente testado?
Reply
#5

pawn Код:
LastVeh[playerid] = -1;
podia ter sido
pawn Код:
LastVeh[playerid] = INVALID_PLAYER_ID;
Enfim bem pensado.
Reply
#6

Quote:
Originally Posted by Stewie`
Посмотреть сообщение
Muito bem pensado. Foi devidamente testado?
Quote:
Originally Posted by Don_Speed
Посмотреть сообщение


І

....
.
Eu fiz um pequeno teste e ele й funcional

Detectei que o jogador nгo й injetado novamente apenas quando o piloto e o passageiro caem juntos, mas em outras situaзхes й eficiente.

Mas jб estou pensando em uma forma de contornar isso.

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
pawn Код:
LastVeh[playerid] = -1;
podia ter sido
pawn Код:
LastVeh[playerid] = INVALID_PLAYER_ID;
Enfim bem pensado.
A variavel LastVeh й uma variavel para armazenar id de veнculos
Reply
#7

Quote:
Originally Posted by Stewie`
Посмотреть сообщение
Muito bem pensado. Foi devidamente testado?
І

....
.
Reply
#8

bem legal ^^

@edit

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
pawn Код:
LastVeh[playerid] = -1;
podia ter sido
pawn Код:
LastVeh[playerid] = INVALID_PLAYER_ID;
Enfim bem pensado.
Player id

pawn Код:
LastVeh[playerid] = INVALID_VEHICLE_ID;
Reply
#9

Bom desempenho.
Reply
#10

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
bem legal ^^

@edit



Player id

pawn Код:
LastVeh[playerid] = INVALID_VEHICLE_ID;
Quanto a isso й indiferente pois й feita uma checagem para verificar se o id й valido
Quote:
Originally Posted by Dwayne-Phoenix
if(IsValidVehicle(LastVeh[playerid]) && IsValidModel(LastVeh[playerid])) PutPlayerInVehicle(playerid, LastVeh[playerid], 1);
Quote:
Originally Posted by Blackazur
Посмотреть сообщение
Bom desempenho.
Obrigado black
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)