Форум программистов, компьютерный форум CyberForum.ru

Логика выражения - C++

Восстановить пароль Регистрация
 
BioNicle12
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 17
24.06.2013, 13:58     Логика выражения #1
Изучать С начал недавно, изучение изучением, а вопрос текущий назрел и в литературе когда появится ответ, не особо известно)

В общем по делу, есть код, вычисление урона под определенными эффектами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
                            if (CSharedDatA != NULL) 
                            {
                                int bufflevel = 0;
                                double dmg_mod=0;
 
                                //dance of fire npc buff
                                bufflevel  =FindBuffINSharedData(pAttacker,CSharedDatA, 10008); //NPC buff dance of fire
                                if (bufflevel > 0) dmg_mod = 0.35;
                                //dance of fire
                                bufflevel  =FindBuffINSharedData(pAttacker,CSharedDatA, 274); //dance of fire
                                if (bufflevel > 0) dmg_mod = 0.5 ;
 
                                //crt_dam 
                                bufflevel=critical_damage_dmg(pAttacker,6);
                                if (bufflevel > 0) pDamage = (pDamage)-bufflevel-(bufflevel*dmg_mod);
                                //vicious stance
                                bufflevel=vicious_stance_dmg(pAttacker,5);
                                if (bufflevel > 0) pDamage = (pDamage)-bufflevel-(bufflevel*dmg_mod);
 
                                // Death Whisper buff 
                                bufflevel  =FindBuffINSharedData(pAttacker,CSharedDatA, 1242);
                                if (bufflevel>0) pDamage = (pDamage)*(1+ (bufflevel+0.1)/20); //damage increase percent
 
                            }
 
                    } else {
                        return;
                    }
Помогите понять логику данного выражения, я пока пытался это сделать, что-то запутался =), как так может идти 2 похожих присваивания и затем использование их же далее, какое значение куда подсовывается? Я, если честно, вообще не понимаю как это может работать, но код не мой и почти работает))
Но работает оно с ошибкой, если одновременно использовать 2 эффекта, то получается не увеличение, а обратное.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 13:58     Логика выражения
Посмотрите здесь:

недоработка С++ или ошибочная логика C++
C++ CTL логика
C++ мат. логика C++
Нечеткая логика C++
Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного C++
C++ Логика switch
Непонятная логика работы оператора new C++
Неверная логика аппы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
24.06.2013, 14:21     Логика выражения #2
линейка... Не проще взять этот расчет с птс сборки и скопипастить?
почему у тебя бафф у нпс дает меньще крита чем бафф от чара ?
BioNicle12
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 17
24.06.2013, 14:38  [ТС]     Логика выражения #3
Было бы откуда брать, я бы взял)), вот что есть в данный момент, причем не особо понятно почему формулы крита и вициуса минусуются. Пока написал, вообще стал сомневаться что тут какая-то хитрая логика, просто кем-то наоте*ись написанное
pDamage = (pDamage)-bufflevel-(bufflevel*dmg_mod);
, думаю стоит просто поменять на плюс)
Yandex
Объявления
24.06.2013, 14:38     Логика выражения
Ответ Создать тему
Опции темы

Текущее время: 22:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru