IPB

Здравствуйте Гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Вопрос про снижение цены теха
eStalker
Mar 24 2005, 15:58
Отправлено #1


Cannon Boat
Group Icon

Группа: Members
Сообщений: 80
Регистрация: 21-December 04
Пользователь №: 978



Насколько снижается цена теха при продвижении по дереву развития?
Например есть тех
0 3 0 5 0 0
цена 100ресов

как она измениться взависимости от развития энергии, или биологии,
или оружия, или оружия(+1) и конструкции(+2)

ну все варианты перечислять бессмысленно - основное правило какое?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Korsar
Mar 25 2005, 02:27
Отправлено #2


Begemoth
Group Icon

Группа: Админы
Сообщений: 1 697
Регистрация: 9-July 01
Из: Пермь
Пользователь №: 521



если не ошибаюсь, цена теха = исходной цене + константа * число изученных техов


--------------------
Иногда войны начинаются рано
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Musoid
Mar 25 2005, 04:28
Отправлено #3


Begemoth
Group Icon

Группа: Members
Сообщений: 1 273
Регистрация: 30-July 01
Из: Пермь
Пользователь №: 242



ИМХО не так просто.

С уважением.


--------------------
для того, чтобы понять что такое рекурсия, нужно сперва понять что такое рекурсия
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alex
Mar 25 2005, 06:46
Отправлено #4


Begemoth
Group Icon

Группа: Server Owners
Сообщений: 1 577
Регистрация: 9-July 01
Из: Санкт-Петербург
Пользователь №: 402



Ну примерно так:
CODE
 for(BYTE c=0;c<eTechnology::m_Counter;c++){
   for(BYTE i=0;i<m_Category[c].m_Counter;i++){
     TBaseTechnology* pSItem = TTechnology::This->Technology(c,i);
     TBaseTechnology* pPItem = Technology(c,i); if(NOT pPItem) continue;
     if(pPItem==NULL OR (pPItem->m_Flags&TBaseTechnology::FLG_MaxCheapen)) continue;
     // Расчет уменьшения цены постройки технологии
     long SDelta = LONG_MAX;
     for(BYTE f=0;f<eFieldOfStudy::m_Counter;f++){
       // Поиск наименьшего превышения уровня технологий по всем полям
       short LDelta = (short)(dLevels[f] - pPItem->m_ResearchLevel[f]);
       if(LDelta==0 AND pPItem->m_ResearchLevel[f]>0)
         break;
       else if(LDelta<SDelta)
         SDelta = LDelta;
     }
     if(f!=eFieldOfStudy::m_Counter) continue;
     SDelta*=4; // 4% за каждое превышение
     if(SDelta>76){
       pPItem->m_Flags|=TBaseTechnology::FLG_MaxCheapen;
       SDelta = 76;
     }
     // Уменьшение цены
     for(BYTE m=0;m<eConstructionCost::m_Counter;m++){
       long newCost = pSItem->m_Cost[m] - SDelta * pSItem->m_Cost[m] / 100;
       pPItem->m_Cost[m] = (short)iif(newCost<1 AND pSItem->m_Cost[m]>0,1,newCost);
     }
   }
 }


--------------------
Владелец самого мощного оружия галактики - дисконнекта
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Korsar
Mar 25 2005, 07:27
Отправлено #5


Begemoth
Group Icon

Группа: Админы
Сообщений: 1 697
Регистрация: 9-July 01
Из: Пермь
Пользователь №: 521



нерпавильно понял вопрос - показалось, что речь шла об удорожании изучения самого теха


--------------------
Иногда войны начинаются рано
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
eStalker
Mar 25 2005, 08:20
Отправлено #6


Cannon Boat
Group Icon

Группа: Members
Сообщений: 80
Регистрация: 21-December 04
Пользователь №: 978



Спасибо Alex, красивый ответ.. только плохо понятный 8-) это вообще что за язык?? 8-))
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Musoid
Mar 25 2005, 08:22
Отправлено #7


Begemoth
Group Icon

Группа: Members
Сообщений: 1 273
Регистрация: 30-July 01
Из: Пермь
Пользователь №: 242



Насколько я вижу, это Си.

С уважением.


--------------------
для того, чтобы понять что такое рекурсия, нужно сперва понять что такое рекурсия
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
AlexSmall
Mar 25 2005, 08:31
Отправлено #8


Begemoth
Group Icon

Группа: Super Members
Сообщений: 1 531
Регистрация: 10-September 03
Из: Краков
Пользователь №: 723



Это вообще-то С++. Но насколько я понял, речь то все таки шла не об уменшении цени постройки конкретного теха, а об увеличении цены других техов при изучении например какого-то одного(или нескольких соседних).
Так что вопрос пока не отвечен...


--------------------
Больше всего мы гордимся тем, чего у нас нет. (с) Акутагава Рюноскэ
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
eStalker
Mar 25 2005, 09:19
Отправлено #9


Cannon Boat
Group Icon

Группа: Members
Сообщений: 80
Регистрация: 21-December 04
Пользователь №: 978



