Atribuiзгo de Causa de Morte no Chat Kill -
RedTub3 - 28.07.2016
Ola! Vim pedir ajuda aqui denovo, pois comecei configurar o chat kill do meu GM, de onde ate agora defini o que consegui no cуdigo abaixo (precisando de alguma ajuda numa certa parte), tentei definir tambйm os simbolos de suicнdio e queda do playerid no OnPlayerDeath obtendo bugs nas condiзхes dos dois, ambas as condiзхes eram verdadeiras o que permitia que ambos os sнmbolos aparecessem por exemplo: "Se um player dentro de um veiculo fosse contra um objeto que explodisse" ou ao utilizar o comando /matar.
Tambйm tive duvidas quando ao public que haveria de usar se era OnPlayerDeath ou o OnPlayerChangeState, conseguindo em alguns casos nos dois public mas com os mesmos bugs.
Код:
public OnPlayerDeath (playerid, killerid, reason)
{
//new notveh = 0;
switch (GetPlayerWeapon(playerid)) // Se o player morrer ao usar as seguintes armas - Granada, Bazuca, RPG, Detonator
{
case 16:
SendDeathMessage(INVALID_PLAYER_ID,playerid,255);
case 40:
SendDeathMessage(INVALID_PLAYER_ID,playerid,255);
case 35:
SendDeathMessage(INVALID_PLAYER_ID,playerid,255);
case 36:
SendDeathMessage(INVALID_PLAYER_ID,playerid,255);
// O player morre ao se explodir
}
for (new caso = 0; caso <42; caso++) // Passa pelas 42 armas
{
if (caso == GetPlayerWeapon(killerid)) // Se a variavel caso for igual ao ID da arma
{
SendDeathMessage(killerid,playerid,caso); // Mostra no chat kill - Exemplo: Killerid (Icon da Arma/Matou) Playerid
}
}
new seat = GetPlayerVehicleSeat(killerid);
//if (!IsPlayerInVehicle(killerid,heli[notveh]))
//{
if ((IsPlayerInAnyVehicle(killerid)) && (seat == 0)) // Se o player que mata estiver dentro de algum veiculo como condutor
{
SendDeathMessage(killerid,playerid,49); // Mostra no chat kill - Exemplo Killerid (Icon do Veiculo/Matou) Playerid
}
//}
// No If acima comentado tentei criar uma array onde guardava os ids dos Heli, para criar uma exceзгo em relaзгo ao veiculos
// A morte por Heli tem simbolo diferente no Chat Kill
// A array no segundo parametro do IsPlayerInVehicle > heli[notveh] dava erro
}
Re: Atribuiзгo de Causa de Morte no Chat Kill -
Bruno13 - 28.07.2016
Nгo entendi porque toda essa aplicaзгo para encontrar o reasonID sendo que a prуpria callback jб disponibiliza, e vc pode encontrar os IDs aqui:
https://sampwiki.blast.hk/wiki/Weapons
Quote:
Originally Posted by RedTub3
PHP код:
for (new caso = 0; caso <42; caso++) // Passa pelas 42 armas
{
if (caso == GetPlayerWeapon(killerid)) // Se a variavel caso for igual ao ID da arma
{
SendDeathMessage(killerid,playerid,caso); // Mostra no chat kill - Exemplo: Killerid (Icon da Arma/Matou) Playerid
}
}
|
Para encontrar a arma do killerid bastava usar GetPlayerWeapon(killerid); esse loop nгo й necessбrio.
Re: Atribuiзгo de Causa de Morte no Chat Kill -
RedTub3 - 28.07.2016
Quote:
Originally Posted by Bruno13
Nгo entendi porque toda essa aplicaзгo para encontrar o reasonID sendo que a prуpria callback jб disponibiliza, e vc pode encontrar os IDs aqui: https://sampwiki.blast.hk/wiki/Weapons
Para encontrar a arma do killerid bastava usar GetPlayerWeapon(killerid);
|
Nгo estou a perceber, a callback jб disponibiliza, mas й preciso associar a reason ao acontecimento, e foi isso que tentei fazer e nгo consegui, pode explicar melhor?
Re: Atribuiзгo de Causa de Morte no Chat Kill -
Bruno13 - 28.07.2016
Quote:
Originally Posted by RedTub3
Nгo estou a perceber, a callback jб disponibiliza, mas й preciso associar a reason ao acontecimento, e foi isso que tentei fazer e nгo consegui, pode explicar melhor?
|
Se vocк olhar na wiki, ela descreve o parвmetro 'reason' como o ID da causa da morte do player, entгo a causa jб й passada por esse parвmetro.
https://sampwiki.blast.hk/wiki/OnPlayerDeath
O que vc precisa para o chatkill й apenas utilizar esses valores:
PHP код:
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
return 1;
}
Re: Atribuiзгo de Causa de Morte no Chat Kill -
RedTub3 - 28.07.2016
Quote:
Originally Posted by Bruno13
Se vocк olhar na wiki, ela descreve o parвmetro 'reason' como o ID da causa da morte do player, entгo a causa jб й passada por esse parвmetro. https://sampwiki.blast.hk/wiki/OnPlayerDeath
O que vc precisa para o chatkill й apenas utilizar esses valores:
PHP код:
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
return 1;
}
|
'-' Tornei tudo difнcil sendo que й das coisas mais simples. Obrigado de qualquer maneira!