Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - Saint

Страницы: [1]
1
Общие вопросы / reVC
« : Июнь 29, 2021, 12:08:03 am »
https://github.com/GTAmodding/re3/tree/miami
наверняка все слышали про него, но дело в том что он не работает на WinXP пишет не является приложением win32, кто нибуть пробовал сам компилировать его? и возможно ли это сделать в 10й студии?

2
Общие вопросы / Лимиты Игры
« : Сентябрь 05, 2020, 03:32:15 pm »
все наверняка знаю такую программу как VC Limit Adjuster от Steve-M и её более новую версию, а так же есть 2 плагина.
1й - это от ThirteenAG и 2й от fastman92 (более продвинутый) но последнии версии этих плагинов не работают на XP

вообщем дело не в этом.

Меня интересует 3 лимита.

1 - это лимит TXD
2 - это лимит ID
3 - лимит модей транспорта которые могут быть созданны в игре одновременно (он равен примерно 50, если создать больше игра зависает)

вообщем программой VC Limit Adjuster я пропатчил exe на первые 2 лимита, нашел все адресса которые программа поменяла значения,

лимит TXD меняет 9 адрессов
лимит ID меня значения в 150 адрессах

сделал вот такую функцию

Код: C++
  1. void ReCreateGameTXDLimit()
  2. {//------------------------------------------------------------------------------------------------------------------------
  3. /*     
  4.         // TXD Limit
  5.  
  6.         TXD Numbers - multiple instances (3160 bytes)
  7.  
  8.         Maximum number of TXDs allowed in gta3.img.
  9.         When VC loads TXD objects, it assigns ID numbers to them just above the rangeused for map objects.
  10.         Valid values range from the game default of 1385 to 32700.
  11. */
  12.         //---------------------------------------------------------------------------------------------------------------------
  13.  
  14.         DWORD dwNewLimit = 5000;
  15.  
  16.        
  17.         // .text:0041065D 81 FB 69 05 00 00                       cmp     ebx, 569h
  18.         CMemory::InstallPatch<DWORD>( 0x41065D+2 , dwNewLimit);
  19.  
  20.         // .text:00580FD4 81 FB 69 05 00 00                       cmp     ebx, 569h
  21.         CMemory::InstallPatch<DWORD>( 0x580FD4+2 , dwNewLimit);
  22.  
  23.         // .text:0058102C 68 69 05 00 00                          push    569h
  24.         CMemory::InstallPatch<DWORD>( 0x58102C+1 , dwNewLimit);
  25.  
  26.         // .text:0061D98B 68 69 05 00 00                          push    569h
  27.         CMemory::InstallPatch<DWORD>( 0x61D98B+1 , dwNewLimit);
  28.  
  29.         // .text:0061D9E5 68 69 05 00 00                          push    569h
  30.         CMemory::InstallPatch<DWORD>( 0x61D9E5+1 , dwNewLimit);
  31.  
  32.         // .text:0061DAA5 68 69 05 00 00                          push    1385
  33.         CMemory::InstallPatch<DWORD>( 0x61DAA5+1 , dwNewLimit);
  34.  
  35.         // .text:0061DBA5 68 69 05 00 00                          push    569h
  36.         CMemory::InstallPatch<DWORD>( 0x61DBA5+1 , dwNewLimit);
  37.  
  38.         // .text:0061DCFA 81 FB 69 05 00 00                       cmp     ebx, 569h
  39.         CMemory::InstallPatch<DWORD>( 0x61DCFA+2 , dwNewLimit);
  40.  
  41.         // .text:0061DD39 68 69 05 00 00                          push    569h
  42.         CMemory::InstallPatch<DWORD>( 0x61DD39+1 , dwNewLimit);
  43.  
  44.         // end
  45.  
  46. }//------------------------------------------------------------------------------------------------------------------------
  47.  

но при загрузке игры происходит краш


