[Duda] Sistema de head y helmet
#1

Buenaas, que tal, estoy haciendo un sistema de head y tambien uno de helmet simples. Basicamente el problema es que
cuando me matan 1 vez y respawneo deja de funcionar el helmet y tambien quiero que los que tengan SkinID 285 y 284 (Que son skins que vienen con casco por defecto) les saque 70 de HP cuando les pegan 1 bala en la cabeza pero les saca 100 de HP siempre.

Aca dejo el codigo
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
 {
new Float:health;
GetPlayerHealth(playerid,health);
if(issuerid != INVALID_PLAYER_ID && weaponid == 24,25,26,27,29,30,31,33,34 && bodypart == 9)
   {
   if(!IsPlayerAttachedObjectSlotUsed(playerid, 3))
   if(GetPlayerSkin(playerid) != 285 && 284)
//|| 24DK || 25Esco || 26Esco2 || 27 EDC || 29 MP5 || 30 AK47 || 31 M4 || 33 Rifle || 34 Sniper
{
SetPlayerHealth(playerid,health-100);
}
   else
{
GetPlayerHealth(playerid,health);
SetPlayerHealth(playerid,health-70);
}
  }
return 1;
Dejo los cmds para ponerse el casco pero no creo que sean el problema:

Код:
CMD:helmet(playerid,params[])
{
if(GetPlayerSkin(playerid) != 285 && 284)
if(!IsPlayerAttachedObjectSlotUsed(playerid, 3))
{
SetPlayerAttachedObject(playerid, 3, 19141, 2,0.10,-0.05,0.0);
SendClientMessage(playerid,-1,"Te pusiste el casco!");
}
else
{
SendClientMessage(playerid,-1,"Tu personaje ya tiene casco");
}
else
{
SendClientMessage(playerid,-1,"Tu personaje ya tiene casco");
}
return 1;
}
Код:
CMD:editarhelmet(playerid,params[])
{
if(GetPlayerSkin(playerid) != 285 && 284)
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 3))
{
EditAttachedObject(playerid, 3);
SendClientMessage(playerid,-1,"Edita tu casco para que le quede bien a tu personaje!");
}
}
else
{
SendClientMessage(playerid,-1,"No tenes ningun casco editable en tu cabeza");
}
return 1;
}
Код:
CMD:quitarhelmet(playerid,params[])
{
if(GetPlayerSkin(playerid) != 285 && 284)
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 3))
{
SendClientMessage(playerid,-1,"Te sacaste el casco!");
RemovePlayerAttachedObject(playerid, 3);
}
}
else
{
SendClientMessage(playerid,-1,"No tenes ningun casco editable en tu cabeza");
}
return 1;
}
Saludos, gracias!
Reply
#2

La condicion supongo que debe ser asi en los comandos de helmet y quitarhelmet,
Код:
if(GetPlayerSkin(playerid) != 285 && GetPlayerSkin(playerid) != 284)
el otro problema que tienes que no puedes usar el comando al morir es porque al morir o spawnear se te borra el objeto, asi que debes volver a crearle el objeto al jugador

y en public OnPlayerTakeDamage no creo que puedas hacer esto:
Код:
weaponid == 24,25,26,27,29,30,31,33,34 //a donde la viste wn, para estos casos mejor usa switch
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
	new Float:health;
	GetPlayerHealth(playerid,health);
	if(issuerid != INVALID_PLAYER_ID && bodypart == 9)
   	{
		switch(weaponid)
		{
			case 24,25,26,27,29,30,31,33,34:
			{
			 	if(GetPlayerSkin(playerid) == 285 || GetPlayerSkin(playerid) == 284)
			    {
			    	SetPlayerHealth(playerid,health-70);
        		}
			    else
			    {
			        if(!IsPlayerAttachedObjectSlotUsed(playerid, 3))
			        {
       					SetPlayerHealth(playerid,health-100);
					}
					else
					{
					    SetPlayerHealth(playerid,health-70);
					}
				}
			}
		}
	}
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)