22

» WarCraft 3 / Добыча руд из камней.

  1. Можно сделать героям вторую атаку с нужным типом целей (только камни/рельеф/древа/что там еще есть), и отключить, а включать способностью сферы у кирки. И потом при сломе камня дропать серу.
  1. Сделай два массива: один с областями, другой будет хранить соответствующий камень. И перебирай их каждые 15 сек. (например), если камень сломан или его нет - создавай в случайной точке в области
Событие на уничтожение разрушаемого объекта вроде бы надо добавлять при его создании, просто так оно не отслеживается.
22

» WarCraft 3 / Множество ландшафта.

Есть триггерные действия на смену текстуры в точке, но там тоже есть предел на их количество.
Где-то здесь на хгме был генератор рандомного ландшафта на триггерах, и там случайно выпадает зимний/осенний ланд и т.д.
Загруженные файлы
22

» WarCraft 3 / Получение ресурсов

  1. Характеристики - награда за уничтожение - там есть базовая и количество костей и граней
  2. Есть точно такие же поля Характеристики - призовая древесина
22

» WarCraft 3 / Владелец юнита

Для этого есть переменные, делаем две переменные: игрок и логическую, перед перебором ближайших зануляем, нашли игрока проверяем записан ли игрок, если нет записываем его, если уже есть ставим логическую истина.
После перебора проверяем логическую, если истина делаем нейтральным, если ложь отдаем игроку из переменной.
Нагрузки особой не должно быть, и создаваемые группы при переборе ближайших юнитов надо конечно удалять.
22

» WarCraft 3 / Владелец юнита

Занести все катапульты в группу и каждую секунду проверять юнитов неподалеку?
22

» WarCraft 3 / Переменные, утечки, стабильность

на четвертом скрине не всегда обнуляется t, что возможно и приводит к утечкам.
перенеси set t = null вниз, вне if-then-else
22

» WarCraft 3 / Изменение диаметра круга выборки.

можно делать круги из даммиков с этой моделью и менять масштаб и без мемхака
скрывать через прозрачность для игроков у которых юнит не выбран
а стандартные круги убрать
22

» WarCraft 3 / заставить рабочего строить здание

Отслеживать вызов юнита и добавлять в группу
Каждые х сек. проверять приказ у всех этих юнитов и отдавать приказ строить.
Загруженные файлы
22

» WarCraft 3 / Как рассчитать стоимость здания?

мб с циклом
int GetPrice (unit whichUnit)
{
	int i = GetPlayerTechCount( GetOwningPlayer( whichUnit ), techId, true )
	int a=225
	loop {exitwhen(i<=0); a=a+(i+1)*225; i=i-1}
	return a
}
22

» WarCraft 3 / jass переменные и конвертирование

  1. к глобалкам созданным через гуи надо дописывать udg_
udg_ab
  1. округли вниз переводом в целое с помощью R2I
... + I2S(R2I(damage)) + ...
22

» WarCraft 3 / Jass - Fattal

Переименуй самый последний "Безымянный триггер 001" во что-нибудь другое.
Там конфликт имен с "Безымянный триггер 001 - копия"
У меня сохранилось после этого
22

» WarCraft 3 / Событие печати для всех игроков

один триггер
по одному событию на каждого игрока
в действе передавать "Переключающий игрок" вместо "игрок 1 красный".
22

» Программирование / Крестики-нолики на C++

turn++ делается в цикле который выполняется 10 раз после ввода, поэтому номер хода достигает числа 9 и т.к. проверка на win возвращает false выходит ничья
там где проверка на вин, всегда будет возвращать false потому что после первой же итерации (j=0) будет проверка что count==3, а он никак не может быть равен 3 на первой итерации. return false должен быть после обоих циклов for
code
#include <iostream>
using namespace std;

char board[9] = {'-','-', '-', '-', '-', '-', '-', '-', '-'};//массив поля

bool has_won(char player)//условие выигрыша
{
	int wins[][3] = { {0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6} };
	for (int i = 0; i < 8; i++)
	{
		int count = 0;
		for (int j = 0; j <= 2; j++)
		{
			if (board[wins[i][j]] == player)
				count++;
			if (count==3)
				return true;
		}
	}
	return false;
}

void print_board()//вывод поля
{
	cout << "Игровое поле\n";
	cout << "-" << board[6] << "-|-" << board[7] << "-|-" << board[8] << "-\n";
	cout << "-" << board[3] << "-|-" << board[4] << "-|-" << board[5] << "-\n";
	cout << "-" << board[0] << "-|-" << board[1] << "-|-" << board[2] << "-\n";
	cout << "Ваш ход:\n";
}

int get_move()
{
	system("cls");
	setlocale(0, "ru");
	//подсказка
	cout << "Управление\n";
	cout << "-7-|-8-|-9-\n";
	cout << "-4-|-5-|-6-\n";
	cout << "-1-|-2-|-3-\n";
	cout << endl;

	print_board();

	int move;
	cin >> move;
		while (move > 9 || move < 1 || board[move - 1] != '-') //проверка введённого числа
		{
			cout << "Ведите правильное число (1-9)\n";
			cin >> move;
		}
		return move;
	
}

char play()//игра и проверка комбинаций
{
	
	int turn = 0;
	while (!has_won('X') && !has_won('O') && turn < 9)
	{
		int move = get_move();
			if (turn % 2 == 0)
			{
				board[move - 1] = 'X';
				if (has_won('X'))
				{
					cout << "Выиграл игрок 'X'!\n";
					return 'X';
				}
			}
			else
			{
				board[move - 1] = 'O';
				if (has_won('O'))
				{
					cout << "Выиграл игрок 'O'!\n";
					return 'O';
				}
			}

			turn++;
	}
				cout << "Ничья :(\n";
				return 'D';
}

int _tmain(int argc, _TCHAR* argv[])
{
	system("Title TicTacToe");
	system("color 2");

	play();
	int a;
	cin >> a;
	return 0;
}
вроде работает как надо
22

» WarCraft 3 / Более 4 способностей предмета

А нет, проверил, не работает. Больше 4-х способностей не действуют.
22

» WarCraft 3 / Более 4 способностей предмета

Жми через шифт+энтер и вводи равкоды способностей через запятую
22

» WarCraft 3 / Не выводится игровой текст

вот код функции All Players, откуда видно что она просто возвращает созданную игрой при инициализации группу
да переменных для этой группы не нужно, она всегда одна и новых не создается
Загруженные файлы
22

» WarCraft 3 / Не выводится игровой текст

каждый раз когда ты ссылаешься на AllPlayers, эта функция возвращает объект (группу игроков) из скрытой переменной bj_FORCE_ALL_PLAYERS.
ты заносишь этот объект в переменную и удаляешь его, и больше не можешь использовать AllPlayers
поэтому после этого текст не выводится когда ты пытаешься его выводить для всех игроков (а эту группу ты удалил хоть и поместил ее перед этим в свою переменную) как на скрине из твоей карты в моем посте выше.