3
Общие вопросы / Опкоды 0179 и 023B
« : Март 04, 2020, 11:42:21 pm »
их в Вайсе нету(

https://gtamods.com/wiki/0178
https://gtamods.com/wiki/0179
https://gtamods.com/wiki/023B
https://gtamods.com/wiki/023A

кто может выложить кусок кода из базы от GTA 3, чтобы посмотреть как они устроены для того чтобы реализовать их в вайсе?

4
Общие вопросы / Ротация и Матрица
« : Февраль 23, 2020, 11:38:53 pm »
в Игре есть опкоды

0453 установить объекту Ротацию, но нет опкода чтобы её узнать

написал я вот такие функции, но видимо что-то тут не верно у меня, прошу пожалуйста помощи

По оси Z вроде как определяет верно при условии что опкод 0176 (get_object_z_angle) это и есть Ротация по Оси Z

но с X и Y беда(

Код: C++
  1. float CObject::GetObjectRotX() // RC 8-2 T13 // RC 8-3
  2. {//------------------------------------------------------------------------------------------------------------------------
  3.  
  4.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  5.         {
  6.                 //-----------------------------------------------------------------------------------------------------------------
  7.  
  8.                 float fRotX = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookAt.X, m_pObject->physical.entity.placeable.matMatrix.vLookAt.Y) * 180.0f/PI;
  9.  
  10.                 // Bound it to [0, 360)
  11.                 while(fRotX < 0.0f)
  12.                         fRotX += 360.0f;
  13.                 while(fRotX >= 360.0f)
  14.                         fRotX -= 360.0f;
  15.                
  16.                 //-----------------------------------------------------------------------------------------------------------------
  17.  
  18.                 return fRotX;
  19.         }
  20.  
  21.         return 0;
  22.  
  23. }//------------------------------------------------------------------------------------------------------------------------
  24.  
  25. float CObject::GetObjectRotY() // RC 8-2 T13 // RC 8-3
  26. {//------------------------------------------------------------------------------------------------------------------------
  27.  
  28.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  29.         {
  30.                 //-----------------------------------------------------------------------------------------------------------------
  31.  
  32.                 float fRotY = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookRight.X, m_pObject->physical.entity.placeable.matMatrix.vLookRight.Y) * 180.0f/PI;
  33.  
  34.                 // Bound it to [0, 360)
  35.                 while(fRotY < 0.0f)
  36.                         fRotY += 360.0f;
  37.                 while(fRotY >= 360.0f)
  38.                         fRotY -= 360.0f;
  39.                
  40.                 //-----------------------------------------------------------------------------------------------------------------
  41.  
  42.                 return fRotY;
  43.         }
  44.  
  45.         return 0;
  46.  
  47. }//------------------------------------------------------------------------------------------------------------------------
  48.  
  49. float CObject::GetObjectRotZ() // RC 8-2 T13 // RC 8-3
  50. {//------------------------------------------------------------------------------------------------------------------------
  51.  
  52.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  53.         {
  54.                 //-----------------------------------------------------------------------------------------------------------------
  55.  
  56.                 float fRotZ = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookUp.X, m_pObject->physical.entity.placeable.matMatrix.vLookUp.Y) * 180.0f/PI;
  57.  
  58.                 // Bound it to [0, 360)
  59.                 while(fRotZ < 0.0f)
  60.                         fRotZ += 360.0f;
  61.                 while(fRotZ >= 360.0f)
  62.                         fRotZ -= 360.0f;
  63.                
  64.                 //-----------------------------------------------------------------------------------------------------------------
  65.  
  66.                 return fRotZ;
  67.         }
  68.  
  69.         return 0;
  70.  
  71. }//------------------------------------------------------------------------------------------------------------------------
  72.  

