ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Торговля скриптами | страница 1 |
|
|
|
Канал X2: The Threat: «Торговля скриптами» |
|
|
Aggtaa
120 EGP
  Репутация: 8 Сообщения: 93 Откуда: Питер Зарегистрирован: 08.12.2003
 |
|
У кораблей, привязанных к станциям, регулярно сносит крышу на почве скриптов. Даешь ему команду - покупать по лучшей цене, а он повиснет себе в пространстве и не мычит и не телится... А в паре километров от него висит станция с грузом, который ему нужен. Кто-нибудь сталкивался с таким? Как лечится?
_________________ Aggtaa |
|
|
copperfild
175 EGP
  Репутация: 3 Сообщения: 926 Откуда: Saint-Petersburg Зарегистрирован: 15.05.2001
 |
|
Кстати, прикол по поводу автоматического снабжения.
Раньше как было - шип влетает в станцию, выгружает сырье. Дальше прикидывает, где сырье халявнее, вылетает, и чешет туда. Если по дороге кто-то скупает товар, и цена вырастатет, твой корабль по новой цене выгребает остатки, и доволен.
Теперь - прикидывает, где дешевле, летит туда. Если пока он летел, цена выросла - он тупо влетает в станцию, потом охреневает - ЕПС! цена-то другая. Опять прикидывает, и опять летит. У меня один корабль часа три между секторами мотался, пока сырье у меня на станции не кончилось. Пришлось вручную завозить.
Недодумка тут я думаю такая - если на станции, на которую летит сырьевик, изменяется цена, так, что он выходит за рамки условия закупки, шип должен сразу сворачивать на другую станцию... Гив ми ит ин патч!
_________________ Elite Dangerous EG Federal Great Space Discoverer
EVE Stella Polaris Admiral Copperfild, Ex-CEO of RTSQ. Уволен в запас по состоянию здоровья. |
|
|
violator666
337 EGP
   Рейтинг канала: 1(1) Репутация: 79 Сообщения: 1744 Откуда: Moscow (Мытищи) Зарегистрирован: 19.09.2001
 |
|
они еще кажись летят дальше чем надо
или туда где больше и дальше ... чето такое
_________________ Attention All Departing Pirates: Pilots have been seen in this sector |
|
|
Aggtaa
120 EGP
  Репутация: 8 Сообщения: 93 Откуда: Питер Зарегистрирован: 08.12.2003
 |
|
Еще одно забавное наблюдение - если два транспорта с одной и той же станции летят за одним и тем же грузом (buy best), то первый, залетев куда-нибудь выгребает оттуда все подчистую, а второй - следом за ним - ломится туда же! Там уже и пусто и цены заоблачные...
_________________ Aggtaa |
|
|
Zyoma
396 EGP
  Репутация: 36 Сообщения: 1618 Откуда: Ростов-папа Зарегистрирован: 07.02.2001
 |
|
Aggtaa : |
Еще одно забавное наблюдение - если два транспорта с одной и той же станции летят за одним и тем же грузом (buy best), то первый, залетев куда-нибудь выгребает оттуда все подчистую, а второй - следом за ним - ломится туда же! Там уже и пусто и цены заоблачные...
|
Это нормально ИМХА. Так и в ХТ было. Сунулся второй транспорт на станцию, обломался, выбрал новую buy best target и полетел...
|
|
|
Nekto
145 EGP
    Репутация: 15 Сообщения: 389 Откуда: Москва Зарегистрирован: 22.12.2001
 |
|
угу старые фишки плин
Цитата: |
они еще кажись летят дальше чем надо
или туда где больше и дальше ... чето такое
|
дальше летят ет верно я один свой кораблик у паранидов перехватил (на станции стоит макс 1 прыжок станция в дыре)
|
|
|
ZViruS
150 EGP
  Репутация: 20 Сообщения: 492 Откуда: Украина, Херсон Зарегистрирован: 10.11.2003
 |
