SA-MP Forums Archive
[Pedido] Remover arma num tiro - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Remover arma num tiro (/showthread.php?tid=593707)



Remover arma num tiro - pdonald - 08.11.2015

Se o cara atirar com uma RPG jб remover a RPG, porque queria vender RPG na loja de armas, mas pra evitar cheats de balas ou coisas do tipo
cada vez q desse um tiro tira-se a arma, alguйm pode fazer isso pra mim?


Respuesta: Remover arma num tiro - DjonathaTM - 08.11.2015

Se nгo me engano

https://sampwiki.blast.hk/wiki/ResetPlayerWeapons


Re: Respuesta: Remover arma num tiro - luccagomes15 - 08.11.2015

Quote:
Originally Posted by DjonathaTM
View Post
Nesse caso removeria todas as armas, nгo a bazuca em especifico


Respuesta: Remover arma num tiro - DjonathaTM - 08.11.2015

Psй..
Usa
GivePlayerWeapon(playerid, IDDABAZUCA, 00)
IDDABAZUCA = Vocк poem obviamente o id da bazuca
00 = Balas
Assim ele ganharб a arma mas sem balas e dai vai perder a arma


Re: Remover arma num tiro - Bruno13 - 08.11.2015

Criei essa funзгo a um tempo atrбs...veja se й ъtil para vocк!

pawn Code:
RemovePlayerWeapon(playerid, weaponid)
{
    static weaponData[13][2], i;

    for(i = 0; i < 13; i++)
    {
        GetPlayerWeaponData(playerid, i, weaponData[i][0], weaponData[i][1]);
    }

    ResetPlayerWeapons(playerid);

    for(i = 0; i < 13; i++)
    {
        if(weaponData[i][0] != 0 && weaponData[i][0] != weaponid)
        {
            GivePlayerWeapon(playerid, weaponData[i][0], weaponData[i][1]);
        }
    }
}



Re: Remover arma num tiro - CZ - 08.11.2015

PHP Code:
SetPlayerArmedWeapon(playeridID DA ARMA); 



Re: Remover arma num tiro - Bruno13 - 08.11.2015

Quote:
Originally Posted by CZ
View Post
PHP Code:
SetPlayerArmedWeapon(playeridID DA ARMA); 
Acho que o intuito dele nгo й guardar a arma, mas remover. Guardar a mesma sу camuflaria um problema grave.


Re: Remover arma num tiro - F1N4L - 09.11.2015

Simples o que ele quer:
Por padrгo quando a arma fica sem muniзгo ela some, se vc atirar a ъnica bala da sua arma, ela automaticamente some!
Quote:

GivePlayerWeapon(playerid, 35, 1)




Re: Remover arma num tiro - pdonald - 10.11.2015

Quote:
Originally Posted by Bruno13
View Post
Criei essa funзгo a um tempo atrбs...veja se й ъtil para vocк!

pawn Code:
RemovePlayerWeapon(playerid, weaponid)
{
    static weaponData[13][2], i;

    for(i = 0; i < 13; i++)
    {
        GetPlayerWeaponData(playerid, i, weaponData[i][0], weaponData[i][1]);
    }

    ResetPlayerWeapons(playerid);

    for(i = 0; i < 13; i++)
    {
        if(weaponData[i][0] != 0 && weaponData[i][0] != weaponid)
        {
            GivePlayerWeapon(playerid, weaponData[i][0], weaponData[i][1]);
        }
    }
}
Por que nгo estб funcionando, olhando a funзгo nгo consigo achar o porque, era pra estar LOL

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
Code:
	if(GetPlayerWeapon(playerid) == 16) {
		RemovePlayerWeapon(playerid, 16);
	}
	else if(GetPlayerWeapon(playerid) == 18) {
		RemovePlayerWeapon(playerid, 18);
	}
	else if(GetPlayerWeapon(playerid) == 35) {
		RemovePlayerWeapon(playerid, 35);
	}
	else if(GetPlayerWeapon(playerid) == 36) {
		RemovePlayerWeapon(playerid, 36);
	}



Re: Remover arma num tiro - Bruno13 - 10.11.2015

Quote:
Originally Posted by F1N4L
View Post
Simples o que ele quer:
Por padrгo quando a arma fica sem muniзгo ela some, se vc atirar a ъnica bala da sua arma, ela automaticamente some!
Meu deus. Acabei de postar uma funзгo que simplesmente remove a arma...vamos as conclusхes do que й mais correto:

1. Identificar que atirou com uma RPG.

2. Remover a arma pela funзгo acima postada. Logo, no exato momento que ele disparar, a arma sumirб e o disparo nгo serб vбlido.

ou

