Форумы Homeworld3.RU

Форумы Homeworld3.RU (http://www.homeworld3.ru/forum/index.php)
-   Чемпионаты и сетевые баталии (http://www.homeworld3.ru/forum/forumdisplay.php?f=20)
-   -   Таймер в Homeworld2 (http://www.homeworld3.ru/forum/showthread.php?t=1280)

[FX]Storm 09-14-2007 07:50 AM

Таймер в Homeworld2
 
1 Attachment(s)
Выкладываю таймер для ХВ2 (создатель LeviathansWrath). Для того, чтобы установить таймер, нужно пихнуть файл autoexec.lua в папку bin, например:

F:\Program Files\Homeworld II\Bin

Для примера дам скрин демонстрирующий таймер:



На миниатюре не видно, так что смотреть скрин полностью. Если не найдете, таймер в верхнем левом углу.

Домашняя страничка таймера на сайте клана TFL: http://www.freewebs.com/tflhw2maps/files.htm

[FX]Storm 09-16-2007 10:13 PM

Re: FX MOD 1.711
 
1 Attachment(s)
Выложил новою версию таймера. Изменений всего 3:
1 Убраны надписи time и буквы типо h s m.
2 Изменен формат таймера теперь идет так: 0.0.1, 0.0.2 и.т.д.
3 Теперь таймер отабражаеться в сенсорах.

Вот скрин (в сенсорах потому что там он есть и ничем не отличаеться от режима не в сенсорах):


Ссылки на первоисточник:
http://hwfx.ipbfree.com/index.php?sh...=15&#entry7644
http://demonclan.org/hw2/file.php

КамАЗ 09-17-2007 11:06 PM

Re: FX MOD 1.711
 
Чё в нём такого полезного? Просто время чтоли считает, сколько в игру играл?

Ten 09-18-2007 10:06 AM

Re: FX MOD 1.711
 
Таймер исключительно полезная штука для сетевой игры, он позволяет контролировать своё развитие, а если приблизительно представляешь тактику соперника, то сможешь примерно просчитать, когда он сможет нанести удар. Ну и встретить вражеский флот со всем радушием :)

Естественно, разведку никто не отменял, но таймер позволяет строить более точные прогнозы. Приятно, что теперь он есть в игре: не очень удобно посматривать на часы или секундомер – теряются ценные мгновения.

[FX]Storm 09-18-2007 12:09 PM

Re: Таймер в Homeworld2
 
Для тех кто нехочет таймер качать, нужно просто добвить текст которой я напишу в autoexec.lua

Вот чем они отличаються

Старый Таймер


Code:

function updateTimer()
        dr_clear("timer")
        dr_setautoclear("timer",0)
        local time = Universe_GameTime();
        local h = floor(time/3600.0);
        local m = floor(time/60.0 - h*60);
        local s = time - m*60 - h*3600;
        local str = format("Time: %2.0fh %2.0fm %3.1fs",h, m, s)
        dr_text2d("timer",0.0,0.98,str, 255,255,255)

end

Rule_AddInterval("updateTimer", 2)

Новый Таймер

Code:

function updateTimer()
        dr_clear("timer");
        dr_setautoclear("timer",0);

        local time = Universe_GameTime();

        local h = floor(time / 3600);
        local m = floor(time / 60 - h * 60);
        local s = floor(time - m * 60 - h * 3600);

        local str = format("%2.0f:%2.0f:%2.0f", h, m, s);
        dr_text2d("timer", 0, 0.9, str, 255, 255, 255);
end

Rule_AddInterval("updateTimer", 2);


AVE 01-10-2008 04:20 PM

Re: Таймер в Homeworld2
 
Quote:

Originally Posted by [FX]Storm (Post 20068)
Code:

        local str = format("%2.0f:%2.0f:%2.0f", h, m, s);

Немного поправлю. Красивее выглядит таймер с нулями:
Code:

        local str = format("%02.0f:%02.0f:%02.0f", h, m, s);

[FX]Storm 01-12-2008 02:53 PM

Re: Таймер в Homeworld2
 
Спасибо, AVE. Тэн поможешь разобраться с таймером из FX18 (хочу засунуть его в обычный). Вот содержание:

Code:

InGameRunTimeTimerDisplay = 0

function GameTimerDisplay()
    InGameRunTimeTimerDisplay = InGameRunTimeTimerDisplay + 1
    local iSeconds = mod(InGameRunTimeTimerDisplay,60)
    local iMinutes = (InGameRunTimeTimerDisplay - iSeconds) / 60
    local iHours = iMinutes
    iMinutes = mod(iMinutes, 60)
    iHours = iHours - iMinutes
    iHours = iHours / 60
    local sStrToDisplay = ""
    if (iHours < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iHours..":"
    else
        sStrToDisplay = sStrToDisplay..iHours..":"
    end
    if (iMinutes < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iMinutes..":"
    else
        sStrToDisplay = sStrToDisplay..iMinutes..":"
    end
    if (iSeconds < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iSeconds
    else
        sStrToDisplay = sStrToDisplay..iSeconds
    end
    UI_SetTextLabelText("ResourceMenu", "lblTimerSize", sStrToDisplay)
end


AVE 01-12-2008 03:49 PM

Re: Таймер в Homeworld2
 
Quote:

Originally Posted by [FX]Storm (Post 22461)
Спасибо AVE.

Не за что. :)

Quote:

Originally Posted by [FX]Storm (Post 22461)
Тэн поможешь разобраться с таймером из FX18 (хочу засунуть его в обычный) Вот содержание

Могу и я.


Code:

InGameRunTimeTimerDisplay = 0
В этой переменной (далее таймер), собственно, и содержится количество секунд, прошедших с момента начала игры.

Code:

function GameTimerDisplay()
    InGameRunTimeTimerDisplay = InGameRunTimeTimerDisplay + 1

Я так понимаю, функция GameTimerDisplay() где-то вызывается через RuleAddInterval, что обеспечивает ее вызов раз в секунду.

Code:

    local iSeconds = mod(InGameRunTimeTimerDisplay,60)
    local iMinutes = (InGameRunTimeTimerDisplay - iSeconds) / 60
    local iHours = iMinutes
    iMinutes = mod(iMinutes, 60)
    iHours = iHours - iMinutes
    iHours = iHours / 60

Здесь вычисляются часы/минуты/секунды. Секунды - остаток от деления (mod) на 60, и т.д.

Code:

    local sStrToDisplay = ""
    if (iHours < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iHours..":"
    else
        sStrToDisplay = sStrToDisplay..iHours..":"
    end
    if (iMinutes < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iMinutes..":"
    else
        sStrToDisplay = sStrToDisplay..iMinutes..":"
    end
    if (iSeconds < 10) then
        sStrToDisplay = sStrToDisplay.."0"..iSeconds
    else
        sStrToDisplay = sStrToDisplay..iSeconds
    end

Здесь видно, что авторы не знают про format(), и делают то же самое руками.

Code:

    UI_SetTextLabelText("ResourceMenu", "lblTimerSize", sStrToDisplay)
end

Это вывод текста.

Ten 01-21-2008 10:08 AM

Re: Таймер в Homeworld2
 
Quote:

Originally Posted by Azrael|Demon
That's the one I posted. It's the updated white one that does stay in senors. I'll post the link again: http://demonclan.org/hw2/files/timer.zip

Перевод будет звучать так: Что-то подобное я выкладывал. Это обновлённый белый [таймер], который остаётся в сенсорах. Запостю этот линк снова:...

Качаем архив, смотрим дату autoexec.lua - 15 сентября. Комментарии излишни :)

Раз уж заглянул, любопытства ради почитал тему всю, выяснилось, что создатель таймера - не LeviathansWrath, о чём он, собственно, не забыл упомянуть. Заглянул на сайт TFL, таймер датирован 15ым июня 2007, но возможно это восстановление или перенос аккаунта (сайт вообще не обновляется с 2006го). Ho и там нет никакой информации об авторе.

В силу того, что таймер - вещь полезная, мне захотелось разобраться, в чью светлую голову пришла идея об его создании. После непродолжительного гугленья наткнулся на небольшую подборку подсказок и советов на форумах реликньюс. Выяснилось, что самую первую версию таймера создал Eiden, а концепт, раскрывающий общие принципы его реализации, набросал mecha, сотрудник Relic Entertainment (программист, не иначе как :)). Обоим товарищам однозначный мегареспект :thumbsup:

[FX]Storm 01-21-2008 02:11 PM

Re: Таймер в Homeworld2
 
Ну уж извените!!! выкладывал та он (LeviathansWrath) да и с англ у меня не ладу поэтому думал что он выложил, а тут оказываеться вот что!! спасибо за проеснение ситуации!

regul 01-01-2010 09:58 PM

Фича, добавляющая в игру отображение кол-ва ресов у союзников
 
http://forums.relicnews.com/showthread.php?t=187483

Quote:

This mod updates hw2's interface with two features present in many new rts games. An in-game Timer and a Resource display that shows your teamate's resources. With this mod you can share ru as a team without having to ask 'does anyone have any extra ru?' all the time.

You can use this with with regular hw2, or any mod - online or offline.
Фича добавляет в игру таймер и отображение ресурсов союзника. Работает со всеми модами.

Лёшка 01-25-2010 05:24 PM

Re: Фича, добавляющая в игру отображение кол-ва ресов у союзника
 
regul, cпасибо тебе, удобная штука, особенно в коммандных баталиях :friends: :thumbsup:
Quote:

Originally Posted by Ten (Post 35662)
А фраза «особенно в командных баталиях» это то, о чём я подумал?

А о чём ты подумал? :) Я не экстрасенс :)
Удобная в смысле тем, что не надо 20 раз спрашивать союзника: "А тебе ресурсы не нужны?", а в случае их отсутствия просто положить.

Ten 01-25-2010 09:04 PM

Re: Фича, добавляющая в игру отображение кол-ва ресов у союзников
 
А фраза «особенно в командных баталиях» это то, о чём я подумал? :)

// UPD:
Ну, я больше в шутку спросил :) Мне попадалась похожая штука (точнее, это она и есть), и я не добавил её в тему таймеров лишь потому, что проверка на союз реализована в самом скрипте, что открывает некоторый простор для читерства.