вопрос был мой! и как раз про снижение цены теха, а не увеличения его исследования,
Alex вполне ответил на него, только C++ какой то кривой...
P.S. Кол-во МИНЕРАЛОВ уменьшается в той-же пропорции?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alex
Mar 25 2005, 10:17
Отправлено #10


Begemoth
Group Icon

Группа: Server Owners
Сообщений: 1 577
Регистрация: 9-July 01
Из: Санкт-Петербург
Пользователь №: 402



Ты поокуратней про C++, это ХМ писал.
А это по второму вопросу:
CODE
struct eConstructionCost{
 enum{
   Ironium,
   Uranium,
   Liberium,
   Resource,
   m_Counter
 };


Ну если ты все понял, может всем остальным по-русски напишешь, а то лениво. Потомки оценят. wink.gif


--------------------
Владелец самого мощного оружия галактики - дисконнекта
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Stratus
Mar 25 2005, 12:27
Отправлено #11


Begemoth
Group Icon

Группа: Members
Сообщений: 1 136
Регистрация: 26-November 03
Пользователь №: 764



QUOTE(Korsar @ Mar 25 2005, 04:27 AM)
если не ошибаюсь, цена теха = исходной цене + константа * число изученных техов

мну думать что после lvl 10 формула уже другая wink.gif
...и скорее всего там число изученных техов превращается в число изученных техов для данной области wink.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alex
Mar 25 2005, 12:39
Отправлено #12


Begemoth
Group Icon

Группа: Server Owners
Сообщений: 1 577
Регистрация: 9-July 01
Из: Санкт-Петербург
Пользователь №: 402



Ну уж тогда я и по второму вопросу выложу все карты, авось ХМ не обидется:

CODE
   double LevelCost(BYTE field)const{
     const bFieldOfStudy &fs = m_FS[field];
     return floor((StandardCost(fs.m_Level)+fs.m_Level*fs.m_AdditiveCost)*fs.m_RaceCoeff);
   }

CODE
void TResearch::RecalculateACost(){
 for(BYTE f=0;f<eFieldOfStudy::m_Counter;f++){
   long ACost = 0;
   for(BYTE s=0;s<eFieldOfStudy::m_Counter;s++){
     if(s==f) continue;
     ACost+=(m_FS[s].m_Level-1)*10;
   }
   m_FS[f].m_AdditiveCost = ACost;
 }
}


"Истина где-то рядом"


--------------------
Владелец самого мощного оружия галактики - дисконнекта
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
D_R_K
Mar 25 2005, 14:45
Отправлено #13


Battleship
Group Icon

Группа: Members
Сообщений: 245
Регистрация: 10-July 02
Пользователь №: 249



кстати.. а можно переделать техэдитор, чтобы он под новый клиент работал?


--------------------
Я дерусь.. потому, что я дерусь
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Alex
Mar 25 2005, 15:07
Отправлено #14


Begemoth
Group Icon

Группа: Server Owners
Сообщений: 1 577
Регистрация: 9-July 01
Из: Санкт-Петербург
Пользователь №: 402



можно, хотя там вся трабла в картинках - оставь старые bmp и все будет работать


--------------------
Владелец самого мощного оружия галактики - дисконнекта
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Valerich
Feb 10 2006, 11:20
Отправлено #15


Begemoth
Group Icon

Группа: Members
Сообщений: 927
Регистрация: 2-December 03
Пользователь №: 765



QUOTE(Alex @ Mar 25 2005, 13:17) *



Ну если ты все понял, может всем остальным по-русски напишешь, а то лениво. Потомки оценят. wink.gif


Поддерживаю! smile.gif Тоже интересно будет почитать в переводе, а то в подлиннике что-то смысел не улавливаю. unsure.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Weonard
Feb 11 2006, 12:07
Отправлено #16


Megadestroyer
Group Icon

Группа: Members
Сообщений: 620
Регистрация: 18-February 03
Из: МО, п. Тучково
Пользователь №: 612



Ща ХМ увидит такое количество кусков сурца сервера и хватится за голову(или за топор... =) ).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
lonewolf
Apr 3 2006, 13:41
Отправлено #17


Battleship
Group Icon

Группа: Members
Сообщений: 221
Регистрация: 21-June 04
Пользователь №: 906



QUOTE(Alex @ Mar 25 2005, 13:17) *
может всем остальным по-русски напишешь, а то лениво. Потомки оценят. wink.gif


для этого желательно хоть примерно знать что такое m_Counter, чем eTechnology отличается от TTechnology и TBaseTechnology, что делает TTechnology::This->Technology(c,i); когда верно условие (NOT pPItem)... иначе "хливкие шорьки пырялись по наве, и хрюкотали зелюки как мюмзики в мове"


--------------------
милосердие шушпанчиков не знает пощады
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Fast ReplyReply to this topicStart new topic
1 посетитель читает эту тему (1 гость и 0 скрытых пользователей)
0 пользователей:

 



- Упрощённая версия Сейчас: 25th April 2024 - 07:37