|
Похоже получается, что кораблик, прилетев на станцию, видит, что ресурс уже не по подходящей цене, начинает искать его же на других станциях, при этом исходя из дальности, но отталкиваясь от текущего положения. Вот они и летают хрен знает куда...
Я для товаров класса "S" использую экспрессы - у них скорость высокая, хотя и они порой летают слишком долго.
_________________ Горят над нами, горят,
Помрачая рассудок.
Бриллиантовые дороги
В темное время суток. |
|
|
RDestroyer
175 EGP
  Рейтинг канала: 1(3) Репутация: 22 Сообщения: 1021
Зарегистрирован: 15.05.2002
 |
|
copperfild : |
Недодумка тут я думаю такая - если на станции, на которую летит сырьевик, изменяется цена, так, что он выходит за рамки условия закупки, шип должен сразу сворачивать на другую станцию...
|
Ага, это сейчас все жалуются что игра тормозит, а знаешь как она начнет тормозить, если каждый транспортник будет каждые несколько секунд проверять цену на станции...
|
|
|
akm
470 EGP
    Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002
 |
|
А я жутко разочарован в скрипте "Sell ware for best price". В текущем секторе (Red Light) стоят 3 фабрики совсем без батареек, а мой ТР берет батарейки с моей электростанции и понесся... 3 сектора пересек... и дальше бы полетел, если бы я его не остановил А количество прыжков ограничить не могу, т.к. тогда кристаллы придется вручную подвозить.
Т.е. надо эти торговые скрипты фиксить, т.к. действительно кривые.
Цитата: |
Ага, это сейчас все жалуются что игра тормозит, а знаешь как она начнет тормозить, если каждый транспортник будет каждые несколько секунд проверять цену на станции...
|
В теле скрипта можно задавать паузу, чтобы разгрузить проц. Скажем сделать опрос 1 раз в 30-60 сек. Но навороченный скриптец безусловно добавит тормозов игре.
|
|
|
akm
470 EGP
    Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002
 |
|
Такс, разобрался я в текущих торговых скриптах. Как эти скрипты улучшить, на данный момент не совсем ясно, т.к. мать их, Эгософт, не потрудился сделать нормальные сэйвы. Х2 загружает весь дамп памяти из сэйва (всключая скрипты), и использует скрипты из папочки scripts только в момент когда начинаешь новую игру!
Зато могу рассказать как эти торговые скрипты на самом деле работают. Итак, закупка ресурсов (get ware best)
1. Если на фабрике ресурс в избытке, транспорт будет стоять и потихоньку разгружаться, пока его трюм не освободится. (проверка каждые 7-15 сек)
2. Транспорт вылетает за ресурсом в момент, когда на фабрике имеется 90% данного ресурса или менее.
3. То количество ресурса, за которым он полетит, определяется в момент, когда он еще дома. Т.е. если за время его полета, фабрика выработает ресурс с 90% скажем до 60%, он привезет вам только 10% и не батарейкой больше, даже если трюм еще не заполнен
4. Вторым ограничением на количество ресурса являются деньги на фабрике. Количество груза "для заказа" определяется опять же в момент, когда транспорт еще дома, по формуле:
({деньги} / {макс. цена 1 ед.} ) * (1.4/{кол-во осн. ресурсов})
Т.е., к примеру для электоростанции, имеем 1 основной ресурс: кристаллы. => Транспорт поедет покупать кристаллы на сумму денег, на 40% большую чем финансы, которой располагает электоростанция. И если к моменту покупки, станция не заработает эти экстра 40%, транспорт может стать в ступор (хз как там работает команда "buy $amount units of $ware to a max. price of $maxprice Cr", т.к. это не скрипт, а исполняемая команда).
Совет: держите денежек на фабриках с запасом на полный трюм ресурса по макс. цене (установленной на фабрике).
5. Какая бы не была цена на ресурс на соседней трейдинг-стейшн, как бы далеко транспорту не пришлось бы перется (в пределах установленных на ф-ке Jumps), он в первую очередь понесется за ресурсом на фабрику! И только, когда в заданном радиусе Jumps не останется ни одной фабрики продающей, необходимый ресурс, наш транспорт соизволит слетать на соседнюю торговую станцию.
6. Выбор станции/фабрики для закупки производится лишь однократно в момент перед вылетом. и даже так
По каким критериям производится выбор (т.е. мин. цена или мин. дистанция или "золотая середина") - неизвестно.
7. Если по прибытию в пункт назначения там не оказалось товара, либо цена выше допустимой, транспорт будет стоять и ждать , проверяя данные условия каждые 7-15 сек.
8. После закупки транспорт просто будет стоять и ждать еще 10-20 сек и только затем поплывет домой
Сами скрипты написаны неплохо, но оптимизировать (с целью экономии процессорного времени) там есть что.
|
|
|
akm
470 EGP
    Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002
 |
|
Такс, разобрался я в текущих торговых скриптах. Как эти скрипты улучшить, на данный момент не совсем ясно, т.к. мать их, Эгософт, не потрудился сделать нормальные сэйвы. Х2 загружает весь дамп памяти из сэйва (всключая скрипты), и использует скрипты из папочки scripts только в момент когда начинаешь новую игру!
Зато могу рассказать как эти торговые скрипты на самом деле работают. Итак, закупка ресурсов (get ware best)
1. Если на фабрике ресурс в избытке, транспорт будет стоять и потихоньку разгружаться, пока его трюм не освободится. (проверка каждые 7-15 сек)
2. Транспорт вылетает за ресурсом в момент, когда на фабрике имеется 90% данного ресурса или менее.
3. То количество ресурса, за которым он полетит, определяется в момент, когда он еще дома. Т.е. если за время его полета, фабрика выработает ресурс с 90% скажем до 60%, он привезет вам только 10% и не батарейкой больше, даже если трюм еще не заполнен
4. Вторым ограничением на количество ресурса являются деньги на фабрике. Количество груза "для заказа" определяется опять же в момент, когда транспорт еще дома, по формуле:
({деньги} / {макс. цена 1 ед.} ) * (1.4/{кол-во осн. ресурсов})
Т.е., к примеру для электоростанции, имеем 1 основной ресурс: кристаллы. => Транспорт поедет покупать кристаллы на сумму денег, на 40% большую чем финансы, которой располагает электоростанция. И если к моменту покупки, станция не заработает эти экстра 40%, транспорт может стать в ступор (хз как там работает команда "buy $amount units of $ware to a max. price of $maxprice Cr", т.к. это не скрипт, а исполняемая команда).
Совет: держите денежек на фабриках с запасом на полный трюм ресурса по макс. цене (установленной на фабрике).
5. Какая бы не была цена на ресурс на соседней трейдинг-стейшн, как бы далеко транспорту не пришлось бы переться (в пределах установленных на ф-ке Jumps), он в первую очередь понесется за ресурсом на фабрику! И только, когда в заданном радиусе Jumps не останется ни одной фабрики продающей, необходимый ресурс, наш транспорт соизволит слетать на соседнюю торговую станцию.
6. Выбор станции/фабрики для закупки производится лишь однократно в момент перед вылетом. и даже так
По каким критериям производится выбор (т.е. мин. цена или мин. дистанция или "золотая середина") - неизвестно.
7. Если по прибытию в пункт назначения там не оказалось товара, либо цена выше допустимой, транспорт будет сидеть и ждать , проверяя данные условия каждые 7-15 сек.
8. После закупки транспорт просто будет сидеть на этой станции и ждать еще 10-20 сек и только затем поплывет домой
Сами скрипты написаны неплохо, но оптимизировать (с целью экономии процессорного времени) там есть что.
И огромное спасибо Dimaxxу за распаковщик!
|
|
|
Dusk
200 EGP
   Репутация: 61 Сообщения: 412 Откуда: SPB Зарегистрирован: 30.11.2003
 |
