Alex Paen

lua скрипты и моды по изменению баланса

226 posts in this topic

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

Осталось решить собственно с локомотивами. Просто задрать им цену не хочется, а вот что хочется - чтоб модификатор возраста влиял на обслуживание меньше, базовая цена была выше (в разумных пределах), а самое главное, чтоб появилась шкурно обоснованная нужда беречь локи, если есть выбор между покупкой нового и использованием старого. В ТГ это решалось тем, что после определенного возраста продажная цена становилась равной нулю (правда там у старых локов начинался фейерверк со взрывами). Тут же, как я понимаю, модификатор цены впрямую завязан на возраст. Может можно его как-то нелинейно изменять? Пускай в первый год он продается по номиналу, а впоследствии чтоб цена продажи его резко падала.

Т.е., подытожу, чтоб увеличение цены обслуживания росло не так резко, как сейчас, а цена продажи, наоборот, очень быстро приходило к минимальным значениям. Но, если я правильно понимаю, эти вещи hard coded и повлиять на них невозможно?

2

Share this post


Link to post
Share on other sites
1 час назад, Alex Paen сказал:

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

Осталось решить собственно с локомотивами. Просто задрать им цену не хочется, а вот что хочется - чтоб модификатор возраста влиял на обслуживание меньше, базовая цена была выше (в разумных пределах), а самое главное, чтоб появилась шкурно обоснованная нужда беречь локи, если есть выбор между покупкой нового и использованием старого. В ТГ это решалось тем, что после определенного возраста продажная цена становилась равной нулю (правда там у старых локов начинался фейерверк со взрывами). Тут же, как я понимаю, модификатор цены впрямую завязан на возраст. Может можно его как-то нелинейно изменять? Пускай в первый год он продается по номиналу, а впоследствии чтоб цена продажи его резко падала.

Т.е., подытожу, чтоб увеличение цены обслуживания росло не так резко, как сейчас, а цена продажи, наоборот, очень быстро приходило к минимальным значениям. Но, если я правильно понимаю, эти вещи hard coded и повлиять на них невозможно?

Как мы его будем выкладывать? Сам всё напишешь?

Модификатор возраста можно изменить только увеличив возраст. Остальное, наверное, не раньше нормального АПИ, если оно действительно не hard coded.

Цену локомотивов можно изменить "модификатором". Сейчас у меня есть эмпирическая формула стоимости локомотивов, которая дает крошечную погрешность и результаты совпадают с ванильными.

1

Share this post


Link to post
Share on other sites

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

Самое неочевидное - стоимость обслуживания зданий. Эту инфу не вынести в интерфейс. Не понятно сколько платить.

Если надо заморочиться с переводом, могу подсобить.

0

Share this post


Link to post
Share on other sites
В 08.12.2016 в 19:57, Devilhunter сказал:

Цену локомотивов можно изменить "модификатором". Сейчас у меня есть эмпирическая формула стоимости локомотивов, которая дает крошечную погрешность и результаты совпадают с ванильными.

Можно обнародовать? Интересно.

В 08.12.2016 в 19:57, Devilhunter сказал:

Как мы его будем выкладывать? Сам всё напишешь?

Честно говоря, не думал об этом, хотелось просто поиграть с минимумом логических противоречий.

Но - без влезания в динамические изменения ценников скриптами даже в нашем "сугубо логичном" случае получается как в ваниле - после первых заработанных миллионов в год можешь делать все, что угодно. 

В 08.12.2016 в 22:58, Vitaro сказал:

Разделите на два мода: мод на пути и депошки, второй на технику.

По-моему, тут как раз прямая связь - уменьшая стоимости грузовым вагонам вместе с этим поднимаем цену на постройку инфры. Если их не связать, то в первом случае получится читомод, а во втором мод из разряда "хочешь хард на легком? на!"

0

Share this post


Link to post
Share on other sites

@Alex Paen 

Функция возвращает модификатор к стоимости единицы мощности. Единица мощности стоит $2,415k.

Формулой, конечно, назвать это сложно, однако, вот оно.

function speedCost(speed):
    if speed >= 55 and speed <= 68 then
        return 1
    elseif speed > 68 then
        if speed > 68 and speed <= 74 then
            return 1 + (speed - 68) * 0.000690
        elseif speed > 74 and speed <= 75 then
            return 1.0041400 + (speed - 74) * 0.0008295
        elseif speed > 75 and speed <= 90 then
            return 1.0049695 + (speed - 75) * 0.000620
        elseif speed > 90 and speed <= 99 then
            return 1.0142695 + (speed - 90) * 0.000804
        elseif speed > 99 and speed <= 135 then
            return 1.0215055 + (speed - 99) * 0.000924
        elseif speed > 135 and speed <= 180 then
            return 1.0547695 + (speed - 135)* 0.0009907
        elseif speed > 180 and speed <= 195 then
            return 1.0993510 + (speed - 180)* 0.0008337
        elseif speed > 195 and speed <= 200 then
            return 1.1118565 + (speed - 195)* 0.00125
        elseif speed > 200 and speed <= 230 then
            return 1.1181065 + (speed - 200)* 0.000894
        elseif speed > 230 and speed <= 240 then
            return 1.1449265 + (speed - 230)* 0.001035
        elseif speed > 240 and speed <= 300 then
            return 1.1552765 + (speed - 240)* 0.000825
        elseif speed > 300 and speed <= 375 then
            return 1.2047765 + (speed - 300)* 0.0007741
        elseif speed > 375 and speed <= 500 then
            return 1.262834  + (speed - 375)* 0.000679
        elseif speed > 500 and speed <= 750 then
            return 1.347709  + (speed - 500)* 0.00054
        elseif speed > 750 and speed <= 1000 then
            return 1.482709  + (speed - 750)* 0.00045
        elseif speed > 1000 then
            return 1.595709  + (speed - 1000)* 0.0001571
		end
    elseif speed < 55 then
        if speed >= 54 and speed < 55 then
            return 1 + (55 - speed) * 0.002485
        elseif speed >= 46 and speed < 54 then
            return 1.002485 + (54 - speed) * 0.00082
        elseif speed >= 41 and speed < 46 then
            return 1.009045 + (46 - speed) * 0.0016886801
        elseif speed >= 36 and speed < 41 then
            return 1.0174884005 + (41 - speed) * 0.002874
        elseif speed >= 32 and speed < 36 then
            return 1.0318584005 + (36 - speed) * 0.0039
        elseif speed >= 29 and speed < 32 then
            return 1.0474584005 + (32 - speed) * 0.00525
        elseif speed >= 28 and speed < 29 then
            return 1.0645584005 + (29 - speed) * 0.00583
        elseif speed >= 24 and speed < 28 then
            return 1.0703884005 + (28 - speed) * 0.008
        elseif speed >= 21 and speed < 24 then
            return 1.1023884005 + (24 - speed) * 0.0118112335
        elseif speed >= 20 and speed < 21 then
            return 1.137822101 + (21 - speed) * 0.015177899
        elseif speed >= 19 and speed < 20 then
            return 1.153      + (20 - speed) * 0.016
        elseif speed >= 18 and speed < 19 then
            return 1.169     + (19 - speed) * 0.019
        elseif speed >= 16 and speed < 18 then
            return 1.188    + (18 - speed) * 0.022
        elseif speed >= 14 and speed < 16 then
            return 1.232   + (16 - speed) * 0.030
        elseif speed >= 13 and speed < 14 then
            return 1.292  + (14 - speed) * 0.035
        elseif speed >= 12 and speed < 13 then
            return 1.327 + (13 - speed) * 0.045
        elseif speed >= 11 and speed < 12 then
            return 1.372 + (12 - speed) * 0.048
        elseif speed >= 10 and speed < 11 then
            return 1.42 + (11 - speed) * 0.064
        elseif speed >= 9 and speed < 10 then
            return 1.484 + (10 - speed) * 0.075
        elseif speed >= 8 and speed < 9 then
            return 1.559 + (9 - speed) * 0.094
        elseif speed >= 7 and speed < 8 then
            return 1.653 + (8 - speed) * 0.124
        elseif speed >= 6 and speed < 7 then
            return 1.777 + (7 - speed) * 0.162
        elseif speed >= 5 and speed < 6 then
            return 1.939 + (6 - speed) * 0.228
        elseif speed >= 4 and speed < 5 then
            return 2.167 + (5 - speed) * 0.343
        elseif speed >= 3 and speed < 4 then
            return 2.51 + (4 - speed) * 0.565
        elseif speed >= 2 and speed < 3 then
            return 3.075 + (3 - speed) * 1.135
        elseif speed >= 1 and speed < 2 then
            return 4.21 + (2 - speed) * 3.34
        elseif speed > 0 and speed < 1 then
            return 7.55 + (1 - speed) * 65.8
        end
    end         

 

1

Share this post


Link to post
Share on other sites

Походу модерские возможности в игре гораздо большие, чем можна было предположить. Прохожу третью миссию за США. После одного из квестов предложили на выбор +10% к доходности или -10% к обслуживанию техники.

1

Share this post


Link to post
Share on other sites
8 часов назад, Devilhunter сказал:

Походу модерские возможности в игре гораздо большие, чем можна было предположить. Прохожу третью миссию за США. После одного из квестов предложили на выбор +10% к доходности или -10% к обслуживанию техники.

Бери к доходности :), так как расходов больше чем только обслуживание. Возможности безграничны если ты игру сам написал...Проблема в том что lua дает возможность назначить любую команду под названием которое в голову взбредет, т.е. нет четкого списка команд, чтоб их в книжечке или интернете глянул.

0

Share this post


Link to post
Share on other sites

Вопрос никак не относящийся к балансу, но к скриптингу.

Заколебали дымы дизелей, которые по дымности даже паровозы оставляют позади. Решил потвикать строки particleSystem, но как-то пока дела не идут. Хотел завязать на год появления, чтобы появляющиеся позже дымили меньше. чем ранние. Пока луа ругается. Вообще меня бы устроило и полное отсутствие дымов, как на маневровых (ALCO HH 600 и Class V 100),  ноут мой дымообразование не очень любит, но можно ли как-то игнорировать строку particleSystem (и данные, что за ней) через луа? 

0

Share this post


Link to post
Share on other sites
44 минуты назад, Alex Paen сказал:

Вопрос никак не относящийся к балансу, но к скриптингу.

Заколебали дымы дизелей, которые по дымности даже паровозы оставляют позади. Решил потвикать строки particleSystem, но как-то пока дела не идут. Хотел завязать на год появления, чтобы появляющиеся позже дымили меньше. чем ранние. Пока луа ругается. Вообще меня бы устроило и полное отсутствие дымов, как на маневровых (ALCO HH 600 и Class V 100),  ноут мой дымообразование не очень любит, но можно ли как-то игнорировать строку particleSystem (и данные, что за ней) через луа? 

Ответ не про скрипты. Но есть мод уменьшающий насыщенность дыма. Недавно с немецкого сайта скачал.

0

Share this post


Link to post
Share on other sites
55 минут назад, INC(RED)IBLE сказал:

Но есть мод уменьшающий насыщенность дыма. Недавно с немецкого сайта скачал.

Я его тоже качал, как он появился. Но там решение неинтересное - просто изменена картинка дымной частицы, сделанная более прозрачной.

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

0

Share this post


Link to post
Share on other sites
13 часа назад, Alex Paen сказал:

  ноут мой дымообразование не очень любит

Когда проц или видеокарта начинают давать дымообразование ни одна компьютерная техника не любит. ;)

 

Ухожу, ухожу, ухожу. (с)

2

Share this post


Link to post
Share on other sites

Не выходит каменный цветок.

if data.metadata.transportVehicle and data.metadata.railVehicle then
            if data.metadata.railVehicle.engines.type == "DIESEL" and data.metadata.particleSystem then

Ругается на проверку типа локомотива (дизель), если пишу так как выше или добавляю номер ( data.metadata.railVehicle.engines[1].type == "DIESEL")

2016-12-12 16-10-47 Lua error.jpg

В чем ошибка?

полностью так:

addModifier("loadModel", function (fileName, data)
		if data.metadata.transportVehicle and data.metadata.railVehicle then
			if data.metadata.railVehicle.engines[1].type == "DIESEL" and data.metadata.particleSystem then
				data.metadata.particleSystem.emitters.lifeTime = ( 2020 - data.metadata.availability.yearFrom ) * 0.075
			-- data.metadata.particleSystem.emitters.size01[1] = ( 2020 - data.metadata.availability.yearFrom ) * 0.0125
			-- data.metadata.particleSystem.emitters.size01[2] = ( 2020 - data.metadata.availability.yearFrom ) * 0.015
			end	
		end
		return data
		end)

 

0

Share this post


Link to post
Share on other sites

Покрутил параметры дымов, пока получилось примерно так (более ранние чадят сильнее, на картинке три лока, ближний 1989 года, дальний 1946, а GP9 замешкался и на картинке его нет). Дымы еще зависят от мощности (вернее, пока видел два режима - полная мощность и холостой ход), на картинке - полная.

Адских дымищ, которым завидуют паровозы, больше нет.

 

