+ Ответить в теме
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 20 из 21

Тема: Не пойму, где не прав с LUA. Подскажите

  1. #1

    Question Не пойму, где не прав с LUA. Подскажите

    Ребята, подскажите, пожалуйста, где же я не прав.
    Идея такая:
    1) избавиться от линейного роста науки от населения, а проще поставить штраф за большое число городов;
    2) сымитировать влияние информационной сферы, чтобы отсталые цивы при торговле получали бонус к уже исследованным другими игроками технологиям.
    Сделал файл под названием "MyScienceChange.LUA":

    --[[ -3% науки за каждый нестоличный город ]]
    function ScienceMinusForNumCities(pPlayer)
    local iNumCities = pPlayer:GetNumCities();

    if iNumCities <= 1 then
    return 0;
    else
    return pPlayer:GetScience() * (1 - 100 / (100 + (iNumCities - 1) * 3));
    end
    end

    function ScienceMinusForNumCitiesOnTurn()
    local currentResearchProgress;
    local techID;
    local ChangeProgress;

    --loop thru all live players (human and AI).
    for index,pPlayer in pairs( Players ) do
    if pPlayer ~= nil and pPlayer:IsAlive() then
    techID = pPlayer:GetCurrentResearch();
    currentResearchProgress = pPlayer:GetResearchProgress(techID) - ScienceMinusForNumCities(pPlayer);
    if currentResearchProgress < 0 then
    ChangeProgress = -pPlayer:GetResearchProgress(techID);
    else
    ChangeProgress = pPlayer:GetResearchProgress(techID) - ScienceMinusForNumCities(pPlayer);
    end
    -- устанавливаем новое значение
    --pPlayer:ChangeResearchProgress(techID, ChangeProgress);
    teamtech:ChangeResearchProgress(techID, ChangeProgress, pPlayer);
    end
    end
    end

    --[[ конец блока: -3% науки за каждый нестоличный город ]]

    ---------------------------------------------------------------

    --[[ Прибавка к науке за торговые связи, если изучается уже изученная партнером технология (влияние информационной сферы) ]]
    function PlusScienceFromTrade( pPlayerTo)
    local retVal;

    retVal = 0;
    -- по всем игрокам
    for index,pPlayer in pairs( Players ) do
    if pPlayer ~= nil and pPlayer:IsAlive() and pPlayerTo ~= pPlayer then
    -- с каждого игрока собираем
    retVal = retVal + 1;
    end
    end
    return retVal;
    end

    function PlusScienceFromTradeOnTurn()
    local ChangeScience;

    -- по всем игрокам
    for index,pPlayer in pairs( Players ) do
    if pPlayer ~= nil and pPlayer:IsAlive()
    ChangeScience = PlusScienceFromTrade(pPlayer);
    --pPlayer:ChangeResearchProgress(pPlayer:GetCurrentResearch(), ChangeScience);
    teamtech:ChangeResearchProgress(pPlayer:GetCurrentResearch(), ChangeScience, pPlayer);
    end
    end
    end

    --[[ конец блока: Прибавка к науке за торговые связи, если изучается уже изученная партнером технология (влияние информационной сферы) ]]

    Events.ActivePlayerTurnStart.Add( PlusScienceFromTradeOnTurn );
    Events.ActivePlayerTurnStart.Add( ScienceMinusForNumCitiesOnTurn );


    ---
    Реакции никакой. Неужели ошибка где-то? Это раз. И еще хотел выводить эти бонусы и штрафы при наведении курсора на верхнее меню науки. Сделано это так: добавлено в TopPanel.LUA:
    -- мои добавления
    --if ScienceMinusForNumCities(pPlayer) > 0 then
    strText = strText .. "[NEWLINE]" .. Locale.ConvertTextKey("TXT_KEY_SCIENCE_MINUS", ScienceMinusForNumCities(pPlayer)); --.. string.format("%i", ScienceMinusForNumCities(pPlayer));
    --end

    --if PlusScienceFromTrade( pPlayer) > 0 then
    strText = strText .. "[NEWLINE]" .. Locale.ConvertTextKey("TXT_KEY_SCIENCE_PLUS", PlusScienceFromTrade(pPlayer));-- .. string.format("%i", PlusScienceFromTrade(pPlayer));
    --end

    Когда навожу - пишет Brief description, а затем ниспадающее поле вообще перестает появляться.
    include ("MyScienceChange"); - это есть в TopPanel, то есть вроде ссылка есть и функции должны быть видны. Или нет? Вообще такое ощущение, что он мой файл

    PS. Алгоритм расчета еще не сбалансирован, потому прошу не придираться
    продвинь это сообщение в соцсеть:  

  2. #2
    если честно, то знания луа и функций цивилки еще не настолько круты, дабы глядя в код можно указать на ошибку. Единственный совет - пользуйся дебагом. Ну хоть значения своих расчетов и работы функций выводи куда-нибудь.
    продвинь это сообщение в соцсеть:  
    Тут могла быть моя подпись...

  3. #3
    Ну если я функции переношу в TopPanel и вывожу на верхнюю панель, то всё нормально - цифири считаются. Значит, сами-то функции верны.
    А разве в ModBuddy есть дебаг? Я нажимаю F5, а он просто его собирает...
    продвинь это сообщение в соцсеть:  

  4. #4
    Насчет дебага ModBuddy... вроде как видел его там (щас на работе и проверить как бы не могу), но если честно то не юзал. Пока все что писал довольно простенькое и дебаг не нужен был.

    Сами то функции может и верны, а вот передаются ли значения системе? Т.е. срабатывает ли функция ChangeResearchProgress ? Вот в чем вопрос. Кстати... а почему teamtech:ChangeResearchProgress(techID, ChangeProgress, pPlayer); ? У меня такое чувство что там должен быть pPlayer ибо функция ни про какой teamtech не знает...
    продвинь это сообщение в соцсеть:  
    Тут могла быть моя подпись...

  5. #5
    По поводу функций я здесь сверяюсь: http://wiki.2kgames.com/civ5/index.p...jects/TeamTech
    Мне подумалось, что ChangeResearchProgress это расшаренная функция для класса teamtech. Ну, буду экспериментировать. Кстати, нашел вроде ошибку (then отсутствовало). Надо проверить. Мб всё из-за этого...

    Поискал про дебаг и нашел: "FireTuner (Runtime Lua Console) – средство отладки во время игры и инструмент баз данных". Средство в SDK, кто бы мог подумать)) Попробую юзать. Спасибо за наводку!
    продвинь это сообщение в соцсеть:  

  6. #6
    Народ, разобрался во всем. Если кому интересно, кидаю набор файлов для мода: Вложение 5211
    Решил пойти на большую авантюру: добавить в мод возможность развала государства при очень низком настроении. У меня возникла загвоздка в использовании функции Game.AddPlayer. Там три входящих параметра, но нет возвращаемого значения... Для меня это загадка. Как она работает?
    Видел, что в 4ке тоже была подобная функция. Мб кто подскажет?
    продвинь это сообщение в соцсеть:  

  7. #7
    Злой магрибский колдун CIVFANATICS.RU TEAM Аватар для sweeper


    Регистрация
    01.03.2005
    Сообщений
    2,968
    Я извиняюсь, вопрос немного не в тему. Насколько я помню, пятая цива анонсировалась как расширяемая по самое не балуй, вплоть до полной замены ИИ и логики игры. И делаться это должно было через SDK. Кроме вот этого: http://rghost.ru/2767708 есть что-нибудь? Действительно ли SDK позволяет полностью переделать геймплей?
    продвинь это сообщение в соцсеть:  
    Вот уже несколько лет все мои посты крутятся вокруг темы реалистичной модели цивилизации.

  8. #8
    Логику ИИ действительно можно немного менять. Есть набор стратегий в XML. Можно изменить настройки лидеров, сделать их более активными для экспансии, для культурной победы, так что логику в этом смысле менять можно, но чтобы сделать ИИ умнее, увы, надо копаться в ядре, а его нет. Если честно, руки чешутся переписать DLL
    А вроде кроме SDK ничего и нет... Во всяком случае, мне ничего больше не знакомо.
    Вообще хочется избавить от множества странных вещей, например, нанесения урона авиации юнитами, у которых нет перехвата (не понимаю логики разрабов!), чтобы варварские галеры не видели мои подлодки (да-да, было и такое!). Хочется увидеть шпионаж и культурное влияние (его вообще нет!! что за чушь!), колонии и вассалитет и многое другое.. Но это так.. уже митинг ) Тоже оффтопик...
    Пойду разбираться, как работает AddPlayer...
    продвинь это сообщение в соцсеть:  

  9. #9
    Цитата Сообщение от sweeper Посмотреть сообщение
    Я извиняюсь, вопрос немного не в тему. Насколько я помню, пятая цива анонсировалась как расширяемая по самое не балуй, вплоть до полной замены ИИ и логики игры. И делаться это должно было через SDK. Кроме вот этого: http://rghost.ru/2767708 есть что-нибудь? Действительно ли SDK позволяет полностью переделать геймплей?
    Пока больше ничего нету. =(
    Но даже с этим можно творить чудеса. Там много логики прописано в LUA, что значит все это можно менять. Переделать гемплей можно достаточно сильно. Вплоть до полной неузнаваемости.
    продвинь это сообщение в соцсеть:  
    Тут могла быть моя подпись...

  10. #10
    Кстати... на счет гемплея. Я вот все собирался за религию и дипломатию взяться, но тут вот оказываеться что скоро будет дополнение 'Civilization V: Gods & Kings' в котором это уже все будет.
    продвинь это сообщение в соцсеть:  
    Тут могла быть моя подпись...

  11. #11
    Конструктор, действительно, весьма неплохой вышел.
    Ага, аддон уже увидел Ждём с нетерпением!
    продвинь это сообщение в соцсеть:  

  12. #12
    а как экспансию аи усилить? а то действительно некоторые аи тупят всю начальную стадию игры. и как запустить указанную тут модификацию? куда кидать?
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось neocrator; 26.03.2012 в 14:21.

  13. #13
    В настройках каждого лидера есть параметр экспансии. Вроде так и называется Expansion - тупо правится в XMLках.
    Свою я не доделал. Решил подождать аддона... Эти файлики можно тупо добавить в проект своей модификации.
    продвинь это сообщение в соцсеть:  

  14. #14
    так они не работают?(
    продвинь это сообщение в соцсеть:  

  15. #15
    Так не работают. В файле, описывающем мод, эти файлы указаны отдельно и подсасываются при загрузке мода, иначе он просто их не видит.
    продвинь это сообщение в соцсеть:  

  16. #16
    neocrator,выкладываю все, что наработал. Можно что-то выдрать для себя. Вложение 5296
    Ты говорил, что техны раньше времени изучаются. Это просто из-за того, что в графике нет учета новых бонусов и штрафов + погрешность округления, но в целом робит.
    Если найдешь косяки, пиши - исправлю. (кст, есть косяк с отображением среднего танка - дулом вниз ездит))) После выхода аддона, мод продолжу делать.
    продвинь это сообщение в соцсеть:  

  17. #17
    опробуем) а там вставлен еще некий мод?


    добавлено: 0,7 к науке от окружения. цифра прыгает (начало гры) через несколько ходов уже почему-то 0,27
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось neocrator; 29.03.2012 в 12:31.

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

    как правильно изменить в моде параметры карты? файл Civ5Worlds

    <?xml version="1.0" encoding="utf-8"?>
    <GameData>
    <Worlds>
    <Update>
    <Set DefaultMinorCivs="25"/>
    <Where Type="WORLDSIZE_HUGE"/>
    </Update>
    <Update>
    <Set DefaultPlayers="18"/>
    <Where Type="WORLDSIZE_HUGE"/>
    </Update>
    <Update>
    <Set GridWidth="152"/>
    <Where Type="WORLDSIZE_HUGE"/>
    </Update>
    <Update>
    <Set GridHeight="96"/>
    <Where Type="WORLDSIZE_HUGE"/>
    </Update>
    </Worlds>
    </GameData>
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось neocrator; 29.03.2012 в 13:33.

  19. #19
    Цитата Сообщение от neocrator Посмотреть сообщение
    опробуем) а там вставлен еще некий мод?


    добавлено: 0,7 к науке от окружения. цифра прыгает (начало гры) через несколько ходов уже почему-то 0,27
    Да, встроил мод на изменение добычи ресов
    ** почему прыгает - я недавно тестил, все норм, мб циву, изучившую данную техну завалили))
    продвинь это сообщение в соцсеть:  

  20. #20


    техны тут: ........Steam\SteamApps\common\sid meier's civilization v\Assets\Gameplay\XML\Technologies\
    Апдейт на глазок верный)
    стоимость исследований где-то была в описании эр игры, а изменение от городов, наверное, только скрипт
    продвинь это сообщение в соцсеть:  

+ Ответить в теме
Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Подскажите где скачать Civilization 5
    от SlowDrugs в разделе Civilization 5 - ПОЕХАЛИ!
    Ответов: 7
    Новое: 19.09.2011, 19:33
  2. Мы показали вам драму "Пиф-паф"! Россия и Грузия - кто прав, кто не прав? Думайте!
    от CAHTA в разделе Разговоры обо всём, кроме Цивилизации
    Ответов: 83
    Новое: 17.08.2011, 08:51
  3. Никак не пойму Civ5
    от Deni74 в разделе Civilization 5 - ПОЕХАЛИ!
    Ответов: 32
    Новое: 25.10.2010, 15:12
  4. Lua - скриптовый язык Civ5
    от Dynamic в разделе Цивилизованный учебник истории
    Ответов: 18
    Новое: 21.07.2010, 17:17
  5. Не пойму, что это, глюк?
    от Alex Taran в разделе Civ3 - Игровые вопросы
    Ответов: 8
    Новое: 24.11.2004, 21:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters