Туториал. Как спрятать здоровье команд.

4 replies [Last post]
m110h
m110h's picture
User offline. Last seen 8 years 50 weeks ago. Offline
Joined: 2010-11-30
Posts: 75

Иногда, когда команд в игре много, отображение здоровья затрудняет игру. И это лично меня раздражает. Потому решил сделать такую маленькую, но имхо полезную модификацию.

1) Рисование здоровья происходит в uWorld.pas в процедуре DrawWorld. Прямо под комментом
// Teams Healths

2) Нам нужно объявить флаг, который будет контролировать отображение здоровья и процедуру - переключатель флага.
Процедуру объявим в интерфейсе модуля uWorld, а сам флаг в переменных реализации.

3) далее берём блок кода с рисованием здоровья в if.

 if flag then begin
     // рисование здоровья
 end;

4) процедура переключатель будет такая

 procedure SwitchFlag;
 begin
     flag:= not flag;
 end;

5) далее идём в uCommandHandlers.pas и там создаём команду, чтобы нам всё забиндить на клавишу.
5.1) в uses uCommandHandlers добавим uWorld
5.2) добавим процедуру команды

 procedure chSwitchFlag(var s: shortstring);
 begin
     s:= s; // avoid compiler hint
     SwitchFlag;
 end;

5.3) регистрируем команду. Это в InitModule.
 RegisterVariable('switchflag',vtCommand,@chSwitchFlag,true);

6) Биндим клавишу. Кому как удобней. Тру способ сделать это в коде фронтенда (такова задумка архитектора), но мне удобней делать это в uTeams.pas. В процедуру chAddTeam в uTeams.pas добавляем следующий код

 if not CurrentTeam^.ExtDriven then begin
    CurrentTeam^.Binds[KeyNameToCode('q')] := 'switchflag';
 end;

Всё. теперь на q у нас будет возможность скрыть/показать здоровье команд.
Названия переменных и процедур подберите на свой вкус. Я обозвал схематично.
Если что не понятно, пишите. будем делать вместе.

hedgewars forever!

m110h
m110h's picture
User offline. Last seen 8 years 50 weeks ago. Offline
Joined: 2010-11-30
Posts: 75

ах да! чуть не забыл -)) надо в uWorld.pas в InitWorld написать flag:= true;
Что будет значить, что по умолчанию мы видим здоровье команд. Написать можно прямо первой строчкой (вообще без разницы, в каком месте процедуры xD).

hedgewars forever!

grayich
grayich's picture
User offline. Last seen 9 years 27 weeks ago. Offline
Joined: 2009-10-20
Posts: 9

почему такие удобности не добавляют в игру?
кстати, ещё хорошо что-бы запоминалось состояние подобных настроек в игре, а не каждый раз заново тыкать.

m110h
m110h's picture
User offline. Last seen 8 years 50 weeks ago. Offline
Joined: 2010-11-30
Posts: 75

фиг знает почему, не считают это проблемой или неудобством.

hedgewars forever!

Морнис
Морнис's picture
User offline. Last seen 10 years 12 weeks ago. Offline
Joined: 2013-08-08
Posts: 33

Уже это добавили))) Всем спасибо, все свободны... Кстати твоя настройка великолепная))) Помогло..

А что будет в версии 0.9.21???

User login

Copyright © 2004-2024 Hedgewars Project. All rights reserved. [ contact ]