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

Тема: Вопросы по ядерному оружию

  1. #1
    nemogu nikak zdelat' 4tobi range poleta nuke bila 5 ili 10, naprimer, podskazhite, gde izmenit'?
    продвинь это сообщение в соцсеть:  

  2. #2
    Сдается мне, это не так просто как хотелось бы. Видимо, прежде всего надо поменять среду действия ICBM с "DOMAIN_IMMOBILE" на air (или даже land ). Потом, наверное, можно будет указывать радиус действия.
    продвинь это сообщение в соцсеть:  

  3. #3
    probival, nefiga ne rabotaet (((
    pomoemu nuzhno sam doman ( air, land ili immoble ) delat' noviy, a eto uzhe mne ne po zubam ((
    продвинь это сообщение в соцсеть:  

  4. #4
    Потом можно попробовать поредактировать в Civ4MissionInfos.xml миссию "nuke", заменить ENTEVENT_NUKE на ENTEVENT_AIRBOMB. И, соотвественно, поставить уровень ущерба по максимуму, чтобы всех выносило с клетки. В общем, долго с этим возиться
    продвинь это сообщение в соцсеть:  

  5. #5
    как зделать ядерный взрыв только на одну клето4ку ( без +1 в округе ).
    тоесть если шмаляеш по городу ракетой то вокруг него никаких разрушений нету
    продвинь это сообщение в соцсеть:  

  6. #6
    CIV4UnitInfos : iNukeRange

    Радиус поражения при ядерном ударе. В игре стоит "1". Если поменять на "0", будет наносить ущерб только одной клетке.

    Если поменять на "10"+, то будет очищать континенты. Можно еще уровень ущерба от ядерных ударов повысить, и получится полный апокалипсис.
    продвинь это сообщение в соцсеть:  

  7. #7
    Как сделать, так что бы ядерное оружие в пух и прах разносило город, а не только понижало уровень?


    Ранее это сообщение открывало тему, которая называлась "Вопросы по ядерному оружию".
    Соединил с предыдущей аналогичной темой.
    Хальк Юсдаль
    продвинь это сообщение в соцсеть:  

  8. #8
    В XML можно максимально повысить ущерб от ядерных взрывов, но вряд ли города будут полностью уничтожаться. Я давно когда тестировал - уменьшало любой город до 1.

    GlobalDefines.xml:
    [code]
    продвинь это сообщение в соцсеть:  

  9. #9
    Полководец Аватар для bay


    Регистрация
    03.11.2006
    Адрес
    Астрахань
    Сообщений
    136
    <div class='quotetop'>Цитата</div>
    но вряд ли города будут полностью уничтожаться[/b]
    неа не будет - тут sdk править надо
    продвинь это сообщение в соцсеть:  

  10. #10
    Эх спасибо и на этом... так хотелось сделать крутое оружие, а не эту пколку, ну так хоть радиус увеличу... А можно сделать, что бы она не на всю карту стреляла?
    продвинь это сообщение в соцсеть:  

  11. #11
    Король Аватар для Blacksun


    Регистрация
    10.05.2006
    Адрес
    М.О. г. Раменское
    Сообщений
    1,873
    <div class='quotetop'>Цитата(Степаныч * 13.7.2007, 0:06) [snapback]190621[/snapback]</div>
    Эх спасибо и на этом... так хотелось сделать крутое оружие, а не эту пколку, ну так хоть радиус увеличу... А можно сделать, что бы она не на всю карту стреляла?
    [/b]
    в СДК есть две функции, которые вызываются из движка - это:

    CvSelectionGroup::canDoInterfaceMode() и
    CvSelectionGroup::canDoInterfaceModeAt ()

    Находятся оне в файле (соответственно) CvSelectionGroup.cpp

    Так вот. первая функция служит для "включения" кнопки (Там много режимов, не только NUKE)
    вторая - определяет уже конкретно, какой тайл ты собираешься бомбить.

    Если правильно переписать вторую функцию, то можно ограничить радиус действия NUKE.
    Но, там есть подводные камни. Карта - круговая. Т.е. Если твоя NUKE будет стоять рядом с границей карты, то надо правильно обработать радиус... (Допустим - ты стоишь на карте с коорд. Х = 2, а стрельнуть хочешь, где то по последнему или рядом с ними тайлу, на карте оне расположены рядом, но, координата второго тайла будет где то Х = 63 (для мини карт)).

    Но, в самом СДК есть функция generatePatch(), которая поможет тебе определить, сколько "шагов" до нужного тебе тайла... Так что - дерзай!

    З.Ы. Но для АИ используются свои функции определения (АИ не использует интерфейс) Поэтому их тож надо будет переписать, а то АИ получит преимущество...
    продвинь это сообщение в соцсеть:  
    Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
    http://blacksun.civfanatics.ru
    -------------------------------------------------
    MTDG2 - [civ]christianity[/civ]Монархия
    ---------------------------------
    Председатель CFR Awards 2007
    ---------------------------------
    Председатель CFR Awards 2008

  12. #12
    Арестант


    Регистрация
    18.09.2004
    Адрес
    На пути в Поднебесную
    Сообщений
    2,440
    А можно подождать 10 дней и посмотреть как это сделано в BtS для тактической ракеты.

    продвинь это сообщение в соцсеть:  
    Разумеется, это непохоже на беспорядочные, неорганизованные выборы у древних, когда – смешно сказать – даже неизвестен был заранее самый результат выборов.
    Строить государство на совершенно неучитываемых случайностях, вслепую – что может быть бессмысленней?
    И вот всё же, оказывается, нужны были века, чтобы понять это.
    © Александр Григорьевич Лукашенко (первый Благодетель Единого Государства выбранный единогласно на безальтернативной основе)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Вы знаете, мне честно говоря, уже задолбало читать все это - тут нет ничего умного.
    Найдитесь, хоть кто нибудь разумный и о разумном начните разговор. © Vigo

  13. #13
    Ну я тогда и начну... просто вспомнить хочу, как оно делается.... Давно моды не клепал....
    продвинь это сообщение в соцсеть:  

  14. #14
    Кстати если получится то сделаю разрушительную силу ракеты очень сильную. Так как в жизни ядерный удар действительно сметает всё и вся
    продвинь это сообщение в соцсеть:  

  15. #15
    Король Аватар для Blacksun


    Регистрация
    10.05.2006
    Адрес
    М.О. г. Раменское
    Сообщений
    1,873
    <div class='quotetop'>Цитата(DrLexus * 20.7.2007, 16:24) [snapback]191790[/snapback]</div>
    Кстати если получится то сделаю разрушительную силу ракеты очень сильную. Так как в жизни ядерный удар действительно сметает всё и вся
    [/b]
    И дырки в земле делает ... (как в Альфа центавре)
    продвинь это сообщение в соцсеть:  
    Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
    http://blacksun.civfanatics.ru
    -------------------------------------------------
    MTDG2 - [civ]christianity[/civ]Монархия
    ---------------------------------
    Председатель CFR Awards 2007
    ---------------------------------
    Председатель CFR Awards 2008

  16. #16
    Можнл было бы её скинуть в море, что бы прибрежные города затопило...
    продвинь это сообщение в соцсеть:  

  17. #17
    <div class='quotetop'>Цитата(NeverMind * 4.7.2007, 16:33) [snapback]189716[/snapback]</div>[quote]
    В XML можно максимально повысить ущерб от ядерных взрывов, но вряд ли города будут полностью уничтожаться. Я давно когда тестировал - уменьшало любой город до 1.

    GlobalDefines.xml:
    [code]
    продвинь это сообщение в соцсеть:  
    «Я не делал худого людям. Я не был жесток с близкими. Я не подменял Правду Неправдою. Водам текущим я путь не пытался закрыть. Не потушил я огня, что гореть был назначен. Проявлению Божьему я не мешал. Я чист! Я чист! Я чист!..» - Осирис

  18. #18
    <div class='quotetop'>Цитата</div>
    Вот полная функция по ядерному удару

    [codebox]void CvPlot::nukeExplosion(int iRange, CvUnit* pNukeUnit)
    {
    CLLNode<IDInfo>* pUnitNode;
    CvCity* pLoopCity;
    CvUnit* pLoopUnit;
    CvPlot* pLoopPlot;
    CLinkList<IDInfo> oldUnits;
    CvWString szBuffer;
    int iNukeDamage;
    int iNukedPopulation;
    int iDX, iDY;
    int iI;

    GC.getGameINLINE().changeNukesExploded(1);

    for (iDX = -(iRange); iDX <= iRange; iDX++)
    {
    for (iDY = -(iRange); iDY <= iRange; iDY++)
    {
    pLoopPlot = plotXY(getX_INLINE(), getY_INLINE(), iDX, iDY);

    if (pLoopPlot != NULL)
    {
    // if we remove roads, don&#39;t remove them on the city... XXX

    pLoopCity = pLoopPlot->getPlotCity();

    if (pLoopCity == NULL)
    {
    if (!(pLoopPlot->isWater()) && !(pLoopPlot->isImpassable()))
    {
    if (NO_FEATURE == pLoopPlot->getFeatureType() || !GC.getFeatureInfo(pLoopPlot->getFeatureType()).isNukeImmune())
    {
    if (GC.getGameINLINE().getSorenRandNum(100, "Nuke Fallout") < GC.getDefineINT("NUKE_FALLOUT_PROB"))
    {
    pLoopPlot->setImprovementType(NO_IMPROVEMENT);
    pLoopPlot->setFeatureType((FeatureTypes)(GC.getDefineINT("NUKE_FEATURE")));
    }
    }
    }
    }

    oldUnits.clear();

    pUnitNode = pLoopPlot->headUnitNode();

    while (pUnitNode != NULL)
    {
    oldUnits.insertAtEnd(pUnitNode->m_data);
    pUnitNode = pLoopPlot->nextUnitNode(pUnitNode);
    }

    pUnitNode = oldUnits.head();

    while (pUnitNode != NULL)
    {
    pLoopUnit = ::getUnit(pUnitNode->m_data);
    pUnitNode = oldUnits.next(pUnitNode);

    if (pLoopUnit != NULL)
    {
    if (pLoopUnit != pNukeUnit)
    {
    if (!pLoopUnit->isNukeImmune() && !pLoopUnit->isDelayedDeath())
    {
    iNukeDamage = (GC.getDefineINT("NUKE_UNIT_DAMAGE_BASE") + GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("NUKE_UNIT_DAMAGE_RAND_1"), "Nuke Damage 1") + GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("NUKE_UNIT_DAMAGE_RAND_2"), "Nuke Damage 2"));

    if (pLoopCity != NULL)
    {
    iNukeDamage *= max(0, (pLoopCity->getNukeModifier() + 100));
    iNukeDamage /= 100;
    }

    if (pLoopUnit->canFight() || pLoopUnit->airBaseCombatStr() > 0)
    {
    pLoopUnit->changeDamage(iNukeDamage, ((pNukeUnit != NULL) ? pNukeUnit->getOwnerINLINE() : NO_PLAYER));
    }
    else if (iNukeDamage >= GC.getDefineINT("NUKE_NON_COMBAT_DEATH_THRESHOLD"))
    {
    pLoopUnit->kill(false, ((pNukeUnit != NULL) ? pNukeUnit->getOwnerINLINE() : NO_PLAYER));
    }
    }
    }
    }
    }

    if (pLoopCity != NULL)
    {
    for (iI = 0; iI < GC.getNumBuildingInfos(); ++iI)
    {
    if (pLoopCity->getNumRealBuilding((BuildingTypes)iI) > 0)
    {
    if (!(GC.getBuildingInfo((BuildingTypes) iI).isNukeImmune()))
    {
    if (GC.getGameINLINE().getSorenRandNum(100, "Building Nuked") < GC.getDefineINT("NUKE_BUILDING_DESTRUCTION_PROB"))
    {
    pLoopCity->setNumRealBuilding(((BuildingTypes)iI), pLoopCity->getNumRealBuilding((BuildingTypes)iI) - 1);
    }
    }
    }
    }

    iNukedPopulation = ((pLoopCity->getPopulation() * (GC.getDefineINT("NUKE_POPULATION_DEATH_BASE") + GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("NUKE_POPULATION_DEATH_RAND_1"), "Population Nuked 1") + GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("NUKE_POPULATION_DEATH_RAND_2"), "Population Nuked 2"))) / 100);

    iNukedPopulation *= max(0, (pLoopCity->getNukeModifier() + 100));
    iNukedPopulation /= 100;

    pLoopCity->changePopulation(-(min((pLoopCity->getPopulation() - 1), iNukedPopulation)));

    }
    }
    }
    }

    gDLL->getEventReporterIFace()->nukeExplosion(this, pNukeUnit);
    }[/codebox]

    По населению:
    - Базовые потери - процент 30+R1(20)+R2(20) от населения города, R - случайные числа из 20.
    - Бобмбоубежище снижает полученное число на 50%

    Итого: потери населения при ядерном ударе варьируются в пределах 30-70%, и 15-35% - в городе с бомбоубежищем. При этом город не может быть уничтожен, т.е население не опускается ниже 1.[/b]
    NUKE_FALLOUT_PROB - вероятность появления радиации (загрязнения) на тайле в зоне ядерного взрыва.
    продвинь это сообщение в соцсеть:  

  19. #19
    Я сам создал пару сценариев про ядерную войну. ВСЕ они проходят одинаково:
    Я объявляю врагам войну выжигаю их территорию и бросаюсь на ней уничтожив ядерными ударами ихнюю армию.А тупой(причём тупой на всех уровнях сложности) бот скидывает все свои бомбы на мои города. Потом я уничтожаю обессиленного бота во время экономического коллапса(ввиду резкого увеличения державы: города не содержат сами себя) и глобального потепления(то есть опустынивания). Всё скучно и банально.

    Ранее это сообщение открывало тему, которая называлась "Ядерная война... Скучно это... ".
    Соединил с предыдущей аналогичной темой.
    Хальк Юсдаль
    продвинь это сообщение в соцсеть:  

  20. #20


    Ну а что делать? AI не приспособлен для ведения полномасштабной ядерной войны. Попробуй сыграть с людьми по сети, будет веселей.
    продвинь это сообщение в соцсеть:  

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

Ваши права

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

free counters