SendDeathMessage(playerid, killerid, reason);
new string[128];
SendDeathMessage(playerid, killerid, reason);
new killername[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, killername, sizeof(killername)); GetPlayerName(playerid, playername, sizeof(playername));
if(killerid != INVALID_PLAYER_ID)
{
new playerstate = GetPlayerState(killerid);
if(playerstate == PLAYER_STATE_DRIVER)
{
GivePlayerMoney(killerid, -5000);
SetPlayerScore(killerid, GetPlayerScore(killerid) -5);
SendClientMessage(killerid, 0xFF0000AA, "| ANTI - DB | Vocк foi punido em 5 scores e R$: 5000,00 por matar os jogadores atropelando-os");
format(string, sizeof(string), "| ANTI - DB | %s foi punido em 5 scores e R$: 5000,00 por matar %s utilizando veнculo (Driver by)", killername, playername);
SendClientMessageToAll(0xFF0000AA, string);
}
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) { if(GetPlayerState(issuerid) == PLAYER_STATE_DRIVER){ if(weaponid == WEAPON_VEHICLE) { static dbname[MAX_PLAYER_NAME], vname[MAX_PLAYER_NAME]; static Float:X, Float:Y, Float:Z, Float:Health, Float:Armour; static str[128]; GetPlayerName(issuerid, dbname, MAX_PLAYER_NAME); GetPlayerName(playerid, vname, MAX_PLAYER_NAME); GetPlayerPos(issuerid, X, Y, Z); GetPlayerPos(playerid, X, Y, Z); SetPlayerPos(playerid, X, Y, Z+4); //Tira o player debaixo do carro SetPlayerPos(issuerid, X, Y, Z+5); //Ejeta o motorista GetPlayerHealth(issuerid, Health); GetPlayerArmour(issuerid, Armour); SetPlayerHealth(issuerid, Health - 30); //Tira -30 de HP do motorista SetPlayerArmour(issuerid, Armour - 30); //Tira -30 de Colete do motorista format(str, sizeof(str), "INFO: %s fez DB em %s | Foi ejetado do seu veнculo e perdeu Vida e Colete |", dbname,vname); SendClientMessageToAll(0xFFFF00FF, str); } } return 1; }
Fiz esse bem rбpido aqui use como base acho que й oque procura:
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) { if(GetPlayerState(issuerid) == PLAYER_STATE_DRIVER) { static dbname[MAX_PLAYER_NAME], vname[MAX_PLAYER_NAME]; static Float:X, Float:Y, Float:Z, Float:Health, Float:Armour; static str[128]; GetPlayerName(issuerid, dbname, sizeof(dbname)) GetPlayerName(playerid, vname, sizeof(vname)) GetPlayerPos(playerid, X, Y, Z); SetPlayerPos(playerid, X, Y, Z+4); //Tira o player debaixo do carro GetPlayerPos(issuerid, X, Y, Z); SetPlayerPos(issuerid, X, Y, Z+5); //Ejeta o motorista GetPlayerHealth(issuerid, Health); GetPlayerArmour(issuerid, Armour); SetPlayerHealth(issuerid, Health - 30); //Tira -30 de HP do motorista SetPlayerArmour(issuerid, Armour - 30); //Tira -30 de Colete do motorista format(str, sizeof(str), "INFO: %s fez DB em %s | Foi ejetado do seu veнculo e perdeu Vida e Colete |", dbname,vname); SendClientMessageToAll(0xFFFF00FF, str); } return 1; } |
So nгo pode atirar de dentro de um veiculo porque se nгo ele acusa drive-by
|
if(GetPlayerState(issuerid) == PLAYER_STATE_DRIVER) { if(weaponid == WEAPON_VEHICLE) { static dbname[MAX_PLAYER_NAME], vname[MAX_PLAYER_NAME]; static Float:X, Float:Y, Float:Z, Float:Health, Float:Armour; static str[128]; GetPlayerName(issuerid, dbname, MAX_PLAYER_NAME); GetPlayerName(playerid, vname, MAX_PLAYER_NAME); GetPlayerPos(issuerid, X, Y, Z); GetPlayerPos(playerid, X, Y, Z); SetPlayerPos(playerid, X, Y, Z+4); //Tira o player debaixo do carro SetPlayerPos(issuerid, X, Y, Z+5); //Ejeta o motorista GetPlayerHealth(issuerid, Health); GetPlayerArmour(issuerid, Armour); SetPlayerHealth(issuerid, Health - 30); //Tira -30 de HP do motorista SetPlayerArmour(issuerid, Armour - 30); //Tira -30 de Colete do motorista format(str, sizeof(str), "INFO: %s fez DB em %s | Foi ejetado do seu veнculo e perdeu Vida e Colete |", dbname,vname); SendClientMessageToAll(0xFFFF00FF, str); } }