public OnPlayerUpdate(playerid) {
new
iVehicle = GetPlayerVehicleID(playerid)
;
if(GetPlayerVehicleSeat(playerid) != 0) {
if(GetPVarInt(playerid, #lastvehicle) != iVehicle) {
SetPVarInt(playerid, #lastvehicle, iVehicle);
if(GetVehicleModel(iVehicle)) {
@ChangeVehicles(playerid, PLAYER_STATE_DRIVER, iVehicle);
}
}
}
return true;
}
forward @ChangeVehicles(playerid, newstate, vehicleid);
public @ChangeVehicles(playerid, newstate, vehicleid) {
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER && GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
if((gettime() - GetPVarInt(playerid, #gettick)) < 2) {
//Reason!
Kick(playerid);
}
SetPVarInt(playerid, #gettick, gettime());
}
return true;
}
ShowPlayerDialog(playerid,9999,DIALOG_STYLE_MSGBOX,"{FF1493}Creditos do Servidor","{7FFF00}Brasil {FFD700}RPG\n {00BFFF}Criado apartir do 0 por: Gustavo_Guerino!.\n {00BFFF}Sistemas de Seguranзa: RoacH`!.","Sair","Sair");
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_ONFOOT)
{
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
iCount[playerid] ++;
SetPVarInt(playerid, "EnterVehicle", gettime());
// Okay. Jogador saiu do veiculo e foi setado EnterVehicle para 5 segundos
}
}
return true;
}
public OnPlayerUpdate(playerid)
{
// OnPlayerUpdate й chamado de 10 a 100 ms. Isto й. SEMPRE o tempo passado deste que o jogador saiu vai ficar em torno disto. Pela lуgica. Banindo sempre o jogador. rsrsrs
if((gettime() - GetPVarInt(playerid, "EnterVehicle") < 5 && iCount[playerid] > 0))
{
// - Basta editar a seu gosto! lembre-se de reseta a var "iCount" antes de kickar, banir ou algo do genero!
return iCount[playerid] = 0, BanEx(playerid, "CLEO 4");
}
return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && oldstate != PLAYER_STATE_SPECTATING) {
if((gettime() - GetPVarInt(playerid, "EnterVehicle") < 3) {
BanEx(playerid, "CLEO 4");
}
SetPVarInt(playerid, "EnterVehicle", gettime());
}
return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && oldstate != PLAYER_STATE_SPECTATING) {
if((gettime() - GetPVarInt(playerid, "EnterVehicle")) < 2) {
// antes de banir. Cheque se nгo usaste PutPlayerInVehicle em seu servidor.
BanEx(playerid, "CLEO 4");
}
SetPVarInt(playerid, "EnterVehicle", gettime());
}
return true;
}
Testa cheguei a testa.. apenas com script, nгo cheguei a entrar e sair em veiculos.. atualizei o topico e fiz o mais 'preciso' possivel, agora foi testado de diversas maneiras e nгo ocorreu nenhum tipo de bug!
|
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && oldstate != PLAYER_STATE_SPECTATING) {
if((gettime() - GetPVarInt(playerid, "EnterVehicle")) < 2) {
// antes de banir. Cheque se o jogador nгo usou algo com PutPlayerInVehicle em seu servidor (tipo flood de /criarcarros).
SendClientMessage(playerid, -1, "[Info] Banido por usar spawnerr mass");
BanEx(playerid, "CLEO 4");
}
SetPVarInt(playerid, "registerOnState", 1);
SetPVarInt(playerid, "EnterVehicle", gettime());
}
return true;
}
public OnPlayerUpdate(playerid) {
static
varVeh
;
if((varVeh = GetPlayerVehicleID(playerid))) {
if(varVeh != GetPVarInt(playerid, "prevVeh")) {
if(!GetPVarInt(playerid, #registerOnState)) {
OnPlayerStateChange(playerid, PLAYER_STATE_DRIVER, INVALID_PLAYER_ID);
}
SetPVarInt(playerid, #registerOnState, 0);
SetPVarInt(playerid,"prevVeh", varVeh);
}
}
return true;
}
Atualizado novamente! agora estб bem preciso, player й banido em millesseconds.. atй mais rapido do que o do Drakins -q
|
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && oldstate != PLAYER_STATE_SPECTATING) {
if((gettime() - GetPVarInt(playerid, "EnterVehicle")) < 2) {
// antes de banir. Cheque se o jogador nгo usou algo com PutPlayerInVehicle em seu servidor (tipo flood de /criarcarros).
SendClientMessage(playerid, -1, "[Info] Banido por usar spawnerr mass");
BanEx(playerid, "CLEO 4");
}
SetPVarInt(playerid, "registerOnState", 1);
SetPVarInt(playerid, "EnterVehicle", gettime());
}
return true;
}
public OnPlayerUpdate(playerid) {
static
varVeh
;
if((varVeh = GetPlayerVehicleID(playerid))) {
if(varVeh != GetPVarInt(playerid, "prevVeh")) {
if(!GetPVarInt(playerid, #registerOnState)) {
OnPlayerStateChange(playerid, PLAYER_STATE_DRIVER, INVALID_PLAYER_ID);
}
SetPVarInt(playerid, #registerOnState, 0);
SetPVarInt(playerid,"prevVeh", varVeh);
}
}
return true;
}