2. Dar mais uma muniзгo da mesma arma, e assim, entrara num loop, em que toda a vez que o player atirar ele ganharб mais uma bala, ou seja, a arma continuarб com ele, alйm de estar contribuindo com uma falha muito grande ainda estбs exercendo uma lуgica inexistente.
Ex: Supomos que o player obteve uma muniзгo de RPG pelo seu mйtodo proibido. Ao ele disparar com a arma, ele gastara sua unica muniзгo, e este seu mйtodo darб mais uma muniзгo.

Quote:
Originally Posted by pdonald
View Post
Por que nгo estб funcionando, olhando a funзгo nгo consigo achar o porque, era pra estar LOL

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
Code:
	if(GetPlayerWeapon(playerid) == 16) {
		RemovePlayerWeapon(playerid, 16);
	}
	else if(GetPlayerWeapon(playerid) == 18) {
		RemovePlayerWeapon(playerid, 18);
	}
	else if(GetPlayerWeapon(playerid) == 35) {
		RemovePlayerWeapon(playerid, 35);
	}
	else if(GetPlayerWeapon(playerid) == 36) {
		RemovePlayerWeapon(playerid, 36);
	}
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case 16, 18, 35, 36: RemovePlayerWeapon(playerid, weaponid);
}

return 0;//Importante para nгo validar o tiro.
}


Re: Remover arma num tiro - Bruno13 - 10.11.2015

Quote:
Originally Posted by F1N4L
View Post
Simples o que ele quer:
Por padrгo quando a arma fica sem muniзгo ela some, se vc atirar a ъnica bala da sua arma, ela automaticamente some!
Meu deus. Acabei de postar uma funзгo que simplesmente remove a arma...vamos as conclusхes do que й mais correto:

Code:
1. Identificar que atirou com uma RPG.

    2. Remover a arma pela funзгo acima postada. Logo, no exato momento que ele disparar, a arma sumirб e o disparo nгo serб vбlido.

    ou

    2. Dar mais uma muniзгo da mesma arma, e assim, entrara num loop, em que toda a vez que o player atirar ele ganharб mais uma bala, ou seja, a arma continuarб com ele, alйm de estar contribuindo com uma falha muito grande, ainda estбs exercendo uma lуgica inexistente.
       Ex: Supomos que o player obteve uma muniзгo de RPG pelo seu mйtodo proibido. Ao ele disparar com a arma, ele gastara sua unica muniзгo, e este seu mйtodo darб mais uma muniзгo.
Quote:
Originally Posted by pdonald
View Post
Por que nгo estб funcionando, olhando a funзгo nгo consigo achar o porque, era pra estar LOL

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
Code:
	if(GetPlayerWeapon(playerid) == 16) {
		RemovePlayerWeapon(playerid, 16);
	}
	else if(GetPlayerWeapon(playerid) == 18) {
		RemovePlayerWeapon(playerid, 18);
	}
	else if(GetPlayerWeapon(playerid) == 35) {
		RemovePlayerWeapon(playerid, 35);
	}
	else if(GetPlayerWeapon(playerid) == 36) {
		RemovePlayerWeapon(playerid, 36);
	}
Nгo й necessбrio obter a arma que o player estб em mгos nesta funзгo. O parвmetro weaponid jб lhe passa o valor da mesma.

Tente assim:
PHP Code:
public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
{
    switch(
weaponid)
    {
        case 
16183536RemovePlayerWeapon(playeridweaponid);
    }
    return 
0;//Importante para nгo validar o tiro.




Re: Remover arma num tiro - Artista - 10.11.2015

Quote:
Originally Posted by pdonald
View Post
Por que nгo estб funcionando, olhando a funзгo nгo consigo achar o porque, era pra estar LOL
O cуdigo do Bruno13 estб correto, o problema й que a callback OnPlayerWeaponShot nгo detecta essas armas. Terб que usar um timer, OnPlayerKeyStateChange, ou atй mesmo a OnPlayerUpdate.


Re: Remover arma num tiro - Bruno13 - 10.11.2015

Quote:
Originally Posted by Artista
View Post
O cуdigo do Bruno13 estб correto, o problema й que a callback OnPlayerWeaponShot nгo detecta essas armas. Terб que usar um timer, OnPlayerKeyStateChange, ou atй mesmo a OnPlayerUpdate.
Verdade...me passei nessa. Acho que usar OnPlayerWeaponChange resolve, como disse Artista.

https://sampforum.blast.hk/showthread.php?tid=59771


Re: Remover arma num tiro - luccagomes15 - 12.11.2015

Valeu galera, eu atй tinha uma funзгo como essa, o problema entгo era onde eu tava usando, em ontakedamage ta funcionando! VLW LEKADA!