Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 30.07.2012 во всех областях

  1. В этом топике будут содержаться ответы на ваши вопросы. 1) A. Как мне просто занопить какую-либо инструкцию?
    1 балл
  2. Так в том вся и прелесть! В игре есть функция DealDamage() - НанестиУрон(), аргументом которой служит структура "Player" - "Игрок". Вот как оно выглядит: struct Player //Структура "Игрок" { int Team; //Поле, хранящее команду игрока. 0 для союзников, 1 для врагов, к примеру float Health; //Поле, хранящее текущее здоровье игрока string Name; //Поле, хранящее имя игрока } void DealDamage(Player p) { //Функция нанесения урона. В аргументах принимает структуру Player if(p.Health > 0) { //Если здоровье игрока больше нуля p.Health = p.Health - 10; //Вычитаем из здоровья десяточку } } Теперь представь, что есть игровое поле и две команды - наша и не наша, по два игрока в каждой: Команда 0: Игрок А, Игрок Б Команда 1: Игрок В, Игрок Г А вот, какие у этих игроков будут структуры: Player { Team = 0; Health = 100; Name = "Vasya" } Player { Team = 0; Health = 100; Name = "Petya" } Player { Team = 1; Health = 100; Name = "Grisha" } Player { Team = 1; Health = 100; Name = "Dima" } Теперь представим, что Дима стреляет в Васю. Вызывается функция: DealDamage(p); Здесь p - адрес структуры Васи, потому что в него стреляют и ему наносится урон. По логике, наши от врагов отличаются только одним полем - полем Team. Вот мы берём и пишем скрипт: HackedDealDamage(Player p) { if(p.Health > 0) { //Если здоровье больше нуля if(p.Team != 0) { //И ранят игрока НЕ нашей команды (наша - 0) p.Health = p.Health - 10; //Наносим урон! } } } Вот, типа того. Функции на самом деле до лампочки, кто в кого стреляет, а мы просто берём и слегка её меняем, заставляя ранить только тех, кто не в нашей команде. Сравнивать же можно что угодно - такое вот поле Team, или какой-нибудь уникальный идентификатор игрока (ID), или же вообще адрес его здоровья (через указатель). Т.е. игра ВСЕГДА отличает игрока, его союзников и врагов - то есть ВСЕГДА будет какой-то уникальный признак, который и надо искать в структуре. Надеюсь, начинает проясняться. Ramil, главное, не надо сидеть и тыкать пальцем в небо, надеясь что оно вдруг возьмёт и заработает - лучше приводи конкретные примеры того, что именно тебе не ясно. Вопрос вида "Как мне написать скрипт?" слишком широк и абстрактен, чтобы так вот взять и ответить - не бывает универсальных решений, надо рассматривать конкретику.
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.