Agronom 04-11-2011 01:29 AM

Re: Фича, добавляющая в игру отображение кол-ва ресов у союзников
 
1 Attachment(s)
Частично переписал скрипт:
  • Время и ресурсы выводятся вместо текста "Resource Units", чтобы их было видно в режиме сенсоров.
  • Автоматически открываются меню "build" и "build queue" (для удобства :)).
  • Теперь правило updateTimer работает только во время игры.
Code:

function updateTimer()
  if Universe_GameTime == nil then
    Rule_Remove("updateTimer");
    return
  end

  --TIME
  local time = Universe_GameTime();
  local h = floor(time / 3600);
  local m = floor(time / 60 - h * 60);
  local s = floor(time - m * 60 - h * 3600);

  local str;
  if h > 0 then
    str = format("%d:%02d:%02d", h, m, s);
  else
    str = format("%d:%02d", m, s);
  end

  --RU
  if (GR_MULTIPLAYER == GetGameRubric()) then
    local me = Universe_CurrentPlayer();
    for playerIndex=0, Universe_PlayerCount()-1 do
      if (me ~= playerIndex and AreAllied(me, playerIndex)==1) then
        local PlayerRUs = Player_GetRU(playerIndex);
        str = str .. format(" <c=38a2fa>%d{<c=ffd800>%d", playerIndex+1, PlayerRUs);
        if PlayerRUs < 1000 then str = str .. " "; end
        if PlayerRUs < 100  then str = str .. " "; end
        if PlayerRUs < 10  then str = str .. " "; end
      end
    end
  end

  UI_SetTextLabelText("ResourceMenu", "lblResourceUnitsStaticText", str);
end

UI_SetElementSize("ResourceMenu", "lblResourceUnitsStaticText", 168, 13);
Rule_AddInterval("updateTimer", 5);
updateTimer();

MainUI_UserEvent(eBuildManager);
UI_ToggleScreen("BuildQueueMenu", 1);

Поместить в "Homeworld2/Bin/autoexec.lua".

KUPRUM 04-11-2011 11:12 AM

Re: Фича, добавляющая в игру отображение кол-ва ресов у союзников
 
А если у одного союзника нет данного фикса, то игра по сети нормально идет?

Agronom 04-11-2011 05:52 PM

Re: Фича, добавляющая в игру отображение кол-ва ресов у союзников
 
Да, нормально. На логику игры не влияет.


All times are GMT +3. The time now is 02:50 PM.