2016-12-12 17-22-44 Transport Fever.jpg

 

p.s. кстати, глянул европейские тепловозы, везде кроме v 218 строки с дымами вообще отсутствуют в конфиге, а в 218 настройки именно такие, как у меня в в поздних дизелях. Надо было раньше туда посмотреть и не пришлось бы на тесты много времени тратить.

2

Share this post


Link to post
Share on other sites
2 часа назад, Alex Paen сказал:

Покрутил параметры дымов, пока получилось примерно так (более ранние чадят сильнее, на картинке три лока, ближний 1989 года, дальний 1946, а GP9 замешкался и на картинке его нет). Дымы еще зависят от мощности (вернее, пока видел два режима - полная мощность и холостой ход), на картинке - полная.

Адских дымищ, которым завидуют паровозы, больше нет.

 

2016-12-12 17-22-44 Transport Fever.jpg

 

p.s. кстати, глянул европейские тепловозы, везде кроме v 218 строки с дымами вообще отсутствуют в конфиге, а в 218 настройки именно такие, как у меня в в поздних дизелях. Надо было раньше туда посмотреть и не пришлось бы на тесты много времени тратить.

Не бережешь ты лес)))) 

0

Share this post


Link to post
Share on other sites

@Devilhunter  тут какая-то проблема с твоим скриптом.

Все это время я его крутил на USA и все было в порядке.

А попытка включить европейский сценарий приводит к вылету игры с такой вот ошибкой:

 

2016-12-12 19-58-51 Lua error.jpg

0

Share this post


Link to post
Share on other sites

народ, а где искать catchment area станций, остановок и складов? в res\models\model\station ничего внятного обнаружить не удалось.

0

Share this post


Link to post
Share on other sites

Завтра гляну. 

5 часов назад, Alex Paen сказал:

@Devilhunter  тут какая-то проблема с твоим скриптом.

Все это время я его крутил на USA и все было в порядке.

А попытка включить европейский сценарий приводит к вылету игры с такой вот ошибкой:

 

2016-12-12 19-58-51 Lua error.jpg

Выложи, пожалуйста, код скрипта. У меня запустился нормально. Быть может я в нём что-то исправил раньше.

0

Share this post


Link to post
Share on other sites

Вот изначальный mod.lua, который я скачал, без моих правок

 

mod.zip

0

Share this post


Link to post
Share on other sites

Мой дымоуменьшатель перестал ругаться на луа, но теперь вообще никакого эффекта не дает (пытаюсь уменьшить только за счет луа, без правки моделей, которые забекапил).

Что не так делаю?

runFn = function (settings)
		
		addModifier("loadModel", function (fileName, data)
			if data.metadata.transportVehicle and data.metadata.railVehicle then
				if data.metadata.railVehicle.engines then
					if data.metadata.railVehicle.engines[1].type == "DIESEL" and data.metadata.particleSystem then
					data.metadata.particleSystem.emitters.lifeTime = ( 2020 - data.metadata.availability.yearFrom ) * 0.05
					-- data.metadata.particleSystem.emitters.size01 = (( 2020 - data.metadata.availability.yearFrom ) * 0.0125 , ( 2020 - data.metadata.availability.yearFrom ) * 0.01 )
					end	
				end
			end
		return data	
		end	
		)
	end

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

Но и первая не работает - lifeTime после правки в моделях до выбранных значений однозначно уменьшает дымный хвост. А тут никакой реакции.

0

Share this post


Link to post
Share on other sites

Этот вроде бы не вылетает.

mod.zip

Что-то я не понимаю. Не работает. Уже специально даже цвет дыма менял скриптом. Ничего не дает.

0

Share this post


Link to post
Share on other sites

Круто, одно слово только заменить надо было :)

 

А насчет дымов странно очень. Если б еще ругалось, а то непонятно почему не срабатывает.

0

Share this post


Link to post
Share on other sites

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

 

AP_SMOKE_TF2_1.ZIP

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites
9 минут назад, Alex Paen сказал:

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

Думается мне, что стандартными скриптовыми модами мы исчерпали возможности модифицирования игры. Следующий этап это написание "миссий". Там возможностей гораздо больше. Однако это нужно исследовать. Прохожу сейчас вторую миссию за Европу. Хочу пройти игру полностью, а тогда разбирать скрипты миссий.

0

Share this post


Link to post
Share on other sites

А, ну я это первым делом сделал, там есть моменты интересные.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.