|
akm : |
Зато могу рассказать как эти торговые скрипты на самом деле работают. Итак, закупка ресурсов (get ware best)
5. Какая бы не была цена на ресурс на соседней трейдинг-стейшн, как бы далеко транспорту не пришлось бы переться (в пределах установленных на ф-ке Jumps), он в первую очередь понесется за ресурсом на фабрику! И только, когда в заданном радиусе Jumps не останется ни одной фабрики продающей, необходимый ресурс, наш транспорт соизволит слетать на соседнюю торговую станцию.
6. Выбор станции/фабрики для закупки производится лишь однократно в момент перед вылетом. и даже так
7. Если по прибытию в пункт назначения там не оказалось товара, либо цена выше допустимой, транспорт будет сидеть и ждать , проверяя данные условия каждые 7-15 сек.
|
5. Я думаю это сделано с целью стабилизировать общую экономику и не вводить ее в ступор. Например: Цены низкие -> торг. станции накапливают товар. Цены выросли -> пока торговые станции продают товар, это дает возможность фабрикам его накопить и понизить цену. А если все будут всегда летать на торговые станции, то пока цены будут высокие всем будет
Т.е. это дает кратковременную стабильность.
6. Вообще-то там скрипт trade.loop.getwarebest,
и есть такая штука while 1
7. Мои транспорты не ждут, прилетая, если там , они летят в другое место
|
|
|
Dusk
200 EGP
   Репутация: 61 Сообщения: 412 Откуда: SPB Зарегистрирован: 30.11.2003
 |
|
2 akm:
Транспорт действительно будет сидет на левой базе, если на homebase товар есть. Я даже в игре поначалу искал, куда это мой транспорт пропал? А потом смотрю, Ё, сидит непонятно где, баклуши бьет
_________________ ИМХО - Истинное мнение хрен оспоришь. |
|
|
akm
470 EGP
    Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002
 |
|
По поводу п.5 согласен. Я не против, чтобы неписи на торговых станциях товар не трогали Но своим транспортам я это пофикшу, как только такая возможность представится.
Цитата: |
Транспорт действительно будет сидет на левой базе, если на homebase товар есть.
|
Нету там такой проверки. Ладно, вечерком еще гляну.
Цитата: |
6. Вообще-то там скрипт trade.loop.getwarebest,
и есть такая штука while 1
|
А то я не заметил!
|
|
|
Dusk
200 EGP
   Репутация: 61 Сообщения: 412 Откуда: SPB Зарегистрирован: 30.11.2003
 |
|
2akm
Ну сам хоть в игре попробуй, дай транспорту команду buy best, он что, прилетит, если там дорого, будет ждать? Он полетит на другую фабрику. В игре проверь А потом для чего в имени файла слово loop?
А по поводу тормозов у меня есть подозрения на команду
"fly to ..."
_________________ ИМХО - Истинное мнение хрен оспоришь. |
|
|
xmagnat
280 EGP
   Репутация: 54 Сообщения: 1244 Откуда: Екатеринбург Зарегистрирован: 06.12.2003
 |
|
Торговый скрипт надо править: Транспорт должен лететь не тогда - когда на складе останется 90 % ресурса, а в завис. от его скорости и грузоподъмности. Прилетя за рес. на станцию, транспорт должен проверить кол-во на базе - сколько ресурса действительно нужно. Если цена неприемлима то нужна искать другого поставщика, причем немедля. У НПС все должно быть также, как у игрока.
|
|
|
ZViruS
150 EGP
  Репутация: 20 Сообщения: 492 Откуда: Украина, Херсон Зарегистрирован: 10.11.2003
 |