5
Общие вопросы / Капли крови и дождя на Экране
« : Февраль 22, 2020, 10:22:55 pm »
в GTA VC они у меня на одном компе есть, а на другом нету(
почему так?

скрин случайный из интернета


6
Общие вопросы / Маркеры (Метки на Карте)
« : Январь 25, 2020, 11:56:30 pm »
возможно ли в вайсе менять прозрачность (альфа канал) маркерам ? как в SA

вот тут это показано https://wiki.sa-mp.com/wiki/Color_list#Alpha_values_.28transparency.29

7
Моды / III.VC.SA.TransparentMenu.asi
« : Январь 12, 2020, 05:37:38 pm »
есть такой III.VC.SA.TransparentMenu.asi от Автора ThirteenAG (https://github.com/ThirteenAG)

ссылка на мод https://gamemodding.com/ru/gta-san-andreas/graphic/65343-prozrachnoe-menyu.html

сюда по описанию мод работает только с ASI лоадером от него же, но на Win XP этот самый ASI лоадер не работает

и исходников мода у него нет на его джит хабе.

Вопрос: как работает этот мод? как сделать тоже самое?

8
возможно ли как-то в процессе игры удалять или редактировать (например заменить модель определёного объекта) объекты карты?

9
Общие вопросы / Части Тела
« : Июнь 23, 2019, 06:07:43 pm »
как определить в какую часть тела я попал?

для определения из какого оружия и кто именно попал я использую оффсеты 0x598 и 0x59C из CPed

возможно ли сделать так: что когда в тебя (игрока) стреляет актёр и попадает в голову, то у нашего героя взрывалась бы голова и он сразу умирал как актёры когда им попадаешь в голову?


10
вот есть созданный объект



на стать на него нельзя



вопрос как правильно его создать?

11
Скриптинг / CLEO: Скрипт Ходьбы
« : Август 19, 2018, 11:15:36 pm »
есть такой вот код


{$CLEO .cs}

//-------------MAIN---------------
0000NOP 
10
@ = // integer values 
10@ *= // integer values (never used in VC or GTA 3) 
10@ += 8240304 // integer values // 7DBCB0   CPad pads[2]
11@ = // integer values 
11@ *= // integer values (never used in VC or GTA 3) 
11@ += 8240304 // integer values 
12@ = 10 // integer values 
12@ *= // integer values (never used in VC or GTA 3) 
12@ += 8240304 // integer values 
13@ = 11 // integer values 
13@ *= // integer values (never used in VC or GTA 3) 
13@ += 8240304 // integer values 
15@ = Actor.EmulateFromPlayer(0)

:
NONAME_98
wait 0 
05E0
0@ = read_memory 5600778 size 4 virtual_protect 0 // 55760A
if and
80E0:   not player 0 driving 
   Player
.Controllable(0)
  
0@ == 6850112 // integer values    //    688640     float fMinHeight      dd -100.0
00E1:   player 0 pressed_button 6     // Key Target
else_jump @NONAME_169 
05DF
write_memory 5600778 size 4 value 10541348 virtual_protect 1 // 55760A   // A0D929

:NONAME_169
if and
  
0@ == 10541348 // integer values // A0D924     .bss:00A0D924 ?? ?? ?? ??                       flt_A0D924      dd ?
80E1:   not player 0 pressed_button 6   // Key Target
else_jump @NONAME_212 
05DF
write_memory 5600778 size 4 value 6850112 virtual_protect 1 // 55760A flt_A0D924 // 688640   float fMinHeight      dd -100.0

:NONAME_212
05E0
5@ = read_memory 8801382 size 1 virtual_protect 1  // 864C66   ActiveKeyState
if and
80E0:   not player 0 driving 
   Player
.Controllable(0)
  
5@ == 255 // integer values 
else_jump @NONAME_367 
if 
00E1:   player 0 pressed_button 8  // W
else_jump @NONAME_283 
05DF
write_memory 10size 2 value 85 virtual_protect 0 

:NONAME_283
if 
00E1:   player 0 pressed_button 9 // S
else_jump @NONAME_311 
05DF
write_memory 11size 2 value 85 virtual_protect 0 

:NONAME_311
if 
00E1:   player 0 pressed_button 10  // A
else_jump @NONAME_339 
05DF
write_memory 12size 2 value 85 virtual_protect 0 

:NONAME_339
if 
00E1:   player 0 pressed_button 11  // D
else_jump @NONAME_367 
05DF
write_memory 13size 2 value 85 virtual_protect 0 

:NONAME_367
jump 
@NONAME_98 



может кто помочь объяснить как он работает и преобразовать его код С++

12
всем привет, как некоторые может знаю может нет, работаю над мультиплеерным модом для вайса https://vk.com/vicemultiplayer (аналог samp)
за основу были взяты исходники vc-mp 0.1c часть кода используется от samp
решил попробовать реализовать 3d текст в игре, но вот что-то не получается никак


функция отрисовки
void CNameTags::Draw()
{//------------------------------------------------------------------------------------------------------------------------

if (!bbfont)
{
bbfont = new CBBFont(m_pD3DDevice, "vmpfnt"); // RC 3 Update // наименование шрифта vmpfnt.png / .dat
bbfont->Initialise();
}

//---------------------------------------------------------------------------------------------------------------------

if (!BarOldStateBlock)
{
m_pD3DDevice->BeginStateBlock();

m_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
m_pD3DDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
m_pD3DDevice->SetRenderState(D3DRS_ZENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_FILLMODE, 3);
m_pD3DDevice->SetRenderState(D3DRS_CULLMODE, 1);
m_pD3DDevice->SetRenderState(D3DRS_WRAP0, 0);
m_pD3DDevice->SetRenderState(D3DRS_CLIPPING, 1);
m_pD3DDevice->SetRenderState(D3DRS_VERTEXBLEND, 0);
m_pD3DDevice->SetRenderState(D3DRS_CLIPPLANEENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, 0);
m_pD3DDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 15);
m_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, 5);
m_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, 6);
m_pD3DDevice->SetRenderState(D3DRS_BLENDOP, 1);

m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, 4);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, 2);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, 4);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, 2);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, 0);
m_pD3DDevice->SetTextureStageState(1, D3DTSS_COLOROP, 1);
m_pD3DDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, 1);

m_pD3DDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
m_pD3DDevice->SetVertexShader(D3DFVF_XYZ|D3DFVF_DIFFUSE);
m_pD3DDevice->SetStreamSource(0, NULL, 0);

m_pD3DDevice->EndStateBlock(&BarOldStateBlock);
}

//---------------------------------------------------------------------------------------------------------------------

if (!BarNewStateBlock)
{
m_pD3DDevice->BeginStateBlock();

m_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
m_pD3DDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
m_pD3DDevice->SetRenderState(D3DRS_ZENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_FILLMODE, 3);
m_pD3DDevice->SetRenderState(D3DRS_CULLMODE, 1);
m_pD3DDevice->SetRenderState(D3DRS_WRAP0, 0);
m_pD3DDevice->SetRenderState(D3DRS_CLIPPING, 1);
m_pD3DDevice->SetRenderState(D3DRS_VERTEXBLEND, 0);
m_pD3DDevice->SetRenderState(D3DRS_CLIPPLANEENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, 0);
m_pD3DDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 15);
m_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, 1);
m_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, 5);
m_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, 6);
m_pD3DDevice->SetRenderState(D3DRS_BLENDOP, 1);

m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, 4);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, 2);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, 1);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, 2);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
m_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, 0);
m_pD3DDevice->SetTextureStageState(1, D3DTSS_COLOROP, 1);
m_pD3DDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, 1);

m_pD3DDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
m_pD3DDevice->SetVertexShader(D3DFVF_XYZ|D3DFVF_DIFFUSE);

m_pD3DDevice->EndStateBlock(&BarNewStateBlock);
}

//---------------------------------------------------------------------------------------------------------------------

m_pD3DDevice->CaptureStateBlock(BarOldStateBlock);
m_pD3DDevice->ApplyStateBlock(BarNewStateBlock);

//---------------------------------------------------------------------------------------------------------------------

D3DXMATRIX matTransposed;
D3DXMatrixTranspose(&matTransposed, (D3DXMATRIX*)&matView);
matTransposed._14 = matTransposed._24 = matTransposed._34 = 0.0f;

//---------------------------------------------------------------------------------------------------------------------

