[Ajuda] Atribuiзгo de Causa de Morte no Chat Kill
#1

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


}
Reply
#2

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 0caso <42caso++) // 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.
Reply
#3

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?
Reply
#4

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(playeridkilleridreason)
{
    
SendDeathMessage(killeridplayeridreason);
    return 
1;

Reply
#5

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(playeridkilleridreason)
{
    
SendDeathMessage(killeridplayeridreason);
    return 
1;

'-' Tornei tudo difнcil sendo que й das coisas mais simples. Obrigado de qualquer maneira!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)