int
przestan(string str)
{
	object specjal=TP->query_prop(LIVE_O_SPELL_ATTACK);
	if (str!="ogluszac") return 0;
	if (!specjal || MASTER_OB(specjal)!=SPEC_OGL)
		return notify_fail("Przeciez nie ogluszasz w tym momencie nikogo!\n");
	TP->remove_prop(LIVE_O_SPELL_ATTACK);
	TP->remove_prop(RZ_SPECJAL);
	write("Od teraz nie starasz sie juz ogluszyc przeciwnika.\n");
	return 1;
}
		

int
oglusz(string str)
{
    object *oblist, cel;
    object mlot=TP->query_weapon(W_RIGHT) || TP->query_weapon(W_BOTH);
    float czas;
    
    if(stringp(str))
    {
		oblist = parse_this(str, "%l:" + PL_BIE);
	
		if(!sizeof(oblist))
		{
	    	notify_fail("Kogo chcesz ogluszyc?\n");
	    	return 0;
		}
	
		if(sizeof(oblist) > 1)
		{
	    	notify_fail("Mozesz ogluszac jedna osobe na raz.\n");
	    	return 0;
		}
		cel = oblist[0];
    }
    else // Nie podano celu
    {
		cel = TP->query_attack();
    }
    
    if (!cel)
    {
    	notify_fail("Kogo chcesz ogluszyc?\n");
    	return 0;
    }
    
  /*if (member_array (TP, cel->query_enemy(-1)) == -1)
    {
	notify_fail("Tego ciosu mozesz uzywac tylko podczas "
		    +"walki.\n");
	return 0;
    } */
    
    if (obiekt_no_attack(TP, cel)) return 0; // Niestety, wszystko jest 
    	// jako .h, wiec nie mozna wkleic tego tutaj. Uzywamy w zwiazku 
    	// z tym funkcji zdeklarowanej w szarzy. Dziala, ale niezbyt zgodne z 
    	// idea czystego programowania. ( jak kto bedzie tej funkcji szukal...
    
    
    if (this_player()->query_prop(RZ_SPECJAL))
    {
	notify_fail("Musisz chwile odpoczac, zanim bedziesz mogl znow"
		    +" uzyc ciosu specjalnego.\n");
	return 0;
    }
    
    if (!mlot)
    {
	notify_fail("Musisz dzierzyc mlot, aby moc kogos ogluszyc.\n");
	return 0;
    }
    if (!(mlot->query_wt() == W_WARHAMMER))
    {
	notify_fail("Ogluszac mozesz tylko i wylacznie mlotem bojowym, rytualna "
		    +"bronia Rycerzy Zakonu Sigmara.\n");
	return 0;
    }
    if (!TP->query_skill(RZ_OGLUSZANIE))
    {
	notify_fail("Nie znasz nawet podstaw tej techniki walki.\n");
	return 0;
    }
    if (TP->query_prop(RZ_TEMP))
    {
	// Mor: Ten opis powinien dotyczyc wszystkich specjali
	// ow prop jest sprawdzany przy kazdym (Silvy popraw to bo nic nie moge wymyslec)
	notify_fail("Wlasnie przygotowujesz sie do zadania ciosu.\n");
	return 0;
    }
    
    write("Koncentrujesz sie, starajac sie ogluszyc przeciwnika, zamiast zabierac mu zycie.\n");
    setuid();
    seteuid(getuid());
    
    TP->add_prop(LIVE_O_SPELL_ATTACK, clone_object(SPEC_OGL));
    TP->attack_object(cel);
    return 1;    
}
