[Ajuda] Corpo
#1

Eu gostaria de saber se tem algum objeto que seja um corpo, tipo uma skin inanimada, pois quero que quando alguem morra continue o corpo por um certo tempo.

e caso n tenha, poderiam me dizer se da pra fazer com actor? tem como deixar um ator morto onde o player morreu?
Reply
#2

Nгo tem esse objeto.
Crie o Actor e defina a animaзгo de morte.
Reply
#3

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Nгo tem esse objeto.
Crie o Actor e defina a animaзгo de morte.
Ok, mas ai inicia um problema que n sei responder, como faзo pra dps de um tempo ele sumir? pois se eu usar um timer todos os corpos sumirгo e eu quero que dps de 40mim cada corpo suma um de cada vez.

ex: matei o cara as 20:15 ai o corpo dele irб sumir as 20:55.

se eu matar outro cara as 20:16 eu quero que o corpo suma as 20:56

usando um timer ele sumiria com todos ao mesmo tempo, como faзo pra ser de cada vez?
Reply
#4

Й sу colocar um id no actor.
Reply
#5

Код:
enum crInfo {
crID,
crCTime
};

new Corpos[100][crInfo];

public OnGameModeInit()
{
	SetTimer("UpdateActors", 1000, true);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    CriarCorpo(GetPlayerSkin(playerid), x, y, z, a, 40 * 60);
    return 1;
}

forward UpdateActors();
public UpdateActors()
{
	for(new i = 0; i < sizeof(Corpos); i++)
	{
	    if(Corpos[i][crCTime] != 0)
	    {
		    if(gettime() >= Corpos[i][crCTime])
		    {
		        DeletarCorpo(i);
		    }
		}
	}
	return 1;
}

stock CriarCorpo(skin, Float:x, Float:y, Float:z, Float:rotation, segundos)
{
	for(new i = 0; i < sizeof(Corpos); i++)
	{
	    if(Corpos[i][crCTime] == 0)
	    {
	        Corpos[i][crID] = CreateActor(skin, x, y, z, rotation);
	        Corpos[i][crCTime] = gettime() + segundos;
         	SetActorInvulnerable(Corpos[i][crID], true);
	        ApplyActorAnimation(Corpos[i][crID], ...);
	    }
	}
	return 1;
}

stock DeletarCorpo(key)
{
    Corpos[key][crCTime] = 0;
	DestroyActor(Corpos[key][crID]);
	return 1;
}
Reply
#6

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Код:
enum crInfo {
crID,
crCTime
};

new Corpos[100][crInfo];

public OnGameModeInit()
{
	SetTimer("UpdateActors", 1000, true);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    CriarCorpo(GetPlayerSkin(playerid), x, y, z, a, 40 * 60);
    return 1;
}

forward UpdateActors();
public UpdateActors()
{
	for(new i = 0; i < sizeof(Corpos); i++)
	{
	    if(Corpos[i][crCTime] != 0)
	    {
		    if(gettime() >= Corpos[i][crCTime])
		    {
		        DeletarCorpo(i);
		    }
		}
	}
	return 1;
}

stock CriarCorpo(skin, Float:x, Float:y, Float:z, Float:rotation, segundos)
{
	for(new i = 0; i < sizeof(Corpos); i++)
	{
	    if(Corpos[i][crCTime] == 0)
	    {
	        Corpos[i][crID] = CreateActor(skin, x, y, z, rotation);
	        Corpos[i][crCTime] = gettime() + segundos;
         	SetActorInvulnerable(Corpos[i][crID], true);
	        ApplyActorAnimation(Corpos[i][crID], ...);
	    }
	}
	return 1;
}

stock DeletarCorpo(key)
{
    Corpos[key][crCTime] = 0;
	DestroyActor(Corpos[key][crID]);
	return 1;
}
vlw cara vc sempre me ajuda, e obg pela a ajuda dos outros tb
Reply
#7

tu sabes algum anim que o cara fica morto no chгo, procurei e n achei, to procurando pro actor
Reply
#8

Quote:
Originally Posted by Scorpion659
Посмотреть сообщение
tu sabes algum anim que o cara fica morto no chгo, procurei e n achei, to procurando pro actor
PHP код:
ApplyActorAnimation(/*ID Actor*/"PED""KO_shot_front"4.101111); 
Reply
#9

Quote:
Originally Posted by AuhMaru
Посмотреть сообщение
PHP код:
ApplyActorAnimation(/*ID Actor*/"PED""KO_shot_front"4.101111); 
vlw

Quote:

enum crInfo {
crID,
crCTime
};

new Corpos[100][crInfo];

public OnGameModeInit()
{
SetTimer("UpdateActors", 1000, true);
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
new Float, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
CriarCorpo(GetPlayerSkin(playerid), x, y, z, a, 40 * 60);
return 1;
}

forward UpdateActors();
public UpdateActors()
{
for(new i = 0; i < sizeof(Corpos); i++)
{
if(Corpos[i][crCTime] != 0)
{
if(gettime() >= Corpos[i][crCTime])
{
DeletarCorpo(i);
}
}
}
return 1;
}

stock CriarCorpo(skin, Float, Float:y, Float:z, Float:rotation, segundos)
{
for(new i = 0; i < sizeof(Corpos); i++)
{
if(Corpos[i][crCTime] == 0)
{
Corpos[i][crID] = CreateActor(skin, x, y, z, rotation);
Corpos[i][crCTime] = gettime() + segundos;
SetActorInvulnerable(Corpos[i][crID], true);
ApplyActorAnimation(Corpos[i][crID], ...);
}
}
return 1;
}

stock DeletarCorpo(key)
{
Corpos[key][crCTime] = 0;
DestroyActor(Corpos[key][crID]);
return 1;
}

cara qui ele criou varios atores no lugar que morri ao inves de um, acho q deve ter criado os 100 pelo lag kk, creio que o stock CriarCorpo esteje criando todos ao mesmo tempo ao inves de 1
Reply
#10

Esqueci de parar o loop:
Код:
stock CriarCorpo(skin, Float:x, Float:y, Float:z, Float:rotation, segundos)
{
	for(new i = 0; i < sizeof(Corpos); i++)
	{
	    if(Corpos[i][crCTime] == 0)
	    {
	        Corpos[i][crID] = CreateActor(skin, x, y, z, rotation);
	        Corpos[i][crCTime] = gettime() + segundos;
         	SetActorInvulnerable(Corpos[i][crID], true);
	        ApplyActorAnimation(Corpos[i][crID], ...);
	        break;
	    }
	}
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)