Баг с невидимостью |
Здравствуйте Гость ( Вход | Регистрация )
Баг с невидимостью |
Stratus |
May 3 2005, 16:41
Отправлено
#1
|
Begemoth Группа: Members Сообщений: 1 136 Регистрация: 26-November 03 Пользователь №: 764 |
техи кривые или клиент? :)
ну и что будем делать? Присоединённые изображения |
VEXOR |
May 3 2005, 16:47
Отправлено
#2
|
Megadestroyer Группа: Members Сообщений: 307 Регистрация: 21-July 03 Пользователь №: 696 |
Это баг в клиенте,это болезнь,а приходит она туда где есть верфы с ПН На Московском уже все переболели этим,и там выработан иммунитет ,удаление рассы замеченной в использование бага.
|
Stratus |
May 3 2005, 18:03
Отправлено
#3
|
Begemoth Группа: Members Сообщений: 1 136 Регистрация: 26-November 03 Пользователь №: 764 |
на мой взгляд суть проблемы в длинне переменной под CU - 4 байта, причем знаковой!
если для верфа величина CU 11169900, то для стэка уже 2848324500... по моему гимор начинается при величине CU около 2147483647 думаю верфы тут не причем, полагаю что данный глюк можно сообразить и с парой стэков скрывалок на джамбах... я не проверял, но могу и проверить на желающих возможно глюк легко вылечить заменой типа под переменной под массу и CU с long на unsigned long (или long long ) |
VINIAMIN[PUH] |
May 3 2005, 18:57
Отправлено
#4
|
Незарегистрированный |
QUOTE(VEXOR @ May 3 2005, 10:47 PM) Это баг в клиенте,это болезнь,а приходит она туда где есть верфы с ПН На Московском уже все переболели этим,и там выработан иммунитет ,удаление рассы замеченной в использование бага. так это баг в клиенте. или на сервере.. вроде как говорилось что в 17-ом сервере это пофиксили... а если в клиенте. то за что бан? все равно тебя должны видеть как 98 |
Alex |
May 3 2005, 19:01
Отправлено
#5
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
Удаление расы - это конечно выход, но хотелось бы победить причину.
Начал копать исходники, что-то сразу не вижу, где: CODE static struct TCloakTable{ float u,c; }CloakTable[]={ {0 ,0}, {100 ,50}, {300 ,75}, {600 ,87.5}, {1000,93.75}, {1300,98}, }; SBYTE TBaseTechnology::CU2Cloak(float CUnits){ const int Counter = sizeof(CloakTable)/sizeof(TCloakTable); float X1,K1,X2,K2,Xi = min(CUnits,CloakTable[Counter-1].u); for(int idx=1;idx<Counter;idx++){ if(Xi<=CloakTable[idx].u) break; } X1 = CloakTable[idx-1].u; K1 = CloakTable[idx-1].c; X2 = CloakTable[idx ].u; K2 = CloakTable[idx ].c; return SBYTE((Xi-X1)/(X2-X1)*(K2-K1)+K1); } SBYTE TFleet::Cloak()const{ const TPlayer *pOwner = TPlayers::This->GetPlayer(m_IdOwner); float TotalUnits = 0; for(BYTE s=0;s<m_nShips;s++){ const TShip& Ship = m_dShips[s]; const TDesignItem *pDesign = pOwner->Design(Ship.m_IdDesign); TotalUnits+=pDesign->m_CloakUnit*(pDesign->m_Mass*Ship.m_Counter); } if(pOwner->m_Advantage&eADV::m_Flags[eADV::AdvancedCloaking]) return TBaseTechnology::CU2Cloak(TotalUnits/EmptyMass()); else return TBaseTechnology::CU2Cloak(TotalUnits/Mass()); } -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Alex |
May 3 2005, 19:14
Отправлено
#6
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
QUOTE(Stratus @ May 3 2005, 07:41 PM) техи кривые или клиент? А у тебя какой клиент? В 17 сервере вроде нет фиксов невидимости в описании. -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Бешеные Мишки |
May 3 2005, 19:26
Отправлено
#7
|
Cannon Boat Группа: Members Сообщений: 42 Регистрация: 5-October 04 Пользователь №: 949 |
технократ говорит что в 1 ли от планеты висит флот 107% невидимости, а я его не вижу : (
что считаеться читом ? использование скрывалок верфов или скрывалок вообще ? |
Alex |
May 3 2005, 19:39
Отправлено
#8
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
QUOTE(Бешеные Мишки @ May 3 2005, 10:26 PM) технократ говорит что в 1 ли от планеты висит флот 107% невидимости, а я его не вижу : ( что считаеться читом ? использование скрывалок верфов или скрывалок вообще ? Пока еще не ясно есть ли баг или нет. Пока считаем чит - это флот с огромным количеством скрывалок, чей CU приводит к переполнению чего-то. -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Alex |
May 3 2005, 19:52
Отправлено
#9
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
Нашел long - это масса флота, скока твой весил?
Но процент все равно не может быть больше 98 ! В общем мне нужен такой флот, кто подарит? Ну или ДУ дайте, если флот жалко -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Stratus |
May 3 2005, 20:24
Отправлено
#10
|
Begemoth Группа: Members Сообщений: 1 136 Регистрация: 26-November 03 Пользователь №: 764 |
а где дефайны на SBYTE и BYTE?
205 верфов по 985кт + 125 джамб по 528кт + еще 1 на 580 кт итого все это 107% клиент 1.01.01.07. TotalUnits = 205 * (985 * 21 * 580) = 205 * 1116990 = 2289829500 EmptyMass = 205 * 985 + 580 + 528 * 125 = 268505 CUnits = 852,80534813131971471667194279436 а вот эта строчка мне непонятно чего дает : const int Counter = sizeof(CloakTable)/sizeof(TCloakTable); Сообщение отредактировал Stratus - May 3 2005, 22:54 |
VEXOR |
May 3 2005, 23:10
Отправлено
#11
|
Megadestroyer Группа: Members Сообщений: 307 Регистрация: 21-July 03 Пользователь №: 696 |
Эта тема уже обсуждалась.Если кому интересно то>
http://forum.real4x.info/index.php?act=ST&...5&t=1969&st=195 |
Alex |
May 4 2005, 05:19
Отправлено
#12
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
QUOTE(Stratus @ May 3 2005, 11:24 PM) а где дефайны на SBYTE и BYTE? TotalUnits = 205 * (985 * 21 * 580) = 205 * 1116990 = 2289829500 EmptyMass = 205 * 985 + 580 + 528 * 125 = 268505 CUnits = 852,80534813131971471667194279436 а вот эта строчка мне непонятно чего дает : const int Counter = sizeof(CloakTable)/sizeof(TCloakTable); typedef unsigned char BYTE; typedef signed char SBYTE; Но TotalUnits - float и не мог переполниться. Counter - это максимальное кол-во элементов в массиве CloakTable, в нашем случае = 6. -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Korsar |
May 4 2005, 05:39
Отправлено
#13
|
Begemoth Группа: Админы Сообщений: 1 697 Регистрация: 9-July 01 Из: Пермь Пользователь №: 521 |
QUOTE TotalUnits+=pDesign->m_CloakUnit*(pDesign->m_Mass*Ship.m_Counter); Заменяем наQUOTE TotalUnits+=(unsigned long)( pDesign->m_CloakUnit*(pDesign->m_Mass*Ship.m_Counter) ); и пробуем -------------------- Иногда войны начинаются рано
|
Korsar |
May 4 2005, 05:42
Отправлено
#14
|
Begemoth Группа: Админы Сообщений: 1 697 Регистрация: 9-July 01 Из: Пермь Пользователь №: 521 |
еще лучше не забыть:
CODE SBYTE TBaseTechnology::CU2Cloak(float CUnits){ const int Counter = sizeof(CloakTable)/sizeof(TCloakTable); float X1,K1,X2,K2,Xi = min(CUnits,CloakTable[Counter-1].u); for(int idx=1;idx<Counter;idx++){ if(Xi<=CloakTable[idx].u) break; } X1 = CloakTable[idx-1].u; K1 = CloakTable[idx-1].c; X2 = CloakTable[idx ].u; K2 = CloakTable[idx ].c; return SBYTE((Xi-X1)/(X2-X1)*(K2-K1)+K1); } изменить так: QUOTE SBYTE TBaseTechnology::CU2Cloak(float CUnits){ const int Counter = sizeof(CloakTable)/sizeof(TCloakTable); if ( CUnits < 0 ) return CloackTable[Counter-1].c; float X1,K1,X2,K2,Xi = min(CUnits,CloakTable[Counter-1].u); for(int idx=1;idx<Counter;idx++){ if(Xi<=CloakTable[idx].u) break; } X1 = CloakTable[idx-1].u; K1 = CloakTable[idx-1].c; X2 = CloakTable[idx ].u; K2 = CloakTable[idx ].c; return SBYTE((Xi-X1)/(X2-X1)*(K2-K1)+K1); } Хотя, если при отрицательном аргументе возвращать 0 вместо максимальной скрытности, будет весьма забавно можно обоснование придумать - начиная с какого-то предела масса флота мешает любым скрывалкам ну и не забыть аналогично исправить на сервере -------------------- Иногда войны начинаются рано
|
Alex |
May 4 2005, 05:56
Отправлено
#15
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
Примерно так и собирался сделать.
Даже уже запустил себе сервер, чтоб все проверить, качаюсь, год за 3 минуты летит... -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
zaviruxa |
May 4 2005, 09:14
Отправлено
#16
|
Cannon Boat Группа: Members Сообщений: 67 Регистрация: 16-March 05 Пользователь №: 1 058 |
Ещё можно на сервере проверку сделать: если cloak какой-то аномальный у флота, то флот уничтожать, а владельцу флота сообщение, как это в старгейтах сделано при аннигиляции.
|
_wh!te_ |
May 4 2005, 10:12
Отправлено
#17
|
Begemoth Группа: Members Сообщений: 1 535 Регистрация: 27-May 03 Пользователь №: 669 |
Это будет не нармально лутшеб их небыло , представляю, на тебя летит Каток , ты последние штрихи делаешь чтобы отбить его, обьединяешь флоты и тут вылазит Анамалия и Ля-ля каток на планете , и пока его отбить сможешь уже 10 планет облетит здорово будет
-------------------- Хочу овладеть тобой, хочу затащить тебя в постель, хочу чтобы ты горела, стонала и бредила, чтобы твоё тело стало влажным и горячим - Это я твой ГРИПП !!!
|
Musoid |
May 4 2005, 11:53
Отправлено
#18
|
Begemoth Группа: Members Сообщений: 1 273 Регистрация: 30-July 01 Из: Пермь Пользователь №: 242 |
А нефинг багов юзать !!! ;-)
-------------------- для того, чтобы понять что такое рекурсия, нужно сперва понять что такое рекурсия
|
Alex |
May 4 2005, 11:53
Отправлено
#19
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
QUOTE TotalUnits+=(unsigned long)( pDesign->m_CloakUnit*(pDesign->m_Mass*Ship.m_Counter) ); Помогает однако. Ух уж мне этот Си. ХМ ты где? ПОРА ФИКСИТЬ СЕРВЕР !!! -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Alex |
May 4 2005, 18:29
Отправлено
#20
|
Begemoth Группа: Server Owners Сообщений: 1 577 Регистрация: 9-July 01 Из: Санкт-Петербург Пользователь №: 402 |
Переместил тему сюда, так больше шансов, что ХМ прочтет.
Ну и если уж начали писать про баги в сервере, то стоит еще пофиксить не всегда работающее ограничение на количество игроков в союзе. -------------------- Владелец самого мощного оружия галактики - дисконнекта
|
Упрощённая версия | Сейчас: 29th March 2024 - 00:43 |