|
А вот соображения по поводу полетов. Из личного наблюдения имею:
сектора 3х3 т.е.
1 -- 2 -- 3
4 -- 5 -- 6
7 -- 8 -- 9
Даем команду кораблю лететь из сектора 7 в сектор 3 (модель треугольника). Наш кораблик выбирает путь 7-8-9-6-3 (катеты) и как не крути по другому не получалось. Почему он отказвается лететь через 7-4-5-2-3, что в итоге получится короче, т.к. он пойдет по гипотенузе - самому короткому пути.
Или может я чего не допонимаю? Проверял на транспорте. Запускал из Red Light в The Hole. Пробовал и из селиконового рудника Ore Belt за батарейками в The Wall. Их несло через President's End
в первом случае и Cloudbase Southeast во втором. Кариес аднака.
Особенно во втором случае. т.к. рудник стоит ближе к северным воротам, а он прется через восточные.[/code]
_________________ Горят над нами, горят,
Помрачая рассудок.
Бриллиантовые дороги
В темное время суток. |
|
|
Dusk
200 EGP
   Репутация: 61 Сообщения: 412 Откуда: SPB Зарегистрирован: 30.11.2003
 |
|
2Akm: Смотри:
"!ship.cmd.getwarebest.pl.xml" просто вызывает "!ship.cmd.getwarebest.std" .
Файл "!ship.cmd.getwarebest.std" также просто вызывает "!trade.loop.getwarebest"
Далее смотрим:
Файл "!trade.loop.getwarebest"
---------------------------------
...
006 Loop 1
...
21. Получаем количество товара, которое надо своей базе. (A)
22. Получаем макс. количество товара. (B)
23. Если надо меньше 1/10, то переходим на 006.
...
53. Находим станцию, куда полетим.
55. Если не нашли, опять ищем станцию, но уже по умному(наверное).
56. Если не нашли, идем на 006.
59. Станция найдена, вызываем trade.getwareandreturnhome
61. Конец цикла 006.
----------------------------------
Смотрим файл "trade.getwareandreturnhome"
---------------------------------
...
18. Задаем переменную, сколько мы реально получили.
...
Летим к станции
...
38. Пытаемся получить товар.
...
48. Смотрим, мы вообще что-нибудь получили, или пока летели
цена поднялась?
49. Если мы ни фига не получили и есть команда "ни шагу назад",
мы опять идем в "!trade.loop.getwarebest"
(* nothing bought, then return if requested and do not fly home)
...
Летим домой
---------------------------------
Т.о. Мы на каждом шаге цикла 006 проверяем, сколько товара нам надо,
а затем туда летим, и так, пока не купим.
А теперь момент: Летают 2 транспорта за батарейками.
Один тарнспорт привозит товар на свою базу. Второй летит за товаром,
прилетает, ОПА, товара нет. Е. Смотрит, а на 21,22 - так ведь уже не надо
нихрена. И что делает - переходит на 006. И так пока беза снова не нужен
будет товар. Т.е. остается на левой базе.
_________________ ИМХО - Истинное мнение хрен оспоришь. |
|
|
stalkerg
235 EGP
  Репутация: 2 Сообщения: 755 Откуда: Москва Зарегистрирован: 15.01.2002
 |
|
Так... блин дамп???
Они совсем обленились??? Теперь понятно почему столько весит сейв... там же дофига излишней инфы(указатели... списки... и т.п.)
они чего немогли создать БД? Сохранять дольше... но зато меньше весит.
_________________ Красноглазый пионер. LOR
Аниме-космосим - скоро на ваших мониторах! |
|
|
Dimaxx
1016 EGP
      Рейтинг канала: 1(5) Репутация: 204 Сообщения: 5811 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Короче, работы непочатый край...
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
|
|
|
Канал X2: The Threat: «Торговля скриптами» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Не волнуйся, Сатанеич, мы все от забывчивости в ваши профили напоминалки для себя пишем. (Nadin о предупреждениях)
|
» Торговля скриптами | страница 1 |
|