[Pedido] Remover arma num tiro
#1

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

Se nгo me engano

https://sampwiki.blast.hk/wiki/ResetPlayerWeapons
Reply
#3

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

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
Reply
#5

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]);
        }
    }
}
Reply
#6

PHP Code:
SetPlayerArmedWeapon(playeridID DA ARMA); 
Reply
#7

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.
Reply
#8

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)

Reply
#9

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);
	}
Reply
#10

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.
}
Reply
#11

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.

Reply
#12

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.
Reply
#13

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
Reply
#14

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!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)