Olá
vou ensinar como colocar um simples sistema de capacete em
seu servidor.

Primeiramente:
No inicio do game mode você ira colocar a
new CapaceteStatus[MAX_PLAYERS]; // Define o status de um player quando ele estiver com uma moto ou não.

Agora vamos Criar o comando que ligara a define e ira fazer com que o player
adquira o capacete.

Em: public OnPlayerCommandText


if (strcmp("/capacete", cmdtext, true) == 0)
{
if(CapaceteStatus[playerid] == 0)
{
SendClientMessage(playerid, 0xE31919AA,"Você colocou o Capacete.");
CapaceteStatus[playerid] = 1;
switch(GetPlayerSkin(playerid))
{
#define NOIX3{%0,%1,%2,%3,%4,%5} SetPlayerAttachedObject(playerid, SLOT, 18977, 2, (%0), (%1), (%2), (%3), (%4), (%5));
case 0, 65, 74, 149, 208, 273: NOIX3{0.070000, 0.000000, 0.000000, 88.000000, 75.000000, 0.000000}
case 1..6, 8, 14, 16, 22, 27, 29, 33, 41..49, 82..84, 86, 87, 119, 289: NOIX3{0.070000, 0.000000, 0.000000, 88.000000, 77.000000, 0.000000}
case 7, 10: NOIX3{0.090000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 9: NOIX3{0.059999, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 11..13: NOIX3{0.070000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 15: NOIX3{0.059999, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
case 17..21: NOIX3{0.059999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 23..26, 28, 30..32, 34..39, 57, 58, 98, 99, 104..118, 120..131: NOIX3{0.079999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 40: NOIX3{0.050000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 50, 100..103, 148, 150..189, 222: NOIX3{0.070000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 51..54: NOIX3{0.100000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 55, 56, 63, 64, 66..73, 75, 76, 78..81, 133..143, 147, 190..207, 209..219, 221, 247..272, 274..288, 290..293: NOIX3{0.070000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 59..62: NOIX3{0.079999, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
case 77: NOIX3{0.059999, 0.019999, 0.000000, 87.000000, 82.000000, 0.000000}
case 85, 88, 89: NOIX3{0.070000, 0.039999, 0.000000, 88.000000, 82.000000, 0.000000}
case 90..97: NOIX3{0.050000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 132: NOIX3{0.000000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 144..146: NOIX3{0.090000, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
case 220: NOIX3{0.029999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 223, 246: NOIX3{0.070000, 0.050000, 0.000000, 88.000000, 82.000000, 0.000000}
case 224..245: NOIX3{0.070000, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
case 294: NOIX3{0.070000, 0.019999, 0.000000, 91.000000, 84.000000, 0.000000}
case 295: NOIX3{0.050000, 0.019998, 0.000000, 86.000000, 82.000000, 0.000000}
case 296..298: NOIX3{0.064999, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 299: NOIX3{0.064998, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
}
}
else if(CapaceteStatus[playerid] == 1)
{
SendClientMessage(playerid,0xE31919AA,"Você retirou o Capacete.");
CapaceteStatus[playerid] = 0;
RemovePlayerAttachedObject(playerid, SLOT);
}
return 1;
}


Agora vamos para public OnPlayerExitVehicle(playerid, vehicleid) definir para quando o player sair do veiculo
o capacete se removido automaticamente:

Em: public OnPlayerExitVehicle(playerid, vehicleid)

if(CapaceteStatus[playerid] == 1)
{
SendClientMessage(playerid,0xE31919AA,"Você retirou o Capacete.");
CapaceteStatus[playerid] = 0;
RemovePlayerAttachedObject(playerid, SLOT);
}

E para avisar o jogador que ele pode usar um capacete e definir os veiculos que ele vai poder usar o capacete
vamos para public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

Em: public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s acaba de Entrar em uma moto ", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); // A distancia que a menssagem que o player subio na moto ira aparecer.
if(GetVehicleModel(vehicleid) == 462 || GetVehicleModel(vehicleid) == 463 || GetVehicleModel(vehicleid) == 471 || GetVehicleModel(vehicleid) == 521 || GetVehicleModel(vehicleid) == 522 || GetVehicleModel(vehicleid) == 523 || GetVehicleModel(vehicleid) == 581 || GetVehicleModel(vehicleid) == 586) // 411 is the infernus model // Veiculos que o player ira se informar do /capacete
{
SendClientMessage(playerid,COLOR_WHITE, "* Para você Não levar {EE0000}Multa{FFFFFF} Use: {EE0000}/capacete{FFFFFF}");
}
return 1;
}