Перейти к содержанию

Dagot_Prolaps

Граждане
  • Постов

    936
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Dagot_Prolaps

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

     

     

    if (условие для следования)

    if ( status == 0 )

    StopCombat

    AIFollow, Player, 0, 0, 0, 0

    set status to 1

    endif

    endif

     

    if (условие для прекращения следования)

    if ( status == 1 )

    Что здесь написать чтобы он прекратил идти за героем, но больше не нападал на него??

    set status to 0

    endif

    endif

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

  3. а раз нет возможности спавнить один вид дреугов в зависимости от сезона

     

    МФСД учил: есть команды добавления и убирания объектов из существующих левеллистов. Было показано на примере изгнания крыс с острова по щелчку активатора.

    Считывание сезона сделать легко. Добавить активатор в какую-нибудь частопосещаемую зону - и как только ГГ там появится, левеллисты будут пересобраны.

    Или ещё проще - через стартовый скрипт, вообще без активаторов.

  4. Если вручную указывать путь к иконкам, то ваш плагин со свитками совместим с чим-модом, потому что свитки в нём не затронуты (а затронуты сами зачарования, а это другие объекты). Если выделить из этого плагина только изменения свитков, то наверное можно смерджить, но каждый раз когда я пытался смерджить мод хоть с чем-нибудь, всегда откуда-то выскакивало куча мусора в виде непонятных неудаляемых изменений ячеек.

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

     

     

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

     

    Так ИДы-то одни и те же. Я смотрел, там не все образцы ещё распределены по миру, многие просто в тестовой камере. Так что следующие полгода Эл будет распределять их, а новых вряд ли предвидится.

  5. Могу оказать помощь, во-первых, с интеграцией в мод Magic Markers

     

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

     

    Во-вторых, было бы неплохо как минимум подшаманить с ценами ;) На ингредиенты те же. Да и вообще подумать над алхимией.

     

     

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

     

    В-третьих - стоит ли заморачиваться под совместимость с MFR?..

     

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

     

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

    Первостепенная цель - довести боёвку до ума. А для этого главное населить мир способными врагами, сражаясь с которыми, надо думать о тактике вместо закликивания.

  6. Чиф, помнишь ты хотел ребаланс цен на всё? Посмотри коэфы в секте экселя, там все источники формул уместились на 1 листе, а сами формулы (для всех параметров) уже загружены на все ячейки шмоток. Я также вывел в таблицы все шмотки из МФР, так что если тебя не затруднит - тебе остаётся только вручную прописать материалы и типы оружия для них, и тогда получшт ребаланс МФР в своём стиле. Я не уверен, что моего терпения хватит)) Но я не прочь скачать ту же таблицу с уже заполненными материалами)

  7. Как тебе такое, Илон Маск?

     

     

    if ( menumode == 1 )
    return
    endif
     
     
    if ( rise == 0 )
    if ( GetHealth <= 0 )
    set timer to ( timer + GetSecondsPassed )
    if ( timer > 10 )
    set risechance to ( GetLevel * 5 )
    if ( risechance >= Random 101 )
    Resurrect
    set stat to ( GetHealth * 0.5 )
    SetHealth stat
    Playsound3D "bonewalkerSCRM"
    endif
    set timer to 0
    set rise to 1
    endif
    endif
    endif
     
     
    Секция висит на ходячих трупах прямо перед рандомизатором, повторное заражение в конце рандомизатора.
     
    Трупы восстают с половиной здоровья с вероятностью своего пятикратного уровня.
  8. Я сделал скрипт на ауру мора - в игре работает хорошо.

     

    Олол, а если прикрутить DontSaveObject в начале комбинированного скрипта рандомизации статов и заражения. Наткнулся на такое существо, статы и размер рассчитались, но из битвы мы не вышли а сохранились прям так. При следующей загрузке сейва эта же копия существа снова пересчитает свои статы и сменит размер? Ведь переменная done == 1 не запишется в сейв.

  9. А для больных существ того же блудмуна вообще нет ни скрипта, ни DontSaveObject

    Они тоже забагованы?

     

    Если не брать в счёт "бага" разнообразие болезней у существ с одним ИД, то в чём принципиальная разница между стандартным скриптом заражения и тем же скриптом, но без DontSaveObject ?

     

    Если уж повторно заразил скриптом - наоборот надо сохранять эти данные, а не запрещать сохранение.

  10. А вот это уже лишний глобальный стартовый скрипт, который будет работать и нагружать игру вечно. 

     

    Я правильно понял, что если мы вешаем на кричура рандомизатор статов в том или ином виде, то строчка DontSaveObject противопоказана?

  11. А в чём укуренность? В мооре нет аур, хотя это такой элементарный типовой скрипт. Я лишь хочу узнать, не упустил ли чего-то важного, что может сказаться на работоспособности игры.

    В частности, как на ней скажется отсутствие

    DontSaveObject

    ?

  12. А зачем этот рандом?

    Для универсальности, чтобы не плодить скрипты заражённых.

     

     

    Кстати, как думаете, если специально для поднявшихся спящих сделать особый скрипт, с блоком Ауры Мора сразу перед стандартным блоком рандомизации статов:

     

     
    if ( GetDisabled != 1 )
    if ( GetDistance Player <= 1000 )
    set timer to ( timer + GetSecondsPassed )
    if timer > 3
    set var to Random 4
    if ( var == 0 )
    player->addspell "ash woe blight"
    elseif ( var == 1 )
    player->addspell "black-heart blight"
    elseif ( var == 2 )
    player->addspell "chanthrax blight"
    else
    player->addspell "ash-chancre"
    endif
    set timer to 0
    endif
    endif
    endif
     

     

    Это устроит ад и израиль неподготовленному игроку, решившему полезть на спящего, который ещё не стал Нереварином.

     

    Пока ГГ вблизи спящего, каждые 3 секунды он будет заражаться рандомной моровой болезнью.

     

    Подводные камни?

  13. если один вылечится, то вылечатся все копии и наоборот.

     

     

     

    Ок, а что если совместить этот скрипт с рандомизатором статов, прикрутив и к нему рандомизацию и поставив сразу после блока с рандомизатором статов?

     

    Вот пример для моровиков:

     

    short done
    short var
    float stat
    float coef
     
    if ( done == 1 )
    return
    endif
     
    set stat to GetStrength
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetStrength stat
     
    set stat to GetEndurance
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetEndurance stat
     
    set stat to GetIntelligence
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetIntelligence stat
     
    set stat to GetWillpower
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetWillpower stat
     
    set stat to GetAgility
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetAgility stat
     
    set stat to GetSpeed
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetSpeed stat
     
    set stat to GetLuck
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetLuck stat
     
    set stat to GetMagicka
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetMagicka stat
     
    set stat to GetFatigue
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetFatigue stat
     
    set stat to GetHealth
    set coef to Random 41
    set coef to ( coef + 80 )
    set coef to ( coef / 100 )
    set stat to ( stat * coef )
    SetHealth stat
     
    set stat to GetScale
    set coef to ( coef - 1 )
    set coef to ( coef * 0.75 )
    set coef to ( coef + 1 ) 
    set stat to ( stat * coef )
    setScale stat
     
    if ( GetBlightDisease == 0 )
    set var to Random 4
    if ( var == 0 )
    AddSpell "ash woe blight"
    elseif ( var == 1 )
    AddSpell "black-heart blight"
    elseif ( var == 2 )
    AddSpell "chanthrax blight"
    else
    AddSpell "ash-chancre"
    endif
    endif
     
    set done to 1
     
     
    End

     

    Такое нормально сработает?

  14. Подробно изучить, здесь есть встроенный определитель врагов:

     

     

     
    begin _Accuracy
     
    float weaponSkill
    float weaponSkillOld
    float weaponDrawn
    float temp
    float temp1
    float timer
    float timer2
     
    long Enemy
    long EnemyOld
    long EnemyRefType
    long PCRef
     
    float fBaseAB
    float fBaseDB
    float fAB
    float fDB
    float fABtot
    float fDBtot
     
    short doOnce
    short weaponType
    short bow
    short sUpdate
    float pAgility
    float pLuck
    float pAgilityOld
    float pLuckOld
    float EnAR
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 1. initialization
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
     
    If ( charGenState != -1 )
    return
    Endif
     
    If ( MenuMode == 1 )
    return
    Endif
     
    Set timer to ( timer + GetSecondsPassed )
    Set timer2 to ( timer2 + GetSecondsPassed )
     
    If ( doOnce == 0 )
     
    ; 15 sec bootup delay
    If ( timer <= 5 )
    return
    Endif
     
    set fBaseAB to Player->GetAttackBonus
    set fBaseDB to Player->GetDefendBonus
    set pAgility to Player->GetAgility
    set pLuck to Player->GetLuck
     
    set fAB to 100
    set fDB to -50
    set fABtot to fAB + fBaseAB
    set fDBtot to fDB + fBaseDB
     
    Player->SetAttackBonus, fABTot
    Player->SetDefendBonus, fDBtot
     
    set doOnce to 1
    set sUpdate to 0
    set Enemy to 0
    set EnemyOld to 0
    set weaponSkill to 1
    set weaponSkillOld to 0
    Endif
     
    If ( timer <= 0.2 )
    return
    Endif
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 2. fast timer block
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
    setx pcref to xGetRef, "player"
    setx Enemy to pcref->xGetCombat
     
    ifx ( Enemy )
    else
    setx enemy to xGetPCTarget
    endif
     
    ifx ( Enemy )
    else
    return
    endif
     
    setx EnemyRefType to enemy->xreftype
    if ( EnemyRefType == 1095062083 )
    elseif ( EnemyRefType == 1598246990 )
    else
    return
    endif
     
    ; if enemy has changed, run UpdateSpells block
     
    if ( Enemy != EnemyOld )
    if ( Player->GetWeaponDrawn )
    set sUpdate to 1
    ;messagebox, "Enemy updated!"
    endif
    endif
     
    set EnemyOld to Enemy
     
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 3. slow timer block
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
     
    If ( timer2 > 1 ) ; updates combat stats every second
     
    if ( Player->GetWeaponDrawn )
     
    set weaponDrawn to 1
    set weaponType to Player->GetWeaponType
    if ( weaponType == -1 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetHandToHand
    elseif ( weaponType == 0 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetShortBlade
    elseif ( weaponType < 3 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetLongBlade
    elseif ( weaponType < 6 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetBluntWeapon
    elseif ( weaponType == 6 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetSpear
    elseif ( weaponType < 9 )
    set bow to 0
    set temp1 to 1
    set weaponSkill to Player->GetAxe
    else
    set bow to 1
    set temp1 to 1
    set weaponSkill to Player->GetMarksman
    endif
     
    if ( weaponSkill < 1 )
    set weaponskill to 1
    endif
     
    set pAgility to player->getAgility
    if ( pAgility < 1 )
    set pAgility to 1
    endif
     
    set pLuck to Player->GetLuck
    if ( pLuck < 1 )
    set pLuck to 1
    endif
     
    if ( weaponSkill != weaponSkillOld )
    set sUpdate to 1
    elseif( pAgility != pAgilityOld )
    set sUpdate to 1
    ;messagebox, "Skill updated!"
    endif
     
    set weaponSkillOld to weaponSkill
    set pAgilityOld to pAgility
    set pLuckOld to pLuck
    endif
    endif
     
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 4. Update Spells block
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
     
    ifx ( sUpdate ) ; this block is run if enemy or weapon skill has changed
    set sUpdate to 0
     
    set fBaseAB to Player->GetAttackBonus
    set fBaseAB to ( fBaseAB - fAB )
     
    set fBaseDB to Player->GetDefendBonus
    set fBaseDB to ( fBaseDB - fDB )
     
    set fDB to ( -50 - ( 0.2*pAgility + 0.1*pLuck )*( 0.75 ) )
     
    set fAB to ( 100 - ( weaponskill + 0.2*pAgility + 0.1*pLuck )*( 0.75 ) )
    set fABTot to fAB + fBaseAB
    set fDBTot to fDB + fBaseDB
     
    Player->SetAttackBonus, fABTot
    Player->SetDefendBonus, fDBTot
     
    ifx ( temp1 )
    set temp to ( 2 + weaponSkill * 0.02 )
    XSetGSfloat 1032 temp ; ,fCombatCriticalStrikeMult 4
    set temp to ( 0.5 - weaponSkill * 0.004 )
    XSetGSfloat 1109 temp ; ,,fWeaponDamageMult 0.1
    set temp1 to 0
    endif
     
    ifx ( bow )
    set temp to ( pLuck * 0.4 )
    set temp1 to ( player->getmarksman * 0.5 )
    set temp to ( temp + temp1 )
    XSetGSfloat 1124 temp ; fProjectileThrownStoreChance
    set temp1 to 0
    set bow to 0
    endif
     
    set EnAR to ( 500 / weaponskill )
    set EnAR to EnAR + ( 200 / ( pAgility + 10 ) )
    set EnAR to EnAR - 5
    if ( EnAR < 0 )
    set EnAR to 0
    endif
     
    xSetRef Enemy
    setarmorbonus EnAR
    endif
     
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 5. resets timers
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
     
    set timer to 0
     
    If ( timer2 > 1 )
    set timer2 to 0
    Endif
     
    end _Accuracy

  15. Посмотрел я предложенный выше скрипт _Accuracy, что и говорить, он монструозен, грандиозен, монументален и... костылен)

     

    Момент с определением текущего врага с помощью МВСЕ-команд

     
    setx pcref to xGetRef, "player"
    setx Enemy to pcref->xGetCombat
    ifx ( Enemy )
    else
    setx enemy to xGetPCTarget
    endif
     
    надо определённо взять на вооружение.
     
    Именно это позволяет потом не скалировать весь мир от навыков ГГ через ГМСТ, а напрямую менять броню текущего врага, реализуя таким образом зависимость урона от скила ГГ. Но не урона от скила врагов, да.
     
    Думаю, скалирование урона от навыков ещё найдёт более изящную реализацию, проблема же промахов разрешилась заменой звука. Как до этого не догадались за 16 лет - ума не приложу (хотя и не припомню чтобы слышал отдельный звук мисс - всегда как удар по воздуху)
  16. Из-за чего? Забагованный?

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

    А проблему непопаданий (которая исчезает уже к прокачке скила на 50) можно было бы решить, если научить игру распознавать и отличать удар по воздуху от удара по цели+промаха. Если прикрутить к промаху звук не удара по воздуху, а парирования (соответственно 4 разных звука в зависимости от брони), то это сразу бы значительно сгладило fuuu-эффект.

  17. А Нормальный - это конечно твой?

     

    А существует ещё какой-то?  :trololo:

    (Чифа не в счёт, там только оружие и доспехи, Ларкина тоже - там только спеллы)

     

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

     

     

    Хех, ну попробуй сперва пройди тот же новый дум на самой высокой сложности, старожил) Или другую игру, в которой есть действительно геймплейная боёвка (хотя таких и мало). Вот именно после таких игр и наступает истинное прозрение, после которого примитив одиночных Свитков с тамошним закликиванием до момента когда "ой, вот это пушка на 90 урона, теперь я всех ваншочу!" не вызывает желания играть, не смотря на атмосферу и прочие достоинства.

     

    Ага, al_Mod и старую версию EVA из 1.5 - 2.0 ты наверно не застал. 

     

    Застал, причём застал уж поболее многих) Шаблон перков из той версии - это действительно был прорыв, а прочие накрутки овердофига хп мобам (наверное, чтоб закликивание не выходило из моды даже на 50 уровне? :trololo: ) - это назвать балансировкой язык не поворачивается. А сверх этого что там было из геймплея? Несколько новых существ, и больше ничего.

    К чему же пришли? Добавили тонну шмоток и дофига существ? Круто. Вот только шмотки с примерно оригинальными статами (читай васянскими, по 70-90 дамага у лучших), а у существ опять тонны хп + 1 спам-заклинание если маг (в лучшем случае 2 разных спелла, вот это проработка, ага).

    Ах да, ещё же модуль перков, который уродует игру по умолчанию через гмст, и возвращает всё к ванильным значениям на полной прокачке, да к тому же скалирует весь мир от прогресса ГГ. Неудивительно что после подобных плагинов "ребаланс" стал нарицательным мемом. Ну разумеется, ведь это уничтожение и без того плохого баланса оригинальной игры! Вот поэтому многие теперь просто плюются, завидев не то что таблицу в экселе, а даже намёк на изменение баланса, так как ожидают ухудшения, а не улучшения геймплея. И справедливо ожидают, благодаря таким как Эл, авторы "Возвращения" для готики и прочим горе-плагиностроителям. Именно это и бывает, когда спец по графону или левелдизайну лезет в совершенно не свою отрасль, в которой он ничено не смыслит.

    Но я не из таких. Я смыслю в боёвке и геймплее. Мне плевать на изменение в сотый раз цвета текстуры скаттла и выкашивание висящей в воздухе травы - именно то чем занимались МФРщики в течение 6 лет. Поэтому я туда не лезу и не создаю про это темы. Но мне не плевать на баланс и геймплей. Поэтому я создаю темы и улучшаю игру. А всех критиков готов до бесконечности тыкать носом в их дурной вкус, проистекающий из-за банальной кривизны рук (потому что в том же новом думе их смешают со скаттлом даже на первой сложности, равно как и в любой другой игре, где требуется хоть какой-то скилл)

     

     

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

     

     

    Вот-вот. И сразу мгновенное подтверждение моих слов.

  18. Элу пофиг на баланс в своём репаке, так что тут мимо, таблицы выкладывались не для него и не для васек с улицы. В Морр играют до сих пор не ради баланса (поскольку его до недавнего времени не было), а исключительно ради атмосферы и потакания прочим синдромам утёнка. Но если таки довести его геймплей (и баланс, без которого геймплей хренов) до ума, то будет ещё одна веская причина играть в него, и геймплейно эта игра будет даже на равных со скайримом.

  19. Это очень важные скрипты которые заражают повторно если было вылечено, и dontsave чтоб кучу места в чейве не занимать.

     

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

     

    _________________________________

     

     

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

     

    Что если вместо сотни разбросанных по миру активаторов сделать 1 стартовый глобальный скрипт, который разом добавит все недостающие спеллы указанным торговцам?

     

    Если применять AddSpell, то придутся хотябы раз загрузиться в локации с торговцем чтобы скрипт отработал своё. Но что если применить аналогичную МВСЕ-команду?

     

    begin newspells

    long pcRef

    short done

     

    if (done == 1)

    Stopscript "newspells"

    return

    endif

    Setx pcRef to xGetRef "Marayn Dren"

    pcRef->xAddSpell "frost bolt" 1

    set done to 1

     

    Stopscript "newspells"

    End

     

     

    Такое будет работать? Описание команды на вики крайне скудное. Запустится 1 раз при старте новой игры, раздаст спеллы и всё. Останутся ли эти спеллы у учителей в сохраении?

     

    ____________

    Хотя погодите, с простым AddSpell это ж будет тоже глобальный скрипт, так что и ограничения на присутствие в одной ячейке не будет?

  20. Вдруг найдётся ещё один человек кроме меня, который, поиграв с нормальным ребалансом, уже не захочет возвращаться к убожеству оригинала? И как ему быть, если в МФР использован баланс оригинала (то есть его полное отсутствие)? Тут-то и пригодятся таблицы с объектами из МФР.

  21. Так проставь реалистичные коэфы)

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

×
×
  • Создать...