if (pNetGame)
{
CPlayerPool * pPlayerPool = pNetGame->GetPlayerPool();

for (int x = 0; x < MAX_PLAYERS; x++)
{
if (pPlayerPool->GetSlotState(x) == TRUE) // player is in use
{
CRemotePlayer * pRemotePlayer = pPlayerPool->GetAt(x);

if (pRemotePlayer)
{
// in samp -> m_fNameTagDrawDistance = 70.0f;
if ( pRemotePlayer->IsActive() && (pRemotePlayer->m_bRemotePlayerPedVisible) && (pRemotePlayer->m_bRemotePlayerPedVisibleVW) && (pRemotePlayer->GetDistanceFromLocalPlayer() <= 70.0f) ) // Active and within reasonable distance
{
CPlayerPed * pRemotePlayerPed = pRemotePlayer->GetRemotePlayerPed();
                   
if (pRemotePlayerPed->IsOnScreen())
{
// They're onscreen // если пед на Экране

MATRIX4X4 matPlayer; // VECTOR vPos;
pRemotePlayerPed->GetMatrix(&matPlayer); // PlayerPed->GetPosition(&vPos);

// Set the matrix position
matTransposed._41 = matPlayer.vPos.X;
matTransposed._42 = matPlayer.vPos.Y;
matTransposed._43 = matPlayer.vPos.Z + 1.0f;

// Set the world transformation
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matTransposed);

//---------------------------------------------------------------------------------------------

float Health = pRemotePlayer->GetRemotePlayerHealth(); // RC 3 T3 Update
float Armour = pRemotePlayer->GetRemotePlayerArmour(); // RC 3 T3 Update

if (Health > 100.0f) Health = 100.0f;
if (Armour > 100.0f) Armour = 100.0f; // New Saint Add

// Set the health bar offsets
BarBGVertices[0].x = BarBGVertices[1].x = (0.0058f * Health) - 0.29f;

// Set the health bar color
BarVertices[0].c = BarVertices[1].c = BarVertices[2].c = BarVertices[3].c = HEALTH_BAR_COLOR;

m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarBDRVertices, sizeof(BarVertices_s)); // Draw the health bar border
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarVertices,    sizeof(BarVertices_s)); // Draw the health bar fill
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarBGVertices,  sizeof(BarVertices_s)); // Draw the health bar background

if (Armour > 0.0f)
{
matTransposed._41 = matPlayer.vPos.X;
matTransposed._42 = matPlayer.vPos.Y;
matTransposed._43 = matPlayer.vPos.Z + 1.1f;

// Set the world transformation
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matTransposed);

// Set the armour bar offsets
BarBGVertices[0].x = BarBGVertices[1].x = (0.0058f * Armour) - 0.29f;

// Set the armour bar color
BarVertices[0].c = BarVertices[1].c = BarVertices[2].c = BarVertices[3].c = ARMOUR_BAR_COLOR;

m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarBDRVertices, sizeof(BarVertices_s)); // Draw the armour bar border
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarVertices,    sizeof(BarVertices_s)); // Draw the armour bar fill
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, BarBGVertices,  sizeof(BarVertices_s)); // Draw the armour bar background
}

//---------------------------------------------------------------------------------------------

if (bbfont)
{
bbfont->Begin();

sprintf(szBuffer, "%s(%d)", pPlayerPool->GetPlayerName(x), x); // name + player id

bbfont->Draw(szBuffer, 0.100f, pRemotePlayer->GetPlayerColorAsARGB());

bbfont->End();
}
/*
D3DXVECTOR3 NamePos;
//NamePos.x = matPlayer.vPos.X;
//NamePos.y = matPlayer.vPos.Y;
//NamePos.z = matPlayer.vPos.Z;
NamePos.x = matTransposed._41;
NamePos.y = matTransposed._42;
NamePos.z = matTransposed._43;

D3DVIEWPORT8 Viewport;
m_pD3DDevice->GetViewport(&Viewport);

D3DXVECTOR3 Out;
D3DXMATRIX matIdent;
D3DXMatrixIdentity(&matIdent);

D3DXVec3Project(&Out, &NamePos, &Viewport, &matProj, &matView, &matIdent);

if (Out.z > 1.0f)
return;

RECT rect = {(int)Out.x, (int)Out.y, (int)Out.x+1, (int)Out.y+1}; // определяем прямоугольник

SIZE size = pDefaultFont->MeasureText(szBuffer);
rect.left -= size.cx/2;

//rect.left += 200;
//rect.top += 100;
//rect.right += pGame->GetScreenWidth(); // ширина
//rect.bottom += pGame->GetScreenHeight(); // высота

pDefaultFont->RenderText(szBuffer, rect, pRemotePlayer->GetPlayerColorAsARGB());
*/
}
}
}
}
}
}

m_pD3DDevice->ApplyStateBlock(BarOldStateBlock);

}//------------------------------------------------------------------------------------------------------------------------

суть в том что закоменнтированная часть кода в SA работает, а вот в Вайсе нет
кто что подскажет?

13
Общие вопросы / RoadBlock
« : Декабрь 26, 2013, 04:01:11 am »
как запретить игре создавать такие дорожные блокады??
(при условии что уровень розыска игрока будет != 0)



14
Общие вопросы / CheckPoint (Marker) Size
« : Октябрь 05, 2013, 11:59:42 pm »
как изменить/задать/поменять размер этого жёлтого чекпоинта (маркера)?


Страницы: [1]