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

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

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

Author24 — интернет-сервис помощи студентам
Добрый вечер программисты и всем кто читает))))
У мя возникла проблема по игровой части плавно переходящий в язык программирования и поэтому я создал тут тему,дабы получить бесценный по истине совет))))
Пишу игру,остановился на том,что у персонажа появляется щит и тут же проблема сразу со щитом,а точнее с его параметром шанса блокирования урона.
Щит имеет 40% заблочить 40 дмж.
Подскажите пожалуйста,как правильно задать 40% или как это в играх делаю,чтобы система сама выбирала когда наступят эти 40%?
Или это все через рандом оформляется?
Если у нас есть другие варианты кроме рандома с радостью почитаю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2010, 18:41
Ответы с готовыми решениями:

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

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

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

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

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

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

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

ну это для начала можно чтобы кое как щит существовал=)
0
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
07.11.2010, 23:32 8
Ошибся немного Должно быть как-то так.
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 9
Ради поднятия настроения ТС'у и остальным (считающим, что все так просто), выдержка из мат. части линейки:
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  [ТС] 10
Цитата Сообщение от 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
07.11.2010, 23:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2010, 23:56
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru