Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
11 / 11 / 4
Регистрация: 14.09.2009
Сообщений: 134

Защищает наш Shield

07.11.2010, 18:41. Показов 1333. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер программисты и всем кто читает))))
У мя возникла проблема по игровой части плавно переходящий в язык программирования и поэтому я создал тут тему,дабы получить бесценный по истине совет))))
Пишу игру,остановился на том,что у персонажа появляется щит и тут же проблема сразу со щитом,а точнее с его параметром шанса блокирования урона.
Щит имеет 40% заблочить 40 дмж.
Подскажите пожалуйста,как правильно задать 40% или как это в играх делаю,чтобы система сама выбирала когда наступят эти 40%?
Или это все через рандом оформляется?
Если у нас есть другие варианты кроме рандома с радостью почитаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2010, 18:41
Ответы с готовыми решениями:

Преобразование кода Arduino с L-Motor Shield на Motor Shield
Я делаю проект по типу robohabr Там используются: 1. Arduino Uno. 2. Драйвер моторов L-Motor Shield. 3. Колеса с мотор...

Наш фильм "Дикари" - в доску наш
Если кто не смотрел, мне вас искренне жалко.:D Сейчас, вот, включил - год не смотрел его уже, наверно - так это просто ураган эмоций!!...

От новичка: ПРОТЕКТЕД не защищает?!
Здравствуйте! Уже полчаса пытаюсь понять почему в моём примере можно читать и вызвать protected члены класса p1classB через его...

9
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
07.11.2010, 20:13
Вы хотите, чтобы кто-то разработал AI для вашей игры?
Вы даже не представляете, насколько сложная система формул лежит в основе любой достойной игры. Сложная не в плане просчетов, а в плане взаимосвязи множества влияющих друг на друга факторов. Например, в той же Lineage % блока щитом входит в общую формулу отражения, в которой, помимо базового процента блока, входят также модификатор ловкости и уровень персонажа, не говоря уже о константах, задаваемых из каких-то личных соображений разработчиков.
Вы должны сами придумать формулу просчета блока в зависимости от имеющихся в вашей игре параметров. Так что банальным рэндомом тут не обойтись. Успехов.
0
XpressMusicMan Музыка24/7
 Аватар для QwertyX
46 / 35 / 3
Регистрация: 27.08.2010
Сообщений: 346
07.11.2010, 20:23
Цитата Сообщение от ArtOfLife Посмотреть сообщение
Вы хотите, чтобы кто-то разработал AI для вашей игры?
Вы даже не представляете, насколько сложная система формул лежит в основе любой достойной игры. Сложная не в плане просчетов, а в плане взаимосвязи множества влияющих друг на друга факторов. Например, в той же Lineage % блока щитом входит в общую формулу отражения, в которой, помимо базового процента блока, входят также модификатор ловкости и уровень персонажа, не говоря уже о константах, задаваемых из каких-то личных соображений разработчиков.
Вы должны сами придумать формулу просчета блока в зависимости от имеющихся в вашей игре параметров. Так что банальным рэндомом тут не обойтись. Успехов.
Извини, не сдержусь...
Как только прочитал, сразу пришло "видение" кода линейки...
Как то так:
C#
1
2
3
4
if(lasthit==true)
    nexthit = false;
else
    nexthit = true;
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.11.2010, 20:50
Цитата Сообщение от QwertyX Посмотреть сообщение
Как то так:
*
if(lasthit==true)
* * nexthit = false;
else
* * nexthit = true;
тогда уж
C#
1
nexthit=!lasthit; // без условий быстрее
но это 50%, и никакого интереса не будет: сейчас не сработал, значит след раз сработает
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
07.11.2010, 21:36
C#
1
2
3
4
5
            Random random =  new Random();
            if (random.NextDouble() <= 0.4)
            {
                damage += 40;
            }
0
XpressMusicMan Музыка24/7
 Аватар для QwertyX
46 / 35 / 3
Регистрация: 27.08.2010
Сообщений: 346
07.11.2010, 21:59
Цитата Сообщение от nio Посмотреть сообщение
тогда уж
C#
1
nexthit=!lasthit; // без условий быстрее
но это 50%, и никакого интереса не будет: сейчас не сработал, значит след раз сработает
Тот пост нес чисто юмористическое послание, дабы поднять настроение форумчанинам
Конечно же линейка не такова... В этом и весь прикол
0
11 / 11 / 4
Регистрация: 14.09.2009
Сообщений: 134
07.11.2010, 23:13  [ТС]
Ребята мы мне так нравитесь все=)(В нормальном смысле) Кто первый выложит код и сразу этот код начинаете дручитьтак весело почитать всё одним разом =))))))
----------------Спасибо,за то что отписались и на раздумья закинули мя=))))

ArtOfLife, Вы хотите, чтобы кто-то разработал AI для вашей игры?
------>Было бы не плохо))))
шутка-шутка.нет,я бы хотел узнать как вообще люди эту проблему решают,но раз вы уже подсказали буду гуглить,а то пока я сам пока не придумал как эту штуку мну сделать.
QwertyX, Да код конечно классный=)не спорю))))может лучше сразу поставиь 100% блока 40 дмж и номале=))))потом чуть что апдейтов на щит будет 100 дмж держать))
QwertyX, Тот пост нес чисто юмористическое послание, дабы поднять настроение форумчанинам
Конечно же линейка не такова... В этом и весь прикол

-------------> Да точно пост веселый получился=)
Unril,
Random random = new Random();
if (random.NextDouble() <= 0.4)
{
damage += 40;
}

ну это для начала можно чтобы кое как щит существовал=)
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
07.11.2010, 23:32
Ошибся немного Должно быть как-то так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
           const int defence = 40;
            // При попадании
            if (hit)
            {
                Random random = new Random();
                // С вероятностью 40%
                if (random.NextDouble() <= 0.4)
                {
                    // Блокировка шитом
                    if (damage > defence)
                    {
                        health = health - damage + defence;
                    }
                }
                else
                {
                    health = health - damage;
                }
            }
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
07.11.2010, 23:38
Ради поднятия настроения ТС'у и остальным (считающим, что все так просто), выдержка из мат. части линейки:
Shield Block Rate = Base Shield Block Rate * DEX Modifier * Shield Mastery * Buffs * Set Bonus
Base Shield Block Rate = 0,4 - это означает, что при прочих равных условиях - шанс 40%, что заблокирует щитом.
DEX Modifier - коэффициент, который варьируется от 1.01 до 1.24 в зависимости от текущего показателя DEX (ловкости), который в свою очередь варьируется от 21 до 43.
Shield Mastery - селф пассивный скилл, который выражается в формуле в качестве коэффициента (1.50-2.0) в зависимости от уровня самого скилла (1-4).
Buffs - набор бафов разных уровней, которые тоже имеют свои коэффициенты (по аналогии с предыдущим пунктом).
Set Bonus - бонус сетов брони (и опять-таки таблица коэффициентов).
Вы ведь понимаете, что в данном случае все коэффициенты были придуманы разработчиками не от балды. Все они получены опытным путем, дабы не вносить дисбаланс в игровой процесс. Теперь, надеюсь, вы понимаете, что все это - нетривиальная задача, которая зависит исключительно от видения разработчика?
Позволю себе небольшой совет. Разработайте вначале полноценную систему боя, зависящую от каких-либо базовых характеристик (здоровье, атака / защита и т.п.). Без всяких бонусов оружия. И не нужно брать большое число начальных параметров! Начинайте с малого - придумайте базовые формулы для 3-4 характеристик. Затем постепенно дополняйте игру параметрами, модифицируя имеющиеся формулы. Да, процесс достаточно длительный, но по крайней мере вы будете уверены в результате. А если пытаться браться за все сразу, это как пальцем в небо. Ну придумаете вы формулу для блока щитом, а дальше что? Завтра захотите ввести что-то новое и поймете, что вам нужно будет перелопатить весь код, чтобы это новшество корректно работало. Сами себя загоните в угол. Да и собственно играясь с вероятностными величинами, придется проводить много автоматизированных опытов. Т.е., к примеру, запускать бои конкретных персонажей в цикле на 1к итераций (к примеру), и запоминать все результаты. Подобный опыт позволит вам провести анализ и сформировать статистику, на основании которой можно будет сочинять новые формулы, а также - модифицировать старые.
0
11 / 11 / 4
Регистрация: 14.09.2009
Сообщений: 134
07.11.2010, 23:56  [ТС]
Цитата Сообщение от Unril Посмотреть сообщение
Ошибся немного Должно быть как-то так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
           const int defence = 40;
            // При попадании
            if (hit)
            {
                Random random = new Random();
                // С вероятностью 40%
                if (random.NextDouble() <= 0.4)
                {
                    // Блокировка шитом
                    if (damage > defence)
                    {
                        health = health - damage + defence;
                    }
                }
                else
                {
                    health = health - damage;
                }
            }
да ладно не парься=)щя выкину свою систему накопления дмж=)
я уже с рандомом научился работать=))))))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Random random = new Random();
            int a;
            a = random.Next(100);
            Console.WriteLine("Выпало число рандомное" + a);
 
            dmg1 = dmg1 + 1;
            if (a < st1)   // сравниваем числа полученные рандомом и ступенькой
            {
                hp1 = hp1 + 0;
            }
            else  // если больше тогда хп отнимается
            {
                hp1 = hp1 - dmg1;
                dmg1 = 0;
            }
остальное пишу=)))только не так сильно насядайте на этот кусок программы=)а лучше не комментируйте,а то у мя самооценка по программированию меньше станет
Я же не такой специалист и нету столько опыта программирования=)я только учусь)))))

Добавлено через 15 минут
Ребят,может объясните,почему надо использовать при написании программы true и catch и чем они так полезны в программировании?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2010, 23:56
Помогаю со студенческими работами здесь

Защищает ли windows defender?
Или нужен ещё антивирус?

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

кто как защищает программы?
допустим вы написали очень полезную программу. что вы сделаете для ее защиты?

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

Как капча защищает от ddos атаки?
Кто может обьяснить как капча защищает от ddos атаки? Ведь запросы продолжаются, хотябы на страницу с капчей.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru