GTA Vice City > Программирование

Написание плагина. Настройка проекта

<< < (65/65)

egor230:
Возникла такая ситуация. Функция и скриптовая команда, при установке количество денег педа, при его смерти, выпадает сумма денег, которая отличается от установленной, в чём причина такой ситуации?



--- Код: Javascript ---ped->m_nPedMoney = 100;ped->CreateDeadPedMoney();  Command<COMMAND_SET_CHAR_MONEY>(CPools::GetPedRef(ped), 0);this_thread::sleep_for(chrono::milliseconds(1));Command<COMMAND_SET_CHAR_MONEY>(CPools::GetPedRef(ped), 100); 

kenking:

--- Цитировать ---при установке количество денег педа, при его смерти, выпадает сумма денег, которая отличается от установленной, в чём причина такой ситуации?
--- Конец цитаты ---
Функцию CPed::CreateDeadPedMoney открой в IDA (нажми F5 для генерации псевдокода на С++)

egor230:
Спасибо за уделённое время kenking, с этой функцией, в ней есть некий рандом.

--- Код: Javascript ---pedmoney = this->wPedMoney; if ( pedmoney >= 10u ){x = this->physical.entity.replacement.m_matrix.pos.x;у = this->physical.entity.m_placement.m_matrix.pos.у;z = this->physical.entity, replacement.m_matrix.pos.z;v4 = ((signed int)(0x66666667 * (unsigned       int64)pedmoney >> 32) >> 3) + ((unsigned int)pedmoney >> 31) + 1;if ( V4 >= 7 ) v4 = 7; v5 = 0;for ( pedmoney_ = pedmoney / v4; v5 < v4; -H-v5 ){  v9 = sin((double)(unsigned    int8) *and() * 0.024543693); if ( v8 & 0x400 ){  deg2rad(v7);  v9 = sin(v9);}vl0 = v9;x = 1.5 * vl0 + x;vl3 = cos((double)(unsigned     int8)rand() * 0.024543693);if ( vl2 & 0x400 ){deg2rad(v11); v13 = cos(v13);}v14 = v13; у = 1.5 * vl4 + y;z = eWorld::FindGroundZFor3DCoord(x, y, z, &a4) + 0.5; if ( a4 ){vl5 = rand();CPickups::GenerateNewOne(pedmoney_, x, y, z, wMIDMoney, 8, pedmoney_ + (vl5 & 3), 0, 0, 0);   }  }v1->wPedMoney = 0; } 

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии